123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <?php
- /**
- * @file
- * Views date pager test.
- */
- class ViewsPagerTestCase extends DrupalWebTestCase {
- /**
- * Test info.
- */
- public static function getInfo() {
- return array(
- 'name' => 'Date views pager skipping test',
- 'description' => "Views date pager, option to skip empty pages test",
- 'group' => 'Date',
- );
- }
- /**
- * Test setup actions.
- */
- public function setUp() {
- // Load the 'date_views', 'views', 'views_ui', 'ctools' modules.
- parent::setUp('date_views', 'views', 'views_ui', 'ctools');
- // Set required permissions.
- $permissions = array('administer views', 'administer site configuration');
- // Create admin user and login.
- $admin_user = $this->drupalCreateUser($permissions);
- $this->drupalLogin($admin_user);
- // Create a new view for test.
- $view = new view();
- $view->name = 'test_date_pager';
- $view->description = '';
- $view->tag = 'default';
- $view->base_table = 'node';
- $view->human_name = 'test_date_pager';
- $view->core = 7;
- $view->api_version = '3.0';
- $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
- /* Display: Master */
- $handler = $view->new_display('default', 'Master', 'default');
- $handler->display->display_options['title'] = 'test_date_pager';
- $handler->display->display_options['use_more_always'] = FALSE;
- $handler->display->display_options['access']['type'] = 'perm';
- $handler->display->display_options['cache']['type'] = 'none';
- $handler->display->display_options['query']['type'] = 'views_query';
- $handler->display->display_options['exposed_form']['type'] = 'basic';
- $handler->display->display_options['pager']['type'] = 'date_views_pager';
- $handler->display->display_options['pager']['options']['skip_empty_pages'] = 1;
- $handler->display->display_options['style_plugin'] = 'default';
- $handler->display->display_options['row_plugin'] = 'node';
- /* Field: Content: Title */
- $handler->display->display_options['fields']['title']['id'] = 'title';
- $handler->display->display_options['fields']['title']['table'] = 'node';
- $handler->display->display_options['fields']['title']['field'] = 'title';
- $handler->display->display_options['fields']['title']['label'] = '';
- $handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
- $handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
- /* Sort criterion: Content: Post date */
- $handler->display->display_options['sorts']['created']['id'] = 'created';
- $handler->display->display_options['sorts']['created']['table'] = 'node';
- $handler->display->display_options['sorts']['created']['field'] = 'created';
- $handler->display->display_options['sorts']['created']['order'] = 'DESC';
- /* Contextual filter: Date: Date (node) */
- $handler->display->display_options['arguments']['date_argument']['id'] = 'date_argument';
- $handler->display->display_options['arguments']['date_argument']['table'] = 'node';
- $handler->display->display_options['arguments']['date_argument']['field'] = 'date_argument';
- $handler->display->display_options['arguments']['date_argument']['default_action'] = 'default';
- $handler->display->display_options['arguments']['date_argument']['default_argument_type'] = 'date';
- $handler->display->display_options['arguments']['date_argument']['summary']['format'] = 'default_summary';
- $handler->display->display_options['arguments']['date_argument']['granularity'] = 'hour';
- $handler->display->display_options['arguments']['date_argument']['date_fields'] = array(
- 'node.created' => 'node.created',
- );
- /* Filter criterion: Content: Published */
- $handler->display->display_options['filters']['status']['id'] = 'status';
- $handler->display->display_options['filters']['status']['table'] = 'node';
- $handler->display->display_options['filters']['status']['field'] = 'status';
- $handler->display->display_options['filters']['status']['value'] = 1;
- $handler->display->display_options['filters']['status']['group'] = 1;
- $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
- /* Display: Page */
- $handler = $view->new_display('page', 'Page', 'page_1');
- $handler->display->display_options['path'] = 'test_date_pager';
- $view->save();
- }
- /**
- * Test pager skipping.
- */
- public function testPagerSkipping() {
- // Go to view admin page.
- $this->drupalGet('admin/structure/views/view/display/test_date_pager/edit');
- // Go to pager options.
- $this->drupalGet('admin/structure/views/nojs/display/test_date_pager/default/pager_options');
- // Check if "Skip empty pages" text - exist.
- $this->assertText('Skip empty pages');
- // Check if field and it's value is correct.
- $this->assertFieldByName('pager_options[skip_empty_pages]', '1');
- // Go back to view admin page.
- $this->drupalGet('admin/structure/views/view/display/test_date_pager/edit');
- // Check if pager on empty page are gone.
- $this->assertNoText('« Prev', 'Previous pager does not exist');
- $this->assertNoText('Next »', 'Next pager does not exist');
- }
- /**
- * Test the view page has no PHP warnings.
- */
- public function testPagerWarning() {
- $this->drupalCreateNode(array('type' => 'blog'));
- // Set pager to skip empty pages.
- $edit = array(
- 'pager_options[skip_empty_pages]' => FALSE,
- );
- $this->drupalPost('admin/structure/views/nojs/display/test_date_pager/default/pager_options', $edit, t('Apply'));
- // Save the view.
- $this->drupalPost('admin/structure/views/view/test_date_pager/edit', array(), t('Save'));
- // Visit view page. This will throw error, if any PHP warnings or errors.
- $this->drupalGet('test_date_pager');
- }
- }
|