View source
<?php
class TMGMTLocaleSourceUiTestCase extends TMGMTBaseTestCase {
static function getInfo() {
return array(
'name' => 'Locale Source UI tests',
'description' => 'Tests the locale source overview',
'group' => 'Translation Management',
);
}
function setUp() {
parent::setUp(array(
'tmgmt_locale',
'tmgmt_ui',
));
$this->langcode = 'de';
$this->context = 'default';
$file = new stdClass();
$file->uri = drupal_realpath(drupal_get_path('module', 'tmgmt_locale') . '/tests/test.xx.po');
$this->pofile = file_save($file);
$this
->setEnvironment($this->langcode);
$this
->setEnvironment('gsw-berne');
}
public function testOverview() {
_locale_import_po($this->pofile, $this->langcode, LOCALE_IMPORT_OVERWRITE, $this->context);
$this
->loginAsTranslator();
$this
->drupalGet('admin/tmgmt/sources/locale_default');
$this
->assertText('Hello World');
$this
->assertText('Example');
$rows = $this
->xpath('//tbody/tr');
foreach ($rows as $row) {
if ($row->td[1] == 'Hello World') {
$this
->assertEqual((string) $row->td[3]->div['title'], t('Translation up to date'));
$this
->assertEqual((string) $row->td[4]->div['title'], t('Not translated'));
}
}
$edit = array(
'search[label]' => 'Hello',
);
$this
->drupalPost(NULL, $edit, t('Search'));
$this
->assertText('Hello World');
$this
->assertNoText('Example');
$locale_object = db_query('SELECT * FROM {locales_source} WHERE source = :source LIMIT 1', array(
':source' => 'Hello World',
))
->fetchObject();
$edit = array(
'items[' . $locale_object->lid . ']' => TRUE,
);
$this
->drupalPost(NULL, $edit, t('Add to cart'));
$this
->assertRaw(t('@count content source was added into the <a href="@url">cart</a>.', array(
'@count' => 1,
'@url' => url('admin/tmgmt/cart'),
)));
$edit['target_language[]'] = array(
'gsw-berne',
);
$this
->drupalPost('admin/tmgmt/cart', $edit, t('Request translation'));
$this
->assertText('Hello World');
$this
->assertText(t('Locale'));
$this
->assertText('2');
$this
->drupalPost(NULL, array(
'target_language' => 'gsw-berne',
), t('Submit to translator'));
$this
->drupalGet('admin/tmgmt/sources/locale_default');
$this
->assertRaw(t('Active job item: Needs review'));
$job_items = tmgmt_job_item_load_latest('locale', 'default', $locale_object->lid, 'en');
$this
->drupalGet('admin/tmgmt/items/' . $job_items['gsw-berne']->tjiid);
$this
->assertRaw('gsw-berne_Hello World');
$this
->drupalPost(NULL, array(), t('Save as completed'));
$this
->drupalGet('admin/tmgmt/sources/locale_default');
$this
->assertNoRaw(t('Active job item: Needs review'));
$rows = $this
->xpath('//tbody/tr');
foreach ($rows as $row) {
if ($row->td[1] == 'Hello World') {
$this
->assertEqual((string) $row->td[3]->div['title'], t('Translation up to date'));
$this
->assertEqual((string) $row->td[4]->div['title'], t('Translation up to date'));
}
}
$this
->drupalGet('admin/tmgmt/sources/locale_default');
$elements = $this
->xpath('//select[@name=:name]//option[@value=:option]', array(
':name' => 'search[target_language]',
':option' => 'en',
));
$this
->assertTrue(empty($elements));
$edit = array(
'search[missing_target_language]' => 'gsw-berne',
);
$this
->drupalPost(NULL, $edit, t('Search'));
$this
->assertNoText('Hello World');
}
}