diff --git a/PowerEditor/Test/UrlDetection/plugins/Config/startup.lua b/PowerEditor/Test/UrlDetection/plugins/Config/startup.lua new file mode 100644 index 00000000..a7339f62 --- /dev/null +++ b/PowerEditor/Test/UrlDetection/plugins/Config/startup.lua @@ -0,0 +1,6 @@ +-- Startup script for URL detection verification test +endNppAfterUrlTest = 1 +local nppDir = npp:GetNppDirectory() +local verifyUrlDetection = loadfile(nppDir .."\\" .. "..\\Test\\UrlDetection\\verifyUrlDetection.lua") +pcall(verifyUrlDetection) + diff --git a/PowerEditor/Test/UrlDetection/plugins/LuaScript/Lua.dll b/PowerEditor/Test/UrlDetection/plugins/LuaScript/Lua.dll new file mode 100644 index 00000000..6b286712 Binary files /dev/null and b/PowerEditor/Test/UrlDetection/plugins/LuaScript/Lua.dll differ diff --git a/PowerEditor/Test/UrlDetection/plugins/LuaScript/LuaScript.dll b/PowerEditor/Test/UrlDetection/plugins/LuaScript/LuaScript.dll new file mode 100644 index 00000000..68b449e2 Binary files /dev/null and b/PowerEditor/Test/UrlDetection/plugins/LuaScript/LuaScript.dll differ diff --git a/PowerEditor/Test/UrlDetection/readMe.txt b/PowerEditor/Test/UrlDetection/readMe.txt new file mode 100644 index 00000000..b6a2d75d --- /dev/null +++ b/PowerEditor/Test/UrlDetection/readMe.txt @@ -0,0 +1,70 @@ +What is the URL detection test +------------------------------ + +The URL detection test is designed to check, +whether the clickable detection works as expected or not. + +It uses text files as input. These text files contain a pair of +lines for each URL to test. The first line contains the URL, the +second line contains a sequence of characters, which are a mask, +consisting of '0' or '1' characters, describing whether this +position in the line should be detected as URL. + +Example: + +u http://dot.com u +m 11111111111111 m + +As can be seen, the URL is enclosed in "u " and " u", the mask +is enclosed in "m " and " m". The mask line must follow the URL +line immediately. A '1' in the mask line says, that this position +should be detected as URL, a '0' says the opposite. + +It is possible, to put arbitrary text between the pairs of test +lines, to comment the test cases. Obviously, none of the comment +lines should start and end with a single 'u' or 'm' character. + +The test files can also be regarded as living document about what +is currently detected as URL and what not. + + + +How to conduct the URL detection test +------------------------------------- + +Since the URL detection only takes place in the visible part of +the edit windows, the test can only be run from inside an opened +Notepad++ with a visible edit window. + +Since the test script is written in Lua, a prerequisite to conduct +the test is, that the Lua plugin is installed. The plugin can be found +at https://github.com/dail8859/LuaScript/releases. + +To conduct the test: + +1. Open the verifyUrlDetection.lua with Notepad++. +2. Display the Lua console window (Plugins --> LuaScript --> Show Console) +3. Execute the opened script file (Plugins --> LuaScript --> Execute Current File) + +The test results will be displayed in the Lua console window. + +!!! Please be aware, that there should NO keyboard or mouse or whatever + input be applied to Notepad++ while this test is running. + + + + +How to extend the URL detection test +------------------------------------ + +It is possible to add test files to the URL detection test +by copying the new files into this directory and include the filenames +in the testFiles list at the beginning of verifyUrlDetection.lua. + + + +Automated version of the URL detection test +------------------------------------------- + +An automated version of the test can be conducted by running verifyUrlDetection.ps1. +This is mainly to run the test in Appveyor. diff --git a/PowerEditor/Test/UrlDetection/verifyUrlDetection.lua b/PowerEditor/Test/UrlDetection/verifyUrlDetection.lua new file mode 100644 index 00000000..6c7a321a --- /dev/null +++ b/PowerEditor/Test/UrlDetection/verifyUrlDetection.lua @@ -0,0 +1,197 @@ +local testFiles = {"verifyUrlDetection_1a", + "verifyUrlDetection_1b"} +local URL_INDIC = 8 +local timerInterval = 10 + +local function verifyUrlDetection() + + local curPos = 0 + local task = -1 + local uFrom = 0 + local uTo = 0 + local mFrom = 0 + local mTo = 0 + local OKorKO = "OK" + local nFile = 1 + local testResults = {} + local outFile = nil + + local function Summary() + local resLine = "" + local i = 1 + while testFiles[i] ~= nil do + if testResults[i] == nil then + testResults[i] = 'KO' + end + print(testFiles[i] .. ": " .. testResults[i]) + i = i + 1 + end + print(resLine) + if endNppAfterUrlTest ~= nil then + print("good bye") + npp:MenuCommand(IDM_FILE_EXIT) + end + end + + local function nextFile() + local fileAvail = false + if outFile ~= nil then + io.close(outFile) + end + while (not fileAvail) and (testFiles[nFile] ~= nil) do + local fileName = npp:GetNppDirectory() .. "\\..\\Test\\UrlDetection\\" .. testFiles[nFile] + fileAvail = npp:SwitchToFile(fileName) + if not fileAvail then + local f = io.open(fileName,"r") + if f~=nil then + io.close(f) + fileAvail = npp:DoOpen(fileName) + end + end + -- print("Verifying " .. testFiles[nFile] .. " ...") + print("Verifying " .. npp:GetFileName() .. " ...") + if fileAvail then + local outFileName = fileName .. ".result" + outFile = io.open(outFileName,"w") + if outFile == nil then + testResults[nFile] = "KO" + print("KO", "Cannot open output file \""..fileName.."\"") + print() + nFile = nFile + 1; + end + else + testResults[nFile] = "KO" + print("KO", "Cannot open file \""..fileName.."\"") + print() + nFile = nFile + 1; + end + end + return fileAvail + end + + local function scrollToNextURL() + editor.TargetStart = curPos + editor.TargetEnd = editor.Length + editor.SearchFlags = SCFIND_REGEXP + local iRes = editor:SearchInTarget("^u .+ u$") + if iRes >= 0 then + uFrom = editor.TargetStart + uTo = editor.TargetEnd + editor.TargetStart = uFrom + editor.TargetEnd = editor.Length + iRes = editor:SearchInTarget("^m .+ m$") + if iRes >= 0 then + mFrom = editor.TargetStart + mTo = editor.TargetEnd + local ln1 = editor:LineFromPosition(uFrom) + local ln2 = editor:LineFromPosition(mFrom) + if (ln1+1) == ln2 then + editor:ScrollRange(mTo, uFrom) + return 1 + else + editor:GotoPos(mFrom) + OKorKO = "KO" + print("KO", "Mask line not following immediately after URL line") + return -1 + end + else + OKorKO = "KO" + print ("KO", "Mask line not found") + return -1 + end + else + return 0 + end + end + + local function verifyURL() + local mMsk = editor:textrange(mFrom, mTo) + editor:GotoPos(uFrom + 2) + local uMsk = "m " + local limit = mTo - mFrom -- if something goes wrong, edit.CurrentPos may never reach (uTo - 2). + while (editor.CurrentPos < uTo - 2) and (limit >= 0) do + if editor:IndicatorValueAt(URL_INDIC, editor.CurrentPos) == 0 then + uMsk = uMsk .. "0" + else + uMsk = uMsk .. "1" + end + editor:CharRight() + limit = limit - 1 + end + local Res = 0 + if limit >= 0 then + if editor:textrange(editor.CurrentPos, editor.CurrentPos + 2) == " u" then + uMsk = uMsk .. " m" + if uMsk == mMsk then + outFile:write("OK", "\t", editor:textrange(uFrom, uTo), "\n") + Res = 1 + else + outFile:write("KO", "\t", editor:textrange(uFrom, uTo), "\n") + outFile:write("ok", "\t", mMsk, "\n") + outFile:write("ko", "\t", uMsk, "\n") + OKorKO = "KO" + Res = 1 + end + end + else + outFile:write("KO", "\t", "internal error", "\n") + OKorKO = "KO" + end + return Res + end + + local function goForward(timer) + if task < 0 then + task = task + 1 + if task == 0 then + if not nextFile() then + npp.StopTimer(timer) + Summary() + end + end + elseif task == 0 then + local urlAvail = scrollToNextURL() + if urlAvail == 1 then + task = 1 + else + npp.StopTimer(timer) + print(OKorKO) + print() + testResults[nFile] = OKorKO + if urlAvail == 0 then + nFile = nFile + 1 + if nextFile() then + task = 0 + curPos = 0 + OKorKO = "OK" + npp.StartTimer(timerInterval, goForward) + else + Summary() + end + else + Summary() + end + end + elseif task == 1 then + if verifyURL() == 0 then + npp.StopTimer(timer) + print() + Summary() + else + curPos = mTo + task = 0 + end + else + npp.stopTimer(timer) + print("KO---", "Internal impossibility") + print() + Summary() + end + end + + npp.StartTimer(timerInterval, goForward) + +end + +npp.ClearConsole() +verifyUrlDetection() diff --git a/PowerEditor/Test/UrlDetection/verifyUrlDetection.ps1 b/PowerEditor/Test/UrlDetection/verifyUrlDetection.ps1 new file mode 100644 index 00000000..d3555438 --- /dev/null +++ b/PowerEditor/Test/UrlDetection/verifyUrlDetection.ps1 @@ -0,0 +1,57 @@ +try { + if (Test-Path -Path '..\..\Bin\plugins' -PathType Container) + { + if (Test-Path -Path '..\..\Bin\plugins_save' -PathType Container) + { + "Backup for plugins directory already exists" + exit -1 + } + "Backing up plugin directory ..." + Move-Item ..\..\Bin\plugins ..\..\bin\plugins_save + } + "Installing Lua plugin for testing ..." + Copy-Item -Path .\plugins -Destination ..\..\bin -Recurse + + "Testing ..." + ..\..\bin\notepad++.exe | Out-Null + + if (Test-Path -Path '..\..\Bin\plugins_save' -PathType Container) + { + "Removing Lua plugin ..." + Remove-Item -Path ..\..\Bin\plugins -Recurse -Force + "Restoring plugin directory ..." + Move-Item ..\..\Bin\plugins_save ..\..\bin\plugins + } + + $expectedRes = Get-Content .\verifyUrlDetection_1a.expected.result + $generatedRes = Get-Content .\verifyUrlDetection_1a.result + + if (Compare-Object -ReferenceObject $expectedRes -DifferenceObject $generatedRes) + { + "Unexpected test results for verifyUrlDetection_1a" + exit -1 + } + else + { + Remove-Item .\verifyUrlDetection_1a.result + $expectedRes = Get-Content .\verifyUrlDetection_1b.expected.result + $generatedRes = Get-Content .\verifyUrlDetection_1b.result + if (Compare-Object -ReferenceObject $expectedRes -DifferenceObject $generatedRes) + { + "Unexpected test results for verifyUrlDetection_1b" + exit -1 + } + else + { + Remove-Item .\verifyUrlDetection_1b.result + "URL detection test OK" + exit 0 + } + } +} +catch +{ + "Unexpected behavior while URL detection test" + exit -1 +} + diff --git a/PowerEditor/Test/UrlDetection/verifyUrlDetection_1a b/PowerEditor/Test/UrlDetection/verifyUrlDetection_1a new file mode 100644 index 00000000..f0944c4a --- /dev/null +++ b/PowerEditor/Test/UrlDetection/verifyUrlDetection_1a @@ -0,0 +1,284 @@ +=== URLs which are handled OK so far === + +u http://test.com u +m 111111111111111 m + +u HTTP://UPCASE.UP u +m 1111111111111111 m + +u http: u +m 00000 m + +u mailto: u +m 0000000 m + + + +Preceding none-whitespace characters: + +u !http://test.com u +m 0111111111111111 m + +u "http://test.com u +m 0111111111111111 m + +u #http://test.com u +m 0111111111111111 m + +u $http://test.com u +m 0111111111111111 m + +u %http://test.com u +m 0111111111111111 m + +u &http://test.com u +m 0111111111111111 m + +u 'http://test.com u +m 0111111111111111 m + +u (http://test.com u +m 0111111111111111 m + +u )http://test.com u +m 0111111111111111 m + +u *http://test.com u +m 0111111111111111 m + +u +http://test.com u +m 0111111111111111 m + +u ,http://test.com u +m 0111111111111111 m + +u -http://test.com u +m 0111111111111111 m + +u .http://test.com u +m 0111111111111111 m + +u /http://test.com u +m 0111111111111111 m + +u 1http://test.com u +m 0000000000000000 m + +u 9http://test.com u +m 0000000000000000 m + +u :http://test.com u +m 0111111111111111 m + +u ;http://test.com u +m 0111111111111111 m + +u http://test.com u +m 0111111111111111 m + +u ?http://test.com u +m 0111111111111111 m + +u @http://test.com u +m 0111111111111111 m + +u Ahttp://test.com u +m 0000000000000000 m + +u Zhttp://test.com u +m 0000000000000000 m + +u [http://test.com u +m 0111111111111111 m + +u \http://test.com u +m 0111111111111111 m + +u ]http://test.com u +m 0111111111111111 m + +u ^http://test.com u +m 0111111111111111 m + +u _http://test.com u +m 0000000000000000 m + +u `http://test.com u +m 0111111111111111 m + +u ahttp://test.com u +m 0000000000000000 m + +u zhttp://test.com u +m 0000000000000000 m + +u {http://test.com u +m 0111111111111111 m + +u |http://test.com u +m 0111111111111111 m + +u }http://test.com u +m 0111111111111111 m + +u ~http://test.com u +m 0111111111111111 m + + + +Query parsing: + +u https://duckduckgo.com/?q=windows+delete+"GameBarPresenceWriter.exe" u +m 11111111111111111111111111111111111111111111111111111111111111111111 m + +u "https://duckduckgo.com/?q=windows+delete+"GameBarPresenceWriter.exe"" u +m 0111111111111111111111111111111111111111111111111111111111111111111110 m + +u "https://duckduckgo.com/?q=windows+delete+"GameBarPresenceWriter.exe" u +m 011111111111111111111111111111111111111111111111111111111111111111111 m + +u "https://duckduckgo/com/?q=windows+delete+GameBarPresenceWriter.exe" u +m 01111111111111111111111111111111111111111111111111111111111111111110 m + +u "https://duckduckgo.com/?q=windows+delete+""GameBarPresenceWriter.exe" u +m 0111111111111111111111111111111111111111111100000000000000000000000000 m + +u https://www.youtube.com/watch?v=VmcftreqQ6E&list=PnQIRE5O5JpiLL&index=xxx u +m 1111111111111111111111111111111111111111111111111111111111111111111111111 m + + + +Space detection: + +u "http://github.com/notepad-plus-plus/notepad-plus-plus" u +m 0111111111111111111111111111111111111111111111111111110 m + +u "https://github.com /notepad-plus-plus/notepad-plus-plus" u +m 011111111111111111100000000000000000000000000000000000000 m + +u "https://github.com/notepad plus plus/notepad-plus-plus" u +m 01111111111111111111111111100000000000000000000000000000 m + + + +Unwanted trailing character removal: + +u (https://github.com/notepad-plus-plus/notepad-plus-plus) u +m 01111111111111111111111111111111111111111111111111111110 m + +u https://github.com/notepad-plus-plus/notepad-plus-plus; u +m 1111111111111111111111111111111111111111111111111111110 m + +u https://github.com/notepad-plus-plus/notepad-plus-plus? u +m 1111111111111111111111111111111111111111111111111111110 m + +u https://github.com/notepad-plus-plus/notepad-plus-plus! u +m 1111111111111111111111111111111111111111111111111111110 m + +u https://github.com/notepad-plus-plus/notepad-plus-plus# u +m 1111111111111111111111111111111111111111111111111111110 m + +u http://github.com/notepad-plus-plus/notepad-plus-plus#fragment u +m 11111111111111111111111111111111111111111111111111111111111111 m + +u (e.g., https://en.wikipedia.org/wiki/Saw_(2003_film))? u +m 000000011111111111111111111111111111111111111111111100 m + +u (https://en.wikipedia.org/wiki/Saw_(2003_film)) u +m 01111111111111111111111111111111111111111111110 m + +u (https://en.wikipedia.org/wiki/Saw_2003_film) u +m 011111111111111111111111111111111111111111110 m + + + +International characters: + +u https://apache-windows.ru/как-установить-сервер-apache-c-php-mysql-и-phpmyadmin-на-windows/ u +m 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 m + +u https://www.rnids.rs/национални-домени/регистрација-националних-домена u +m 1111111111111111111111111111111111111111111111111111111111111111111111 m + +u https://www.morfix.co.il/שלום u +m 11111111111111111111111111111 m + +u https://www.amazon.fr/GRÜNTEK-Ebrancheur-Cisailles-crémaillère-SATISFAIT/dp/B01COZUA4E/ u +m 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 m + +u https://www.amazon.fr/Gardena-coupe-branches-TeleCut-520-670-télescopiques/dp/B07JLJ4N44/ u +m 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 m + + + +Instagram links: + +u https://ig.com/?query=c761&vars={"id":"0815","first":100} u +m 111111111111111111111111111111111111111111111111111111111 m + +u {https://ig.com/?query=c761&vars={"id":"0815","first":100}} u +m 01111111111111111111111111111111111111111111111111111111110 m + +u [https://ig.com/?query=c761&vars={"id":"0815","first":100}] u +m 01111111111111111111111111111111111111111111111111111111110 m + +u "https://ig.com/?query=c761&vars={"id":"0815","first":100}" u +m 01111111111111111111111111111111111111111111111111111111110 m + + + +Links in LaTeX: + +u \href{https://weblink.com/}{click me} u +m 0000001111111111111111111100000000000 m + +u \href{https://ig.com/?query=c761&vars={"id":"0815","first":100}}{click me} u +m 00000011111111111111111111111111111111111111111111111111111111100000000000 m + + + +Mail: + +u mailto:don.h@free.fr u +m 11111111111111111111 m + +u u +m 000000000000000 m + +u u +m 0111111111111111111110 m + +u http:don.h@free.fr u +m 000000000000000000 m + + + +FTP: + +u u +m 01111111111111111111111111111111111110 m + +u ftp://host:444/0a_gopher_selector%09%09some_gplus_stuff u +m 1111111111111111111111111111111111111111111111111111111 m + +u ftp://host:abc/0a_gopher_selector%09%09some_gplus_stuff u +m 0000000000000000000000000000000000000000000000000000000 m + + + +FILE: + +u file://Hello%20world.txt u +m 111111111111111111111111 m + +u "file://Hello%20world.txt" u +m 01111111111111111111111110 m + +u "file://Hello world.txt" u +m 011111111111100000000000 m + +u file://127.0.0.1/c$/Tools\Npp%20Test%20Data/Test3/3812.pdf u +m 1111111111111111111111111111111111111111111111111111111111 m diff --git a/PowerEditor/Test/UrlDetection/verifyUrlDetection_1a.expected.result b/PowerEditor/Test/UrlDetection/verifyUrlDetection_1a.expected.result new file mode 100644 index 00000000..0ef6e705 --- /dev/null +++ b/PowerEditor/Test/UrlDetection/verifyUrlDetection_1a.expected.result @@ -0,0 +1,81 @@ +OK u http://test.com u +OK u HTTP://UPCASE.UP u +OK u http: u +OK u mailto: u +OK u !http://test.com u +OK u "http://test.com u +OK u #http://test.com u +OK u $http://test.com u +OK u %http://test.com u +OK u &http://test.com u +OK u 'http://test.com u +OK u (http://test.com u +OK u )http://test.com u +OK u *http://test.com u +OK u +http://test.com u +OK u ,http://test.com u +OK u -http://test.com u +OK u .http://test.com u +OK u /http://test.com u +OK u 1http://test.com u +OK u 9http://test.com u +OK u :http://test.com u +OK u ;http://test.com u +OK u http://test.com u +OK u ?http://test.com u +OK u @http://test.com u +OK u Ahttp://test.com u +OK u Zhttp://test.com u +OK u [http://test.com u +OK u \http://test.com u +OK u ]http://test.com u +OK u ^http://test.com u +OK u _http://test.com u +OK u `http://test.com u +OK u ahttp://test.com u +OK u zhttp://test.com u +OK u {http://test.com u +OK u |http://test.com u +OK u }http://test.com u +OK u ~http://test.com u +OK u https://duckduckgo.com/?q=windows+delete+"GameBarPresenceWriter.exe" u +OK u "https://duckduckgo.com/?q=windows+delete+"GameBarPresenceWriter.exe"" u +OK u "https://duckduckgo.com/?q=windows+delete+"GameBarPresenceWriter.exe" u +OK u "https://duckduckgo/com/?q=windows+delete+GameBarPresenceWriter.exe" u +OK u "https://duckduckgo.com/?q=windows+delete+""GameBarPresenceWriter.exe" u +OK u https://www.youtube.com/watch?v=VmcftreqQ6E&list=PnQIRE5O5JpiLL&index=xxx u +OK u "http://github.com/notepad-plus-plus/notepad-plus-plus" u +OK u "https://github.com /notepad-plus-plus/notepad-plus-plus" u +OK u "https://github.com/notepad plus plus/notepad-plus-plus" u +OK u (https://github.com/notepad-plus-plus/notepad-plus-plus) u +OK u https://github.com/notepad-plus-plus/notepad-plus-plus; u +OK u https://github.com/notepad-plus-plus/notepad-plus-plus? u +OK u https://github.com/notepad-plus-plus/notepad-plus-plus! u +OK u https://github.com/notepad-plus-plus/notepad-plus-plus# u +OK u http://github.com/notepad-plus-plus/notepad-plus-plus#fragment u +OK u (e.g., https://en.wikipedia.org/wiki/Saw_(2003_film))? u +OK u (https://en.wikipedia.org/wiki/Saw_(2003_film)) u +OK u (https://en.wikipedia.org/wiki/Saw_2003_film) u +OK u https://apache-windows.ru/как-установить-сервер-apache-c-php-mysql-и-phpmyadmin-на-windows/ u +OK u https://www.rnids.rs/национални-домени/регистрација-националних-домена u +OK u https://www.morfix.co.il/שלום u +OK u https://www.amazon.fr/GRÜNTEK-Ebrancheur-Cisailles-crémaillère-SATISFAIT/dp/B01COZUA4E/ u +OK u https://www.amazon.fr/Gardena-coupe-branches-TeleCut-520-670-télescopiques/dp/B07JLJ4N44/ u +OK u https://ig.com/?query=c761&vars={"id":"0815","first":100} u +OK u {https://ig.com/?query=c761&vars={"id":"0815","first":100}} u +OK u [https://ig.com/?query=c761&vars={"id":"0815","first":100}] u +OK u "https://ig.com/?query=c761&vars={"id":"0815","first":100}" u +OK u \href{https://weblink.com/}{click me} u +OK u \href{https://ig.com/?query=c761&vars={"id":"0815","first":100}}{click me} u +OK u mailto:don.h@free.fr u +OK u u +OK u u +OK u http:don.h@free.fr u +OK u u +OK u ftp://host:444/0a_gopher_selector%09%09some_gplus_stuff u +OK u ftp://host:abc/0a_gopher_selector%09%09some_gplus_stuff u +OK u file://Hello%20world.txt u +OK u "file://Hello%20world.txt" u +OK u "file://Hello world.txt" u +OK u file://127.0.0.1/c$/Tools\Npp%20Test%20Data/Test3/3812.pdf u diff --git a/PowerEditor/Test/UrlDetection/verifyUrlDetection_1b b/PowerEditor/Test/UrlDetection/verifyUrlDetection_1b new file mode 100644 index 00000000..338a6110 --- /dev/null +++ b/PowerEditor/Test/UrlDetection/verifyUrlDetection_1b @@ -0,0 +1,25 @@ +=== URLs which can be handled better === + +International characters directly before URL: + +u ähttp://test.com u +m 0000000000000000 m + +u домhttp://test.com u +m 000000000000000000 m + + + +Apostrophes: + +u https://en.wikipedia.org/wiki/Murphy's_law u +m 111111111111111111111111111111111111111111 m + +u http://xxx.xxx/Tom's%20sisters'%20careers u +m 11111111111111111111111111111111111111111 m + +u http://xxx.xxx/Tom's%20sisters' u +m 1111111111111111111111111111111 m + +u http://xxx.xxx/Tom's%20sisters'' u +m 11111111111111111111111111111111 m diff --git a/PowerEditor/Test/UrlDetection/verifyUrlDetection_1b.expected.result b/PowerEditor/Test/UrlDetection/verifyUrlDetection_1b.expected.result new file mode 100644 index 00000000..3f230fcc --- /dev/null +++ b/PowerEditor/Test/UrlDetection/verifyUrlDetection_1b.expected.result @@ -0,0 +1,18 @@ +KO u ähttp://test.com u +ok m 0000000000000000 m +ko m 0111111111111111 m +KO u домhttp://test.com u +ok m 000000000000000000 m +ko m 000111111111111111 m +KO u https://en.wikipedia.org/wiki/Murphy's_law u +ok m 111111111111111111111111111111111111111111 m +ko m 111111111111111111111111111111111111000000 m +KO u http://xxx.xxx/Tom's%20sisters'%20careers u +ok m 11111111111111111111111111111111111111111 m +ko m 11111111111111111100000000000000000000000 m +KO u http://xxx.xxx/Tom's%20sisters' u +ok m 1111111111111111111111111111111 m +ko m 1111111111111111110000000000000 m +KO u http://xxx.xxx/Tom's%20sisters'' u +ok m 11111111111111111111111111111111 m +ko m 11111111111111111100000000000000 m diff --git a/PowerEditor/src/NppNotification.cpp b/PowerEditor/src/NppNotification.cpp index 04231f67..6de23f9a 100644 --- a/PowerEditor/src/NppNotification.cpp +++ b/PowerEditor/src/NppNotification.cpp @@ -852,7 +852,7 @@ BOOL Notepad_plus::notify(SCNotification *notification) // replacement for obsolete custom SCN_SCROLLED if (notification->updated & SC_UPDATE_V_SCROLL) { - addHotSpot(); + addHotSpot(notifyView); } // if it's searching/replacing, then do nothing diff --git a/appveyor.yml b/appveyor.yml index b988aa43..d58379e7 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -77,6 +77,8 @@ after_build: .\unitTestLauncher.ps1 .\unitTestLauncher.ps1 #ATTENTION: current working dir is no longer at APPVEYOR_BUILD_FOLDER + cd ..\UrlDetection + .\verifyUrlDetection.ps1 } if ($env:PLATFORM_INPUT -eq "mingw") {