You are here

function FlexsliderTestCase::testOptionSetForm in Flex Slider 7.2

File

./flexslider.test, line 121
Test cases for FlexSlider

Class

FlexsliderTestCase
@file Test cases for FlexSlider

Code

function testOptionSetForm() {

  // Login with admin user
  $this
    ->drupalLogin($this->admin_user);

  // ------------ Test Option Set Add ------------ //
  // Load create form
  $this
    ->drupalGet('admin/config/media/flexslider/add');
  $this
    ->assertResponse(200, t('Administrative user can reach the "Add" form.'));

  // Save new optionset
  $optionset = array();
  $optionset['title'] = 'testset';
  $optionset['name'] = 'testset';
  $this
    ->drupalPost('admin/config/media/flexslider/add', $optionset, t('Save'));
  $this
    ->assertResponse(200);
  $this
    ->assertText('testset has been created.', t('Successfully saved the new optionset "testset"'));

  // Attempt to save option set of the same name again
  $this
    ->drupalPost('admin/config/media/flexslider/add', $optionset, t('Save'));
  $this
    ->assertResponse(200);
  $this
    ->assertText("The machine-readable name is already in use. It must be unique.", t("Blocked the creation of duplicate named optionset."));

  // ------------ Test Option Set Edit ------------ //
  // Attempt to save each option value
  $options = _flexslider_test_options();
  foreach ($options['valid'] as $testset) {
    $this
      ->drupalPost('admin/config/media/flexslider/list/default/edit', $testset, t('Save'));
    $this
      ->assertResponse(200);

    // Test saved values loaded into form
    $this
      ->drupalGet('admin/config/media/flexslider/list/default/edit');
    $this
      ->assertResponse(200, t('Default optionset reloaded.'));
    foreach ($testset as $key => $option) {
      $this
        ->assertFieldByName($key, $option, t('Value for @key appears in form correctly.', array(
        '@key' => $key,
      )));
    }
  }

  // ------------ Test Option Set Delete ------------ //
  $testset = flexslider_optionset_load('testset');

  // Test the delete workflow
  $this
    ->drupalGet("admin/config/media/flexslider/list/{$testset->name}/delete");
  $this
    ->assertResponse(200);
  $this
    ->assertText("Are you sure you want to delete {$testset->name}?", t('Delete confirmation form loaded.'));
  $this
    ->drupalPost("admin/config/media/flexslider/list/{$testset->name}/delete", '', 'Delete');
  $this
    ->assertResponse(200);
  $this
    ->assertText("The item has been deleted.", t('Deleted test set using form.'));
}