예제 #1
0
 /**
  * Test an assertion with lots of options
  */
 public function testMarshallingUnmarshallingChristmas()
 {
     // Create an assertion
     $assertion = new Assertion();
     $assertion->setIssuer('testIssuer');
     $assertion->setValidAudiences(array('audience1', 'audience2'));
     // deprecated function
     $this->assertNull($assertion->getAuthnContext());
     $assertion->setAuthnContext('someAuthnContext');
     $assertion->setAuthnContextDeclRef('/relative/path/to/document.xml');
     $assertion->setID("_123abc");
     $assertion->setIssueInstant(1234567890);
     $assertion->setAuthnInstant(1234567890 - 1);
     $assertion->setNotBefore(1234567890 - 10);
     $assertion->setNotOnOrAfter(1234567890 + 100);
     $assertion->setSessionNotOnOrAfter(1234568890 + 200);
     $assertion->setSessionIndex("idx1");
     $assertion->setAuthenticatingAuthority(array("idp1", "idp2"));
     $assertion->setAttributes(array("name1" => array("value1", "value2"), "name2" => array(2), "name3" => array(null)));
     $assertion->setAttributeNameFormat("urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified");
     $assertionElement = $assertion->toXML()->ownerDocument->saveXML();
     $assertionToVerify = new Assertion(DOMDocumentFactory::fromString($assertionElement)->firstChild);
     $this->assertEquals('/relative/path/to/document.xml', $assertionToVerify->getAuthnContextDeclRef());
     $this->assertEquals('_123abc', $assertionToVerify->getId());
     $this->assertEquals(1234567890, $assertionToVerify->getIssueInstant());
     $this->assertEquals(1234567889, $assertionToVerify->getAuthnInstant());
     $this->assertEquals(1234567880, $assertionToVerify->getNotBefore());
     $this->assertEquals(1234567990, $assertionToVerify->getNotOnOrAfter());
     $this->assertEquals(1234569090, $assertionToVerify->getSessionNotOnOrAfter());
     $this->assertEquals('idx1', $assertionToVerify->getSessionIndex());
     $authauth = $assertionToVerify->getAuthenticatingAuthority();
     $this->assertCount(2, $authauth);
     $this->assertEquals("idp2", $authauth[1]);
     $attributes = $assertionToVerify->getAttributes();
     $this->assertCount(3, $attributes);
     $this->assertCount(2, $attributes['name1']);
     $this->assertEquals("value1", $attributes['name1'][0]);
     $this->assertEquals(2, $attributes['name2'][0]);
     // NOTE: nil attribute is currently parsed as string..
     //$this->assertNull($attributes["name3"][0]);
     $this->assertEquals("urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified", $assertionToVerify->getAttributeNameFormat());
 }