View source
<?php
namespace Drupal\Tests\sharemessage\Functional;
use Drupal\Core\Url;
class ShareMessageWorkflowTest extends ShareMessageTestBase {
protected $defaultTheme = 'classy';
public function testShareMessageWorkflow() {
$this
->drupalGet('admin/config/services/sharemessage/add');
$edit = [
'label' => 'Share Message Test Label',
'id' => 'sharemessage_test_label',
'title' => 'Share Message Test Title',
'message_long' => 'Share Message Test Long Description',
'message_short' => 'Share Message Test Short Description',
'image_url' => 'http://www.example.com/drupal.jpg',
'share_url' => 'http://www.example.com',
];
$this
->drupalPostForm(NULL, $edit, t('Save'));
$this
->assertText(t('Share Message @label has been added.', [
'@label' => $edit['label'],
]), 'Share Message is successfully saved.');
$this
->drupalGet('sharemessage-test/sharemessage_test_label');
$this
->assertShareButtons($edit, 'addthis_16x16_style', TRUE);
$this
->assertOGTags('og:title', $edit['title']);
$this
->assertOGTags('og:description', $edit['message_long']);
$this
->assertOGTags('og:image', $edit['image_url']);
$this
->assertOGTags('og:url', $edit['share_url']);
$this
->drupalGet('admin/config/services/sharemessage/add');
$this
->assertFieldByName('enforce_usage', NULL, 'The enforce checkbox was found.');
$edit_2 = [
'label' => 'Share Message 2 Test Label',
'id' => 'sharemessage_test_label2',
'title' => 'Share Message 2 Test Title',
'message_long' => 'Share Message 2 Test Long Description',
'message_short' => 'Share Message 2 Test Short Description',
'image_url' => $edit['image_url'],
'share_url' => $edit['share_url'],
'enforce_usage' => 1,
];
$this
->drupalPostForm(NULL, $edit_2, t('Save'));
$sharemessage = \Drupal::entityTypeManager()
->getStorage('sharemessage')
->load('sharemessage_test_label2');
$this
->assertEqual($sharemessage->enforce_usage, TRUE, 'Enforce setting was saved on the entity.');
$this
->drupalGet('sharemessage-test/sharemessage_test_label', [
'query' => [
'smid' => 'sharemessage_test_label2',
],
]);
$this
->assertOGTags('og:description', $edit_2['message_long']);
$url = Url::fromUri($edit['share_url'], [
'query' => [
'smid' => 'sharemessage_test_label2',
],
])
->toString();
$this
->assertOGTags('og:url', $url);
$message_description = 'Suppressing og:url meta tag for overridden sharemessage.';
$this
->assertNoOGTags('og:url', $edit['share_url'], $message_description);
$this
->assertRaw('addthis:description="' . $edit['message_long'] . '"', 'Overridden sharemessage has og data as attributes.');
$this
->config('sharemessage.settings')
->set('message_enforcement', FALSE)
->save();
$this
->drupalGet('sharemessage-test/sharemessage_test_label', [
'query' => [
'smid' => 'sharemessage_test_label2',
],
]);
$this
->assertOGTags('og:description', $edit['message_long']);
$this
->assertOGTags('og:url', $edit['share_url']);
}
public function testTokenCacheability() {
$this
->drupalGet('admin/config/services/sharemessage/add');
$edit = [
'label' => 'Share Message Test Label',
'id' => 'sharemessage_test_label',
'title' => 'Share Message Test Title [current-user:name]',
'message_long' => 'Share Message Test Long Description',
];
$this
->drupalPostForm(NULL, $edit, t('Save'));
$theme = 'classy';
$block = [
'settings[label]' => 'Share Message test block',
'settings[sharemessage]' => $edit['id'],
'region' => 'content',
];
$this
->drupalPostForm('admin/structure/block/add/sharemessage_block/' . $theme, $block, t('Save block'));
$this
->drupalGet('user');
$this
->assertResponse(200);
$this
->assertRaw('Share Message Test Title ' . $this->adminUser
->getAccountName());
$this->adminUser->name = 'new user';
$this->adminUser
->save();
$this
->drupalGet('user');
$this
->assertResponse(200);
$this
->assertRaw('Share Message Test Title ' . $this->adminUser
->getAccountName());
}
}