public function testRequirementsBackend()
 {
     $basePath = $this->getCurrentRelativePath();
     $backend = new Requirements_Backend();
     $backend->javascript($basePath . '/a.js');
     $this->assertTrue(count($backend->get_javascript()) == 1, "There should be only 1 file included in required javascript.");
     $this->assertTrue(in_array($basePath . '/a.js', $backend->get_javascript()), "a.js should be included in required javascript.");
     $backend->javascript($basePath . '/b.js');
     $this->assertTrue(count($backend->get_javascript()) == 2, "There should be 2 files included in required javascript.");
     $backend->block($basePath . '/a.js');
     $this->assertTrue(count($backend->get_javascript()) == 1, "There should be only 1 file included in required javascript.");
     $this->assertFalse(in_array($basePath . '/a.js', $backend->get_javascript()), "a.js should not be included in required javascript after it has been blocked.");
     $this->assertTrue(in_array($basePath . '/b.js', $backend->get_javascript()), "b.js should be included in required javascript.");
     $backend->css($basePath . '/a.css');
     $this->assertTrue(count($backend->get_css()) == 1, "There should be only 1 file included in required css.");
     $this->assertArrayHasKey($basePath . '/a.css', $backend->get_css(), "a.css should be in required css.");
     $backend->block($basePath . '/a.css');
     $this->assertTrue(count($backend->get_css()) == 0, "There should be nothing in required css after file has been blocked.");
 }
 function testRequirementsBackend()
 {
     $backend = new Requirements_Backend();
     $backend->javascript(SAPPHIRE_DIR . '/tests/forms/a.js');
     $this->assertTrue(count($backend->get_javascript()) == 1, "There should be only 1 file included in required javascript.");
     $this->assertTrue(in_array(SAPPHIRE_DIR . '/tests/forms/a.js', $backend->get_javascript()), "/test/forms/a.js should be included in required javascript.");
     $backend->javascript(SAPPHIRE_DIR . '/tests/forms/b.js');
     $this->assertTrue(count($backend->get_javascript()) == 2, "There should be 2 files included in required javascript.");
     $backend->block(SAPPHIRE_DIR . '/tests/forms/a.js');
     $this->assertTrue(count($backend->get_javascript()) == 1, "There should be only 1 file included in required javascript.");
     $this->assertFalse(in_array(SAPPHIRE_DIR . '/tests/forms/a.js', $backend->get_javascript()), "/test/forms/a.js should not be included in required javascript after it has been blocked.");
     $this->assertTrue(in_array(SAPPHIRE_DIR . '/tests/forms/b.js', $backend->get_javascript()), "/test/forms/b.js should be included in required javascript.");
     $backend->css(SAPPHIRE_DIR . '/tests/forms/a.css');
     $this->assertTrue(count($backend->get_css()) == 1, "There should be only 1 file included in required css.");
     $this->assertArrayHasKey(SAPPHIRE_DIR . '/tests/forms/a.css', $backend->get_css(), "/tests/forms/a.css should be in required css.");
     $backend->block(SAPPHIRE_DIR . '/tests/forms/a.css');
     $this->assertTrue(count($backend->get_css()) == 0, "There should be nothing in required css after file has been blocked.");
 }
 function testRequirementsBackend()
 {
     $backend = new Requirements_Backend();
     $backend->js('tests/phpunit/data/a.js');
     $this->assertCount(1, $backend->get_js(), "There should be only 1 file included in required javascript.");
     $this->assertContains('tests/phpunit/data/a.js', $backend->get_js(), "/tests/phpunit/data/a.js should be included in required javascript.");
     $backend->js('tests/phpunit/data/b.js');
     $this->assertCount(2, $backend->get_js(), "There should be 2 files included in required javascript.");
     $backend->block('tests/phpunit/data/a.js');
     $this->assertCount(1, $backend->get_js(), "There should be only 1 file included in required javascript.");
     $this->assertNotContains('tests/phpunit/data/a.js', $backend->get_js(), "/tests/phpunit/data/a.js should not be included in required javascript after it has been blocked.");
     $this->assertContains('tests/phpunit/data/b.js', $backend->get_js(), "/tests/phpunit/data/b.js should be included in required javascript.");
     $backend->css('tests/phpunit/data/a.css');
     $this->assertCount(1, $backend->get_css(), "There should be only 1 file included in required css.");
     $this->assertArrayHasKey('a.css', $backend->get_css(), "/tests/phpunit/data/a.css should be in required css.");
     $this->assertContains(array('file' => 'tests/phpunit/data/a.css', 'media' => null), $backend->get_css(), "/tests/phpunit/data/a.css should be in required css.");
     $backend->block('tests/phpunit/data/a.css');
     $this->assertCount(0, $backend->get_css(), "There should be nothing in required css after file has been blocked.");
     // Test unblock_all()
     $backend->unblock_all();
     $this->assertCount(2, $backend->get_js(), "There should be only 2 files included in required css.");
     $this->assertCount(1, $backend->get_css(), "There should be only 1 file included in required javascript.");
     // Testing clear()
     $backend->js('tests/phpunit/data/c.css');
     $backend->clear();
     $this->assertCount(0, $backend->get_css(), "There should be nothing in required css after requirements cleared.");
     $this->assertCount(0, $backend->get_js(), "There should be nothing in required js after requirements cleared.");
     // Testing js block by id
     $backend->js('tests/phpunit/data/a.js');
     $backend->block('a.js');
     $this->assertCount(0, $backend->get_js(), "There should be nothing in required js after file has be blocked.");
     // Testing css block by id
     $backend->css('tests/phpunit/data/a.css');
     $backend->block('a.css');
     $this->assertCount(0, $backend->get_css(), "There should be nothing in required css after file has been blocked.");
     // Testing unblock
     $backend->unblock('a.js');
     $this->assertCount(1, $backend->get_js(), "There should be only 1 file included in required javascript.");
 }