/** * @covers \KodiCMS\Assets\Assets::addJs * @covers \KodiCMS\Assets\Assets::getJs * @covers \KodiCMS\Assets\Assets::getJsList * @covers \KodiCMS\Assets\Assets::removeJs */ public function testJs() { $manager = $this->assets->packageManager(); $package = m::mock(\KodiCMS\Assets\Package::class); $package->shouldReceive('getName')->once()->andReturn('package'); $package->shouldReceive('hasDependencies')->once()->andReturn(false); $package->shouldReceive('getJs')->twice()->andReturn([new \KodiCMS\Assets\Javascript('package.js', 'path/to/js', [], true)]); $manager->add($package); $this->assets->loadPackage('package'); $script = $this->assets->addJs('test', 'path/to/test.css', ['test2', 'test3'], true); static::assertInstanceOf(\KodiCMS\Assets\Javascript::class, $script); $this->assets->addJs('test1', 'path/to/test.css', ['test2', 'test3']); $this->assets->addJs('test2', 'path/to/test.css', ['test2', 'test3']); static::assertEquals('<script src="http://site.com"></script>', $this->assets->getJs('test1')); static::assertEquals('<script src="http://site.com"></script>' . PHP_EOL . '<script src="http://site.com"></script>', $this->assets->getJsList()); static::assertEquals('<script src="http://site.com"></script>' . PHP_EOL . '<script src="http://site.com"></script>', $this->assets->getJsList(true)); $this->assets->removeJs('test1'); static::assertEmpty($this->assets->getJs('test1')); static::assertNotEmpty($this->assets->getJs('test2')); $this->assets->removeJs(true); static::assertEmpty($this->assets->getJs('test')); static::assertNotEmpty($this->assets->getJs('test2')); $this->assets->removeJs(); static::assertEmpty($this->assets->getJs('test2')); }