summaryrefslogtreecommitdiffstats
path: root/includes/google-api-php-client-master/tests/general/URITemplateTest.php
diff options
context:
space:
mode:
authorSnap <snapwilliam@gmail.com>2015-04-16 14:51:26 -0700
committerSnap <snapwilliam@gmail.com>2015-04-16 14:51:26 -0700
commit5c7f2f17f9c471d306955df457c7cab4e5c6ed3b (patch)
tree0fe6d049f1af552af6a74d264a3f571cfdb1ee7c /includes/google-api-php-client-master/tests/general/URITemplateTest.php
parentd0b9b771a876922afdf00b2c55d5e1388a4ea2a3 (diff)
downloadpathery-5c7f2f17f9c471d306955df457c7cab4e5c6ed3b.tar.xz
Google's OpenID Connect method
$google_client_id & $google_client_secret must be added to db.inc.php!
Diffstat (limited to 'includes/google-api-php-client-master/tests/general/URITemplateTest.php')
-rw-r--r--includes/google-api-php-client-master/tests/general/URITemplateTest.php296
1 files changed, 296 insertions, 0 deletions
diff --git a/includes/google-api-php-client-master/tests/general/URITemplateTest.php b/includes/google-api-php-client-master/tests/general/URITemplateTest.php
new file mode 100644
index 0000000..a525f12
--- /dev/null
+++ b/includes/google-api-php-client-master/tests/general/URITemplateTest.php
@@ -0,0 +1,296 @@
+<?php
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+class URITemplateTest extends BaseTest
+{
+ public function testLevelOne()
+ {
+ $var = "value";
+ $hello = "Hello World!";
+
+ $urit = new Google_Utils_URITemplate();
+ $this->assertEquals(
+ "value",
+ $urit->parse("{var}", array("var" => $var))
+ );
+ $this->assertEquals(
+ "Hello%20World%21",
+ $urit->parse("{hello}", array("hello" => $hello))
+ );
+ }
+
+ public function testLevelTwo()
+ {
+ $var = "value";
+ $hello = "Hello World!";
+ $path = "/foo/bar";
+
+ $urit = new Google_Utils_URITemplate();
+ $this->assertEquals(
+ "value",
+ $urit->parse("{+var}", array("var" => $var))
+ );
+ $this->assertEquals(
+ "Hello%20World!",
+ $urit->parse("{+hello}", array("hello" => $hello))
+ );
+ $this->assertEquals(
+ "/foo/bar/here",
+ $urit->parse("{+path}/here", array("path" => $path))
+ );
+ $this->assertEquals(
+ "here?ref=/foo/bar",
+ $urit->parse("here?ref={+path}", array("path" => $path))
+ );
+ $this->assertEquals(
+ "X#value",
+ $urit->parse("X{#var}", array("var" => $var))
+ );
+ $this->assertEquals(
+ "X#Hello%20World!",
+ $urit->parse("X{#hello}", array("hello" => $hello))
+ );
+ }
+
+ public function testLevelThree()
+ {
+ $var = "value";
+ $hello = "Hello World!";
+ $empty = '';
+ $path = "/foo/bar";
+ $x = "1024";
+ $y = "768";
+
+ $urit = new Google_Utils_URITemplate();
+ $this->assertEquals(
+ "map?1024,768",
+ $urit->parse("map?{x,y}", array("x" => $x, "y" => $y))
+ );
+ $this->assertEquals(
+ "1024,Hello%20World%21,768",
+ $urit->parse("{x,hello,y}", array("x" => $x, "y" => $y, "hello" => $hello))
+ );
+
+ $this->assertEquals(
+ "1024,Hello%20World!,768",
+ $urit->parse("{+x,hello,y}", array("x" => $x, "y" => $y, "hello" => $hello))
+ );
+ $this->assertEquals(
+ "/foo/bar,1024/here",
+ $urit->parse("{+path,x}/here", array("x" => $x, "path" => $path))
+ );
+
+ $this->assertEquals(
+ "#1024,Hello%20World!,768",
+ $urit->parse("{#x,hello,y}", array("x" => $x, "y" => $y, "hello" => $hello))
+ );
+ $this->assertEquals(
+ "#/foo/bar,1024/here",
+ $urit->parse("{#path,x}/here", array("x" => $x, "path" => $path))
+ );
+
+ $this->assertEquals(
+ "X.value",
+ $urit->parse("X{.var}", array("var" => $var))
+ );
+ $this->assertEquals(
+ "X.1024.768",
+ $urit->parse("X{.x,y}", array("x" => $x, "y" => $y))
+ );
+
+ $this->assertEquals(
+ "X.value",
+ $urit->parse("X{.var}", array("var" => $var))
+ );
+ $this->assertEquals(
+ "X.1024.768",
+ $urit->parse("X{.x,y}", array("x" => $x, "y" => $y))
+ );
+
+ $this->assertEquals(
+ "/value",
+ $urit->parse("{/var}", array("var" => $var))
+ );
+ $this->assertEquals(
+ "/value/1024/here",
+ $urit->parse("{/var,x}/here", array("x" => $x, "var" => $var))
+ );
+
+ $this->assertEquals(
+ ";x=1024;y=768",
+ $urit->parse("{;x,y}", array("x" => $x, "y" => $y))
+ );
+ $this->assertEquals(
+ ";x=1024;y=768;empty",
+ $urit->parse("{;x,y,empty}", array("x" => $x, "y" => $y, "empty" => $empty))
+ );
+
+ $this->assertEquals(
+ "?x=1024&y=768",
+ $urit->parse("{?x,y}", array("x" => $x, "y" => $y))
+ );
+ $this->assertEquals(
+ "?x=1024&y=768&empty=",
+ $urit->parse("{?x,y,empty}", array("x" => $x, "y" => $y, "empty" => $empty))
+ );
+
+ $this->assertEquals(
+ "?fixed=yes&x=1024",
+ $urit->parse("?fixed=yes{&x}", array("x" => $x, "y" => $y))
+ );
+ $this->assertEquals(
+ "&x=1024&y=768&empty=",
+ $urit->parse("{&x,y,empty}", array("x" => $x, "y" => $y, "empty" => $empty))
+ );
+ }
+
+ public function testLevelFour()
+ {
+ $values = array(
+ 'var' => "value",
+ 'hello' => "Hello World!",
+ 'path' => "/foo/bar",
+ 'list' => array("red", "green", "blue"),
+ 'keys' => array("semi" => ";", "dot" => ".", "comma" => ","),
+ );
+
+ $tests = array(
+ "{var:3}" => "val",
+ "{var:30}" => "value",
+ "{list}" => "red,green,blue",
+ "{list*}" => "red,green,blue",
+ "{keys}" => "semi,%3B,dot,.,comma,%2C",
+ "{keys*}" => "semi=%3B,dot=.,comma=%2C",
+ "{+path:6}/here" => "/foo/b/here",
+ "{+list}" => "red,green,blue",
+ "{+list*}" => "red,green,blue",
+ "{+keys}" => "semi,;,dot,.,comma,,",
+ "{+keys*}" => "semi=;,dot=.,comma=,",
+ "{#path:6}/here" => "#/foo/b/here",
+ "{#list}" => "#red,green,blue",
+ "{#list*}" => "#red,green,blue",
+ "{#keys}" => "#semi,;,dot,.,comma,,",
+ "{#keys*}" => "#semi=;,dot=.,comma=,",
+ "X{.var:3}" => "X.val",
+ "X{.list}" => "X.red,green,blue",
+ "X{.list*}" => "X.red.green.blue",
+ "X{.keys}" => "X.semi,%3B,dot,.,comma,%2C",
+ "X{.keys*}" => "X.semi=%3B.dot=..comma=%2C",
+ "{/var:1,var}" => "/v/value",
+ "{/list}" => "/red,green,blue",
+ "{/list*}" => "/red/green/blue",
+ "{/list*,path:4}" => "/red/green/blue/%2Ffoo",
+ "{/keys}" => "/semi,%3B,dot,.,comma,%2C",
+ "{/keys*}" => "/semi=%3B/dot=./comma=%2C",
+ "{;hello:5}" => ";hello=Hello",
+ "{;list}" => ";list=red,green,blue",
+ "{;list*}" => ";list=red;list=green;list=blue",
+ "{;keys}" => ";keys=semi,%3B,dot,.,comma,%2C",
+ "{;keys*}" => ";semi=%3B;dot=.;comma=%2C",
+ "{?var:3}" => "?var=val",
+ "{?list}" => "?list=red,green,blue",
+ "{?list*}" => "?list=red&list=green&list=blue",
+ "{?keys}" => "?keys=semi,%3B,dot,.,comma,%2C",
+ "{?keys*}" => "?semi=%3B&dot=.&comma=%2C",
+ "{&var:3}" => "&var=val",
+ "{&list}" => "&list=red,green,blue",
+ "{&list*}" => "&list=red&list=green&list=blue",
+ "{&keys}" => "&keys=semi,%3B,dot,.,comma,%2C",
+ "{&keys*}" => "&semi=%3B&dot=.&comma=%2C",
+ "find{?list*}" => "find?list=red&list=green&list=blue",
+ "www{.list*}" => "www.red.green.blue"
+
+ );
+
+ $urit = new Google_Utils_URITemplate();
+
+ foreach ($tests as $input => $output) {
+ $this->assertEquals($output, $urit->parse($input, $values), $input . " failed");
+ }
+ }
+
+ public function testMultipleAnnotations()
+ {
+ $var = "value";
+ $hello = "Hello World!";
+ $urit = new Google_Utils_URITemplate();
+ $this->assertEquals(
+ "http://www.google.com/Hello%20World!?var=value",
+ $urit->parse(
+ "http://www.google.com/{+hello}{?var}",
+ array("var" => $var, "hello" => $hello)
+ )
+ );
+ $params = array(
+ "playerId" => "me",
+ "leaderboardId" => "CgkIhcG1jYEbEAIQAw",
+ "timeSpan" => "ALL_TIME",
+ "other" => "irrelevant"
+ );
+ $this->assertEquals(
+ "players/me/leaderboards/CgkIhcG1jYEbEAIQAw/scores/ALL_TIME",
+ $urit->parse(
+ "players/{playerId}/leaderboards/{leaderboardId}/scores/{timeSpan}",
+ $params
+ )
+ );
+ }
+
+ /**
+ * This test test against the JSON files defined in
+ * https://github.com/uri-templates/uritemplate-test
+ *
+ * We don't ship these tests with it, so they'll just silently
+ * skip unless provided - this is mainly for use when
+ * making specific URI template changes and wanting
+ * to do a full regression check.
+ */
+ public function testAgainstStandardTests()
+ {
+ $location = "../../uritemplate-test/*.json";
+
+ $urit = new Google_Utils_URITemplate();
+ foreach (glob($location) as $file) {
+ $test = json_decode(file_get_contents($file), true);
+ foreach ($test as $title => $testsets) {
+ foreach ($testsets['testcases'] as $cases) {
+ $input = $cases[0];
+ $output = $cases[1];
+ if ($output == false) {
+ continue; // skipping negative tests for now
+ } else if (is_array($output)) {
+ $response = $urit->parse($input, $testsets['variables']);
+ $this->assertContains(
+ $response,
+ $output,
+ $input . " failed from " . $title
+ );
+ } else {
+ $this->assertEquals(
+ $output,
+ $urit->parse($input, $testsets['variables']),
+ $input . " failed."
+ );
+ }
+ }
+ }
+ }
+ }
+}