Projet

Général

Profil

Paste
Télécharger (2,56 ko) Statistiques
| Branche: | Révision:

root / htmltest / sites / all / modules / views / tests / handlers / views_handler_sort_random.test @ 4543c6c7

1
<?php
2

    
3
/**
4
 * @file
5
 * Definition of ViewsHandlerSortRandomTest.
6
 */
7

    
8
/**
9
 * Tests for core views_handler_sort_random handler.
10
 */
11
class ViewsHandlerSortRandomTest extends ViewsSqlTest {
12
  public static function getInfo() {
13
    return array(
14
      'name' => 'Sort: random',
15
      'description' => 'Test the core views_handler_sort_random handler.',
16
      'group' => 'Views Handlers',
17
    );
18
  }
19

    
20
  /**
21
   * Add more items to the test set, to make the order tests more robust.
22
   */
23
  protected function dataSet() {
24
    $data = parent::dataSet();
25
    for ($i = 0; $i < 50; $i++) {
26
      $data[] = array(
27
        'name' => 'name_' . $i,
28
        'age' => $i,
29
        'job' => 'job_' . $i,
30
        'created' => rand(0, time()),
31
      );
32
    }
33
    return $data;
34
  }
35

    
36
  /**
37
   * Return a basic view with random ordering.
38
   */
39
  protected function getBasicRandomView() {
40
    $view = $this->getBasicView();
41

    
42
    // Add a random ordering.
43
    $view->display['default']->handler->override_option('sorts', array(
44
      'random' => array(
45
        'id' => 'random',
46
        'field' => 'random',
47
        'table' => 'views',
48
      ),
49
    ));
50

    
51
    return $view;
52
  }
53

    
54
  /**
55
   * Tests random ordering of the result set.
56
   *
57
   * @see DatabaseSelectTestCase::testRandomOrder()
58
   */
59
  public function testRandomOrdering() {
60
    // Execute a basic view first.
61
    $view = $this->getBasicView();
62
    $this->executeView($view);
63

    
64
    // Verify the result.
65
    $this->assertEqual(count($this->dataSet()), count($view->result), t('The number of returned rows match.'));
66
    $this->assertIdenticalResultset($view, $this->dataSet(), array(
67
      'views_test_name' => 'name',
68
      'views_test_age' => 'age',
69
    ));
70

    
71
    // Execute a random view, we expect the result set to be different.
72
    $view_random = $this->getBasicRandomView();
73
    $this->executeView($view_random);
74
    $this->assertEqual(count($this->dataSet()), count($view_random->result), t('The number of returned rows match.'));
75
    $this->assertNotIdenticalResultset($view_random, $view->result, array(
76
      'views_test_name' => 'views_test_name',
77
      'views_test_age' => 'views_test_name',
78
    ));
79

    
80
    // Execute a second random view, we expect the result set to be different again.
81
    $view_random_2 = $this->getBasicRandomView();
82
    $this->executeView($view_random_2);
83
    $this->assertEqual(count($this->dataSet()), count($view_random_2->result), t('The number of returned rows match.'));
84
    $this->assertNotIdenticalResultset($view_random, $view->result, array(
85
      'views_test_name' => 'views_test_name',
86
      'views_test_age' => 'views_test_name',
87
    ));
88
  }
89
}