updated core to 7.58 (right after the site was hacked)
This commit is contained in:
@@ -0,0 +1,219 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @file
|
||||
* Contains tests for Translation management
|
||||
*/
|
||||
|
||||
/**
|
||||
* Base class for tests.
|
||||
*/
|
||||
class TMGMTBaseTestCase extends DrupalWebTestCase {
|
||||
protected $profile = 'testing';
|
||||
|
||||
/**
|
||||
* A default translator using the test translator.
|
||||
*
|
||||
* @var TMGMTTranslator
|
||||
*/
|
||||
protected $default_translator;
|
||||
|
||||
/**
|
||||
* List of permissions used by loginAsAdmin().
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $admin_permissions = array();
|
||||
|
||||
/**
|
||||
* Drupal user object created by loginAsAdmin().
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
protected $admin_user = NULL;
|
||||
|
||||
/**
|
||||
* List of permissions used by loginAsTranslator().
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $translator_permissions = array();
|
||||
|
||||
/**
|
||||
* Drupal user object created by loginAsTranslator().
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
protected $translator_user = NULL;
|
||||
|
||||
/**
|
||||
* Overrides DrupalWebTestCase::setUp()
|
||||
*/
|
||||
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');
|
||||
|
||||
// Load default admin permissions.
|
||||
$this->admin_permissions = array(
|
||||
'administer languages',
|
||||
'access administration pages',
|
||||
'administer content types',
|
||||
'administer tmgmt',
|
||||
);
|
||||
|
||||
// Load default translator user permissions.
|
||||
$this->translator_permissions = array(
|
||||
'create translation jobs',
|
||||
'submit translation jobs',
|
||||
'accept translation jobs',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Will create a user with admin permissions and log it in.
|
||||
*
|
||||
* @param array $additional_permissions
|
||||
* Additional permissions that will be granted to admin user.
|
||||
* @param boolean $reset_permissions
|
||||
* Flag to determine if default admin permissions will be replaced by
|
||||
* $additional_permissions.
|
||||
*
|
||||
* @return object
|
||||
* Newly created and logged in user object.
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Will create a user with translator permissions and log it in.
|
||||
*
|
||||
* @param array $additional_permissions
|
||||
* Additional permissions that will be granted to admin user.
|
||||
* @param boolean $reset_permissions
|
||||
* Flag to determine if default admin permissions will be replaced by
|
||||
* $additional_permissions.
|
||||
*
|
||||
* @return object
|
||||
* Newly created and logged in user object.
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates, saves and returns a translator.
|
||||
*
|
||||
* @return TMGMTTranslator
|
||||
*/
|
||||
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());
|
||||
|
||||
// Assert that the translator was assigned a tid.
|
||||
$this->assertTrue($translator->tid > 0);
|
||||
return $translator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates, saves and returns a translation job.
|
||||
*
|
||||
* @return TMGMTJob
|
||||
*/
|
||||
function createJob($source = 'en', $target = 'de', $uid = 1) {
|
||||
$job = tmgmt_job_create($source, $target, $uid);
|
||||
$this->assertEqual(SAVED_NEW, $job->save());
|
||||
|
||||
// Assert that the translator was assigned a tid.
|
||||
$this->assertTrue($job->tjid > 0);
|
||||
return $job;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the proper environment.
|
||||
*
|
||||
* Currently just adds a new language.
|
||||
*
|
||||
* @param string $langcode
|
||||
* The language code.
|
||||
*/
|
||||
function setEnvironment($langcode) {
|
||||
// Add the language.
|
||||
locale_add_language($langcode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts job item language codes.
|
||||
*
|
||||
* @param TMGMTJobItem $job_item
|
||||
* Job item to check.
|
||||
* @param string $expected_source_lang
|
||||
* Expected source language.
|
||||
* @param array $actual_lang_codes
|
||||
* Expected existing language codes (translations).
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds languages as admin user and switches to a translator user.
|
||||
*/
|
||||
protected function createLanguagesLoginTranslator($permissions = NULL) {
|
||||
// Login as admin to be able to set environment variables.
|
||||
$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;
|
||||
// Login as translator only with limited permissions to run these tests.
|
||||
$this->loginAsTranslator($permissions, TRUE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user