gmap.test in GMap Module 7
Same filename and directory in other branches
Unit tests for gmap.module.
File
tests/gmap.testView source
<?php
/**
* @file
* Unit tests for gmap.module.
*/
class GMapSimpleAPITest extends DrupalUnitTestCase {
public static function getInfo() {
return array(
'name' => 'GMap API sanity checks',
'description' => 'Test the simple API functions in the public GMap API.',
'group' => 'GMap',
);
}
public function setUp() {
drupal_load('module', 'gmap');
parent::setUp();
}
/**
* Verify gmap_todim().
*/
public function testGMapToDim() {
// Valid stuff
$this
->assertEqual(gmap_todim('500PX'), '500px', t('Testing case normalization'));
$this
->assertEqual(gmap_todim(' 500 px '), '500px', t('Testing spaces'));
$this
->assertEqual(gmap_todim('1.5em'), '1.5em', t('Testing em'));
$this
->assertEqual(gmap_todim('1.5ex'), '1.5ex', t('Testing ex'));
$this
->assertEqual(gmap_todim('1.5in'), '1.5in', t('Testing in'));
$this
->assertEqual(gmap_todim('1.5cm'), '1.5cm', t('Testing cm'));
$this
->assertEqual(gmap_todim('1.5mm'), '1.5mm', t('Testing mm'));
$this
->assertEqual(gmap_todim('1.5pt'), '1.5pt', t('Testing pt'));
$this
->assertEqual(gmap_todim('1.5pc'), '1.5pc', t('Testing pc'));
$this
->assertEqual(gmap_todim('150%'), '150%', t('Testing %'));
// Invalid stuff
$this
->assertEqual(gmap_todim('500pxBLUE SMURFpx'), FALSE, t('Testing invalid data'));
$this
->assertEqual(gmap_todim('500'), FALSE, t('Testing missing dimension type'));
$this
->assertEqual(gmap_todim(500), FALSE, t('Testing raw number'));
// REALLY invalid stuff
$this
->assertEqual(gmap_todim(NULL), FALSE, t('Testing invalid data (NULL)'));
$this
->assertEqual(gmap_todim(array()), FALSE, t('Testing invalid data (Array)'));
}
}
class GMapMacroTest extends DrupalUnitTestCase {
public static function getInfo() {
return array(
'name' => 'GMap Macro checks',
'description' => 'Test the ability to parse macros into map arrays.',
'group' => 'GMap',
);
}
public function setUp() {
parent::setUp();
require_once dirname(__FILE__) . '/../gmap.module';
}
public function testEmptyMacro() {
$macro = '';
$map = gmap_parse_macro($macro);
$this
->assertEqual(preg_match('/^auto\\d+map$/', $map['id']), 1, t('Testing ID injection'));
$this
->assertEqual(count($map), 1, t('Testing contents of map array.'));
$macro = '[gmap]';
$map = gmap_parse_macro($macro);
$this
->assertEqual(preg_match('/^auto\\d+map$/', $map['id']), 1, t('Testing ID injection'));
$this
->assertEqual(count($map), 1, t('Testing contents of map array.'));
$macro = '[gmap ]';
$map = gmap_parse_macro($macro);
$this
->assertEqual(preg_match('/^auto\\d+map$/', $map['id']), 1, t('Testing ID injection'));
$this
->assertEqual(count($map), 1, t('Testing contents of map array.'));
}
public function testMacroBehaviorFlags() {
$macro = '[gmap |behavior=+foobehavior +barbehavior -bazbehavior]';
$map = gmap_parse_macro($macro);
$b = $map['behavior'];
$this
->assertEqual($b['foobehavior'], TRUE, t('Testing +behavior'));
$this
->assertEqual($b['barbehavior'], TRUE, t('Testing another +behavior'));
$this
->assertEqual($b['bazbehavior'], FALSE, t('Testing -behavior'));
// NOT passing through default flags was a bug.
//$this->assertEqual(count($b), 3, t('Testing for leaked default flags'));
}
public function testMacroRenamedDirectives() {
$macro = '[gmap |type=Foo |control=Bar |behaviour=+baz |tcontrol=on]';
$map = gmap_parse_macro($macro);
$this
->assertEqual($map['maptype'], 'Foo', t('Testing type -> maptype conversion'));
$this
->assertEqual($map['controltype'], 'Bar', t('Testing control -> controltype conversion'));
$this
->assertEqual($map['behavior']['baz'], TRUE, t('Testing behaviour -> behavior conversion'));
$this
->assertEqual($map['mtc'], 'standard', t('Testing tcontrol -> mtc=standard'));
}
}
// wrapper for gmap.module web testing
class testGmapFormsTestCase extends DrupalWebTestCase {
protected $privileged_user;
public static function getInfo() {
return array(
'name' => 'GMAP Forms',
'description' => 'GMAP Forms WebTesting.',
'group' => 'GMap',
);
}
public function setUp() {
parent::setUp('gmap');
// Enable any modules required for the test
// Create and log in our user. The user has the arbitrary privilege
// 'extra special edit any simpletest_example' which the code uses
// to grant access.
$this->privileged_user = $this
->drupalCreateUser(array(
'administer site configuration',
));
$this
->drupalLogin($this->privileged_user);
}
// gmap_menu() test initial wrapper
public function testGmapSaveConfig() {
$edit = array();
$this
->drupalPost('admin/config/services/gmap', $edit, t('Save configuration'));
$this
->assertText(t('The configuration options have been saved.'));
}
/**
* Detect if we're running on PIFR testbot; skip intentional failure in that
* case. It happens that on the testbot the site under test is in a directory
* named 'checkout' or 'site_under_test'.
*
* @return boolean
* TRUE if running on testbot.
*/
public function runningOnTestbot() {
return file_exists("../checkout") || file_exists("../site_under_test");
}
}
// wrapper test for gmap_macro_builder module
class testGmapMacroFormsTestCase extends DrupalWebTestCase {
protected $privileged_user;
public static function getInfo() {
return array(
'name' => 'GMAP Macro Forms',
'description' => 'GMAP Macro Forms WebTesting.',
'group' => 'GMap',
);
}
public function setUp() {
parent::setUp('gmap_macro_builder');
// Enable any modules required for the test
drupal_load('module', 'gmap');
drupal_load('module', 'gmap_macro_builder');
// Create and log in our user. The user has the arbitrary privilege
// 'extra special edit any simpletest_example' which the code uses
// to grant access.
$this->privileged_user = $this
->drupalCreateUser(array(
'create gmap macro',
));
$this
->drupalLogin($this->privileged_user);
}
// gmap_macro_builder_menu() test initial wrapper
public function testMacroMenuExampleCreate() {
$this->privileged_user = $this
->drupalCreateUser(array(
'create gmap macro',
));
$this
->drupalLogin($this->privileged_user);
$edit = array();
$this
->drupalGet('map/macro', $edit);
$this
->assertText(t('You can use this interface to create a map macro suitable for pasting into a node or any other place that accepts a GMap macro.'));
}
/**
* Detect if we're running on PIFR testbot; skip intentional failure in that
* case. It happens that on the testbot the site under test is in a directory
* named 'checkout' or 'site_under_test'.
*
* @return boolean
* TRUE if running on testbot.
*/
public function runningOnTestbot() {
return file_exists("../checkout") || file_exists("../site_under_test");
}
}
// wrapper test for gmap_taxonomy module
class testGmapTaxonomyFormsTestCase extends DrupalWebTestCase {
protected $privileged_user;
public static function getInfo() {
return array(
'name' => 'GMAP Taxonomy',
'description' => 'GMAP Taxonomy WebTesting.',
'group' => 'GMap',
);
}
public function setUp() {
parent::setUp('gmap_taxonomy');
// Enable any modules required for the test
drupal_load('module', 'gmap');
drupal_load('module', 'gmap_taxonomy');
// Create and log in our user. The user has the arbitrary privilege
// 'extra special edit any simpletest_example' which the code uses
// to grant access.
$this->privileged_user = $this
->drupalCreateUser(array(
'administer taxonomy',
));
$this
->drupalLogin($this->privileged_user);
}
// gmap_macro_builder_menu() test initial wrapper
public function testMacroMenuExampleCreate() {
// Create node to edit.
$rname = $this
->randomName();
$edit = array(
'name' => $rname,
'machine_name' => 'gmap_taxonomy_test_voc',
'gmap_taxonomy_enable' => 1,
);
// create taxonomy vocabulary with gmap markers
$this
->drupalPost('admin/structure/taxonomy/add', $edit, t('Save'));
$this
->assertText(t('Created new vocabulary'));
// add taxonomy term with "small red" marker
$edit2 = array(
'name' => $this
->randomName(),
'gmap_taxonomy_marker' => 'small red',
);
$this
->drupalGet('admin/structure/taxonomy/gmap_taxonomy_test_voc/add', $edit);
$this
->assertText(t('GMap Marker'));
$this
->drupalPost('admin/structure/taxonomy/gmap_taxonomy_test_voc/add', $edit2, t('Save'));
$this
->assertText(t('Created new term'));
}
/**
* Detect if we're running on PIFR testbot; skip intentional failure in that
* case. It happens that on the testbot the site under test is in a directory
* named 'checkout' or 'site_under_test'.
*
* @return boolean
* TRUE if running on testbot.
*/
public function runningOnTestbot() {
return file_exists("../checkout") || file_exists("../site_under_test");
}
}
Classes
Name | Description |
---|---|
GMapMacroTest | |
GMapSimpleAPITest | @file Unit tests for gmap.module. |
testGmapFormsTestCase | |
testGmapMacroFormsTestCase | |
testGmapTaxonomyFormsTestCase |