mirror of
				https://kkgithub.com/actions/setup-node.git
				synced 2025-11-01 03:01:53 +08:00 
			
		
		
		
	
		
			
	
	
		
			91 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			91 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | 
 | ||
|  | 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. | ||
|  | 
 |