You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.5 KiB
75 lines
2.5 KiB
<?php |
|
|
|
namespace Drupal\Tests\islandora\Functional; |
|
|
|
/** |
|
* Tests indexing and de-indexing in hooks with pre-configured actions. |
|
* |
|
* @group islandora |
|
*/ |
|
class IndexingTest extends IslandoraFunctionalTestBase { |
|
|
|
/** |
|
* {@inheritdoc} |
|
*/ |
|
public function setUp() { |
|
parent::setUp(); |
|
|
|
// Create an action that dsm's "Goodbye, Cruel World!". |
|
$goodbye_world = $this->container->get('entity_type.manager')->getStorage('action')->create([ |
|
'id' => 'goodbye_world', |
|
'label' => 'Goodbye World', |
|
'type' => 'system', |
|
'plugin' => 'action_message_action', |
|
'configuration' => [ |
|
'message' => 'Goodbye, Cruel World!', |
|
], |
|
]); |
|
$goodbye_world->save(); |
|
} |
|
|
|
/** |
|
* @covers \Drupal\islandora\ContextProvider\NodeContextProvider::__construct |
|
* @covers \Drupal\islandora\ContextProvider\NodeContextProvider::getRuntimeContexts |
|
* @covers \Drupal\islandora\IslandoraContextManager::evaluateContexts |
|
* @covers \Drupal\islandora\IslandoraContextManager::applyContexts |
|
* @covers \Drupal\islandora\PresetReaction\PresetReaction::buildConfigurationForm |
|
* @covers \Drupal\islandora\PresetReaction\PresetReaction::submitConfigurationForm |
|
* @covers \Drupal\islandora\PresetReaction\PresetReaction::execute |
|
* @covers \Drupal\islandora\IslandoraServiceProvider::alter |
|
*/ |
|
public function testIndexing() { |
|
// Create a test user. |
|
$account = $this->drupalCreateUser([ |
|
'bypass node access', |
|
'administer contexts', |
|
'administer actions', |
|
]); |
|
$this->drupalLogin($account); |
|
|
|
$this->createContext('Test', 'test'); |
|
$this->addPresetReaction('test', 'index', 'hello_world'); |
|
|
|
// Create a new node and confirm Hello World! is printed to the screen. |
|
$this->postNodeAddForm('test_type', ['title[0][value]' => 'Test Node'], 'Save'); |
|
$this->assertSession()->pageTextContains("Hello World!"); |
|
|
|
// Stash the node's url. |
|
$url = $this->getUrl(); |
|
|
|
// Edit the node and confirm Hello World! is printed to the screen. |
|
$this->postEntityEditForm($url, ['title[0][value]' => 'Test Node Changed'], 'Save'); |
|
$this->assertSession()->pageTextContains("Hello World!"); |
|
|
|
// Add the Goodbye World reaction. |
|
$this->addPresetReaction('test', 'delete', 'goodbye_world'); |
|
|
|
// Delete the node. |
|
$this->drupalPostForm("$url/delete", [], t('Delete')); |
|
$this->assertSession()->statusCodeEquals(200); |
|
|
|
// Confirm Goodbye, Cruel World! is printed to the screen. |
|
$this->assertSession()->pageTextContains("Goodbye, Cruel World!"); |
|
} |
|
|
|
}
|
|
|