class CDNUnitTestCase in CDN 7.2
@file Test CDN.
Hierarchy
- class \DrupalTestCase
- class \DrupalUnitTestCase
- class \CDNUnitTestCase
- class \DrupalUnitTestCase
Expanded class hierarchy of CDNUnitTestCase
File
- tests/
cdn.test, line 8 - Test CDN.
View source
class CDNUnitTestCase extends DrupalUnitTestCase {
function setUp() {
parent::setUp();
// Alter $_SERVER to include some relatively rarely set HTTP headers.
$alt_server = array(
'HTTP_ACCEPT_ENCODING',
'HTTPS' => 'off',
'HTTP_X_FORWARDED_PROTO' => 'http',
'HTTP_USER_AGENT' => $this
->randomName(),
);
$alt_server = array_merge($alt_server, $_SERVER);
$_SERVER = $alt_server;
$this
->setRequestProtocol('http');
// Enable the private:// stream wrapper.
$this
->variableSet('file_private_path', conf_path() . '/files/private');
// Pretend the CDN module is enabled; this ensures invocations of its own
// hook implementations will work as expected.
$cdn_module_file = drupal_get_path('module', 'cdn') . '/cdn.module';
$module_list['system']['filename'] = 'modules/system/system.module';
$module_list['cdn']['filename'] = $cdn_module_file;
module_list(TRUE, FALSE, FALSE, $module_list);
$implementations =& drupal_static('module_implements');
$implementations = array();
$this
->loadFile('cdn.constants.inc');
$this
->loadFile('cdn.module');
// Override $conf to be able to use variable_set() and variable_get() in
// DrupalUnitTestCase. At the same time, make sure we can restore the
// original values.
global $conf;
$this->originalConfig = $conf;
$this
->variableSetDefaults();
}
function tearDown() {
// Restore the original values that are used by variable_get().
global $conf;
$conf = $this->originalConfig;
parent::tearDown();
}
function loadFile($file) {
$cdn_path = DRUPAL_ROOT . '/' . drupal_get_path('module', 'cdn');
require_once "{$cdn_path}/{$file}";
}
/**
* Mock function for variable_set().
*/
function variableSet($name, $value) {
global $conf;
$conf[$name] = $value;
}
/**
* Set the default variable values for the CDN module.
*/
function variableSetDefaults() {
global $conf;
$this->defaultConfig = array(
CDN_STATUS_VARIABLE => CDN_ENABLED,
CDN_MODE_VARIABLE => FALSE,
CDN_HTTPS_SUPPORT_VARIABLE => FALSE,
CDN_BASIC_MAPPING_VARIABLE => '',
CDN_BASIC_MAPPING_HTTPS_VARIABLE => '',
CDN_BASIC_FARFUTURE_VARIABLE => FALSE,
CDN_SEO_REDIRECT_VARIABLE => TRUE,
);
$conf = array_merge($conf, $this->defaultConfig);
}
/**
* Set the protocol of the current "request".
*
* @param $protocol
* 'http' or 'https'.
*/
function setRequestProtocol($protocol) {
if ($protocol == 'http') {
$_SERVER['HTTPS'] = 'off';
$_SERVER['HTTP_X_FORWARDED_PROTO'] = 'http';
}
elseif ($protocol == 'https') {
$_SERVER['HTTPS'] = 'on';
$_SERVER['HTTP_X_FORWARDED_PROTO'] = 'https';
}
}
/**
* Set the User-Agent of the current "request".
*
* @param $ua
* A User-Agent, which can be almost any string.
*/
function setUserAgent($ua) {
$_SERVER['HTTP_USER_AGENT'] = $ua;
}
/**
* Configure HTTPS-related settings.
*
* @param $supported
* Boolean that indicates whether HTTPS is supported by the current CDN
* or not.
* @param $mapping
* The CDN mapping to use when the CDN supports HTTPS and the current
* request is happening over HTTPS.
*/
function configureHTTPS($supported, $mapping = '') {
$this
->variableSet(CDN_HTTPS_SUPPORT_VARIABLE, $supported);
$this
->variableSet(CDN_BASIC_MAPPING_HTTPS_VARIABLE, $mapping);
}
/**
* Given a file URI, get the expanded file path.
*
* @param $uri
* @see file_stream_wrapper_get_instance_by_uri()
* @return
* A Drupal root-relative path.
*/
function getExpandedFilePath($uri) {
$wrapper = file_stream_wrapper_get_instance_by_uri($uri);
return str_replace($GLOBALS['base_url'] . '/', '', $wrapper
->getExternalUrl());
}
/**
* Given a file URI, get its path, create the file and ensure it exists.
*
* @param $uri
* @see getExpandedFilePath()
*/
function touchFile($uri) {
$path = $this
->getExpandedFilePath($uri);
$this
->assertTrue(touch(rawurldecode($path)), 'Test file created.');
return $path;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CDNUnitTestCase:: |
function | Configure HTTPS-related settings. | ||
CDNUnitTestCase:: |
function | Given a file URI, get the expanded file path. | ||
CDNUnitTestCase:: |
function | |||
CDNUnitTestCase:: |
function | Set the protocol of the current "request". | ||
CDNUnitTestCase:: |
function |
Sets up unit test environment. Overrides DrupalUnitTestCase:: |
3 | |
CDNUnitTestCase:: |
function | Set the User-Agent of the current "request". | ||
CDNUnitTestCase:: |
function |
Overrides DrupalUnitTestCase:: |
||
CDNUnitTestCase:: |
function | Given a file URI, get its path, create the file and ensure it exists. | ||
CDNUnitTestCase:: |
function | Mock function for variable_set(). | ||
CDNUnitTestCase:: |
function | Set the default variable values for the CDN module. | ||
DrupalTestCase:: |
protected | property | Assertions thrown in that test case. | |
DrupalTestCase:: |
protected | property | The database prefix of this test run. | |
DrupalTestCase:: |
protected | property | The original file directory, before it was changed for testing purposes. | |
DrupalTestCase:: |
public | property | Current results of this test case. | |
DrupalTestCase:: |
protected | property | Flag to indicate whether the test has been set up. | |
DrupalTestCase:: |
protected | property | ||
DrupalTestCase:: |
protected | property | ||
DrupalTestCase:: |
protected | property | This class is skipped when looking for the source of an assertion. | |
DrupalTestCase:: |
protected | property | The test run ID. | |
DrupalTestCase:: |
protected | property | Time limit for the test. | |
DrupalTestCase:: |
public | property | Whether to cache the installation part of the setUp() method. | |
DrupalTestCase:: |
public | property | Whether to cache the modules installation part of the setUp() method. | |
DrupalTestCase:: |
protected | property | URL to the verbose output file directory. | |
DrupalTestCase:: |
protected | function | Internal helper: stores the assert. | |
DrupalTestCase:: |
protected | function | Check to see if two values are equal. | |
DrupalTestCase:: |
protected | function | Check to see if a value is false (an empty string, 0, NULL, or FALSE). | |
DrupalTestCase:: |
protected | function | Check to see if two values are identical. | |
DrupalTestCase:: |
protected | function | Check to see if two values are not equal. | |
DrupalTestCase:: |
protected | function | Check to see if two values are not identical. | |
DrupalTestCase:: |
protected | function | Check to see if a value is not NULL. | |
DrupalTestCase:: |
protected | function | Check to see if a value is NULL. | |
DrupalTestCase:: |
protected | function | Check to see if a value is not false (not an empty string, 0, NULL, or FALSE). | |
DrupalTestCase:: |
public static | function | Delete an assertion record by message ID. | |
DrupalTestCase:: |
protected | function | Fire an error assertion. | 1 |
DrupalTestCase:: |
public | function | Handle errors during test runs. | 1 |
DrupalTestCase:: |
protected | function | Handle exceptions. | |
DrupalTestCase:: |
protected | function | Fire an assertion that is always negative. | |
DrupalTestCase:: |
public static | function | Converts a list of possible parameters into a stack of permutations. | |
DrupalTestCase:: |
protected | function | Cycles through backtrace until the first non-assertion method is found. | |
DrupalTestCase:: |
public static | function | Returns the database connection to the site running Simpletest. | |
DrupalTestCase:: |
public static | function | Store an assertion from outside the testing context. | |
DrupalTestCase:: |
protected | function | Fire an assertion that is always positive. | |
DrupalTestCase:: |
public static | function | Generates a random string containing letters and numbers. | |
DrupalTestCase:: |
public static | function | Generates a random string of ASCII characters of codes 32 to 126. | |
DrupalTestCase:: |
public | function | Run all tests in this class. | |
DrupalTestCase:: |
protected | function | Logs a verbose message in a text file. | |
DrupalUnitTestCase:: |
function |
Constructor for DrupalUnitTestCase. Overrides DrupalTestCase:: |