/**
     * Runs the $file (.request file from $this->files) as a PHPUnit test.
     *
     * Steps performed:
     *  - setUp() is called automatically before this function
     *  - skip the test $file if declared. See {@link skip()}
     *  - load data from file, create eZSys instance and run init
     *  - check that misc os / vh variables where as expected
     *  - tearDown() is called automatically after this function
     *
     * @param string $file
     */
    protected function testRunRegression( $file )
    {
        if ( $this->skip( $file ) )
            return;

        $testData = include $file;
        $instance = new eZSys( $testData );
        eZSys::setInstance( $instance );
        eZSys::init();// 'index.php', strpos( $file, 'server/vh/' ) !== false );

        // OS tests
        if ( $testData['PHP_OS'] === 'WINNT' )
        {
            $os = 'Windows';
            $this->assertEquals( "win32", $instance->OSType, "Did not get correct $os 'OSType' value" );
            $this->assertEquals( "windows", $instance->OS, "Did not get correct $os 'OS' value" );
            $this->assertEquals( "win32", $instance->FileSystemType, "Did not get correct $os 'FileSystemType' value" );
            $this->assertEquals( "\\", $instance->FileSeparator, "Did not get correct $os 'FileSeparator' value" );
            $this->assertEquals( "\r\n", $instance->LineSeparator, "Did not get correct $os 'LineSeparator' value" );
            $this->assertEquals( ";", $instance->EnvSeparator, "Did not get correct $os 'EnvSeparator' value" );
            $this->assertEquals( '"', $instance->ShellEscapeCharacter, "Did not get correct $os 'ShellEscapeCharacter' value" );
            $this->assertEquals( '.bak', $instance->BackupFilename, "Did not get correct $os 'BackupFilename' value" );
        }
        else // unix (incl Darwin)
        {
            $os = 'Unix';
            $this->assertEquals( "unix", $instance->OSType, "Did not get correct $os 'OSType' value" );

            if ( $testData['PHP_OS'] === 'Linux' )
                $this->assertEquals( "linux", $instance->OS, "Did not get correct $os 'OS' value" );
            else if (  $testData['PHP_OS'] === 'FreeBSD' )
                $this->assertEquals( "freebsd", $instance->OS, "Did not get correct $os 'OS' value" );
            else if (  $testData['PHP_OS'] === 'Darwin' )
                $this->assertEquals( "darwin", $instance->OS, "Did not get correct $os 'OS' value" );
            else
                $this->assertEquals( false, $instance->OS, "Did not get correct $os 'OS' value" );

            $this->assertEquals( "unix", $instance->FileSystemType, "Did not get correct $os 'FileSystemType' value" );
            $this->assertEquals( "/",    $instance->FileSeparator, "Did not get correct $os 'FileSeparator' value" );
            $this->assertEquals( "\n",   $instance->LineSeparator, "Did not get correct $os 'LineSeparator' value" );
            $this->assertEquals( ":",    $instance->EnvSeparator, "Did not get correct $os 'EnvSeparator' value" );
            $this->assertEquals( "'",    $instance->ShellEscapeCharacter, "Did not get correct $os 'ShellEscapeCharacter' value" );
            $this->assertEquals( '~',    $instance->BackupFilename, "Did not get correct $os 'BackupFilename' value" );
        }

        // Uri test: vh / nvh part
        if ( strpos( $file, 'server/nvh/' ) )
            $expected = '/index.php';
        else
            $expected = '';

        $this->assertEquals( $expected, $instance->IndexFile, "The IndexFile was not expected value" );


        // Uri test: sub path part
        if ( isset( $testData['__out']['WWWDir'] ) )
            $wwwDir = $testData['__out']['WWWDir'];
        elseif ( strpos( $testData['_SERVER']['SCRIPT_NAME'], 'index.php' ) !== false )// .htaccess or nvh
            $wwwDir = rtrim( str_replace( 'index.php', '', $testData['_SERVER']['SCRIPT_NAME'] ), '\/' );
        else
            $wwwDir = '';

        $this->assertEquals( $wwwDir, $instance->WWWDir, "The WWWDir was not expected value" );
        $this->assertEquals( rtrim( str_replace( 'index.php', '', $testData['_SERVER']['SCRIPT_FILENAME'] ), '\/' ) . '/', $instance->SiteDir, "The SiteDir was not expected value" );


        // Uri test: uri part
        if ( isset( $testData['__out']['RequestURI'] ) )
            $expected = $testData['__out']['RequestURI'];
        else if ( strpos( $file, 'vh/utf8' ) )
            $expected = '/News/Blåbær-Øl-med-d\'or-新闻军事社会体育中超';
        elseif ( strpos( $file, 'vh/view' ) )
            $expected = '/content/view/full/44';
        else
            $expected = '';

        $this->assertEquals( $expected, $instance->RequestURI, "The RequestURI was not expected value" );
    }
 public function tearDown()
 {
     // Make sure to restore eZSys instance in case other tests depends on it
     eZSys::setInstance($this->oldSysInstance);
     parent::tearDown();
 }