View source
<?php
namespace Drupal\Tests\webform_image_select\Functional;
use Drupal\Core\Serialization\Yaml;
use Drupal\webform\WebformInterface;
use Drupal\Tests\webform\Functional\Element\WebformElementBrowserTestBase;
use Drupal\webform_image_select\Entity\WebformImageSelectImages;
class WebformImageSelectImagesTest extends WebformElementBrowserTestBase {
public static $modules = [
'webform_image_select',
'webform_image_select_test',
];
public function testWebformImageSelectImages() {
$normal_user = $this
->drupalCreateUser();
$admin_user = $this
->drupalCreateUser([
'administer webform',
]);
$this
->drupalLogin($normal_user);
$kittens = Yaml::decode("kitten_1:\n text: 'Cute Kitten 1'\n src: 'http://placekitten.com/220/200'\nkitten_2:\n text: 'Cute Kitten 2'\n src: 'http://placekitten.com/180/200'\nkitten_3:\n text: 'Cute Kitten 3'\n src: 'http://placekitten.com/130/200'\nkitten_4:\n text: 'Cute Kitten 4'\n src: 'http://placekitten.com/270/200'");
$element = [
'#images' => $kittens,
];
$this
->assertEqual(WebformImageSelectImages::getElementImages($element), $kittens);
$element = [
'#images' => 'kittens',
];
$this
->assertEqual(WebformImageSelectImages::getElementImages($element), $kittens);
$element = [
'#images' => 'not-found',
];
$this
->assertEqual(WebformImageSelectImages::getElementImages($element), []);
$dogs = Yaml::decode("dog_1:\n text: 'Cute Dog 1'\n src: 'http://placedog.net/220/200'\ndog_2:\n text: 'Cute Dog 2'\n src: 'http://placedog.net/180/200'\ndog_3:\n text: 'Cute Dog 3'\n src: 'http://placedog.net/130/200'\ndog_4:\n text: 'Cute Dog 4'\n src: 'http://placedog.net/270/200'");
$element = [
'#images' => $dogs,
];
$this
->assertEqual(WebformImageSelectImages::getElementImages($element), $dogs);
$webform_images = WebformImageSelectImages::create([
'langcode' => 'en',
'status' => WebformInterface::STATUS_OPEN,
'id' => 'dogs',
'title' => 'Dogs',
'images' => Yaml::encode($dogs),
]);
$webform_images
->save();
$this
->assertEqual($webform_images
->getImages(), $dogs);
$webform_images
->set('images', "not\nvalid\nyaml")
->save();
$this
->assertEqual([], $webform_images
->getImages());
$this
->drupalGet('/admin/structure/webform/options/images/manage');
$this
->assertResponse(403);
$this
->drupalGet('/admin/structure/webform/options/images/manage/add');
$this
->assertResponse(403);
$this
->drupalGet('/admin/structure/webform/options/images/manage/animals/edit');
$this
->assertResponse(403);
$this
->drupalLogin($admin_user);
$this
->drupalGet('/admin/structure/webform/options/images/manage');
$this
->assertResponse(200);
$this
->drupalGet('/admin/structure/webform/options/images/manage/add');
$this
->assertResponse(200);
$this
->drupalGet('/admin/structure/webform/options/images/manage/animals/edit');
$this
->assertRaw('The <em class="placeholder">Cute Animals</em> images are being altered by the <em class="placeholder">Webform Image Select test</em> module.');
$element = [
'#images' => 'animals',
];
$images = WebformImageSelectImages::getElementImages($element);
$this
->debug($images);
$this
->assertEqual(array_keys($images), [
'kitten_1',
'kitten_2',
'kitten_3',
'kitten_4',
'dog_1',
'dog_2',
'dog_3',
'dog_4',
]);
}
}