summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortailor <cygnus@janrain.com>2006-08-18 21:08:17 +0000
committertailor <cygnus@janrain.com>2006-08-18 21:08:17 +0000
commit0ca58555b2338cf12590b6e3d88cb66dd6202f9f (patch)
treed813f170395bc45d06565dc0491b062fb1ee7a2d
parent5db0ca07ba2c5cb958dff2c21a0996319ad4e54f (diff)
downloadphp-openid-0ca58555b2338cf12590b6e3d88cb66dd6202f9f.zip
php-openid-0ca58555b2338cf12590b6e3d88cb66dd6202f9f.tar.gz
php-openid-0ca58555b2338cf12590b6e3d88cb66dd6202f9f.tar.bz2
[project @ More XRDS tests]
-rw-r--r--Services/Yadis/XRI.php5
-rw-r--r--Tests/Services/Yadis/XRDS.php4
-rw-r--r--Tests/Services/Yadis/data/prefixsometimes.xrds34
-rw-r--r--Tests/Services/Yadis/data/sometimesprefix.xrds34
4 files changed, 77 insertions, 0 deletions
diff --git a/Services/Yadis/XRI.php b/Services/Yadis/XRI.php
index 6783fc0..6e58a03 100644
--- a/Services/Yadis/XRI.php
+++ b/Services/Yadis/XRI.php
@@ -136,6 +136,11 @@ function Services_Yadis_rootAuthority($xri)
// Return the root authority for an XRI.
$root = null;
+
+ if (_startswith($xri, 'xri://')) {
+ $xri = substr($xri, 6);
+ }
+
$authority = explode('/', $xri, 2);
$authority = $authority[0];
if ($authority[0] == '(') {
diff --git a/Tests/Services/Yadis/XRDS.php b/Tests/Services/Yadis/XRDS.php
index 44d34ab..f0bf90f 100644
--- a/Tests/Services/Yadis/XRDS.php
+++ b/Tests/Services/Yadis/XRDS.php
@@ -86,6 +86,10 @@ class Tests_Services_Yadis_XRDS extends PHPUnit_TestCase {
"@!5BAD.2AA.3C72.AF46!0000.0000.3B9A.CA01"),
array("@ootao*test1", "delegated-20060809-r2.xrds",
"@!5BAD.2AA.3C72.AF46!0000.0000.3B9A.CA01"),
+ array("@ootao*test1", "sometimesprefix.xrds",
+ "@!5BAD.2AA.3C72.AF46!0000.0000.3B9A.CA01"),
+ array("@ootao*test1", "prefixsometimes.xrds",
+ "@!5BAD.2AA.3C72.AF46!0000.0000.3B9A.CA01"),
array("=keturn*isDrummond", "spoof1.xrds", null),
array("=keturn*isDrummond", "spoof2.xrds", null),
array("@keturn*is*drummond", "spoof3.xrds", null),
diff --git a/Tests/Services/Yadis/data/prefixsometimes.xrds b/Tests/Services/Yadis/data/prefixsometimes.xrds
new file mode 100644
index 0000000..5522a6e
--- /dev/null
+++ b/Tests/Services/Yadis/data/prefixsometimes.xrds
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XRDS ref="xri://@ootao*test1" xmlns="xri://$xrds">
+ <XRD xmlns="xri://$xrd*($v*2.0)">
+ <Query>*ootao</Query>
+ <Status code="100"/>
+ <Expires>2006-08-09T22:07:13.000Z</Expires>
+ <ProviderID>xri://@</ProviderID>
+ <LocalID priority="10">!5BAD.2AA.3C72.AF46</LocalID>
+ <CanonicalID priority="10">@!5BAD.2AA.3C72.AF46</CanonicalID>
+ <Service priority="10">
+ <Type>xri://$res*auth*($v*2.0)</Type>
+ <ProviderID>xri://@!5BAD.2AA.3C72.AF46</ProviderID>
+ <MediaType>application/xrds+xml;trust=none</MediaType>
+ <URI priority="10">http://resolve.ezibroker.net/resolve/@ootao/</URI>
+ </Service>
+ <Service priority="10">
+ <Type select="true">http://openid.net/signon/1.0</Type>
+ <ProviderID/>
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
+ </Service>
+ </XRD>
+ <XRD xmlns="xri://$xrd*($v*2.0)">
+ <Query>*test1</Query>
+ <Status code="100">SUCCESS</Status>
+ <ProviderID>xri://@!5BAD.2AA.3C72.AF46</ProviderID>
+ <LocalID>!0000.0000.3B9A.CA01</LocalID>
+ <CanonicalID>xri://@!5BAD.2AA.3C72.AF46!0000.0000.3B9A.CA01</CanonicalID>
+ <Service>
+ <Type select="true">http://openid.net/signon/1.0</Type>
+ <ProviderID/>
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
+ </Service>
+ </XRD>
+</XRDS>
diff --git a/Tests/Services/Yadis/data/sometimesprefix.xrds b/Tests/Services/Yadis/data/sometimesprefix.xrds
new file mode 100644
index 0000000..eff7555
--- /dev/null
+++ b/Tests/Services/Yadis/data/sometimesprefix.xrds
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XRDS ref="xri://@ootao*test1" xmlns="xri://$xrds">
+ <XRD xmlns="xri://$xrd*($v*2.0)">
+ <Query>*ootao</Query>
+ <Status code="100"/>
+ <Expires>2006-08-09T22:07:13.000Z</Expires>
+ <ProviderID>xri://@</ProviderID>
+ <LocalID priority="10">!5BAD.2AA.3C72.AF46</LocalID>
+ <CanonicalID priority="10">xri://@!5BAD.2AA.3C72.AF46</CanonicalID>
+ <Service priority="10">
+ <Type>xri://$res*auth*($v*2.0)</Type>
+ <ProviderID>xri://@!5BAD.2AA.3C72.AF46</ProviderID>
+ <MediaType>application/xrds+xml;trust=none</MediaType>
+ <URI priority="10">http://resolve.ezibroker.net/resolve/@ootao/</URI>
+ </Service>
+ <Service priority="10">
+ <Type select="true">http://openid.net/signon/1.0</Type>
+ <ProviderID/>
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
+ </Service>
+ </XRD>
+ <XRD xmlns="xri://$xrd*($v*2.0)">
+ <Query>*test1</Query>
+ <Status code="100">SUCCESS</Status>
+ <ProviderID>xri://@!5BAD.2AA.3C72.AF46</ProviderID>
+ <LocalID>!0000.0000.3B9A.CA01</LocalID>
+ <CanonicalID>@!5BAD.2AA.3C72.AF46!0000.0000.3B9A.CA01</CanonicalID>
+ <Service>
+ <Type select="true">http://openid.net/signon/1.0</Type>
+ <ProviderID/>
+ <URI append="qxri" priority="1">https://linksafe.ezibroker.net/server/</URI>
+ </Service>
+ </XRD>
+</XRDS>