Mercurial > hg > isophonics-drupal-site
diff core/modules/image/tests/src/FunctionalJavascript/ImageAdminStylesTest.php @ 16:c2387f117808
Routine composer update
author | Chris Cannam |
---|---|
date | Tue, 10 Jul 2018 15:07:59 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/image/tests/src/FunctionalJavascript/ImageAdminStylesTest.php Tue Jul 10 15:07:59 2018 +0100 @@ -0,0 +1,64 @@ +<?php + +namespace Drupal\Tests\image\FunctionalJavascript; + +use Drupal\image\Entity\ImageStyle; + +/** + * Tests creation, deletion, and editing of image styles and effects. + * + * @group image + */ +class ImageAdminStylesTest extends ImageFieldTestBase { + + /** + * Tests editing Ajax-enabled image effect forms. + */ + public function testAjaxEnabledEffectForm() { + $admin_path = 'admin/config/media/image-styles'; + + // Setup a style to be created and effects to add to it. + $style_name = strtolower($this->randomMachineName(10)); + $style_label = $this->randomString(); + $style_path = $admin_path . '/manage/' . $style_name; + $effect_edit = [ + 'data[test_parameter]' => 100, + ]; + + // Add style form. + $page = $this->getSession()->getPage(); + $assert = $this->assertSession(); + $this->drupalGet($admin_path . '/add'); + $page->findField('label')->setValue($style_label); + $assert->waitForElementVisible('named', ['button', 'Edit'])->press(); + $assert->waitForElementVisible('named', ['id_or_name', 'name'])->setValue($style_name); + $page->pressButton('Create new style'); + $assert->pageTextContains("Style $style_label was created."); + + // Add two Ajax-enabled test effects. + $this->drupalPostForm($style_path, ['new' => 'image_module_test_ajax'], t('Add')); + $this->drupalPostForm(NULL, $effect_edit, t('Add effect')); + $this->drupalPostForm($style_path, ['new' => 'image_module_test_ajax'], t('Add')); + $this->drupalPostForm(NULL, $effect_edit, t('Add effect')); + + // Load the saved image style. + $style = ImageStyle::load($style_name); + + // Edit back the effects. + foreach ($style->getEffects() as $uuid => $effect) { + $effect_path = $admin_path . '/manage/' . $style_name . '/effects/' . $uuid; + $this->drupalGet($effect_path); + $page->findField('data[test_parameter]')->setValue(111); + $ajax_value = $page->find('css', '#ajax-value')->getText(); + $this->assertSame('Ajax value bar', $ajax_value); + $this->getSession()->getPage()->pressButton('Ajax refresh'); + $this->assertTrue($page->waitFor(10, function ($page) { + $ajax_value = $page->find('css', '#ajax-value')->getText(); + return preg_match('/^Ajax value [0-9.]+ [0-9.]+$/', $ajax_value); + })); + $page->pressButton('Update effect'); + $assert->pageTextContains('The image effect was successfully applied.'); + } + } + +}