Unverified Commit a739c218 authored by larowlan's avatar larowlan

Issue #2864088 by jonathan1055, GoZ, naveenvalecha: Convert web tests to...

Issue #2864088 by jonathan1055, GoZ, naveenvalecha: Convert web tests to browser tests for shortcut module
parent 8cec5c8b
......@@ -2,6 +2,8 @@
namespace Drupal\shortcut\Tests;
@trigger_error(__NAMESPACE__ . '\ShortcutTestBase is deprecated in Drupal 8.5.0 and will be removed before Drupal 9.0.0. Instead, use \Drupal\Tests\shortcut\Functional\ShortcutTestBase, see https://www.drupal.org/node/2906736.', E_USER_DEPRECATED);
use Drupal\shortcut\Entity\Shortcut;
use Drupal\shortcut\Entity\ShortcutSet;
use Drupal\shortcut\ShortcutSetInterface;
......@@ -9,6 +11,11 @@
/**
* Defines base class for shortcut test cases.
*
* @deprecated in Drupal 8.5.0 and will be removed before Drupal 9.0.0.
* Use \Drupal\Tests\shortcut\Functional\ShortcutTestBase.
*
* @see https://www.drupal.org/node/2906736
*/
abstract class ShortcutTestBase extends WebTestBase {
......
<?php
namespace Drupal\shortcut\Tests;
namespace Drupal\Tests\shortcut\Functional;
use Drupal\block_content\Entity\BlockContentType;
use Drupal\Component\Utility\SafeMarkup;
......@@ -8,6 +8,7 @@
use Drupal\Core\Url;
use Drupal\shortcut\Entity\Shortcut;
use Drupal\shortcut\Entity\ShortcutSet;
use Drupal\Tests\block\Functional\AssertBlockAppearsTrait;
use Drupal\views\Entity\View;
/**
......@@ -17,6 +18,8 @@
*/
class ShortcutLinksTest extends ShortcutTestBase {
use AssertBlockAppearsTrait;
/**
* Modules to enable.
*
......@@ -368,15 +371,15 @@ public function testShortcutLinkOrder() {
$this->drupalLogin($this->drupalCreateUser(['access toolbar', 'access shortcuts', 'access content overview', 'administer content types']));
$this->drupalGet(Url::fromRoute('<front>'));
$shortcuts = $this->cssSelect('#toolbar-item-shortcuts-tray .toolbar-menu a');
$this->assertEqual((string) $shortcuts[0], 'Add content');
$this->assertEqual((string) $shortcuts[1], 'All content');
$this->assertEqual($shortcuts[0]->getText(), 'Add content');
$this->assertEqual($shortcuts[1]->getText(), 'All content');
foreach ($this->set->getShortcuts() as $shortcut) {
$shortcut->setWeight($shortcut->getWeight() * -1)->save();
}
$this->drupalGet(Url::fromRoute('<front>'));
$shortcuts = $this->cssSelect('#toolbar-item-shortcuts-tray .toolbar-menu a');
$this->assertEqual((string) $shortcuts[0], 'All content');
$this->assertEqual((string) $shortcuts[1], 'Add content');
$this->assertEqual($shortcuts[0]->getText(), 'All content');
$this->assertEqual($shortcuts[1]->getText(), 'Add content');
}
/**
......
<?php
namespace Drupal\shortcut\Tests;
namespace Drupal\Tests\shortcut\Functional;
use Drupal\shortcut\Entity\ShortcutSet;
......@@ -68,7 +68,7 @@ public function testShortcutSetEdit() {
// Test the contents of each th cell.
$expected_items = [t('Name'), t('Weight'), t('Operations')];
foreach ($elements as $key => $element) {
$this->assertEqual((string) $element[0], $expected_items[$key]);
$this->assertEqual($element->getText(), $expected_items[$key]);
}
// Look for test shortcuts in the table.
......
<?php
namespace Drupal\Tests\shortcut\Functional;
use Drupal\shortcut\Entity\Shortcut;
use Drupal\shortcut\Entity\ShortcutSet;
use Drupal\shortcut\ShortcutSetInterface;
use Drupal\Tests\BrowserTestBase;
/**
* Defines base class for shortcut test cases.
*/
abstract class ShortcutTestBase extends BrowserTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = ['node', 'toolbar', 'shortcut'];
/**
* User with permission to administer shortcuts.
*
* @var \Drupal\user\UserInterface
*/
protected $adminUser;
/**
* User with permission to use shortcuts, but not administer them.
*
* @var \Drupal\user\UserInterface
*/
protected $shortcutUser;
/**
* Generic node used for testing.
*
* @var \Drupal\node\NodeInterface
*/
protected $node;
/**
* Site-wide default shortcut set.
*
* @var \Drupal\shortcut\ShortcutSetInterface
*/
protected $set;
protected function setUp() {
parent::setUp();
if ($this->profile != 'standard') {
// Create Basic page and Article node types.
$this->drupalCreateContentType(['type' => 'page', 'name' => 'Basic page']);
$this->drupalCreateContentType(['type' => 'article', 'name' => 'Article']);
// Populate the default shortcut set.
$shortcut = Shortcut::create([
'shortcut_set' => 'default',
'title' => t('Add content'),
'weight' => -20,
'link' => [
'uri' => 'internal:/node/add',
],
]);
$shortcut->save();
$shortcut = Shortcut::create([
'shortcut_set' => 'default',
'title' => t('All content'),
'weight' => -19,
'link' => [
'uri' => 'internal:/admin/content',
],
]);
$shortcut->save();
}
// Create users.
$this->adminUser = $this->drupalCreateUser(['access toolbar', 'administer shortcuts', 'view the administration theme', 'create article content', 'create page content', 'access content overview', 'administer users', 'link to any page', 'edit any article content']);
$this->shortcutUser = $this->drupalCreateUser(['customize shortcut links', 'switch shortcut sets', 'access shortcuts', 'access content']);
// Create a node.
$this->node = $this->drupalCreateNode(['type' => 'article']);
// Log in as admin and grab the default shortcut set.
$this->drupalLogin($this->adminUser);
$this->set = ShortcutSet::load('default');
\Drupal::entityManager()->getStorage('shortcut_set')->assignUser($this->set, $this->adminUser);
}
/**
* Creates a generic shortcut set.
*/
public function generateShortcutSet($label = '', $id = NULL) {
$set = ShortcutSet::create([
'id' => isset($id) ? $id : strtolower($this->randomMachineName()),
'label' => empty($label) ? $this->randomString() : $label,
]);
$set->save();
return $set;
}
/**
* Extracts information from shortcut set links.
*
* @param \Drupal\shortcut\ShortcutSetInterface $set
* The shortcut set object to extract information from.
* @param string $key
* The array key indicating what information to extract from each link:
* - 'title': Extract shortcut titles.
* - 'link': Extract shortcut paths.
* - 'id': Extract the shortcut ID.
*
* @return array
* Array of the requested information from each link.
*/
public function getShortcutInformation(ShortcutSetInterface $set, $key) {
$info = [];
\Drupal::entityManager()->getStorage('shortcut')->resetCache();
foreach ($set->getShortcuts() as $shortcut) {
if ($key == 'link') {
$info[] = $shortcut->link->uri;
}
else {
$info[] = $shortcut->{$key}->value;
}
}
return $info;
}
}
<?php
namespace Drupal\shortcut\Tests;
namespace Drupal\Tests\shortcut\Functional;
use Drupal\content_translation\Tests\ContentTranslationUITestBase;
use Drupal\Core\Entity\EntityChangedInterface;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment