Provide updated test case for Views Exposed filter for when the exposed block is turned off. Testing that the exposed block disappears but the attach filter appears.

Original Post

Follow-up from #2078217: [meta] Write tests for deleting blocks provided by derivatives.

If you have your exposed filters exposed as a block, and then you change the view to no longer provide them as blocks, you get a nice exception.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

tim.plunkett’s picture

Status: Active » Needs review
Issue tags: +VDC
FileSize
1.28 KB

Status: Needs review » Needs work

The last submitted patch, vdc-block-2078305-1.patch, failed testing.

dawehner’s picture

I guess we should go with the proper solution of #2031859: Invoke an event[s] when a plugin ID disappears but +1 for the test coverage.

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.2.x-dev

Drupal 8 is end-of-life as of November 17, 2021. There will not be further changes made to Drupal 8. Bugfixes are now made to the 9.3.x and higher branches only. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.15 was released on June 1st, 2022 and is the final full bugfix release for the Drupal 9.3.x series. Drupal 9.3.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.4.x-dev branch from now on, and new development or disruptive changes should be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

darvanen’s picture

Title: Views exposed filter blocks will throw exceptions when the view is changed » Include test for when views exposed filter blocks are changed
Category: Bug report » Task
Issue summary: View changes
Issue tags: +Bug Smash Initiative, +Needs reroll, +Needs issue summary update

Discussed as part of the Bug Smash Initiative (#bugsmash in slack), suspected as no longer a bug.

I tested manually to determine whether issue still exists following the steps to reproduce in the IS.

I tried it both with placing the block and not placing it and could trigger any errors or strange behaviour by switching the exposed filter on and off again.

@quietone suggested it would be nice to keep the test, so switching to a task to get that done.

smustgrave’s picture

Issue tags: -Needs reroll
FileSize
1.44 KB

Attaching a reroll

Assuming the initial patch was testing when a views exposed block is turned off and on does the block get removed from the page.

quietone’s picture

Thanks for updating the test!

I ran the test locally and looked at the html output. I didn't see any pages where the exposed block was not visible. I then looked at the code and the new test is not running. I modified it to run and still did not see the exposed block removed.

  1. +++ b/core/modules/views/tests/src/Functional/Plugin/ExposedFormTest.php
    @@ -262,6 +262,19 @@ public function testExposedBlock($display) {
    +    if ($display === 'page_display') {
    

    Looking at the dataprovider for the test method, $display is never 'page_display'. It should be 'page_1'

  2. +++ b/core/modules/views/tests/src/Functional/Plugin/ExposedFormTest.php
    @@ -262,6 +262,19 @@ public function testExposedBlock($display) {
    +      $this->assertCount(1, $elements, 'Exposed form found.');
    ...
    +      $this->assertCount(0, $result, 'No exposed form block found.');
    

    Drupal doesn't use messages in assertions unless needed because the assertion is in a loop.

  3. +++ b/core/modules/views/tests/src/Functional/Plugin/ExposedFormTest.php
    @@ -262,6 +262,19 @@ public function testExposedBlock($display) {
    +      $result = $this->xpath($xpath);
    
  4. I moved the lines that created this result to before the new test added here. This result is also zero before the exposed block is disabled.

smustgrave’s picture

Issue summary: View changes
Status: Needs work » Needs review
Issue tags: -Needs issue summary update
FileSize
1.23 KB

Addressed the issues in #17

And provided an updated issue summary to the best of my ability

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.9 was released on December 7, 2022 and is the final full bugfix release for the Drupal 9.4.x series. Drupal 9.4.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.5.x-dev branch from now on, and new development or disruptive changes should be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

needs-review-queue-bot’s picture

Status: Needs review » Needs work
FileSize
144 bytes

The Needs Review Queue Bot tested this issue. It either no longer applies to Drupal core, or fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".

Apart from a re-roll or rebase, this issue may need more work to address feedback in the issue or MR comments. To progress an issue, incorporate this feedback as part of the process of updating the issue. This helps other contributors to know what is outstanding.

Consult the Drupal Contributor Guide to find step-by-step guides for working with issues.

Nikhil_110’s picture

Attached patch against Drupal 9.5.x

Patch #18 is not applied for Drupal 9.5.x so Inter-diff file is not added.

Checking patch core/modules/views/tests/src/Functional/Plugin/ExposedFormTest.php...
error: while searching for:
    $elements = $this->xpath('//form[@id=:id]', [':id' => $this->getExpectedExposedFormId($view)]);
    $this->assertCount(1, $elements, 'One exposed form block found.');

    // Test that the correct option is selected after form submission.
    $this->assertCacheContext('url');
    $this->assertTrue($this->assertSession()->optionExists('Content: Type', 'All')->isSelected());

error: patch failed: core/modules/views/tests/src/Functional/Plugin/ExposedFormTest.php:262
error: core/modules/views/tests/src/Functional/Plugin/ExposedFormTest.php: patch does not apply

Version: 9.5.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.