public function TMGMTLocaleSourceUiTestCase::testOverview in Translation Management Tool 7
File
- sources/
locale/ tmgmt_locale.ui.test, line 29
Class
- TMGMTLocaleSourceUiTestCase
- Basic Locale Source tests.
Code
public function testOverview() {
// Load PO file to create a locale structure in the database.
_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'));
}
}
// Filter on the label.
$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();
// First add source to the cart to test its functionality.
$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'));
// Assert that the job item is displayed.
$this
->assertText('Hello World');
$this
->assertText(t('Locale'));
$this
->assertText('2');
$this
->drupalPost(NULL, array(
'target_language' => 'gsw-berne',
), t('Submit to translator'));
// Test for the translation flag title.
$this
->drupalGet('admin/tmgmt/sources/locale_default');
$this
->assertRaw(t('Active job item: Needs review'));
// Review and accept the job item.
$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'));
}
}
// Test the missing translation filter.
$this
->drupalGet('admin/tmgmt/sources/locale_default');
// Check that the source language (en) has been removed from the target language
// select box.
$elements = $this
->xpath('//select[@name=:name]//option[@value=:option]', array(
':name' => 'search[target_language]',
':option' => 'en',
));
$this
->assertTrue(empty($elements));
// Filter on the "Not translated to".
$edit = array(
'search[missing_target_language]' => 'gsw-berne',
);
$this
->drupalPost(NULL, $edit, t('Search'));
// Hello World is translated to "gsw-berne" therefore it must not show up in the
// list.
$this
->assertNoText('Hello World');
}