Implement #015359: access.php - new MatchOrder=host_uri
[tinyz:tinyz.git] / tests / tests / lib / ezutils / ezsys_test.php
1 <?php
2 /**
3  * File containing the eZSysTest class
4  *
5  * @copyright Copyright (C) 1999-2010 eZ Systems AS. All rights reserved.
6  * @license http://ez.no/licenses/gnu_gpl GNU GPLv2
7  * @package tests
8  */
9
10 class eZSysTest extends ezpTestCase
11 {
12     public function __construct()
13     {
14         parent::__construct();
15         $this->setName( "eZSysTest" );
16     }
17
18     public function testIndexFileRemoveSiteAccessIfDefaultAccessEnabled()
19     {
20         // TEST SETUP --------------------------------------------------------
21         $ini = eZINI::instance();
22
23         $defaultAccess = $ini->variable( 'SiteSettings', 'DefaultAccess' );
24         $this->setSiteAccess( $defaultAccess );
25
26         // Make sure to preserve ini settings in case other tests depend on them
27         $orgRemoveSiteaccess = $ini->variable( 'SiteAccessSettings', 'RemoveSiteAccessIfDefaultAccess' );
28
29         // ENABLE RemoveSiteAccessIfDefaultAccess
30         $ini->setVariable( 'SiteAccessSettings', 'RemoveSiteAccessIfDefaultAccess', 'enabled' );
31         // -------------------------------------------------------------------
32
33
34         // TEST --------------------------------------------------------------
35         $indexFile = eZSys::indexFile();
36         self::assertEquals( "", $indexFile );
37
38         eZSys::addAccessPath( array( 'testing', 'indexFile' ) );
39         $indexFile = eZSys::indexFile();
40         self::assertEquals( "/testing/indexFile", $indexFile );
41         // -------------------------------------------------------------------
42
43
44         // TEST TEAR DOWN ----------------------------------------------------
45         $ini->setVariable( 'SiteAccessSettings', 'RemoveSiteAccessIfDefaultAccess', $orgRemoveSiteaccess );
46         // -------------------------------------------------------------------
47     }
48
49     public function testIndexFileRemoveSiteAccessIfDefaultAccessDisabled()
50     {
51         // TEST SETUP --------------------------------------------------------
52         $ini = eZINI::instance();
53
54         $defaultAccess = $ini->variable( 'SiteSettings', 'DefaultAccess' );
55         $this->setSiteAccess( $defaultAccess );
56
57         // Make sure to preserve ini settings in case other tests depend on them
58         $orgRemoveSiteaccess = $ini->variable( 'SiteAccessSettings', 'RemoveSiteAccessIfDefaultAccess' );
59
60         // DISABLE RemoveSiteAccessIfDefaultAccess
61         $ini->setVariable( 'SiteAccessSettings', 'RemoveSiteAccessIfDefaultAccess', 'disabled' );
62         // -------------------------------------------------------------------
63
64
65         // TEST --------------------------------------------------------------
66         $indexFile = eZSys::indexFile();
67         self::assertEquals( "/$defaultAccess", $indexFile );
68
69         eZSys::addAccessPath( array( 'testing', 'indexFile' ) );
70         $indexFile = eZSys::indexFile();
71         self::assertEquals( "/$defaultAccess/testing/indexFile", $indexFile );
72         // -------------------------------------------------------------------
73
74
75         // TEST TEAR DOWN ----------------------------------------------------
76         $ini->setVariable( 'SiteAccessSettings', 'RemoveSiteAccessIfDefaultAccess', $orgRemoveSiteaccess );
77         // -------------------------------------------------------------------
78     }
79
80     public function testGlobBrace()
81     {
82         $pattern = "kernel/classes/ez{content,url}*.php";
83
84         $files = eZSys::globBrace( $pattern );
85         self::assertGreaterThan( 20, count( $files ), __METHOD__ . " test with GLOB_BRACE" );
86     }
87
88     public function testGlobBraceSupported()
89     {
90         if ( !defined( 'GLOB_BRACE' ) )
91             self::markAsSkipped( "This test can only be run on systems supporting GLOB_BRACE." );
92
93         $pattern = "kernel/classes/ez{content,url}*.php";
94
95         $eZSysGlob = eZSys::globBrace( $pattern );
96         $phpGlob = glob( $pattern, GLOB_BRACE );
97         self::assertEquals( $eZSysGlob, $phpGlob, "Comparing glob() with eZSys::glob() using GLOB_BRACE" );
98
99         $eZSysGlob = eZSys::globBrace( $pattern, GLOB_NOSORT );
100         $phpGlob = glob( $pattern, GLOB_NOSORT | GLOB_BRACE );
101         self::assertEquals( $eZSysGlob, $phpGlob, "Comparing glob() with eZSys::glob() using GLOB_MARK | GLOB_BRACE" );
102     }
103
104
105     /* -----------------------------------------------------------------------
106      * HELPER FUNCTIONS
107      * -----------------------------------------------------------------------
108      */
109      private function setSiteAccess( $accessName )
110      {
111          eZSiteAccess::change( array( 'name' => $accessName,
112                                       'type' => eZSiteAccess::TYPE_URI,
113                                       'uri_part' => array( $accessName ) ) );
114      }
115 }
116
117 ?>