diff options
Diffstat (limited to 'spike/settings/test-strings')
| -rw-r--r-- | spike/settings/test-strings/aegis-json.txt | 5 | ||||
| -rw-r--r-- | spike/settings/test-strings/c-1-percent.txt | 5 | ||||
| -rw-r--r-- | spike/settings/test-strings/c-2-angle.txt | 5 | ||||
| -rw-r--r-- | spike/settings/test-strings/c-3-backslash.txt | 5 | ||||
| -rw-r--r-- | spike/settings/test-strings/c-4-quote.txt | 5 | ||||
| -rw-r--r-- | spike/settings/test-strings/c-5-braces.txt | 5 | ||||
| -rw-r--r-- | spike/settings/test-strings/c-6-latin.txt | 5 | ||||
| -rw-r--r-- | spike/settings/test-strings/c-7-emoji.txt | 5 | ||||
| -rw-r--r-- | spike/settings/test-strings/c-8-json.txt | 5 | ||||
| -rw-r--r-- | spike/settings/test-strings/index.html | 9 | ||||
| -rw-r--r-- | spike/settings/test-strings/make_test_strings.py | 24 |
11 files changed, 78 insertions, 0 deletions
diff --git a/spike/settings/test-strings/aegis-json.txt b/spike/settings/test-strings/aegis-json.txt new file mode 100644 index 0000000..82b54f2 --- /dev/null +++ b/spike/settings/test-strings/aegis-json.txt @@ -0,0 +1,5 @@ +# Author: cirakg & claude ai +# Summary: Settings spike test string: fake unencrypted Aegis export. +# Copy ONLY the last line (the test string) into a settings field. + +{"version":1,"header":{"slots":null,"params":null},"db":{"version":3,"entries":[{"type":"totp","uuid":"00000000-0000-4000-8000-000000000001","name":"alice@example.com","issuer":"TestOne","note":"","icon":null,"info":{"secret":"JBSWY3DPEHPK3PXP","algo":"SHA1","digits":6,"period":30}}]}} diff --git a/spike/settings/test-strings/c-1-percent.txt b/spike/settings/test-strings/c-1-percent.txt new file mode 100644 index 0000000..b41a582 --- /dev/null +++ b/spike/settings/test-strings/c-1-percent.txt @@ -0,0 +1,5 @@ +# Author: cirakg & claude ai +# Summary: Settings spike test string: C1: percent. +# Copy ONLY the last line (the test string) into a settings field. + +C1 % 100% END diff --git a/spike/settings/test-strings/c-2-angle.txt b/spike/settings/test-strings/c-2-angle.txt new file mode 100644 index 0000000..3b55be6 --- /dev/null +++ b/spike/settings/test-strings/c-2-angle.txt @@ -0,0 +1,5 @@ +# Author: cirakg & claude ai +# Summary: Settings spike test string: C2: angle brackets. +# Copy ONLY the last line (the test string) into a settings field. + +C2 < > <b> END diff --git a/spike/settings/test-strings/c-3-backslash.txt b/spike/settings/test-strings/c-3-backslash.txt new file mode 100644 index 0000000..d1a2c06 --- /dev/null +++ b/spike/settings/test-strings/c-3-backslash.txt @@ -0,0 +1,5 @@ +# Author: cirakg & claude ai +# Summary: Settings spike test string: C3: backslash. +# Copy ONLY the last line (the test string) into a settings field. + +C3 \ a\/b END diff --git a/spike/settings/test-strings/c-4-quote.txt b/spike/settings/test-strings/c-4-quote.txt new file mode 100644 index 0000000..71c98df --- /dev/null +++ b/spike/settings/test-strings/c-4-quote.txt @@ -0,0 +1,5 @@ +# Author: cirakg & claude ai +# Summary: Settings spike test string: C4: double quote. +# Copy ONLY the last line (the test string) into a settings field. + +C4 " "x" END diff --git a/spike/settings/test-strings/c-5-braces.txt b/spike/settings/test-strings/c-5-braces.txt new file mode 100644 index 0000000..e529fe8 --- /dev/null +++ b/spike/settings/test-strings/c-5-braces.txt @@ -0,0 +1,5 @@ +# Author: cirakg & claude ai +# Summary: Settings spike test string: C5: braces. +# Copy ONLY the last line (the test string) into a settings field. + +C5 { } {x} END diff --git a/spike/settings/test-strings/c-6-latin.txt b/spike/settings/test-strings/c-6-latin.txt new file mode 100644 index 0000000..d05e7bf --- /dev/null +++ b/spike/settings/test-strings/c-6-latin.txt @@ -0,0 +1,5 @@ +# Author: cirakg & claude ai +# Summary: Settings spike test string: C6: accented letters and euro sign. +# Copy ONLY the last line (the test string) into a settings field. + +C6 äöü ß € END diff --git a/spike/settings/test-strings/c-7-emoji.txt b/spike/settings/test-strings/c-7-emoji.txt new file mode 100644 index 0000000..ea11b5b --- /dev/null +++ b/spike/settings/test-strings/c-7-emoji.txt @@ -0,0 +1,5 @@ +# Author: cirakg & claude ai +# Summary: Settings spike test string: C7: emoji. +# Copy ONLY the last line (the test string) into a settings field. + +C7 😀 END diff --git a/spike/settings/test-strings/c-8-json.txt b/spike/settings/test-strings/c-8-json.txt new file mode 100644 index 0000000..b854a91 --- /dev/null +++ b/spike/settings/test-strings/c-8-json.txt @@ -0,0 +1,5 @@ +# Author: cirakg & claude ai +# Summary: Settings spike test string: C8: JSON fragment. +# Copy ONLY the last line (the test string) into a settings field. + +C8 {"name":"Fake","n":1} END diff --git a/spike/settings/test-strings/index.html b/spike/settings/test-strings/index.html index d330b52..243cc6b 100644 --- a/spike/settings/test-strings/index.html +++ b/spike/settings/test-strings/index.html @@ -18,6 +18,15 @@ button{font-size:1.1em;padding:6px 16px;margin:4px 0 16px}</style></head> <section><h2>4000 characters</h2><textarea id="len-4000" readonly rows="3">N=4000|abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqP0050rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijP0100klmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcP0150defghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvP0200wxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnoP0250pqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghP0300ijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzaP0350bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstP0400uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmP0450nopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefP0500ghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyP0550zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrP0600stuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkP0650lmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdP0700efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwP0750xyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopP0800qrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiP0850jklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabP0900cdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuP0950vwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnP1000opqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgP1050hijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzP1100abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrsP1150tuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklP1200mnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdeP1250fghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxP1300yzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqP1350rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijP1400klmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcP1450defghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvP1500wxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnoP1550pqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghP1600ijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzaP1650bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstP1700uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmP1750nopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefP1800ghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyP1850zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrP1900stuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkP1950lmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdP2000efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwP2050xyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopP2100qrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiP2150jklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabP2200cdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuP2250vwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnP2300opqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgP2350hijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzP2400abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrsP2450tuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklP2500mnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdeP2550fghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxP2600yzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqP2650rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijP2700klmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcP2750defghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvP2800wxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnoP2850pqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghP2900ijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzaP2950bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstP3000uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmP3050nopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefP3100ghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyP3150zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrP3200stuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkP3250lmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdP3300efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwP3350xyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopP3400qrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiP3450jklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabP3500cdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuP3550vwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnP3600opqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgP3650hijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzP3700abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrsP3750tuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklP3800mnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdeP3850fghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxP3900yzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqP3950rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgEND</textarea><button onclick="copyText('len-4000')">Copy</button></section> <section><h2>8000 characters</h2><textarea id="len-8000" readonly rows="3">N=8000|abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqP0050rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijP0100klmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcP0150defghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvP0200wxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnoP0250pqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghP0300ijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzaP0350bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstP0400uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmP0450nopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefP0500ghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyP0550zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrP0600stuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkP0650lmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdP0700efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwP0750xyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopP0800qrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiP0850jklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabP0900cdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuP0950vwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnP1000opqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgP1050hijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzP1100abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrsP1150tuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklP1200mnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdeP1250fghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxP1300yzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqP1350rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijP1400klmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcP1450defghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvP1500wxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnoP1550pqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghP1600ijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzaP1650bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstP1700uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmP1750nopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefP1800ghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyP1850zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrP1900stuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkP1950lmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdP2000efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwP2050xyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopP2100qrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiP2150jklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabP2200cdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuP2250vwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnP2300opqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgP2350hijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzP2400abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrsP2450tuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklP2500mnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdeP2550fghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxP2600yzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqP2650rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijP2700klmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcP2750defghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvP2800wxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnoP2850pqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghP2900ijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzaP2950bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstP3000uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmP3050nopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefP3100ghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyP3150zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrP3200stuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkP3250lmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdP3300efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwP3350xyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopP3400qrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiP3450jklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabP3500cdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuP3550vwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnP3600opqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgP3650hijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzP3700abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrsP3750tuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklP3800mnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdeP3850fghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxP3900yzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqP3950rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijP4000klmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcP4050defghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvP4100wxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnoP4150pqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghP4200ijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzaP4250bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstP4300uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmP4350nopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefP4400ghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyP4450zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrP4500stuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkP4550lmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdP4600efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwP4650xyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopP4700qrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiP4750jklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabP4800cdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuP4850vwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnP4900opqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgP4950hijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzP5000abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrsP5050tuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklP5100mnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdeP5150fghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxP5200yzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqP5250rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijP5300klmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcP5350defghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvP5400wxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnoP5450pqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghP5500ijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzaP5550bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstP5600uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmP5650nopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefP5700ghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyP5750zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrP5800stuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkP5850lmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdP5900efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwP5950xyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopP6000qrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiP6050jklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabP6100cdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuP6150vwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnP6200opqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgP6250hijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzP6300abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrsP6350tuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklP6400mnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdeP6450fghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxP6500yzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqP6550rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijP6600klmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcP6650defghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvP6700wxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnoP6750pqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghP6800ijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzaP6850bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstP6900uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmP6950nopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefP7000ghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyP7050zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrP7100stuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkP7150lmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdP7200efghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwP7250xyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopP7300qrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghiP7350jklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabP7400cdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuP7450vwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnP7500opqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefgP7550hijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzP7600abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrsP7650tuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklP7700mnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdeP7750fghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxP7800yzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqP7850rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijP7900klmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcP7950defghijklmnopqrstuvwxyzabcdefghijklmnopqrsEND</textarea><button onclick="copyText('len-8000')">Copy</button></section> <section><h2>special characters</h2><textarea id="special" readonly rows="3">special: & < > \ " { } % | non-ASCII: äöü ß € 😀 | otpauth://totp/Fake:alice?secret=JBSWY3DPEHPK3PXP&issuer=Fake&digits=6 | {"name":"Fake","path":"a\/b"} END</textarea><button onclick="copyText('special')">Copy</button></section> +<section><h2>C1: percent</h2><textarea id="c-1-percent" readonly rows="3">C1 % 100% END</textarea><button onclick="copyText('c-1-percent')">Copy</button></section> +<section><h2>C2: angle brackets</h2><textarea id="c-2-angle" readonly rows="3">C2 < > <b> END</textarea><button onclick="copyText('c-2-angle')">Copy</button></section> +<section><h2>C3: backslash</h2><textarea id="c-3-backslash" readonly rows="3">C3 \ a\/b END</textarea><button onclick="copyText('c-3-backslash')">Copy</button></section> +<section><h2>C4: double quote</h2><textarea id="c-4-quote" readonly rows="3">C4 " "x" END</textarea><button onclick="copyText('c-4-quote')">Copy</button></section> +<section><h2>C5: braces</h2><textarea id="c-5-braces" readonly rows="3">C5 { } {x} END</textarea><button onclick="copyText('c-5-braces')">Copy</button></section> +<section><h2>C6: accented letters and euro sign</h2><textarea id="c-6-latin" readonly rows="3">C6 äöü ß € END</textarea><button onclick="copyText('c-6-latin')">Copy</button></section> +<section><h2>C7: emoji</h2><textarea id="c-7-emoji" readonly rows="3">C7 😀 END</textarea><button onclick="copyText('c-7-emoji')">Copy</button></section> +<section><h2>C8: JSON fragment</h2><textarea id="c-8-json" readonly rows="3">C8 {"name":"Fake","n":1} END</textarea><button onclick="copyText('c-8-json')">Copy</button></section> +<section><h2>fake unencrypted Aegis export</h2><textarea id="aegis-json" readonly rows="3">{"version":1,"header":{"slots":null,"params":null},"db":{"version":3,"entries":[{"type":"totp","uuid":"00000000-0000-4000-8000-000000000001","name":"alice@example.com","issuer":"TestOne","note":"","icon":null,"info":{"secret":"JBSWY3DPEHPK3PXP","algo":"SHA1","digits":6,"period":30}}]}}</textarea><button onclick="copyText('aegis-json')">Copy</button></section> <script> function copyText(id) { const area = document.getElementById(id); diff --git a/spike/settings/test-strings/make_test_strings.py b/spike/settings/test-strings/make_test_strings.py index 8d43977..9632220 100644 --- a/spike/settings/test-strings/make_test_strings.py +++ b/spike/settings/test-strings/make_test_strings.py @@ -14,6 +14,11 @@ used, so the length tests don't also test character handling. special.txt holds the characters that may be rejected (& < > \\ " { } %), non-ASCII text, a fake otpauth URI and a JSON fragment. +The phone refused to save special.txt (spike run 2026-10-21), so the c-*.txt +strings split it into one character group each, and aegis-json.txt is a +complete fake unencrypted Aegis export: together they show which characters +block saving and whether an Aegis file can be pasted at all. + Usage: python3 make_test_strings.py (writes into its own folder) """ @@ -28,6 +33,23 @@ SPECIAL = ( "otpauth://totp/Fake:alice?secret=JBSWY3DPEHPK3PXP&issuer=Fake&digits=6 | " '{"name":"Fake","path":"a\\/b"} END' ) +# Test C, split: (file name, label, string). Each ends with " END". +SPLIT = ( + ("c-1-percent", "C1: percent", "C1 % 100% END"), + ("c-2-angle", "C2: angle brackets", "C2 < > <b> END"), + ("c-3-backslash", "C3: backslash", "C3 \\ a\\/b END"), + ("c-4-quote", "C4: double quote", 'C4 " "x" END'), + ("c-5-braces", "C5: braces", "C5 { } {x} END"), + ("c-6-latin", "C6: accented letters and euro sign", "C6 äöü ß € END"), + ("c-7-emoji", "C7: emoji", "C7 😀 END"), + ("c-8-json", "C8: JSON fragment", 'C8 {"name":"Fake","n":1} END'), +) +AEGIS_JSON = ( + '{"version":1,"header":{"slots":null,"params":null},"db":{"version":3,"entries":[' + '{"type":"totp","uuid":"00000000-0000-4000-8000-000000000001","name":"alice@example.com",' + '"issuer":"TestOne","note":"","icon":null,"info":{"secret":"JBSWY3DPEHPK3PXP",' + '"algo":"SHA1","digits":6,"period":30}}]}}' +) HEADER = ( "# Author: cirakg & claude ai\n# Summary: {summary}\n" "# Copy ONLY the last line (the test string) into a settings field.\n\n" @@ -55,6 +77,8 @@ def main() -> None: here = Path(__file__).resolve().parent entries = [(f"len-{n:04d}", f"{n} characters", marker_string(n)) for n in LENGTHS] entries.append(("special", "special characters", SPECIAL)) + entries.extend(SPLIT) + entries.append(("aegis-json", "fake unencrypted Aegis export", AEGIS_JSON)) for name, label, value in entries: (here / f"{name}.txt").write_text(HEADER.format(summary=f"Settings spike test string: {label}.") + value + "\n") cards = "\n".join( |
