1 |
b720ea3e
|
Assos Assos
|
<?php
|
2 |
|
|
|
3 |
|
|
/**
|
4 |
|
|
* @file
|
5 |
|
|
* Views date pager test.
|
6 |
|
|
*/
|
7 |
|
|
|
8 |
|
|
class ViewsPagerTestCase extends DrupalWebTestCase {
|
9 |
|
|
/**
|
10 |
|
|
* Test info.
|
11 |
|
|
*/
|
12 |
|
|
public static function getInfo() {
|
13 |
|
|
return array(
|
14 |
|
|
'name' => 'Date views pager skipping test',
|
15 |
|
|
'description' => "Views date pager, option to skip empty pages test",
|
16 |
|
|
'group' => 'Date',
|
17 |
|
|
);
|
18 |
|
|
}
|
19 |
|
|
|
20 |
|
|
/**
|
21 |
|
|
* Test setup actions.
|
22 |
|
|
*/
|
23 |
|
|
public function setUp() {
|
24 |
|
|
// Load the 'date_views', 'views', 'views_ui', 'ctools' modules.
|
25 |
|
|
parent::setUp('date_views', 'views', 'views_ui', 'ctools');
|
26 |
|
|
// Set required permissions.
|
27 |
|
|
$permissions = array('administer views', 'administer site configuration');
|
28 |
|
|
// Create admin user and login.
|
29 |
|
|
$admin_user = $this->drupalCreateUser($permissions);
|
30 |
|
|
$this->drupalLogin($admin_user);
|
31 |
|
|
|
32 |
|
|
// Create a new view for test.
|
33 |
|
|
$view = new view();
|
34 |
|
|
$view->name = 'test_date_pager';
|
35 |
|
|
$view->description = '';
|
36 |
|
|
$view->tag = 'default';
|
37 |
|
|
$view->base_table = 'node';
|
38 |
|
|
$view->human_name = 'test_date_pager';
|
39 |
|
|
$view->core = 7;
|
40 |
|
|
$view->api_version = '3.0';
|
41 |
|
|
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
|
42 |
|
|
|
43 |
|
|
/* Display: Master */
|
44 |
|
|
$handler = $view->new_display('default', 'Master', 'default');
|
45 |
|
|
$handler->display->display_options['title'] = 'test_date_pager';
|
46 |
|
|
$handler->display->display_options['use_more_always'] = FALSE;
|
47 |
|
|
$handler->display->display_options['access']['type'] = 'perm';
|
48 |
|
|
$handler->display->display_options['cache']['type'] = 'none';
|
49 |
|
|
$handler->display->display_options['query']['type'] = 'views_query';
|
50 |
|
|
$handler->display->display_options['exposed_form']['type'] = 'basic';
|
51 |
|
|
$handler->display->display_options['pager']['type'] = 'date_views_pager';
|
52 |
|
|
$handler->display->display_options['pager']['options']['skip_empty_pages'] = 1;
|
53 |
|
|
$handler->display->display_options['style_plugin'] = 'default';
|
54 |
|
|
$handler->display->display_options['row_plugin'] = 'node';
|
55 |
|
|
/* Field: Content: Title */
|
56 |
|
|
$handler->display->display_options['fields']['title']['id'] = 'title';
|
57 |
|
|
$handler->display->display_options['fields']['title']['table'] = 'node';
|
58 |
|
|
$handler->display->display_options['fields']['title']['field'] = 'title';
|
59 |
|
|
$handler->display->display_options['fields']['title']['label'] = '';
|
60 |
|
|
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
|
61 |
|
|
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
|
62 |
|
|
/* Sort criterion: Content: Post date */
|
63 |
|
|
$handler->display->display_options['sorts']['created']['id'] = 'created';
|
64 |
|
|
$handler->display->display_options['sorts']['created']['table'] = 'node';
|
65 |
|
|
$handler->display->display_options['sorts']['created']['field'] = 'created';
|
66 |
|
|
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
|
67 |
|
|
/* Contextual filter: Date: Date (node) */
|
68 |
|
|
$handler->display->display_options['arguments']['date_argument']['id'] = 'date_argument';
|
69 |
|
|
$handler->display->display_options['arguments']['date_argument']['table'] = 'node';
|
70 |
|
|
$handler->display->display_options['arguments']['date_argument']['field'] = 'date_argument';
|
71 |
|
|
$handler->display->display_options['arguments']['date_argument']['default_action'] = 'default';
|
72 |
|
|
$handler->display->display_options['arguments']['date_argument']['default_argument_type'] = 'date';
|
73 |
|
|
$handler->display->display_options['arguments']['date_argument']['summary']['format'] = 'default_summary';
|
74 |
|
|
$handler->display->display_options['arguments']['date_argument']['granularity'] = 'hour';
|
75 |
|
|
$handler->display->display_options['arguments']['date_argument']['date_fields'] = array(
|
76 |
|
|
'node.created' => 'node.created',
|
77 |
|
|
);
|
78 |
|
|
/* Filter criterion: Content: Published */
|
79 |
|
|
$handler->display->display_options['filters']['status']['id'] = 'status';
|
80 |
|
|
$handler->display->display_options['filters']['status']['table'] = 'node';
|
81 |
|
|
$handler->display->display_options['filters']['status']['field'] = 'status';
|
82 |
|
|
$handler->display->display_options['filters']['status']['value'] = 1;
|
83 |
|
|
$handler->display->display_options['filters']['status']['group'] = 1;
|
84 |
|
|
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
|
85 |
|
|
|
86 |
|
|
/* Display: Page */
|
87 |
|
|
$handler = $view->new_display('page', 'Page', 'page_1');
|
88 |
|
|
$handler->display->display_options['path'] = 'test_date_pager';
|
89 |
|
|
|
90 |
|
|
$view->save();
|
91 |
|
|
}
|
92 |
|
|
|
93 |
|
|
/**
|
94 |
|
|
* Test pager skipping.
|
95 |
|
|
*/
|
96 |
|
|
public function testPagerSkipping() {
|
97 |
|
|
// Go to view admin page.
|
98 |
|
|
$this->drupalGet('admin/structure/views/view/display/test_date_pager/edit');
|
99 |
|
|
// Go to pager options.
|
100 |
|
|
$this->drupalGet('admin/structure/views/nojs/display/test_date_pager/default/pager_options');
|
101 |
|
|
// Check if "Skip empty pages" text - exist.
|
102 |
|
|
$this->assertText('Skip empty pages');
|
103 |
|
|
// Check if field and it's value is correct.
|
104 |
|
|
$this->assertFieldByName('pager_options[skip_empty_pages]', '1');
|
105 |
|
|
// Go back to view admin page.
|
106 |
|
|
$this->drupalGet('admin/structure/views/view/display/test_date_pager/edit');
|
107 |
|
|
// Check if pager on empty page are gone.
|
108 |
|
|
$this->assertNoText('« Prev', 'Previous pager does not exist');
|
109 |
|
|
$this->assertNoText('Next »', 'Next pager does not exist');
|
110 |
|
|
}
|
111 |
|
|
|
112 |
|
|
/**
|
113 |
|
|
* Test the view page has no PHP warnings.
|
114 |
|
|
*/
|
115 |
|
|
public function testPagerWarning() {
|
116 |
|
|
$this->drupalCreateNode(array('type' => 'blog'));
|
117 |
|
|
// Set pager to skip empty pages.
|
118 |
|
|
$edit = array(
|
119 |
|
|
'pager_options[skip_empty_pages]' => FALSE,
|
120 |
|
|
);
|
121 |
|
|
$this->drupalPost('admin/structure/views/nojs/display/test_date_pager/default/pager_options', $edit, t('Apply'));
|
122 |
|
|
// Save the view.
|
123 |
|
|
$this->drupalPost('admin/structure/views/view/test_date_pager/edit', array(), t('Save'));
|
124 |
|
|
|
125 |
|
|
// Visit view page. This will throw error, if any PHP warnings or errors.
|
126 |
|
|
$this->drupalGet('test_date_pager');
|
127 |
|
|
}
|
128 |
|
|
|
129 |
|
|
} |