public function testAssetPathGeneration() {
$result = Media::asset('scheme://host/subpath/file', 'js');
$expected = 'scheme://host/subpath/file';
$this->assertEqual($expected, $result);
$result = Media::asset('subpath/file', 'js');
$expected = '/js/subpath/file.js';
$this->assertEqual($expected, $result);
$result = Media::asset('this.file.should.not.exist', 'css', array('check' => true));
$this->assertFalse($result);
$result = Media::asset('debug', 'css', array('check' => 'true', 'library' => 'app'));
$expected = '/css/debug.css';
$this->assertEqual($expected, $result);
$result = Media::asset('debug', 'css', array('timestamp' => true));
$this->assertPattern('%^/css/debug\.css\?\d+$%', $result);
$result = Media::asset('debug.css?type=test', 'css', array(
'check' => 'true', 'base' => 'foo'
));
$expected = 'foo/css/debug.css?type=test';
$this->assertEqual($expected, $result);
$result = Media::asset('debug.css?type=test', 'css', array(
'check' => 'true', 'base' => 'foo', 'timestamp' => true
));
$this->assertPattern('%^foo/css/debug\.css\?type=test&\d+$%', $result);
$file = Media::path('css/debug.css', 'bar');
$this->assertTrue(file_exists($file));
}