Projet

Général

Profil

Paste
Télécharger (1,94 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / ctools / tests / math_expression_stack.test @ 6e3ce7c2

1 85ad3d82 Assos Assos
<?php
2
3
/**
4
 * Tests the simple MathExpressionStack class.
5
 */
6
class CtoolsMathExpressionStackTestCase extends DrupalWebTestCase {
7 7e72b748 Assos Assos
8
  /**
9 c304a780 Assos Assos
   * {@inheritdoc}
10 7e72b748 Assos Assos
   */
11 85ad3d82 Assos Assos
  public static function getInfo() {
12
    return array(
13 7e72b748 Assos Assos
      'name' => 'Math expressions stack',
14 85ad3d82 Assos Assos
      'description' => 'Test the stack class of the math expression library.',
15 1e39edcb Assos Assos
      'group' => 'ctools',
16 7e72b748 Assos Assos
      'dependencies' => array('ctools'),
17 85ad3d82 Assos Assos
    );
18
  }
19
20 7e72b748 Assos Assos
  /**
21 c304a780 Assos Assos
   * {@inheritdoc}
22 7e72b748 Assos Assos
   */
23 c304a780 Assos Assos
  public function setUp(array $modules = array()) {
24 7e72b748 Assos Assos
    $modules[] = 'ctools';
25
    $modules[] = 'ctools_plugin_test';
26
    parent::setUp($modules);
27 85ad3d82 Assos Assos
  }
28
29 7e72b748 Assos Assos
  /**
30
   * Test the math expression stack system.
31
   */
32 85ad3d82 Assos Assos
  public function testStack() {
33
    $stack = new ctools_math_expr_stack();
34
35
    // Test the empty stack.
36
    $this->assertNull($stack->last());
37
    $this->assertNull($stack->pop());
38
39
    // Add an element and see whether it's the right element.
40
    $value = $this->randomName();
41
    $stack->push($value);
42
    $this->assertIdentical($value, $stack->last());
43
    $this->assertIdentical($value, $stack->pop());
44
    $this->assertNull($stack->pop());
45
46 7e72b748 Assos Assos
    // Add multiple elements and see whether they are returned in the right
47
    // order.
48 85ad3d82 Assos Assos
    $values = array($this->randomName(), $this->randomName(), $this->randomName());
49
    foreach ($values as $value) {
50
      $stack->push($value);
51
    }
52
53 7e72b748 Assos Assos
    // Test the different elements at different positions with the last()
54
    // method.
55 85ad3d82 Assos Assos
    $count = count($values);
56
    foreach ($values as $key => $value) {
57
      $this->assertEqual($value, $stack->last($count - $key));
58
    }
59
60
    // Pass in a non-valid number to last.
61
    $non_valid_number = rand(10, 20);
62
    $this->assertNull($stack->last($non_valid_number));
63
64
    // Test the order of the poping.
65
    $values = array_reverse($values);
66
    foreach ($values as $key => $value) {
67
      $this->assertEqual($stack->last(), $value);
68
      $this->assertEqual($stack->pop(), $value);
69
    }
70
    $this->assertNull($stack->pop());
71
  }
72 7e72b748 Assos Assos
73 85ad3d82 Assos Assos
}