@ -47,6 +47,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowScriptDomain () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedScriptDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowScriptDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowScriptDomainMultiple () {
$expectedPolicy = " default-src 'none';script-src 'self' www.owncloud.com 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedScriptDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowScriptDomain ( 'www.owncloud.org' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowScriptDomainMultipleStacked () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedScriptDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowScriptDomain ( 'www.owncloud.org' ) -> disallowScriptDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyScriptAllowInline () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-inline' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
@ -85,6 +109,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowStyleDomain () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedStyleDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowStyleDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowStyleDomainMultiple () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' www.owncloud.com 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedStyleDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowStyleDomain ( 'www.owncloud.org' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowStyleDomainMultipleStacked () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedStyleDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowStyleDomain ( 'www.owncloud.org' ) -> disallowStyleDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyStyleAllowInline () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
@ -121,6 +169,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowImageDomain () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedImageDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowImageDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowImageDomainMultiple () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self' www.owncloud.com;font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedImageDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowImageDomain ( 'www.owncloud.org' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowImageDomainMultipleStakes () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedImageDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowImageDomain ( 'www.owncloud.org' ) -> disallowImageDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyFontDomainValid () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self' www.owncloud.com;connect-src 'self';media-src 'self' " ;
@ -136,6 +208,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowFontDomain () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedFontDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowFontDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowFontDomainMultiple () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self' www.owncloud.com;connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedFontDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowFontDomain ( 'www.owncloud.org' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowFontDomainMultipleStakes () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedFontDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowFontDomain ( 'www.owncloud.org' ) -> disallowFontDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyConnectDomainValid () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self' www.owncloud.com;media-src 'self' " ;
@ -151,6 +247,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowConnectDomain () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedConnectDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowConnectDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowConnectDomainMultiple () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self' www.owncloud.com;media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedConnectDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowConnectDomain ( 'www.owncloud.org' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowConnectDomainMultipleStakes () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedConnectDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowConnectDomain ( 'www.owncloud.org' ) -> disallowConnectDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyMediaDomainValid () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' www.owncloud.com " ;
@ -166,6 +286,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowMediaDomain () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedMediaDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowMediaDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowMediaDomainMultiple () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' www.owncloud.com " ;
$this -> contentSecurityPolicy -> addAllowedMediaDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowMediaDomain ( 'www.owncloud.org' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowMediaDomainMultipleStakes () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedMediaDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowMediaDomain ( 'www.owncloud.org' ) -> disallowMediaDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyObjectDomainValid () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';object-src www.owncloud.com " ;
@ -181,6 +325,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowObjectDomain () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedObjectDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowObjectDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowObjectDomainMultiple () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';object-src www.owncloud.com " ;
$this -> contentSecurityPolicy -> addAllowedObjectDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowObjectDomain ( 'www.owncloud.org' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowObjectDomainMultipleStakes () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedObjectDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowObjectDomain ( 'www.owncloud.org' ) -> disallowObjectDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetAllowedFrameDomain () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';frame-src www.owncloud.com " ;
@ -196,6 +364,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowFrameDomain () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedFrameDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowFrameDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowFrameDomainMultiple () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';frame-src www.owncloud.com " ;
$this -> contentSecurityPolicy -> addAllowedFrameDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowFrameDomain ( 'www.owncloud.org' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowFrameDomainMultipleStakes () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedFrameDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowFrameDomain ( 'www.owncloud.org' ) -> disallowFrameDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetAllowedChildSrcDomain () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';child-src child.owncloud.com " ;
@ -211,6 +403,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowChildSrcDomain () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedChildSrcDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowChildSrcDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowChildSrcDomainMultiple () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';child-src www.owncloud.com " ;
$this -> contentSecurityPolicy -> addAllowedChildSrcDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowChildSrcDomain ( 'www.owncloud.org' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testGetPolicyDisallowChildSrcDomainMultipleStakes () {
$expectedPolicy = " default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' " ;
$this -> contentSecurityPolicy -> addAllowedChildSrcDomain ( 'www.owncloud.com' );
$this -> contentSecurityPolicy -> disallowChildSrcDomain ( 'www.owncloud.org' ) -> disallowChildSrcDomain ( 'www.owncloud.com' );
$this -> assertSame ( $expectedPolicy , $this -> contentSecurityPolicy -> buildPolicy ());
}
public function testConfigureStacked () {
$expectedPolicy = " default-src 'none';script-src 'self' script.owncloud.org;style-src 'self' style.owncloud.org;img-src 'self' img.owncloud.org;font-src 'self' font.owncloud.org;connect-src 'self' connect.owncloud.org;media-src 'self' media.owncloud.org;object-src objects.owncloud.org;frame-src frame.owncloud.org;child-src child.owncloud.org " ;