You are here

public function ViewsBaseUrlMultilingualTestCase::setUp in Views base url 7

Sets up a Drupal site for running functional and integration tests.

Generates a random database prefix and installs Drupal with the specified installation profile in DrupalWebTestCase::$profile into the prefixed database. Afterwards, installs any additional modules specified by the test.

After installation all caches are flushed and several configuration values are reset to the values of the parent site executing the test, since the default values may be incompatible with the environment in which tests are being executed.

Parameters

...: List of modules to enable for the duration of the test. This can be either a single array or a variable number of string arguments.

Overrides DrupalWebTestCase::setUp

See also

DrupalWebTestCase::prepareDatabasePrefix()

DrupalWebTestCase::changeDatabasePrefix()

DrupalWebTestCase::prepareEnvironment()

File

tests/views_base_url.test, line 100
Views base url test functions.

Class

ViewsBaseUrlMultilingualTestCase

Code

public function setUp() {
  parent::setUp('views_base_url_test', 'locale', 'translation');
  $this->adminUser = $this
    ->drupalCreateUser(array(
    'create article content',
    'administer languages',
    'administer blocks',
  ));
  $language_code = 'de';
  $this
    ->drupalLogin($this->adminUser);

  // Add languages.
  $edit = array();
  $edit['langcode'] = $language_code;
  $this
    ->drupalPost('admin/config/regional/language/add', $edit, t('Add language'));

  // Make sure we are not using a stale list.
  drupal_static_reset('language_list');
  $languages = language_list('language');
  $this
    ->assertTrue(array_key_exists($language_code, $languages), 'Language was installed successfully.');
  if (array_key_exists($language_code, $languages)) {
    $this
      ->assertRaw(t('The language %language has been created and can now be used. More information is available on the <a href="@locale-help">help screen</a>.', array(
      '%language' => $languages[$language_code]->name,
      '@locale-help' => url('admin/help/locale'),
    )), 'Language has been created.');
  }

  // Enable the language switcher block.
  $language_type = LANGUAGE_TYPE_INTERFACE;
  $edit = array(
    "blocks[locale_{$language_type}][region]" => 'sidebar_first',
  );
  $this
    ->drupalPost('admin/structure/block', $edit, t('Save blocks'));

  // Enable URL language detection and selection to make the language switcher
  // block appear.
  $edit = array(
    'language[enabled][locale-url]' => TRUE,
  );
  $this
    ->drupalPost('admin/config/regional/language/configure', $edit, t('Save settings'));
  $this
    ->assertRaw(t('Language negotiation configuration saved.'), 'URL language detection enabled.');
  drupal_static_reset('locale_url_outbound_alter');
  $this->nodes = array();
  for ($i = 1; $i <= 10; $i++) {

    // Create node.
    $title = $this
      ->randomName();
    $image = current($this
      ->drupalGetTestFiles('image'));
    $edit = array(
      'title' => $title,
      'files[field_image_und_0]' => drupal_realpath($image->uri),
    );
    $this
      ->drupalPost('node/add/article', $edit, t('Save'));
    $this->nodes[$i] = $this
      ->drupalGetNodeByTitle($title);

    // Create path alias.
    $path = array(
      'source' => 'node/' . $this->nodes[$i]->nid,
      'alias' => "content/{$title}",
    );
    path_save($path);
  }
  $this
    ->drupalLogout();
}