author | Matthew Wild <mwild1@gmail.com> |
Wed, 24 Apr 2024 11:45:37 +0100 | |
changeset 13487 | 7b070909bd15 |
parent 8376 | af7b41a0ec9e |
permissions | -rw-r--r-- |
8239
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 |
|
8370
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
5 |
describe("util.encodings", function () |
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
6 |
describe("#encode()", function() |
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
7 |
it("should work", function () |
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
8 |
assert.is.equal(encodings.base64.encode(""), ""); |
8374
09a1ce618ad0
spec/util.encodings: Fix syntax
Kim Alvefur <zash@zash.se>
parents:
8373
diff
changeset
|
9 |
assert.is.equal(encodings.base64.encode('coucou'), "Y291Y291"); |
8370
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
10 |
assert.is.equal(encodings.base64.encode("\0\0\0"), "AAAA"); |
8375
872efae6e222
spec/util.encodings: Test an UTF-8 sequence
Kim Alvefur <zash@zash.se>
parents:
8374
diff
changeset
|
11 |
assert.is.equal(encodings.base64.encode("\255\255\255"), "////"); |
8370
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
12 |
end); |
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
13 |
end); |
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
14 |
describe("#decode()", function() |
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
15 |
it("should work", function () |
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
16 |
assert.is.equal(encodings.base64.decode(""), ""); |
8376
af7b41a0ec9e
spec/util.encodings: Test a lonly padding (can appear like this in SASL)
Kim Alvefur <zash@zash.se>
parents:
8375
diff
changeset
|
17 |
assert.is.equal(encodings.base64.decode("="), ""); |
8374
09a1ce618ad0
spec/util.encodings: Fix syntax
Kim Alvefur <zash@zash.se>
parents:
8373
diff
changeset
|
18 |
assert.is.equal(encodings.base64.decode('Y291Y291'), "coucou"); |
8370
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
19 |
assert.is.equal(encodings.base64.decode("AAAA"), "\0\0\0"); |
8375
872efae6e222
spec/util.encodings: Test an UTF-8 sequence
Kim Alvefur <zash@zash.se>
parents:
8374
diff
changeset
|
20 |
assert.is.equal(encodings.base64.decode("////"), "\255\255\255"); |
8370
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
21 |
end); |
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
22 |
end); |
60eb22fd21b8
spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents:
8239
diff
changeset
|
23 |
end); |
8239
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); |