Annotate

spec/util_encodings_spec.lua @ 8451:770f79a9635c

util.crand: Return early if a zero bytes are requested
author Kim Alvefur <zash@zash.se>
date Sun, 03 Dec 2017 15:42:55 +0100
parent 8373:af7b41a0ec9e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
1
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
2 local encodings = require "util.encodings";
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
3 local utf8 = assert(encodings.utf8, "no encodings.utf8 module");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
4
8367
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
5 describe("util.encodings", function ()
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
6 describe("#encode()", function()
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
7 it("should work", function ()
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
8 assert.is.equal(encodings.base64.encode(""), "");
8371
09a1ce618ad0 spec/util.encodings: Fix syntax
Kim Alvefur <zash@zash.se>
parents: 8370
diff changeset
9 assert.is.equal(encodings.base64.encode('coucou'), "Y291Y291");
8367
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
10 assert.is.equal(encodings.base64.encode("\0\0\0"), "AAAA");
8372
872efae6e222 spec/util.encodings: Test an UTF-8 sequence
Kim Alvefur <zash@zash.se>
parents: 8371
diff changeset
11 assert.is.equal(encodings.base64.encode("\255\255\255"), "////");
8367
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
12 end);
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
13 end);
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
14 describe("#decode()", function()
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
15 it("should work", function ()
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
16 assert.is.equal(encodings.base64.decode(""), "");
8373
af7b41a0ec9e spec/util.encodings: Test a lonly padding (can appear like this in SASL)
Kim Alvefur <zash@zash.se>
parents: 8372
diff changeset
17 assert.is.equal(encodings.base64.decode("="), "");
8371
09a1ce618ad0 spec/util.encodings: Fix syntax
Kim Alvefur <zash@zash.se>
parents: 8370
diff changeset
18 assert.is.equal(encodings.base64.decode('Y291Y291'), "coucou");
8367
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
19 assert.is.equal(encodings.base64.decode("AAAA"), "\0\0\0");
8372
872efae6e222 spec/util.encodings: Test an UTF-8 sequence
Kim Alvefur <zash@zash.se>
parents: 8371
diff changeset
20 assert.is.equal(encodings.base64.decode("////"), "\255\255\255");
8367
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
21 end);
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
22 end);
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
23 end);
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
24 describe("util.encodings.utf8", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
25 describe("#valid()", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
26 it("should work", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
27
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
28 for line in io.lines("spec/utf8_sequences.txt") do
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
29 local data = line:match(":%s*([^#]+)"):gsub("%s+", ""):gsub("..", function (c) return string.char(tonumber(c, 16)); end)
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
30 local expect = line:match("(%S+):");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
31
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
32 assert(expect == "pass" or expect == "fail", "unknown expectation: "..line:match("^[^:]+"));
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
33
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
34 local valid = utf8.valid(data);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
35 assert.is.equal(valid, utf8.valid(data.." "));
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
36 assert.is.equal(valid, expect == "pass", line);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
37 end
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
38
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
39 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
40 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
41 end);