Add the new test suite.
This test suite has been in use for a long time now, in place of the obsolete and unmanageable testparser.py and testfuncs.py. It verifies the complete optimizer output to stdout and stderr, to ensure that the output matches the expectations. See unit_tests/README.txt for more info.
This commit is contained in:
82
unit_tests/expr.suite/llunescapeurl.lsl
Normal file
82
unit_tests/expr.suite/llunescapeurl.lsl
Normal file
@@ -0,0 +1,82 @@
|
||||
[ llUnescapeURL("%")
|
||||
, llUnescapeURL("%%")
|
||||
, llUnescapeURL("%4%252Fabc")
|
||||
, llEscapeURL(llUnescapeURL("%%4%252Fabc"))
|
||||
, llStringToBase64(llUnescapeURL("%%4%252Fabc"))
|
||||
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c"))
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%"))
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%2"))
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%%"))
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%%2"))
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%%%2346"))
|
||||
, llEscapeURL(llUnescapeURL("%4.%25"))
|
||||
|
||||
// Test UTF-8 validity
|
||||
, llEscapeURL(llUnescapeURL("%C3%81%80%E3%81%C3%80ABC%D3"))
|
||||
, llEscapeURL(llUnescapeURL("%C3%81%80%E3%81%C3%80ABC%00%D3"))
|
||||
, llEscapeURL(llUnescapeURL("%E0%80%80%80%80%80%80%E3%81%C3%80ABC%00%D3"))
|
||||
// test UTF-8 valid ranges
|
||||
// thorough control codes
|
||||
, llEscapeURL(llUnescapeURL("%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F"))
|
||||
, llEscapeURL(llUnescapeURL("%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F"))
|
||||
// DEL
|
||||
, llEscapeURL(llUnescapeURL("%7Fx"))
|
||||
// invalid ranges
|
||||
, llEscapeURL(llUnescapeURL("%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%BF%BFx"))
|
||||
// aliased
|
||||
, llEscapeURL(llUnescapeURL("%C0%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%C1%BFx"))
|
||||
// valid range
|
||||
, llEscapeURL(llUnescapeURL("%C2%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%DF%BFx"))
|
||||
// aliased
|
||||
, llEscapeURL(llUnescapeURL("%E0%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%E0%9F%BFx"))
|
||||
// valid range
|
||||
, llEscapeURL(llUnescapeURL("%E0%A0%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%ED%9F%BFx"))
|
||||
// invalid (UTF-16 high surrogates)
|
||||
, llEscapeURL(llUnescapeURL("%ED%A0%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%ED%AF%BFx"))
|
||||
// invalid (UTF-16 low surrogates)
|
||||
, llEscapeURL(llUnescapeURL("%ED%B0%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%ED%BF%BFx"))
|
||||
// valid range
|
||||
, llEscapeURL(llUnescapeURL("%EE%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%EF%BF%BFx"))
|
||||
// aliased
|
||||
, llEscapeURL(llUnescapeURL("%F0%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%F0%8F%BF%BFx"))
|
||||
// valid range
|
||||
, llEscapeURL(llUnescapeURL("%F0%90%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%F4%8F%BF%BFx"))
|
||||
// codepoints > U+10FFFF (all invalid)
|
||||
, llEscapeURL(llUnescapeURL("%F4%90%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%F7%BF%BF%BFx"))
|
||||
, llEscapeURL(llUnescapeURL("%F8%80%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%F8%87%BF%BF%BFx"))
|
||||
, llEscapeURL(llUnescapeURL("%F8%88%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%FB%BF%BF%BF%BFx"))
|
||||
, llEscapeURL(llUnescapeURL("%FC%80%80%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%FC%83%BF%BF%BF%BFx"))
|
||||
, llEscapeURL(llUnescapeURL("%FC%84%80%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%FD%BF%BF%BF%BF%BFx"))
|
||||
// FE and FF are used for the UTF-16 and UTF-32 BOM
|
||||
, llEscapeURL(llUnescapeURL("%FE%B0%80%80%80%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%FF%BF%BF%BF%BF%BF%BF%BFx"))
|
||||
// short or invalid sequences
|
||||
, llEscapeURL(llUnescapeURL("%80"))
|
||||
, llEscapeURL(llUnescapeURL("%BF"))
|
||||
, llEscapeURL(llUnescapeURL("%C2"))
|
||||
, llEscapeURL(llUnescapeURL("%E1"))
|
||||
, llEscapeURL(llUnescapeURL("%E1%80"))
|
||||
, llEscapeURL(llUnescapeURL("%F1"))
|
||||
, llEscapeURL(llUnescapeURL("%F1%80"))
|
||||
, llEscapeURL(llUnescapeURL("%F1%80%80"))
|
||||
|
||||
// Test that U+FFFD is preserved even with invalid characters
|
||||
, llEscapeURL(llUnescapeURL("%EF%BF%BD%90"))
|
||||
|
||||
]
|
||||
Reference in New Issue
Block a user