File: url64_spec.lua

package info (click to toggle)
lua-basexx 0.3-2.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, trixie
  • size: 132 kB
  • sloc: makefile: 6
file content (58 lines) | stat: -rw-r--r-- 2,742 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
basexx = require( "basexx" )

describe( "should handle base64 strings", function()
   
   local longtxt = "Man is distinguished, not only by his reason, but by "..
                   "this singular passion from other animals, which is a "..
                   "lust of the mind, that by a perseverance of delight in "..
                   "the continued and indefatigable generation of knowledge, "..
                   "exceeds the short vehemence of any carnal pleasure."

   local long64 = "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb2"..
                  "4sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBh"..
                  "bmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYn"..
                  "kgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVk"..
                  "IGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLC"..
                  "BleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBw"..
                  "bGVhc3VyZS4"

   it( "should convert data to a base64 string", function()
      -- http://en.wikipedia.org/wiki/Base64#URL_applications
      assert.is.same( 'TWFu', basexx.to_url64( 'Man') )
      assert.is.same( 'Man', basexx.from_url64( 'TWFu') )

      assert.is.same( 'bGVhc3VyZS4', basexx.to_url64( 'leasure.') )
      assert.is.same( 'leasure.', basexx.from_url64( 'bGVhc3VyZS4') )

      assert.is.same( 'cGxlYXN1cmUu', basexx.to_url64( 'pleasure.') )
      assert.is.same( 'pleasure.', basexx.from_url64( 'cGxlYXN1cmUu') )

      assert.is.same( 'ZWFzdXJlLg', basexx.to_url64( 'easure.') )
      assert.is.same( 'easure.', basexx.from_url64( 'ZWFzdXJlLg') )

      assert.is.same( 'c3VyZS4', basexx.to_url64( 'sure.') )
      assert.is.same( 'sure.', basexx.from_url64( 'c3VyZS4') )

      assert.is.same( long64, basexx.to_url64( longtxt ) )
      assert.is.same( longtxt, basexx.from_url64( long64 ) )
   end)

   local msgtxt = '{"msg_en":"Hello","msg_jp":"こんにちは","msg_cn":"你好"'..
                  ',"msg_kr":"안녕하세요","msg_ru":"Здравствуйте!"'..
                  ',"msg_de":"Grüß Gott"}'

   local msg64 = 'eyJtc2dfZW4iOiJIZWxsbyIsIm1zZ19qcCI6IuOBk-OCk-OBq-OBoeOBryI'..
                 'sIm1zZ19jbiI6IuS9oOWlvSIsIm1zZ19rciI6IuyViOuFle2VmOyEuOyalC'..
                 'IsIm1zZ19ydSI6ItCX0LTRgNCw0LLRgdGC0LLRg9C50YLQtSEiLCJtc2dfZ'..
                 'GUiOiJHcsO8w58gR290dCJ9'

   it( "should work with the msg example", function()
      assert.is.same( msg64, basexx.to_url64( msgtxt ) )
      assert.is.same( msgtxt, basexx.from_url64( msg64 ) )
   end)

   it( "should allow to ignore characters in a url64 string", function()
      assert.is.same( "Man", basexx.from_url64( "TW-Fu\n", "-\n" ) )
   end)

end)