Skip to content

Commit

Permalink
Merge pull request #1007 from rosiel/2.x
Browse files Browse the repository at this point in the history
Test on PHP 8.3 and Drupal 10.3
  • Loading branch information
alxp authored Apr 9, 2024
2 parents 9ed3637 + 263666f commit 089a365
Show file tree
Hide file tree
Showing 16 changed files with 66 additions and 45 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/build-2.x.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,15 @@ jobs:
strategy:
fail-fast: false
matrix:
php-versions: ["8.1", "8.2"]
php-versions: ["8.1", "8.2", "8.3"]
# test-suite functional-javascript will appear to pass but will skip tests; missing chromedriver.
test-suite: ["kernel", "functional", "functional-javascript"]
drupal-version: ["10.0.x", "10.1.x", "10.2.x-dev"]
drupal-version: ["10.1.x", "10.2.x", "10.3.x-dev"]
mysql: ["8.0"]
allowed_failure: [false]
exclude:
- php-versions: "8.3"
drupal-version: "10.1.x"


name: PHP ${{ matrix.php-versions }} | drupal ${{ matrix.drupal-version }} | mysql ${{ matrix.mysql }} | test-suite ${{ matrix.test-suite }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public function testGenerateAudioDerivativeFromScratch() {
// Create an action to generate a audio derivative.
$this->drupalGet('admin/config/system/actions');
$this->getSession()->getPage()->findById("edit-action")->selectOption("Generate a audio derivative");
$this->getSession()->getPage()->pressButton($this->t('Create'));
$this->getSession()->getPage()->pressButton('Create');
$this->assertSession()->statusCodeEquals(200);

$this->getSession()->getPage()->fillField('edit-label', "Generate audio test derivative");
Expand All @@ -53,7 +53,7 @@ public function testGenerateAudioDerivativeFromScratch() {
$this->getSession()->getPage()->fillField('edit-args', "-f mp3");
$this->getSession()->getPage()->fillField('edit-scheme', "public");
$this->getSession()->getPage()->fillField('edit-path', "derp.mov");
$this->getSession()->getPage()->pressButton($this->t('Save'));
$this->getSession()->getPage()->pressButton('Save');
$this->assertSession()->statusCodeEquals(200);

// Create a context and add the action as a derivative reaction.
Expand All @@ -69,7 +69,7 @@ public function testGenerateAudioDerivativeFromScratch() {
'field_media_use[0][target_id]' => $this->preservationMasterTerm->label(),
];
$this->drupalGet('media/add/' . $this->testMediaType->id());
$this->submitForm($values, $this->t('Save'));
$this->submitForm($values, 'Save');

$expected = [
'source_uri' => 'test_file.txt',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public function testGenerateImageDerivativeFromScratch() {
// Create an action to generate a jpeg thumbnail.
$this->drupalGet('admin/config/system/actions');
$this->getSession()->getPage()->findById("edit-action")->selectOption("Generate an image derivative");
$this->getSession()->getPage()->pressButton($this->t('Create'));
$this->getSession()->getPage()->pressButton('Create');
$this->assertSession()->statusCodeEquals(200);

$this->getSession()->getPage()->fillField('edit-label', "Generate image test derivative");
Expand All @@ -55,7 +55,7 @@ public function testGenerateImageDerivativeFromScratch() {
$this->getSession()->getPage()->fillField('edit-args', "-thumbnail 20x20");
$this->getSession()->getPage()->fillField('edit-scheme', "public");
$this->getSession()->getPage()->fillField('edit-path', "derp.jpeg");
$this->getSession()->getPage()->pressButton($this->t('Save'));
$this->getSession()->getPage()->pressButton('Save');
$this->assertSession()->statusCodeEquals(200);

// Create a context and add the action as a derivative reaction.
Expand All @@ -71,7 +71,7 @@ public function testGenerateImageDerivativeFromScratch() {
'field_media_use[0][target_id]' => $this->preservationMasterTerm->label(),
];
$this->drupalGet('media/add/' . $this->testMediaType->id());
$this->submitForm($values, $this->t('Save'));
$this->submitForm($values, 'Save');

$expected = [
'source_uri' => 'test_file.txt',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public function testGenerateVideoDerivativeFromScratch() {
// Create an action to generate a jpeg thumbnail.
$this->drupalGet('admin/config/system/actions');
$this->getSession()->getPage()->findById("edit-action")->selectOption("Generate a video derivative");
$this->getSession()->getPage()->pressButton($this->t('Create'));
$this->getSession()->getPage()->pressButton('Create');
$this->assertSession()->statusCodeEquals(200);

$this->getSession()->getPage()->fillField('edit-label', "Generate video test derivative");
Expand All @@ -50,7 +50,7 @@ public function testGenerateVideoDerivativeFromScratch() {
$this->getSession()->getPage()->fillField('edit-args', "-f mp4");
$this->getSession()->getPage()->fillField('edit-scheme', "public");
$this->getSession()->getPage()->fillField('edit-path', "derp.mov");
$this->getSession()->getPage()->pressButton($this->t('Save'));
$this->getSession()->getPage()->pressButton('Save');
$this->assertSession()->statusCodeEquals(200);

// Create a context and add the action as a derivative reaction.
Expand All @@ -66,7 +66,7 @@ public function testGenerateVideoDerivativeFromScratch() {
'field_media_use[0][target_id]' => $this->preservationMasterTerm->label(),
];
$this->drupalGet('media/add/' . $this->testMediaType->id());
$this->submitForm($values, $this->t('Save'));
$this->submitForm($values, 'Save');

$expected = [
'source_uri' => 'test_file.txt',
Expand Down
4 changes: 2 additions & 2 deletions tests/src/Functional/ContentEntityTypeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public function testContentEntityType() {
$this->addCondition('test', 'content_entity_type');
$this->getSession()->getPage()->checkField("edit-conditions-content-entity-type-types-node");
$this->getSession()->getPage()->findById("edit-conditions-content-entity-type-context-mapping-node")->selectOption("@node.node_route_context:node");
$this->getSession()->getPage()->pressButton($this->t('Save and continue'));
$this->getSession()->getPage()->pressButton('Save and continue');
$this->addPresetReaction('test', 'index', 'hello_world');

// Create a new node confirm Hello World! is printed to the screen.
Expand All @@ -53,7 +53,7 @@ public function testContentEntityType() {
'files[field_media_file_0]' => __DIR__ . '/../../fixtures/test_file.txt',
];
$this->drupalGet('media/add/' . $this->testMediaType->id());
$this->submitForm($values, $this->t('Save'));
$this->submitForm($values, 'Save');
$this->assertSession()->pageTextNotContains("Hello World!");
}

Expand Down
6 changes: 3 additions & 3 deletions tests/src/Functional/DerivativeReactionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public function testExecuteDerivativeReaction() {
'field_media_of[0][target_id]' => 'Test Node',
];
$this->drupalGet('media/add/' . $this->testMediaType->id());
$this->submitForm($values, $this->t('Save'));
$this->submitForm($values, 'Save');

// field_media_of is set and there's a file, so derivatives should fire.
$this->assertSession()->pageTextContains("Hello World!");
Expand All @@ -71,9 +71,9 @@ public function testExecuteDerivativeReaction() {
'files[field_media_file_0]' => __DIR__ . '/../../fixtures/test_file2.txt',
];
$this->drupalGet($media_url . '/edit');
$this->getSession()->getPage()->pressButton($this->t('Remove'));
$this->getSession()->getPage()->pressButton('Remove');
$this->getSession()->getPage()->fillField('files[field_media_file_0]', __DIR__ . '/../../fixtures/test_file2.txt');
$this->getSession()->getPage()->pressButton($this->t('Save'));
$this->getSession()->getPage()->pressButton('Save');
$this->assertSession()->pageTextContains("Hello World!");
}

Expand Down
6 changes: 3 additions & 3 deletions tests/src/Functional/EmitNodeEventTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public function testEmitEvent() {
$this->addCondition('test', 'content_entity_type');
$this->getSession()->getPage()->checkField("edit-conditions-content-entity-type-types-node");
$this->getSession()->getPage()->findById("edit-conditions-content-entity-type-context-mapping-node")->selectOption("@node.node_route_context:node");
$this->getSession()->getPage()->pressButton($this->t('Save and continue'));
$this->getSession()->getPage()->pressButton('Save and continue');

$this->addPresetReaction('test', 'index', $action_id);
$this->assertSession()->statusCodeEquals(200);
Expand All @@ -68,15 +68,15 @@ public function testEmitEvent() {
protected function createEmitAction($entity_type, $event_type) {
$this->drupalGet('admin/config/system/actions');
$this->getSession()->getPage()->findById("edit-action")->selectOption("Emit a $entity_type event to a queue/topic");
$this->getSession()->getPage()->pressButton($this->t('Create'));
$this->getSession()->getPage()->pressButton('Create');
$this->assertSession()->statusCodeEquals(200);

$action_id = "emit_" . $entity_type . "_" . lcfirst($event_type);
$this->getSession()->getPage()->fillField('edit-label', "Emit $entity_type " . lcfirst($event_type));
$this->getSession()->getPage()->fillField('edit-id', $action_id);
$this->getSession()->getPage()->fillField('edit-queue', "emit-$entity_type-" . lcfirst($event_type));
$this->getSession()->getPage()->findById("edit-event")->selectOption($event_type);
$this->getSession()->getPage()->pressButton($this->t('Save'));
$this->getSession()->getPage()->pressButton('Save');
$this->assertSession()->statusCodeEquals(200);

return $action_id;
Expand Down
2 changes: 1 addition & 1 deletion tests/src/Functional/EntityBundleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public function testEntityBundleType() {
$this->addCondition('test', 'islandora_entity_bundle');
$this->getSession()->getPage()->checkField("edit-conditions-islandora-entity-bundle-bundles-test-type");
$this->getSession()->getPage()->findById("edit-conditions-islandora-entity-bundle-context-mapping-node")->selectOption("@node.node_route_context:node");
$this->getSession()->getPage()->pressButton($this->t('Save and continue'));
$this->getSession()->getPage()->pressButton('Save and continue');
$this->addPresetReaction('test', 'index', 'hello_world');

// Create a new test_type confirm Hello World! is printed to the screen.
Expand Down
2 changes: 1 addition & 1 deletion tests/src/Functional/FormDisplayAlterReactionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public function testViewModeAlter() {

$this->drupalGet("admin/structure/context/test/reaction/add/form_display_alter");
$this->getSession()->getPage()->findById("edit-reactions-form-display-alter-mode")->selectOption('node.secondary');
$this->getSession()->getPage()->pressButton($this->t('Save and continue'));
$this->getSession()->getPage()->pressButton('Save and continue');
$this->assertSession()->statusCodeEquals(200);

drupal_flush_all_caches();
Expand Down
2 changes: 1 addition & 1 deletion tests/src/Functional/IndexingTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public function testIndexing() {
$this->drupalGet("$url/delete");

// Delete the node.
$this->submitForm([], $this->t('Delete'));
$this->submitForm([], 'Delete');
$this->assertSession()->statusCodeEquals(200);

// Confirm Goodbye, Cruel World! is printed to the screen.
Expand Down
8 changes: 4 additions & 4 deletions tests/src/Functional/IslandoraFunctionalTestBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ protected function addPresetReaction($context_id, $reaction_type, $action_id) {
->getPage()
->findById("edit-reactions-$reaction_type-actions")
->selectOption($action_id);
$this->getSession()->getPage()->pressButton($this->t('Save and continue'));
$this->getSession()->getPage()->pressButton('Save and continue');
$this->assertSession()->statusCodeEquals(200);
}

Expand All @@ -315,7 +315,7 @@ protected function addPresetReaction($context_id, $reaction_type, $action_id) {
*/
protected function postNodeAddForm($bundle_id, $values, $button_text) {
$this->drupalGet("node/add/$bundle_id");
$this->submitForm($values, $this->t('@text', ['@text' => $button_text]));
$this->submitForm($values, $button_text);
$this->assertSession()->statusCodeEquals(200);
}

Expand All @@ -324,7 +324,7 @@ protected function postNodeAddForm($bundle_id, $values, $button_text) {
*/
protected function postTermAddForm($taxomony_id, $values, $button_text) {
$this->drupalGet("admin/structure/taxonomy/manage/$taxomony_id/add");
$this->submitForm($values, $this->t('@text', ['@text' => $button_text]));
$this->submitForm($values, $button_text);
$this->assertSession()->statusCodeEquals(200);
}

Expand All @@ -333,7 +333,7 @@ protected function postTermAddForm($taxomony_id, $values, $button_text) {
*/
protected function postEntityEditForm($entity_url, $values, $button_text) {
$this->drupalGet("$entity_url/edit");
$this->submitForm($values, $this->t('@text', ['@text' => $button_text]));
$this->submitForm($values, $button_text);
$this->assertSession()->statusCodeEquals(200);
}

Expand Down
10 changes: 5 additions & 5 deletions tests/src/Functional/IslandoraSettingsFormTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,23 +38,23 @@ public function testJwtExpiry() {
$this->assertSession()->fieldValueEquals('edit-jwt-expiry', '+2 hour');
$this->drupalGet('/admin/config/islandora/core');
// Blank is not allowed.
$this->submitForm(['edit-jwt-expiry' => ""], $this->t('Save configuration'));
$this->submitForm(['edit-jwt-expiry' => ""], 'Save configuration');
$this->assertSession()->pageTextContainsOnce('"" is not a valid time or interval expression.');
$this->drupalGet('/admin/config/islandora/core');
// Negative is not allowed.
$this->submitForm(['edit-jwt-expiry' => "-2 hours"], $this->t('Save configuration'));
$this->submitForm(['edit-jwt-expiry' => "-2 hours"], 'Save configuration');
$this->assertSession()->pageTextContainsOnce('Time or interval expression cannot be negative');
$this->drupalGet('/admin/config/islandora/core');
// Must include an integer value.
$this->submitForm(['edit-jwt-expiry' => "last hour"], $this->t('Save configuration'));
$this->submitForm(['edit-jwt-expiry' => "last hour"], 'Save configuration');
$this->assertSession()->pageTextContainsOnce('No numeric interval specified, for example "1 day"');
$this->drupalGet('/admin/config/islandora/core');
// Must have an accepted interval.
$this->submitForm(['edit-jwt-expiry' => "1 fortnight"], $this->t('Save configuration'));
$this->submitForm(['edit-jwt-expiry' => "1 fortnight"], 'Save configuration');
$this->assertSession()->pageTextContainsOnce('No time interval found, please include one of');
$this->drupalGet('/admin/config/islandora/core');
// Test a valid setting.
$this->submitForm(['edit-jwt-expiry' => "2 weeks"], $this->t('Save configuration'));
$this->submitForm(['edit-jwt-expiry' => "2 weeks"], 'Save configuration');
$this->assertSession()->pageTextContainsOnce('The configuration options have been saved.');

}
Expand Down
2 changes: 1 addition & 1 deletion tests/src/Functional/JsonldSelfReferenceReactionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public function testMappingReaction() {

$this->postNodeAddForm('test_type',
['title[0][value]' => 'Test Node'],
$this->t('Save'));
'Save');
$this->assertSession()->pageTextContains("Test Node");
$url = $this->getUrl();

Expand Down
38 changes: 28 additions & 10 deletions tests/src/Functional/JsonldTypeAlterReactionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,21 +32,21 @@ public function testMappingReaction() {
'label' => 'Typed Predicate',
'field_name' => 'type_predicate',
], 'Save and continue');
$this->submitForm([], $this->t('Save field settings'));
$this->submitForm([], 'Save field settings');
}
else {
elseif (version_compare(\Drupal::VERSION, '10.3.x-dev', 'lt')) {
$this->getSession()->getPage()->selectFieldOption('new_storage_type', 'plain_text');
// First need to submit the form with the elements displayed
// on initial page load. The form is using AJAX to send a second element
// after we selected the radio button above
// For Drupal 10.2, we first need to submit the form with the elements
// displayed on initial page load. The form is using AJAX to send a
// second element after we selected the radio button above
// we can instead get the second element by submitting the form
// and having it throw an error since the required field is missing.
// @todo refactor this as a functional javascript test.
$this->submitForm([
'new_storage_type' => 'plain_text',
'label' => 'Typed Predicate',
'field_name' => 'type_predicate',
], $this->t('Continue'));
], 'Continue');

// Now we can proceed, selecting the plain text (i.e. string)
// for the second element now that the element is displayed after
Expand All @@ -57,16 +57,34 @@ public function testMappingReaction() {
'label' => 'Typed Predicate',
'field_name' => 'type_predicate',
'group_field_options_wrapper' => 'string',
], $this->t('Continue'));
], 'Continue');
}
else {
$this->getSession()->getPage()->selectFieldOption('new_storage_type', 'plain_text');
// For Drupal 10.3 the label is not visible at first.
// @todo refactor this as a functional javascript test.
$this->submitForm([
'new_storage_type' => 'plain_text',
], 'Continue');

// Now we can proceed, entering a label and selecting Text (plain)
// for the second element now that the elements are displayed after
// the initial form submission.
$this->getSession()->getPage()->selectFieldOption('group_field_options_wrapper', 'string');
$this->submitForm([
'label' => 'Typed Predicate',
'field_name' => 'type_predicate',
'group_field_options_wrapper' => 'string',
], 'Continue');
}
$this->submitForm([], $this->t('Save settings'));
$this->submitForm([], 'Save settings');
$this->assertSession()->responseContains('field_type_predicate');

// Add the test node.
$this->postNodeAddForm('test_type', [
'title[0][value]' => 'Test Node',
'field_type_predicate[0][value]' => 'schema:Organization',
], $this->t('Save'));
], 'Save');
$this->assertSession()->pageTextContains("Test Node");
$url = $this->getUrl();

Expand Down Expand Up @@ -103,7 +121,7 @@ public function testMappingReaction() {
$this->addCondition('test', 'islandora_entity_bundle');
$this->getSession()->getPage()->checkField("edit-conditions-islandora-entity-bundle-bundles-test-type");
$this->getSession()->getPage()->findById("edit-conditions-islandora-entity-bundle-context-mapping-node")->selectOption("@node.node_route_context:node");
$this->getSession()->getPage()->pressButton($this->t('Save and continue'));
$this->getSession()->getPage()->pressButton('Save and continue');

// The first time a Context is saved, you need to clear the cache.
// Subsequent changes to the context don't need a cache rebuild, though.
Expand Down
4 changes: 2 additions & 2 deletions tests/src/Functional/LinkHeaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ public function testMediaLinkHeaders() {
$media_url = $this->media->toUrl('canonical', ['absolute' => TRUE])->toString();

// Perform a GET request as anonymous.
$this->drupalGet($media_url, [], ['Cache-Control: no-cache']);
$this->drupalGet($media_url, [], ['Cache-Control' => 'no-cache']);
// Check link headers.
$this->assertTrue(
$this->validateLinkHeaderWithUrl('describes', $file_url, '', 'text/plain') == 1,
Expand Down Expand Up @@ -174,7 +174,7 @@ public function testMediaLinkHeaders() {
$this->drupalLogin($account);

// Perform a GET request with update media permissions.
$this->drupalGet($media_url, [], ['Cache-Control: no-cache']);
$this->drupalGet($media_url, [], ['Cache-Control' => 'no-cache']);

// Check link headers again, the edit-media link header should be present.
$this->assertTrue(
Expand Down
2 changes: 1 addition & 1 deletion tests/src/Functional/ViewModeAlterReactionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public function testViewModeAlter() {

$this->drupalGet("admin/structure/context/test/reaction/add/view_mode_alter");
$this->getSession()->getPage()->findById("edit-reactions-view-mode-alter-mode")->selectOption('node.teaser');
$this->getSession()->getPage()->pressButton($this->t('Save and continue'));
$this->getSession()->getPage()->pressButton('Save and continue');
$this->assertSession()->statusCodeEquals(200);

drupal_flush_all_caches();
Expand Down

0 comments on commit 089a365

Please sign in to comment.