Tests the Color module functionality using the given theme.
function _testColor($theme, $test_values) {
config('system.theme')
->set('default', $theme)
->save();
$settings_path = 'admin/appearance/settings/' . $theme;
$this
->drupalLogin($this->big_user);
$this
->drupalGet($settings_path);
$this
->assertResponse(200);
$edit['scheme'] = '';
$edit[$test_values['palette_input']] = '#123456';
$this
->drupalPost($settings_path, $edit, t('Save configuration'));
$this
->drupalGet('<front>');
$stylesheets = config('color.' . $theme)
->get('stylesheets');
$this
->assertPattern('|' . file_create_url($stylesheets[0]) . '|', 'Make sure the color stylesheet is included in the content. (' . $theme . ')');
$stylesheet_content = join("\n", file($stylesheets[0]));
$this
->assertTrue(strpos($stylesheet_content, 'color: #123456') !== FALSE, 'Make sure the color we changed is in the color stylesheet. (' . $theme . ')');
$this
->drupalGet($settings_path);
$this
->assertResponse(200);
$edit['scheme'] = $test_values['scheme'];
$this
->drupalPost($settings_path, $edit, t('Save configuration'));
$this
->drupalGet('<front>');
$stylesheets = config('color.' . $theme)
->get('stylesheets');
$stylesheet_content = join("\n", file($stylesheets[0]));
$this
->assertTrue(strpos($stylesheet_content, 'color: ' . $test_values['scheme_color']) !== FALSE, 'Make sure the color we changed is in the color stylesheet. (' . $theme . ')');
// Test with aggregated CSS turned on.
$config = config('system.performance');
$config
->set('css.preprocess', 1);
$config
->save();
$this
->drupalGet('<front>');
$stylesheets = \Drupal::state()
->get('drupal_css_cache_files') ?: array();
$stylesheet_content = '';
foreach ($stylesheets as $key => $uri) {
$stylesheet_content .= join("\n", file(drupal_realpath($uri)));
}
$this
->assertTrue(strpos($stylesheet_content, 'public://') === FALSE, 'Make sure the color paths have been translated to local paths. (' . $theme . ')');
$config
->set('css.preprocess', 0);
$config
->save();
}