views_table_highlighter.test in Views Table Highlighter 6
Test Views Table Highlighter.
File
tests/views_table_highlighter.testView source
<?php
/**
* @file
* Test Views Table Highlighter.
*/
class ViewsTableHighlighterTestCase extends DrupalWebTestCase {
public static function getInfo() {
return array(
'name' => 'views_table_highlighter',
'description' => 'Ensure that views_table_highlighter functions properly.',
'group' => 'Views',
);
}
public function setUp() {
parent::setUp('content', 'number', 'views', 'views_table_highlighter');
// make sure our immediate dependencies are enabled, since parent::setUp() doesn't check this for us
$this
->assertTrue(module_exists('views'), "views.module isn't installed");
// create a content type to populate
$content_type = $this
->drupalCreateContentType(array(
'type' => 'views_table_highlighter_test',
));
$this
->assertEqual($content_type->type, 'views_table_highlighter_test', "views_table_highlighter_test content type creation failed");
// add a field to our new content type
$field_test_number = array(
'field_name' => 'field_test_number',
'type_name' => 'views_table_highlighter_test',
'type' => 'number_integer',
'widget' => array(
'type' => 'number',
),
);
content_field_instance_create($field_test_number);
$created_field = content_fields('field_test_number', 'views_table_highlighter_test');
$this
->assertEqual($created_field['field_name'], 'field_test_number', "views_table_highlighter_test field creation failed");
// create some sample content
$numbers = array(
1,
2,
3,
);
foreach ($numbers as $number) {
$settings = array(
'type' => 'views_table_highlighter_test',
'field_test_number' => array(
'0' => array(
'value' => $number,
),
),
);
$node = $this
->drupalCreateNode($settings);
$this
->assertEqual($node->type, 'views_table_highlighter_test', "views_table_highlighter_test node creation failed");
$this
->assertEqual($node->field_test_number[0]['value'], $number, "views_table_highlighter_test node field data failed");
}
// add a view
$view = new view();
$view->name = 'views_table_highlighter_test';
$view->base_table = 'node';
$view->core = 6;
$view->api_version = '2';
$handler = $view
->new_display('default', 'Defaults', 'default');
$handler
->override_option('fields', array(
'field_test_number_value' => array(
'id' => 'field_test_number_value',
'table' => 'node_data_field_test_number',
'field' => 'field_test_number_value',
),
));
$handler
->override_option('items_per_page', 0);
$handler
->override_option('style_plugin', 'table_highlighter');
$handler
->override_option('style_options', array(
'views_table_highlighter' => array(
'code' => 'if ($node_data_field_test_number_field_test_number_value > 2) return \'red\';
if ($node_data_field_test_number_field_test_number_value == 2) return \'blue\';',
),
));
$view
->save();
$this
->assertNotNull(views_get_view('views_table_highlighter_test'), "views_table_highlighter_test view creation failed");
}
public function testNumberField() {
$this
->drupalSetContent(views_embed_view('views_table_highlighter_test'));
$rows = $this
->xpath("//table/tbody/tr");
// since we have 3 nodes, our table should have 3 rows.
$this
->assertEqual(3, count($rows), "view result doesn't have 3 rows");
// row 0 should be unlit
$attr = $rows[0]
->attributes();
$this
->assertEqual($attr['class'], 'odd views-row-first', "row 0 doesn't have the correct classes");
// row 1 should be blue
$attr = $rows[1]
->attributes();
$this
->assertEqual($attr['class'], 'even views-table-highlighter-blue', "row 1 doesn't have the correct classes");
// row 2 should be red
$attr = $rows[2]
->attributes();
$this
->assertEqual($attr['class'], 'odd views-row-last views-table-highlighter-red', "row 2 doesn't have the correct classes");
}
}
Classes
Name | Description |
---|---|
ViewsTableHighlighterTestCase | @file Test Views Table Highlighter. |