View source
<?php
namespace Drupal\optimizely\Tests;
use Drupal\simpletest\WebTestBase;
class OptimizelyAddUpdateTest extends WebTestBase {
protected $addUpdatePage = 'admin/config/system/optimizely/add_update';
protected $update2Page = 'admin/config/system/optimizely/add_update/2';
protected $addAliasPage = 'admin/config/search/path/add';
protected $privilegedUser;
protected $optimizelyPermission = 'administer optimizely';
public static $modules = array(
'optimizely',
'node',
'language',
'path',
);
public static function getInfo() {
return array(
'name' => 'Optimizely Add / Update Project',
'description' => 'Ensure that the add / update features function properly.',
'group' => 'Optimizely',
);
}
public function setUp() {
parent::setUp();
$this
->drupalCreateContentType(array(
'type' => 'page',
'name' => 'Basic page',
));
$this->privilegedUser = $this
->drupalCreateUser(array(
'access content',
'create page content',
'edit own page content',
'administer url aliases',
'create url aliases',
$this->optimizelyPermission,
));
}
public function testAddUpdateProject() {
$this
->drupalLogin($this->privilegedUser);
$settings = array(
'type' => 'page',
'title' => $this
->randomMachineName(32),
'langcode' => \Drupal\Core\Language\LanguageInterface::LANGCODE_NOT_SPECIFIED,
'body' => array(
array(
'value' => $this
->randomMachineName(64),
'format' => filter_default_format(),
),
),
);
$node1 = $this
->drupalCreateNode($settings);
$edit_node1 = array();
$edit_node1['source'] = '/node/' . $node1
->id();
$edit_node1['alias'] = '/' . $this
->randomMachineName(10);
$this
->drupalPostForm($this->addAliasPage, $edit_node1, t('Save'));
$edit = array(
'optimizely_project_title' => $this
->randomMachineName(8),
'optimizely_project_code' => rand(0, 10000),
'optimizely_path' => $edit_node1['alias'],
'optimizely_enabled' => rand(0, 1),
);
$this
->drupalPostForm($this->addUpdatePage, $edit, t('Add'));
$project_title = db_query('SELECT project_title FROM {optimizely} WHERE project_title = :optimizely_project_title', array(
':optimizely_project_title' => $edit['optimizely_project_title'],
))
->fetchField();
$this
->assertEqual($project_title, $edit['optimizely_project_title'], t('<strong>The project was added to the database.</strong>'), 'Optimizely');
$settings_2 = array(
'type' => 'page',
'title' => $this
->randomMachineName(32),
'langcode' => \Drupal\Core\Language\LanguageInterface::LANGCODE_NOT_SPECIFIED,
'body' => array(
array(
'value' => $this
->randomMachineName(64),
'format' => filter_default_format(),
),
),
);
$node2 = $this
->drupalCreateNode($settings_2);
$edit_node2 = array();
$edit_node2['source'] = '/node/' . $node2
->id();
$edit_node2['alias'] = '/' . $this
->randomMachineName(10);
$this
->drupalPostForm($this->addAliasPage, $edit_node2, t('Save'));
$edit_2 = array(
'optimizely_project_title' => $this
->randomMachineName(8),
'optimizely_project_code' => rand(0, 10000),
'optimizely_path' => $edit_node2['alias'],
'optimizely_enabled' => rand(0, 1),
);
$this
->drupalPostForm($this->update2Page, $edit_2, t('Update'));
$project_title = db_query('SELECT project_title FROM {optimizely} WHERE project_title = :optimizely_project_title', array(
':optimizely_project_title' => $edit_2['optimizely_project_title'],
))
->fetchField();
$this
->assertEqual($project_title, $edit_2['optimizely_project_title'], t('<strong>The project was updated in the database.</strong>'), 'Optimizely');
}
}