Skip to content

Commit 72d4861

Browse files
committed
test(representation): include URI Fragment example from RFC
1 parent 35a653c commit 72d4861

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

test/representation/uri-fragment-identifier.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,21 @@ describe('URI Fragment Identifier (to/from)', function () {
1818
specify('should return "#" for an empty JSON Pointer', function () {
1919
assert.strictEqual(URIFragmentIdentifier.to(''), '#');
2020
});
21+
22+
specify('should correctly convert JSON Pointer to URI Fragment (RFC 6901)', function () {
23+
assert.strictEqual(URIFragmentIdentifier.to(''), '#');
24+
assert.strictEqual(URIFragmentIdentifier.to('/foo'), '#/foo');
25+
assert.strictEqual(URIFragmentIdentifier.to('/foo/0'), '#/foo/0');
26+
assert.strictEqual(URIFragmentIdentifier.to('/'), '#/');
27+
assert.strictEqual(URIFragmentIdentifier.to('/a~1b'), '#/a~1b');
28+
assert.strictEqual(URIFragmentIdentifier.to('/c%d'), '#/c%25d');
29+
assert.strictEqual(URIFragmentIdentifier.to('/e^f'), '#/e%5Ef');
30+
assert.strictEqual(URIFragmentIdentifier.to('/g|h'), '#/g%7Ch');
31+
assert.strictEqual(URIFragmentIdentifier.to('/i\\j'), '#/i%5Cj');
32+
assert.strictEqual(URIFragmentIdentifier.to('/k"l'), '#/k%22l');
33+
assert.strictEqual(URIFragmentIdentifier.to('/ '), '#/%20');
34+
assert.strictEqual(URIFragmentIdentifier.to('/m~0n'), '#/m~0n');
35+
});
2136
});
2237

2338
context('from()', function () {
@@ -44,5 +59,23 @@ describe('URI Fragment Identifier (to/from)', function () {
4459
specify('should return the original input if decoding fails', function () {
4560
assert.strictEqual(URIFragmentIdentifier.from('%E3%81%'), '%E3%81%'); // Malformed UTF-8 sequence
4661
});
62+
63+
specify(
64+
'should correctly convert between JSON Pointer and URI Fragment (RFC 6901)',
65+
function () {
66+
assert.strictEqual(URIFragmentIdentifier.from('#'), '');
67+
assert.strictEqual(URIFragmentIdentifier.from('#/foo'), '/foo');
68+
assert.strictEqual(URIFragmentIdentifier.from('#/foo/0'), '/foo/0');
69+
assert.strictEqual(URIFragmentIdentifier.from('#/'), '/');
70+
assert.strictEqual(URIFragmentIdentifier.from('#/a~1b'), '/a~1b');
71+
assert.strictEqual(URIFragmentIdentifier.from('#/c%25d'), '/c%d');
72+
assert.strictEqual(URIFragmentIdentifier.from('#/e%5Ef'), '/e^f');
73+
assert.strictEqual(URIFragmentIdentifier.from('#/g%7Ch'), '/g|h');
74+
assert.strictEqual(URIFragmentIdentifier.from('#/i%5Cj'), '/i\\j');
75+
assert.strictEqual(URIFragmentIdentifier.from('#/k%22l'), '/k"l');
76+
assert.strictEqual(URIFragmentIdentifier.from('#/%20'), '/ ');
77+
assert.strictEqual(URIFragmentIdentifier.from('#/m~0n'), '/m~0n');
78+
},
79+
);
4780
});
4881
});

0 commit comments

Comments
 (0)