mirror of
				https://kkgithub.com/actions/setup-node.git
				synced 2025-11-04 04:31:55 +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.
							 | 
						||
| 
								 | 
							
								
							 |