| Theses test are borrowed from https://github.com/uri-templates/uritemplate-test |
| at commit: fdd5d611a849b922c2ff40fc3997fd265dd14c02 |
| URI Template Tests |
| ================== |
| |
| This is a set of tests for implementations of |
| [RFC6570](http://tools.ietf.org/html/rfc6570) - URI Template. It is designed |
| to be reused by any implementation, to improve interoperability and |
| implementation quality. |
| |
| If your project uses Git for version control, you can make uritemplate-tests into a [submodule](http://help.github.com/submodules/). |
| |
| Test Format |
| ----------- |
| |
| Each test file is a [JSON](http://tools.ietf.org/html/RFC6627) document |
| containing an object whose properties are groups of related tests. |
| Alternatively, all tests are available in XML as well, with the XML files |
| being generated by transform-json-tests.xslt which uses json2xml.xslt as a |
| general-purpose JSON-to-XML parsing library. |
| |
| Each group, in turn, is an object with three children: |
| |
| * level - the level of the tests covered, as per the RFC (optional; if absent, |
| assume level 4). |
| * variables - an object representing the variables that are available to the |
| tests in the suite |
| * testcases - a list of testcases, where each case is a two-member list, the |
| first being the template, the second being the result of expanding the |
| template with the provided variables. |
| |
| Note that the result string can be a few different things: |
| |
| * string - if the second member is a string, the result of expansion is |
| expected to match it, character-for-character. |
| * list - if the second member is a list of strings, the result of expansion |
| is expected to match one of them; this allows for templates that can |
| expand into different, equally-acceptable URIs. |
| * false - if the second member is boolean false, expansion is expected to |
| fail (i.e., the template was invalid). |
| |
| For example: |
| |
| { |
| "Level 1 Examples" : |
| { |
| "level": 1, |
| "variables": { |
| "var" : "value", |
| "hello" : "Hello World!" |
| }, |
| "testcases" : [ |
| ["{var}", "value"], |
| ["{hello}", "Hello%20World%21"] |
| ] |
| } |
| } |
| |
| |
| Tests Included |
| -------------- |
| |
| The following test files are included: |
| |
| * spec-examples.json - The complete set of example templates from the RFC |
| * spec-examples-by-section.json - The examples, section by section |
| * extended-tests.json - more complex test cases |
| * negative-tests.json - invalid templates |
| |
| For all these test files, XML versions with the names *.xml can be |
| generated with the transform-json-tests.xslt XSLT stylesheet. The XSLT |
| contains the names of the above test files as a parameter, and can be |
| started with any XML as input (i.e., the XML input is ignored). |
| |
| License |
| ------- |
| |
| Copyright 2011-2012 The Authors |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |