View source
<?php
class TMGMTBaseTestCase extends DrupalWebTestCase {
protected $profile = 'testing';
protected $default_translator;
protected $admin_permissions = array();
protected $admin_user = NULL;
protected $translator_permissions = array();
protected $translator_user = NULL;
function setUp() {
$modules = func_get_args();
if (isset($modules[0]) && is_array($modules[0])) {
$modules = $modules[0];
}
$modules = array_merge(array(
'entity',
'tmgmt',
'tmgmt_test',
), $modules);
parent::setUp($modules);
$this->default_translator = tmgmt_translator_load('test_translator');
$this->admin_permissions = array(
'administer languages',
'access administration pages',
'administer content types',
'administer tmgmt',
);
$this->translator_permissions = array(
'create translation jobs',
'submit translation jobs',
'accept translation jobs',
);
}
function loginAsAdmin($additional_permissions = array(), $reset_permissions = FALSE) {
$permissions = $this->admin_permissions;
if ($reset_permissions) {
$permissions = $additional_permissions;
}
elseif (!empty($additional_permissions)) {
$permissions = array_merge($permissions, $additional_permissions);
}
$this->admin_user = $this
->drupalCreateUser($permissions);
$this
->drupalLogin($this->admin_user);
return $this->admin_user;
}
function loginAsTranslator($additional_permissions = array(), $reset_permissions = FALSE) {
$permissions = $this->translator_permissions;
if ($reset_permissions) {
$permissions = $additional_permissions;
}
elseif (!empty($additional_permissions)) {
$permissions = array_merge($permissions, $additional_permissions);
}
$this->translator_user = $this
->drupalCreateUser($permissions);
$this
->drupalLogin($this->translator_user);
return $this->translator_user;
}
function createTranslator() {
$translator = new TMGMTTranslator();
$translator->name = strtolower($this
->randomName());
$translator->label = $this
->randomName();
$translator->plugin = 'test_translator';
$translator->settings = array(
'key' => $this
->randomName(),
'another_key' => $this
->randomName(),
);
$this
->assertEqual(SAVED_NEW, $translator
->save());
$this
->assertTrue($translator->tid > 0);
return $translator;
}
function createJob($source = 'en', $target = 'de', $uid = 1) {
$job = tmgmt_job_create($source, $target, $uid);
$this
->assertEqual(SAVED_NEW, $job
->save());
$this
->assertTrue($job->tjid > 0);
return $job;
}
function setEnvironment($langcode) {
locale_add_language($langcode);
}
function assertJobItemLangCodes(TMGMTJobItem $job_item, $expected_source_lang, array $actual_lang_codes) {
$this
->assertEqual($job_item
->getSourceLangCode(), $expected_source_lang);
$existing = $job_item
->getExistingLangCodes();
sort($existing);
sort($actual_lang_codes);
$this
->assertEqual($existing, $actual_lang_codes);
}
protected function createLanguagesLoginTranslator($permissions = NULL) {
$this
->loginAsAdmin();
$this
->setEnvironment('de');
$this
->setEnvironment('es');
$this
->setEnvironment('el');
$base_permissions = array(
'access administration pages',
'create translation jobs',
'submit translation jobs',
);
$permissions = $permissions ? array_merge($permissions, $base_permissions) : $base_permissions;
$this
->loginAsTranslator($permissions, TRUE);
}
}