X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fmodules%2Fcontrib%2Fparagraphs%2Fsrc%2FTests%2FExperimental%2FParagraphsExperimentalAdministrationTest.php;fp=web%2Fmodules%2Fcontrib%2Fparagraphs%2Fsrc%2FTests%2FExperimental%2FParagraphsExperimentalAdministrationTest.php;h=e2e309b062caf05ba13d5301390437dc35bac6a2;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hp=a3e91f74693a7ed923af70354adb69cface36a8b;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0;p=yaffs-website diff --git a/web/modules/contrib/paragraphs/src/Tests/Experimental/ParagraphsExperimentalAdministrationTest.php b/web/modules/contrib/paragraphs/src/Tests/Experimental/ParagraphsExperimentalAdministrationTest.php index a3e91f746..e2e309b06 100644 --- a/web/modules/contrib/paragraphs/src/Tests/Experimental/ParagraphsExperimentalAdministrationTest.php +++ b/web/modules/contrib/paragraphs/src/Tests/Experimental/ParagraphsExperimentalAdministrationTest.php @@ -4,6 +4,7 @@ namespace Drupal\paragraphs\Tests\Experimental; use Drupal\field_ui\Tests\FieldUiTestTrait; use Drupal\paragraphs\Entity\Paragraph; +use Drupal\Tests\paragraphs\FunctionalJavascript\ParagraphsTestBaseTrait; /** * Tests the configuration of paragraphs. @@ -13,6 +14,7 @@ use Drupal\paragraphs\Entity\Paragraph; class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTestBase { use FieldUiTestTrait; + use ParagraphsTestBaseTrait; /** * Modules to enable. @@ -43,6 +45,7 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes 'create paragraphs content', 'administer node display', 'edit any paragraphs content', + 'administer nodes', ]); // Create paragraphs type Headline + Block. @@ -72,7 +75,7 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes 'field_paragraphs[0][subform][field_text][0][value]' => 'Test text 1', 'field_paragraphs[1][subform][field_text][0][value]' => 'Test text 2', ]; - $this->drupalPostForm(NULL, $edit, t('Save and publish')); + $this->drupalPostForm(NULL, $edit + ['status[value]' => TRUE], t('Save')); $node = $this->drupalGetNodeByTitle('TEST TITEL'); $paragraph1 = $node->field_paragraphs[0]->target_id; @@ -86,7 +89,7 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes 'field_paragraphs[0][subform][field_text][0][value]' => 'Foo Bar 1', 'revision' => FALSE, ]; - $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save and keep published')); + $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save')); $this->countRevisions($node, $paragraph1, $paragraph2, 1); @@ -97,7 +100,7 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes 'field_paragraphs[0][subform][field_text][0][value]' => 'Foo Bar 2', 'revision' => TRUE, ]; - $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save and keep published')); + $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save')); $this->countRevisions($node, $paragraph1, $paragraph2, 2); @@ -129,7 +132,7 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes */ public function testParagraphsCreation() { // Create an article with paragraphs field. - $this->addParagraphedContentType('article', 'field_paragraphs'); + $this->addParagraphedContentType('article'); $this->loginAsAdmin([ 'administer site configuration', 'create article content', @@ -157,8 +160,8 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes $this->assertUrl('admin/structure/paragraphs_type/add'); $this->drupalGet('admin/structure/paragraphs_type'); - $this->clickLink(t('Add paragraphs type')); - $this->assertTitle('Add paragraphs type | Drupal'); + $this->clickLink(t('Add paragraph type')); + $this->assertTitle('Add Paragraphs type | Drupal'); // Create paragraph type text + image. $this->addParagraphsType('text_image'); $this->drupalGet('admin/structure/paragraphs_type/text_image'); @@ -224,10 +227,6 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes // Add two Text + Image paragraphs in article. $this->drupalGet('node/add/article'); - - // Checking changes on article. - $this->assertRaw('
drupalPostAjaxForm(NULL, array(), 'field_paragraphs_text_image_add_more'); $this->drupalPostAjaxForm(NULL, array(), 'field_paragraphs_text_image_add_more'); // Create an 'image' file, upload it. @@ -242,7 +241,7 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes 'field_paragraphs[1][subform][field_text][0][value]' => 'Test text 2', 'files[field_paragraphs_1_subform_field_image_0]' => drupal_realpath('temporary://myImage2.jpg'), ); - $this->drupalPostForm(NULL, $edit, t('Save and publish')); + $this->drupalPostForm(NULL, $edit, t('Save')); $node = $this->drupalGetNodeByTitle('Test article'); $img1_url = file_create_url(\Drupal::token()->replace('public://[date:custom:Y]-[date:custom:m]/myImage1.jpg')); @@ -277,9 +276,13 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes // Test for preview option. $this->drupalGet('admin/structure/types/manage/article/form-display'); $this->drupalPostAjaxForm(NULL, array(), "field_paragraphs_settings_edit"); - $edit = array('fields[field_paragraphs][settings_edit_form][settings][edit_mode]' => 'preview'); + $edit = [ + 'fields[field_paragraphs][settings_edit_form][settings][edit_mode]' => 'closed', + 'fields[field_paragraphs][settings_edit_form][settings][closed_mode]' => 'preview', + ]; $this->drupalPostForm(NULL, $edit, t('Save')); - $this->assertText('Edit mode: Preview', 'Checking the settings value.'); + $this->assertText('Edit mode: Closed', 'Checking the "Edit mode" setting value.'); + $this->assertText('Closed mode: Preview', 'Checking the "Closed mode" settings value.'); $this->drupalGet('node/1/edit'); // The texts in the paragraphs should be visible. $this->assertNoRaw('field_paragraphs[0][subform][field_text][0][value]'); @@ -290,8 +293,9 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes // Test for open option. $this->drupalGet('admin/structure/types/manage/article/form-display'); $this->drupalPostAjaxForm(NULL, array(), "field_paragraphs_settings_edit"); - // Assert the 'Preview' option is selected. - $this->assertOptionSelected('edit-fields-field-paragraphs-settings-edit-form-settings-edit-mode', 'preview', 'Updated value correctly.'); + // Assert the "Closed" and "Preview" options are selected. + $this->assertOptionSelected('edit-fields-field-paragraphs-settings-edit-form-settings-edit-mode', 'closed', 'Correctly updated the "Edit mode" value.'); + $this->assertOptionSelected('edit-fields-field-paragraphs-settings-edit-form-settings-closed-mode', 'preview', 'Correctly updated the "Closed mode" value.'); // Restore the value to Open for next test. $edit = array('fields[field_paragraphs][settings_edit_form][settings][edit_mode]' => 'open'); $this->drupalPostForm(NULL, $edit, t('Save')); @@ -325,7 +329,7 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes 'field_paragraphs[0][subform][field_image][0][width]' => 300, 'field_paragraphs[0][subform][field_image][0][height]' => 300, ]; - $this->drupalPostForm(NULL, $edit, t('Save and keep published')); + $this->drupalPostForm(NULL, $edit, t('Save')); // Assert the paragraph is deleted after the user saves the node. $this->drupalGet('node/' . $node->id() . '/edit'); $this->assertNoRaw('myImage2.jpg'); @@ -350,13 +354,13 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes 'title[0][value]' => 'Example publish/unpublish', 'field_paragraphs[0][subform][field_text][0][value]' => 'Example published and unpublished', ]; - $this->drupalPostForm(NULL, $edit, t('Save and publish')); + $this->drupalPostForm(NULL, $edit, t('Save')); $this->assertText(t('Example published and unpublished')); $this->clickLink(t('Edit')); $edit = [ 'field_paragraphs[0][subform][status][value]' => FALSE, ]; - $this->drupalPostForm(NULL, $edit, t('Save and keep published')); + $this->drupalPostForm(NULL, $edit, t('Save')); $this->assertNoText(t('Example published and unpublished')); // Set the fields as required. @@ -370,6 +374,10 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes // Add a new article. $this->drupalGet('node/add/article'); $this->drupalPostAjaxForm(NULL, [], 'field_paragraphs_nested_test_add_more'); + + // Ensure that nested header actions do not add a visible weight field. + $this->assertNoFieldByName('field_paragraphs[0][subform][field_paragraphs][header_actions][_weight]'); + $edit = [ 'field_paragraphs[0][subform][field_paragraphs][add_more][add_more_select]' => 'image', ]; @@ -382,13 +390,13 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes 'title[0][value]' => 'test required', 'files[field_paragraphs_0_subform_field_paragraphs_0_subform_field_image_only_0]' => drupal_realpath('temporary://myImage2.jpg'), ); - $this->drupalPostForm(NULL, $edit, t('Save and publish')); + $this->drupalPostForm(NULL, $edit, t('Save')); $edit = [ 'field_paragraphs[0][subform][field_paragraphs][0][subform][field_image_only][0][width]' => 100, 'field_paragraphs[0][subform][field_paragraphs][0][subform][field_image_only][0][height]' => 100, 'field_paragraphs[0][subform][field_paragraphs][0][subform][field_image_only][0][alt]' => 'Alternative_text', ]; - $this->drupalPostForm(NULL, $edit, t('Save and publish')); + $this->drupalPostForm(NULL, $edit, t('Save')); $this->assertText('test required has been created.'); $this->assertNoRaw('This value should not be null.'); @@ -409,7 +417,7 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes $this->drupalPostForm(NULL, $edit, t('Save and continue')); $this->assertNoOption('edit-settings-target-type', 'paragraph'); - // Test that all paragraph types can be referenced if none is selected. + // Test that all Paragraph types can be referenced if none is selected. $this->addParagraphsType('nested_double_test'); static::fieldUIAddExistingField('admin/structure/paragraphs_type/nested_double_test', 'field_paragraphs', 'paragraphs_1'); $this->clickLink(t('Manage form display')); @@ -430,7 +438,7 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes $edit = array( 'title[0][value]' => 'Nested twins', ); - $this->drupalPostForm(NULL, $edit, t('Save and publish')); + $this->drupalPostForm(NULL, $edit, t('Save')); $this->assertText('Nested twins has been created.'); $this->assertNoText('This entity (paragraph: ) cannot be referenced.'); @@ -439,10 +447,13 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes $this->clickLink('Edit', 1); $this->drupalPostForm(NULL, ['required' => FALSE], t('Save settings')); - // Set the Paragraph field edit mode to 'Closed'. - $this->drupalPostAjaxForm('admin/structure/types/manage/article/form-display', [], 'field_paragraphs_settings_edit'); - $this->drupalPostForm(NULL, ['fields[field_paragraphs][settings_edit_form][settings][edit_mode]' => 'closed'], t('Update')); - $this->drupalPostForm(NULL, [], t('Save')); + // Set the Paragraph field edit mode to "Closed" and the closed mode to + // "Summary". + $settings = [ + 'edit_mode' => 'closed', + 'closed_mode' => 'summary', + ]; + $this->setParagraphsWidgetSettings('article', 'field_paragraphs', $settings); $this->addParagraphsType('node_test'); @@ -463,7 +474,7 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes 'field_paragraphs[0][subform][field_entity_reference][0][target_id]' => $node->label() . ' (' . $node->id() . ')', 'title[0][value]' => 'choke test', ]; - $this->drupalPostForm(NULL, $edit, t('Save and publish')); + $this->drupalPostForm(NULL, $edit, t('Save')); // Delete the referenced node. $node->delete(); // Edit the node with the reference. @@ -488,26 +499,34 @@ class ParagraphsExperimentalAdministrationTest extends ParagraphsExperimentalTes $this->assertText('There are no entities matching "foo".'); // Fix the broken reference. $node = $this->drupalGetNodeByTitle('Example publish/unpublish'); - $this->drupalPostForm(NULL, ['field_paragraphs[0][subform][field_entity_reference][0][target_id]' => $node->label() . ' (' . $node->id() . ')'], t('Save and keep published')); + $edit = ['field_paragraphs[0][subform][field_entity_reference][0][target_id]' => $node->label() . ' (' . $node->id() . ')']; + $this->drupalPostForm(NULL, $edit, t('Save')); $this->assertText('choke test has been updated.'); $this->assertLink('Example publish/unpublish'); // Delete the new referenced node. $node->delete(); - // Set the Paragraph field edit mode to 'Preview'. - $this->drupalPostAjaxForm('admin/structure/types/manage/article/form-display', [], 'field_paragraphs_settings_edit'); - $this->drupalPostForm(NULL, ['fields[field_paragraphs][settings_edit_form][settings][edit_mode]' => 'preview'], t('Update')); - $this->drupalPostForm(NULL, [], t('Save')); + // Set the Paragraph field closed mode to "Preview". + $settings = [ + 'edit_mode' => 'closed', + 'closed_mode' => 'preview', + ]; + $this->setParagraphsWidgetSettings('article', 'field_paragraphs', $settings); $node = $this->drupalGetNodeByTitle('choke test'); // Attempt to edit the Paragraph. - $this->drupalPostAjaxForm('node/' . $node->id() . '/edit', [], 'field_paragraphs_0_edit'); - // Try to collapse with an invalid reference. - $this->drupalPostAjaxForm(NULL, ['field_paragraphs[0][subform][field_entity_reference][0][target_id]' => 'foo'], 'field_paragraphs_0_collapse'); + $this->drupalGet('node/' . $node->id() . '/edit'); + // Since we have another validation error, the paragraph is by default in + // the edit mode again. + $this->assertFieldByName('field_paragraphs[0][subform][field_entity_reference][0][target_id]'); + $this->assertFieldByName('field_paragraphs[0][subform][field_entity_reference][1][target_id]'); + // Try to save with and invalid reference. + $edit = ['field_paragraphs[0][subform][field_entity_reference][0][target_id]' => 'foo']; + $this->drupalPostForm(NULL, $edit, t('Save')); $this->assertText('There are no entities matching "foo".'); // Remove the Paragraph and save the node. $this->drupalPostAjaxForm(NULL, [], 'field_paragraphs_0_remove'); - $this->drupalPostForm(NULL, [], t('Save and keep published')); + $this->drupalPostForm(NULL, [], t('Save')); $this->assertText('choke test has been updated.'); // Verify that the text displayed is correct when no paragraph has been