crossword-8.x-1.x-dev/tests/src/Functional/CrosswordColorsTest.php
tests/src/Functional/CrosswordColorsTest.php
<?php namespace Drupal\Tests\crossword\Functional; use Drupal\Tests\BrowserTestBase; /** * Tests crossword_colors form and service. * * @group crossword */ class CrosswordColorsTest extends BrowserTestBase { /** * {@inheritdoc} */ protected static $modules = ['crossword_colors']; /** * {@inheritdoc} */ public $defaultTheme = 'stark'; /** * Use form to update config and confirm stylesheet is saved/updated. */ public function testCrosswordColorsForm() { $this->assertFileDoesNotExist('public://crossword-colors.css'); $this->drupalLogin($this->drupalCreateUser(['configure crossword colors'])); // Save config for first time. $this->drupalGet('/admin/config/crossword/colors'); $this->submitForm(['active_square' => '#123456'], 'Save configuration'); $this->assertFileExists('public://crossword-colors.css'); $stylesheet = file_get_contents('public://crossword-colors.css'); $needle = '.crossword-square.active {background-color: #123456;}'; $this->assertTrue(strpos($stylesheet, $needle) > -1); // Re-save with new color and make sure the file updates. $this->drupalGet('/admin/config/crossword/colors'); $this->submitForm(['active_square' => '#abcdef'], 'Save configuration'); $stylesheet = file_get_contents('public://crossword-colors.css'); $new_needle = '.crossword-square.active {background-color: #abcdef;}'; $this->assertFalse(strpos($stylesheet, $needle) > -1); $this->assertTrue(strpos($stylesheet, $new_needle) > -1); // Check that the library_info_alter works. $library = \Drupal::service('library.discovery')->getLibraryByName('crossword', 'crossword.default'); $this->assertEquals('public://crossword-colors.css', $library['css'][3]['data'], json_encode($library)); } /** * Load library without ever visiting form. */ public function testCrosswordColorsInstall() { $this->assertFileDoesNotExist('public://crossword-colors.css'); $this->drupalLogin($this->drupalCreateUser(['configure crossword colors'])); $library = \Drupal::service('library.discovery')->getLibraryByName('crossword', 'crossword.default'); // The library_info_alter hook should have created the file. $this->assertFileExists('public://crossword-colors.css'); $this->assertEquals('public://crossword-colors.css', $library['css'][3]['data'], json_encode($library)); // Check the default config was used to make the file. $stylesheet = file_get_contents('public://crossword-colors.css'); $needle = '.crossword-square.active {background-color: #1892ef;}'; $this->assertTrue(strpos($stylesheet, $needle) > -1); } }