@@ -36,6 +36,7 @@ subtest 'boolean document' => sub {
36
36
%configs ,
37
37
},
38
38
],
39
+ original_uri => [ str(' ' ) ],
39
40
canonical_uri => [ str(' ' ) ],
40
41
_entities => [ { ' ' => 0 } ],
41
42
),
@@ -87,6 +88,7 @@ subtest 'object document' => sub {
87
88
%configs ,
88
89
},
89
90
],
91
+ original_uri => [ str($_ //' ' ) ],
90
92
canonical_uri => [ str($_ //' ' ) ],
91
93
_entities => [ { ' ' => 0 } ],
92
94
),
@@ -108,6 +110,7 @@ subtest 'object document' => sub {
108
110
%configs ,
109
111
},
110
112
],
113
+ original_uri => [ str(' https://foo.com' ) ],
111
114
canonical_uri => [ str(' https://foo.com' ) ],
112
115
_entities => [ { ' ' => 0 } ],
113
116
),
@@ -128,6 +131,7 @@ subtest 'object document' => sub {
128
131
%configs ,
129
132
},
130
133
],
134
+ original_uri => [ str($_ //' ' ) ],
131
135
canonical_uri => [ str(' https://foo.com' ) ], # note canonical_uri has been overwritten
132
136
_entities => [ { ' ' => 0 } ],
133
137
),
@@ -149,6 +153,7 @@ subtest 'object document' => sub {
149
153
%configs ,
150
154
},
151
155
],
156
+ original_uri => [ str($_ ) ],
152
157
canonical_uri => [ str(' https://bar.com' ) ], # note canonical_uri has been overwritten
153
158
_entities => [ { ' ' => 0 } ],
154
159
),
@@ -188,6 +193,7 @@ subtest 'object document' => sub {
188
193
%configs ,
189
194
},
190
195
],
196
+ original_uri => [ str(' https://foo.com' ) ],
191
197
canonical_uri => [ str(' https://foo.com' ) ],
192
198
_entities => [ { ' ' => 0 } ],
193
199
),
@@ -224,6 +230,7 @@ subtest 'object document' => sub {
224
230
%configs ,
225
231
},
226
232
),
233
+ original_uri => [ str(' https://foo.com' ) ],
227
234
canonical_uri => [ str(' https://bar.com' ) ],
228
235
_entities => [ { map +($_ => 0), ' ' , ' /allOf/0' , ' /allOf/1' } ],
229
236
),
@@ -245,6 +252,7 @@ subtest 'object document' => sub {
245
252
%configs ,
246
253
},
247
254
],
255
+ original_uri => [ str(' https://my-base.com' ) ],
248
256
canonical_uri => [ str(' https://my-base.com/relative' ) ],
249
257
_entities => [ { ' ' => 0 } ],
250
258
),
@@ -275,6 +283,8 @@ subtest 'object document' => sub {
275
283
%configs ,
276
284
},
277
285
),
286
+ original_uri => [ str(' ' ) ],
287
+ canonical_uri => [ str(' ' ) ],
278
288
_entities => [ { map +($_ => 0), ' ' , ' /$defs/foo' } ],
279
289
),
280
290
' relative uri for inner $id' ,
@@ -303,6 +313,8 @@ subtest 'object document' => sub {
303
313
%configs ,
304
314
},
305
315
),
316
+ original_uri => [ str(' ' ) ],
317
+ canonical_uri => [ str(' ' ) ],
306
318
_entities => [ { map +($_ => 0), ' ' , ' /$defs/foo' } ],
307
319
),
308
320
' no root $id; absolute uri with path in subschema resource' ,
@@ -328,6 +340,8 @@ subtest 'object document' => sub {
328
340
},
329
341
},
330
342
],
343
+ original_uri => [ str(' ' ) ],
344
+ canonical_uri => [ str(' ' ) ],
331
345
),
332
346
' no root $id or canonical_uri provided; anchor is indexed at the root' ,
333
347
);
@@ -353,6 +367,8 @@ subtest 'object document' => sub {
353
367
},
354
368
},
355
369
],
370
+ original_uri => [ str(' https://example.com' ) ],
371
+ canonical_uri => [ str(' https://example.com' ) ],
356
372
),
357
373
' canonical_uri provided; empty uri not added as a referenceable uri when an anchor exists' ,
358
374
);
@@ -378,6 +394,8 @@ subtest 'object document' => sub {
378
394
},
379
395
},
380
396
],
397
+ original_uri => [ str(' ' ) ],
398
+ canonical_uri => [ str(' https://my-base.com' ) ],
381
399
),
382
400
' absolute uri provided at root; adjacent anchor has the same canonical uri' ,
383
401
);
@@ -407,6 +425,8 @@ subtest 'object document' => sub {
407
425
},
408
426
},
409
427
],
428
+ original_uri => [ str(' ' ) ],
429
+ canonical_uri => [ str(' https://my-base.com' ) ],
410
430
),
411
431
' absolute uri provided at root; anchor lower down has its own canonical uri' ,
412
432
);
@@ -981,7 +1001,7 @@ subtest 'custom metaschema_uri' => sub {
981
1001
memory_cycle_ok($js , ' no leaks in the evaluator object' );
982
1002
};
983
1003
984
- subtest ' multiple uris used for resolution and identification' => sub {
1004
+ subtest ' multiple uris used for resolution and identification, and original_uri ' => sub {
985
1005
my $js = JSON::Schema::Modern-> new;
986
1006
my $doc = $js -> add_document(
987
1007
' https://example.com/api/' => JSON::Schema::Modern::Document-> new(
@@ -999,6 +1019,7 @@ subtest 'multiple uris used for resolution and identification' => sub {
999
1019
cmp_deeply(
1000
1020
$doc ,
1001
1021
listmethods(
1022
+ original_uri => [ str(' staging/' ) ],
1002
1023
canonical_uri => [ str(' staging/alpha.json' ) ],
1003
1024
resource_index => unordered_pairs(
1004
1025
' staging/alpha.json' => {
0 commit comments