Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / views_ui / tests / src / FunctionalJavascript / ViewsListingTest.php
index cab99bd7bc99a4ab0c08a39f213feb9f09d05421..fc696c03a866ff0097613063b1fe7280f33ddf0d 100644 (file)
@@ -2,7 +2,7 @@
 
 namespace Drupal\Tests\views_ui\FunctionalJavascript;
 
-use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
+use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
 
 /**
  * Tests the JavaScript filtering on the Views listing page.
@@ -10,7 +10,7 @@ use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
  * @see core/modules/views_ui/js/views_ui.listing.js
  * @group views_ui
  */
-class ViewsListingTest extends JavascriptTestBase {
+class ViewsListingTest extends WebDriverTestBase {
 
   /**
    * {@inheritdoc}
@@ -92,6 +92,7 @@ class ViewsListingTest extends JavascriptTestBase {
 
     // Disable a View and see if it moves to the disabled listing.
     $enabled_view = $page->find('css', 'tr.views-ui-list-enabled');
+    $view_description = $enabled_view->find('css', '.views-ui-view-name h3')->getText();
     // Open the dropdown with additional actions.
     $enabled_view->find('css', 'li.dropbutton-toggle button')->click();
     $disable_button = $enabled_view->find('css', 'li.disable.dropbutton-action a');
@@ -109,6 +110,18 @@ class ViewsListingTest extends JavascriptTestBase {
     // Test that one enabled View has been moved to the disabled list.
     $this->assertCount($enabled_views_count - 1, $enabled_rows);
     $this->assertCount($disabled_views_count + 1, $disabled_rows);
+
+    // Test that the keyboard focus is on the dropdown button of the View we
+    // just disabled.
+    $this->assertTrue($this->getSession()->evaluateScript("jQuery(document.activeElement).parent().is('li.enable.dropbutton-action')"));
+    $this->assertEquals($view_description, $this->getSession()->evaluateScript("jQuery(document.activeElement).parents('tr').find('h3').text()"));
+
+    // Enable the view again and ensure we have the focus on the edit button.
+    $this->getSession()->evaluateScript('jQuery(document.activeElement).click()');
+    $session->assertWaitOnAjaxRequest();
+
+    $this->assertTrue($this->getSession()->evaluateScript("jQuery(document.activeElement).parent().is('li.edit.dropbutton-action')"));
+    $this->assertEquals($view_description, $this->getSession()->evaluateScript("jQuery(document.activeElement).parents('tr').find('h3').text()"));
   }
 
   /**