annotate sites/all/modules/flexslider/flexslider.test @ 9:830c812b520f

added smtp module
author root <root@paio.local>
date Mon, 28 Oct 2013 15:34:27 +0000
parents b74b41bb73f0
children
rev   line source
danielebarchiesi@2 1 <?php
danielebarchiesi@2 2
danielebarchiesi@2 3 /**
danielebarchiesi@2 4 * @file
danielebarchiesi@2 5 * Test cases for FlexSlider
danielebarchiesi@2 6 *
danielebarchiesi@2 7 * @author Mathew Winstone <mwinstone@coldfrontlabs.ca>
danielebarchiesi@2 8 */
danielebarchiesi@2 9
danielebarchiesi@2 10
danielebarchiesi@2 11 class FlexsliderTestCase extends DrupalWebTestCase {
danielebarchiesi@2 12 protected $admin_user;
danielebarchiesi@2 13 protected $any_user;
danielebarchiesi@2 14
danielebarchiesi@2 15 public static function getInfo() {
danielebarchiesi@2 16 return array(
danielebarchiesi@2 17 'name' => t('FlexSlider tests'),
danielebarchiesi@2 18 'description' => t('Test the FlexSlider presets, configuration options and permission controls.'),
danielebarchiesi@2 19 'group' => t('FlexSlider'),
danielebarchiesi@2 20 );
danielebarchiesi@2 21 }
danielebarchiesi@2 22
danielebarchiesi@2 23 function setUp() {
danielebarchiesi@2 24 parent::setUp('libraries', 'ctools', 'flexslider');
danielebarchiesi@2 25
danielebarchiesi@2 26 // Create users
danielebarchiesi@2 27 $this->admin_user = $this->drupalCreateUser(array('administer flexslider'));
danielebarchiesi@2 28 $this->any_user = $this->drupalCreateuser(array('access administration pages'));
danielebarchiesi@2 29 }
danielebarchiesi@2 30
danielebarchiesi@2 31 function testAdminAccess() {
danielebarchiesi@2 32
danielebarchiesi@2 33 // Login as the admin user
danielebarchiesi@2 34 $this->drupalLogin($this->admin_user);
danielebarchiesi@2 35
danielebarchiesi@2 36 // Load admin page
danielebarchiesi@2 37 $this->drupalGet('admin/config/media/flexslider');
danielebarchiesi@2 38 $this->assertResponse(200, t('Administrative permission allows access to administration page.'));
danielebarchiesi@2 39
danielebarchiesi@2 40 // Logout as admin user
danielebarchiesi@2 41 $this->drupalLogout();
danielebarchiesi@2 42
danielebarchiesi@2 43 // Login as any user
danielebarchiesi@2 44 $this->drupalLogin($this->any_user);
danielebarchiesi@2 45
danielebarchiesi@2 46 // Attempt to load admin page
danielebarchiesi@2 47 $this->drupalGet('admin/config/media/flexslider');
danielebarchiesi@2 48 $this->assertResponse(403, t('Regular users do not have access to administrative pages.'));
danielebarchiesi@2 49 }
danielebarchiesi@2 50
danielebarchiesi@2 51 function testOptionSetCrud() {
danielebarchiesi@2 52 // Login as the admin user
danielebarchiesi@2 53 $this->drupalLogin($this->admin_user);
danielebarchiesi@2 54 $testsets = array('testset', 'testset2');
danielebarchiesi@2 55
danielebarchiesi@2 56 foreach ($testsets as $name) {
danielebarchiesi@2 57 // Create a new optionset with default settings
danielebarchiesi@2 58 $optionset = flexslider_optionset_create(array('name' => $name));
danielebarchiesi@2 59 $this->assertTrue($optionset->name == $name, t('Optionset object created: @name', array('@name' => $optionset->name)));
danielebarchiesi@2 60 $this->assertFalse(empty($optionset->options), t('Create optionset works.'));
danielebarchiesi@2 61
danielebarchiesi@2 62 // Save the optionset to the database
danielebarchiesi@2 63 $optionset = flexslider_optionset_save($optionset, TRUE);
danielebarchiesi@2 64 $this->assertFalse(FALSE === $optionset, t('Optionset saved to database.'));
danielebarchiesi@2 65
danielebarchiesi@2 66 // Read the values from the database
danielebarchiesi@2 67 $optionset = flexslider_optionset_load($name);
danielebarchiesi@2 68
danielebarchiesi@2 69 $this->assertTrue(is_object($optionset), t('Loaded option set.'));
danielebarchiesi@2 70 $this->assertEqual($name, $optionset->name, t('Loaded name matches: @name', array('@name' => $optionset->name)));
danielebarchiesi@2 71
danielebarchiesi@2 72 $default_optionset = flexslider_optionset_create();
danielebarchiesi@2 73 foreach ($default_optionset->options as $key => $value) {
danielebarchiesi@2 74 $this->assertEqual($value, $optionset->options[$key], t('Option @option matches saved value.', array('@option' => $key)));
danielebarchiesi@2 75 }
danielebarchiesi@2 76
danielebarchiesi@2 77 }
danielebarchiesi@2 78
danielebarchiesi@2 79 // Load all optionsets
danielebarchiesi@2 80 $optionsets = flexslider_optionset_load_all();
danielebarchiesi@2 81 $this->assertTrue(is_array($optionsets), t('Array of optionsets loaded'));
danielebarchiesi@2 82 $this->assertTrue(count($optionsets) == 3, t('Proper number of optionsets loaded (two created, one default): 3'));
danielebarchiesi@2 83
danielebarchiesi@2 84 // Ensure they all loaded correctly
danielebarchiesi@2 85 foreach ($optionsets as $optionset) {
danielebarchiesi@2 86 $this->assertTrue(isset($optionset->name), t('Loaded optionsets have a defined machine name'));
danielebarchiesi@2 87 $this->assertTrue(isset($optionset->title), t('Loaded optionsets have a defined human readable name (title)'));
danielebarchiesi@2 88 $this->assertTrue(isset($optionset->options), t('Loaded optionsets have a defined array of options'));
danielebarchiesi@2 89 }
danielebarchiesi@2 90
danielebarchiesi@2 91 // Update the optionset
danielebarchiesi@2 92 $test_options = _flexslider_test_options();
danielebarchiesi@2 93 $test_options = $test_options['valid'];
danielebarchiesi@2 94
danielebarchiesi@2 95 // Load one of the test option sets
danielebarchiesi@2 96 $optionset = flexslider_optionset_load($testsets[0]);
danielebarchiesi@2 97
danielebarchiesi@2 98 // Change the settings
danielebarchiesi@2 99 $optionset->options += $test_options['set2'];
danielebarchiesi@2 100
danielebarchiesi@2 101 // Save the updated values
danielebarchiesi@2 102 $optionset = flexslider_optionset_save($optionset);
danielebarchiesi@2 103 $this->assertFalse(FALSE == $optionset, t('Saved updates to optionset to database.'));
danielebarchiesi@2 104
danielebarchiesi@2 105 // Load the values from the database again
danielebarchiesi@2 106 $optionset = flexslider_optionset_load($testsets[0]);
danielebarchiesi@2 107
danielebarchiesi@2 108 // Compare settings to the test options
danielebarchiesi@2 109 foreach ($test_options['set2'] as $key => $value) {
danielebarchiesi@2 110 $this->assertEqual($optionset->options[$key], $value, t('Saved value matches set value: @key', array('@key' => $key)));
danielebarchiesi@2 111 }
danielebarchiesi@2 112
danielebarchiesi@2 113 // Delete the optionset
danielebarchiesi@2 114 $this->assertTrue(flexslider_optionset_exists($optionset->name), t('Optionset exists and is ready to be deleted.'));
danielebarchiesi@2 115 flexslider_optionset_delete($optionset->name);
danielebarchiesi@2 116
danielebarchiesi@2 117 // Ensure the delete is successfull
danielebarchiesi@2 118 $this->assertFalse(flexslider_optionset_exists($optionset->name), t('Optionset successfully deleted: @name', array('@name' => $optionset->name)));
danielebarchiesi@2 119 }
danielebarchiesi@2 120
danielebarchiesi@2 121 function testOptionSetForm() {
danielebarchiesi@2 122
danielebarchiesi@2 123 // Login with admin user
danielebarchiesi@2 124 $this->drupalLogin($this->admin_user);
danielebarchiesi@2 125
danielebarchiesi@2 126 // ------------ Test Option Set Add ------------ //
danielebarchiesi@2 127 // Load create form
danielebarchiesi@2 128 $this->drupalGet('admin/config/media/flexslider/add');
danielebarchiesi@2 129 $this->assertResponse(200, t('Administrative user can reach the "Add" form.'));
danielebarchiesi@2 130
danielebarchiesi@2 131 // Save new optionset
danielebarchiesi@2 132 $optionset = array();
danielebarchiesi@2 133 $optionset['title'] = 'testset';
danielebarchiesi@2 134 $optionset['name'] = 'testset';
danielebarchiesi@2 135 $this->drupalPost('admin/config/media/flexslider/add', $optionset, t('Save'));
danielebarchiesi@2 136 $this->assertResponse(200);
danielebarchiesi@2 137 $this->assertText('testset has been created.', t('Successfully saved the new optionset "testset"'));
danielebarchiesi@2 138
danielebarchiesi@2 139 // Attempt to save option set of the same name again
danielebarchiesi@2 140 $this->drupalPost('admin/config/media/flexslider/add', $optionset, t('Save'));
danielebarchiesi@2 141 $this->assertResponse(200);
danielebarchiesi@2 142 $this->assertText("The machine-readable name is already in use. It must be unique.", t("Blocked the creation of duplicate named optionset."));
danielebarchiesi@2 143
danielebarchiesi@2 144 // ------------ Test Option Set Edit ------------ //
danielebarchiesi@2 145 // Attempt to save each option value
danielebarchiesi@2 146 $options = _flexslider_test_options();
danielebarchiesi@2 147
danielebarchiesi@2 148 foreach ($options['valid'] as $testset) {
danielebarchiesi@2 149 $this->drupalPost('admin/config/media/flexslider/list/default/edit', $testset, t('Save'));
danielebarchiesi@2 150 $this->assertResponse(200);
danielebarchiesi@2 151
danielebarchiesi@2 152 // Test saved values loaded into form
danielebarchiesi@2 153 $this->drupalGet('admin/config/media/flexslider/list/default/edit');
danielebarchiesi@2 154 $this->assertResponse(200, t('Default optionset reloaded.'));
danielebarchiesi@2 155 foreach ($testset as $key => $option) {
danielebarchiesi@2 156 $this->assertFieldByName($key, $option, t('Value for @key appears in form correctly.', array('@key' => $key)));
danielebarchiesi@2 157 }
danielebarchiesi@2 158 }
danielebarchiesi@2 159
danielebarchiesi@2 160 // ------------ Test Option Set Delete ------------ //
danielebarchiesi@2 161 $testset = flexslider_optionset_load('testset');
danielebarchiesi@2 162
danielebarchiesi@2 163 // Test the delete workflow
danielebarchiesi@2 164 $this->drupalGet("admin/config/media/flexslider/list/$testset->name/delete");
danielebarchiesi@2 165 $this->assertResponse(200);
danielebarchiesi@2 166 $this->assertText("Are you sure you want to delete $testset->name?", t('Delete confirmation form loaded.'));
danielebarchiesi@2 167 $this->drupalPost("admin/config/media/flexslider/list/$testset->name/delete", '', 'Delete');
danielebarchiesi@2 168 $this->assertResponse(200);
danielebarchiesi@2 169 $this->assertText("The item has been deleted.", t('Deleted test set using form.'));
danielebarchiesi@2 170 }
danielebarchiesi@2 171
danielebarchiesi@2 172 }
danielebarchiesi@2 173
danielebarchiesi@2 174 /**
danielebarchiesi@2 175 * Test configuration options
danielebarchiesi@2 176 *
danielebarchiesi@2 177 * @return array
danielebarchiesi@2 178 * Returns an array of options to test saving.
danielebarchiesi@2 179 */
danielebarchiesi@2 180 function _flexslider_test_options() {
danielebarchiesi@2 181 // Valid option set data
danielebarchiesi@2 182 $valid = array(
danielebarchiesi@2 183 'set1' => _flexslider_optionset_defaults(),
danielebarchiesi@2 184 'set2' => array(
danielebarchiesi@2 185 'animation' => 'slide',
danielebarchiesi@2 186 'startAt' => 4,
danielebarchiesi@2 187 // @todo add more option tests
danielebarchiesi@2 188 ),
danielebarchiesi@2 189 );
danielebarchiesi@2 190
danielebarchiesi@2 191 // Invalid edge cases
danielebarchiesi@2 192 $error = array();
danielebarchiesi@2 193
danielebarchiesi@2 194 return array('valid' => $valid, 'error' => $error);
danielebarchiesi@2 195 }