Projet

Général

Profil

Paste
Télécharger (5,78 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / date / date_views / tests / date_views_pager.test @ 599a39cd

1
<?php
2

    
3
/**
4
 * @file
5
 * Views date pager test.
6
 */
7
/**
8
 *
9
 */
10
class ViewsPagerTestCase extends DrupalWebTestCase {
11
  /**
12
   * Test info.
13
   */
14
  public static function getInfo() {
15
    return array(
16
      'name' => 'Date views pager skipping test',
17
      'description' => "Views date pager, option to skip empty pages test",
18
      'group' => 'Date',
19
      'dependencies' => array('ctools', 'views'),
20
    );
21
  }
22

    
23
  /**
24
   * {@inheritdoc}
25
   */
26
  public function setUp(array $modules = array()) {
27
    $modules[] = 'date_views';
28
    $modules[] = 'ctools';
29
    $modules[] = 'views';
30
    $modules[] = 'views_ui';
31
    parent::setUp($modules);
32

    
33
    // Create admin user and login.
34
    $perms = array('administer views', 'administer site configuration');
35
    $admin_user = $this->drupalCreateUser($perms);
36
    $this->drupalLogin($admin_user);
37

    
38
    // Create a new view for test.
39
    $view = new view();
40
    $view->name = 'test_date_pager';
41
    $view->description = '';
42
    $view->tag = 'default';
43
    $view->base_table = 'node';
44
    $view->human_name = 'test_date_pager';
45
    $view->core = 7;
46
    $view->api_version = '3.0';
47
    $view->disabled = FALSE; /* Edit this to TRUE to make a default view disabled initially */
48

    
49
    /* Display: Master */
50
    $handler = $view->new_display('default', 'Master', 'default');
51
    $handler->display->display_options['title'] = 'test_date_pager';
52
    $handler->display->display_options['use_more_always'] = FALSE;
53
    $handler->display->display_options['access']['type'] = 'perm';
54
    $handler->display->display_options['cache']['type'] = 'none';
55
    $handler->display->display_options['query']['type'] = 'views_query';
56
    $handler->display->display_options['exposed_form']['type'] = 'basic';
57
    $handler->display->display_options['pager']['type'] = 'date_views_pager';
58
    $handler->display->display_options['pager']['options']['skip_empty_pages'] = 1;
59
    $handler->display->display_options['style_plugin'] = 'default';
60
    $handler->display->display_options['row_plugin'] = 'node';
61
    /* Field: Content: Title */
62
    $handler->display->display_options['fields']['title']['id'] = 'title';
63
    $handler->display->display_options['fields']['title']['table'] = 'node';
64
    $handler->display->display_options['fields']['title']['field'] = 'title';
65
    $handler->display->display_options['fields']['title']['label'] = '';
66
    $handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
67
    $handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
68
    /* Sort criterion: Content: Post date */
69
    $handler->display->display_options['sorts']['created']['id'] = 'created';
70
    $handler->display->display_options['sorts']['created']['table'] = 'node';
71
    $handler->display->display_options['sorts']['created']['field'] = 'created';
72
    $handler->display->display_options['sorts']['created']['order'] = 'DESC';
73
    /* Contextual filter: Date: Date (node) */
74
    $handler->display->display_options['arguments']['date_argument']['id'] = 'date_argument';
75
    $handler->display->display_options['arguments']['date_argument']['table'] = 'node';
76
    $handler->display->display_options['arguments']['date_argument']['field'] = 'date_argument';
77
    $handler->display->display_options['arguments']['date_argument']['default_action'] = 'default';
78
    $handler->display->display_options['arguments']['date_argument']['default_argument_type'] = 'date';
79
    $handler->display->display_options['arguments']['date_argument']['summary']['format'] = 'default_summary';
80
    $handler->display->display_options['arguments']['date_argument']['granularity'] = 'hour';
81
    $handler->display->display_options['arguments']['date_argument']['date_fields'] = array(
82
      'node.created' => 'node.created',
83
    );
84
    /* Filter criterion: Content: Published */
85
    $handler->display->display_options['filters']['status']['id'] = 'status';
86
    $handler->display->display_options['filters']['status']['table'] = 'node';
87
    $handler->display->display_options['filters']['status']['field'] = 'status';
88
    $handler->display->display_options['filters']['status']['value'] = 1;
89
    $handler->display->display_options['filters']['status']['group'] = 1;
90
    $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
91

    
92
    /* Display: Page */
93
    $handler = $view->new_display('page', 'Page', 'page_1');
94
    $handler->display->display_options['path'] = 'test_date_pager';
95

    
96
    $view->save();
97
  }
98

    
99
  /**
100
   * Test pager skipping.
101
   */
102
  public function testPagerSkipping() {
103
    // Go to view admin page.
104
    $this->drupalGet('admin/structure/views/view/display/test_date_pager/edit');
105
    // Go to pager options.
106
    $this->drupalGet('admin/structure/views/nojs/display/test_date_pager/default/pager_options');
107
    // Check if "Skip empty pages" text - exist.
108
    $this->assertText('Skip empty pages');
109
    // Check if field and it's value is correct.
110
    $this->assertFieldByName('pager_options[skip_empty_pages]', '1');
111
    // Go back to view admin page.
112
    $this->drupalGet('admin/structure/views/view/display/test_date_pager/edit');
113
    // Check if pager on empty page are gone.
114
    $this->assertNoText('« Prev', 'Previous pager does not exist');
115
    $this->assertNoText('Next »', 'Next pager does not exist');
116
  }
117

    
118
  /**
119
   * Test the view page has no PHP warnings.
120
   */
121
  public function testPagerWarning() {
122
    $this->drupalCreateNode(array('type' => 'blog'));
123

    
124
    // Set pager to skip empty pages.
125
    $edit = array(
126
      'pager_options[skip_empty_pages]' => FALSE,
127
    );
128
    $this->drupalPost('admin/structure/views/nojs/display/test_date_pager/default/pager_options', $edit, t('Apply'));
129

    
130
    // Save the view.
131
    $this->drupalPost('admin/structure/views/view/test_date_pager/edit', array(), t('Save'));
132

    
133
    // Visit view page. This will throw error, if any PHP warnings or errors.
134
    $this->drupalGet('test_date_pager');
135
  }
136

    
137
}