Skip to content
Tests for URI Template implementations
Find file
Pull request Compare This branch is 45 commits behind uri-templates:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

URI Template Tests

This is a set of tests for implementations of 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.

Test Format

Each test file is a JSON document containing an object whose properties are groups of related tests.

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 template after variable interpolation.

For example:

  "Level 1 Examples" : 
    "level": 1,
    "variables": {
       "var"   : "value",
       "hello" : "Hello World!"
     "testcases" : [
        ["{var}", "value"],
        ["{hello}", "Hello%20World%21"]

Note that if the second member of the testcase is itself a list, then it represents a set of equally valid alternatives.

Tests Included

The following tests are included:

  • spec-examples.json - The complete set of example templates from the RFC
  • spec-examples-by-section - The examples, section by section


Copyright 2011- 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

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.

Something went wrong with that request. Please try again.