Security update for permissions_by_term
[yaffs-website] / vendor / behat / gherkin / tests / Behat / Gherkin / Filter / TagFilterTest.php
1 <?php
2
3 namespace Tests\Behat\Gherkin\Filter;
4
5 use Behat\Gherkin\Filter\TagFilter;
6 use Behat\Gherkin\Node\FeatureNode;
7 use Behat\Gherkin\Node\ScenarioNode;
8
9 class TagFilterTest extends \PHPUnit_Framework_TestCase
10 {
11     public function testFilterFeature()
12     {
13         $feature = new FeatureNode(null, null, array('wip'), null, array(), null, null, null, 1);
14         $filter = new TagFilter('@wip');
15         $this->assertEquals($feature, $filter->filterFeature($feature));
16
17         $scenarios = array(
18             new ScenarioNode(null, array(), array(), null, 2),
19             $matchedScenario = new ScenarioNode(null, array('wip'), array(), null, 4)
20         );
21         $feature = new FeatureNode(null, null, array(), null, $scenarios, null, null, null, 1);
22         $filteredFeature = $filter->filterFeature($feature);
23
24         $this->assertSame(array($matchedScenario), $filteredFeature->getScenarios());
25
26         $filter = new TagFilter('~@wip');
27         $scenarios = array(
28             $matchedScenario = new ScenarioNode(null, array(), array(), null, 2),
29             new ScenarioNode(null, array('wip'), array(), null, 4)
30         );
31         $feature = new FeatureNode(null, null, array(), null, $scenarios, null, null, null, 1);
32         $filteredFeature = $filter->filterFeature($feature);
33
34         $this->assertSame(array($matchedScenario), $filteredFeature->getScenarios());
35     }
36
37     public function testIsFeatureMatchFilter()
38     {
39         $feature = new FeatureNode(null, null, array(), null, array(), null, null, null, 1);
40
41         $filter = new TagFilter('@wip');
42         $this->assertFalse($filter->isFeatureMatch($feature));
43
44         $feature = new FeatureNode(null, null, array('wip'), null, array(), null, null, null, 1);
45         $this->assertTrue($filter->isFeatureMatch($feature));
46
47         $filter = new TagFilter('~@done');
48         $this->assertTrue($filter->isFeatureMatch($feature));
49
50         $feature = new FeatureNode(null, null, array('wip', 'done'), null, array(), null, null, null, 1);
51         $this->assertFalse($filter->isFeatureMatch($feature));
52
53         $feature = new FeatureNode(null, null, array('tag1', 'tag2', 'tag3'), null, array(), null, null, null, 1);
54         $filter = new TagFilter('@tag5,@tag4,@tag6');
55         $this->assertFalse($filter->isFeatureMatch($feature));
56
57         $feature = new FeatureNode(null, null, array(
58             'tag1',
59             'tag2',
60             'tag3',
61             'tag5'
62         ), null, array(), null, null, null, 1);
63         $this->assertTrue($filter->isFeatureMatch($feature));
64
65         $filter = new TagFilter('@wip&&@vip');
66         $feature = new FeatureNode(null, null, array('wip', 'done'), null, array(), null, null, null, 1);
67         $this->assertFalse($filter->isFeatureMatch($feature));
68
69         $feature = new FeatureNode(null, null, array('wip', 'done', 'vip'), null, array(), null, null, null, 1);
70         $this->assertTrue($filter->isFeatureMatch($feature));
71
72         $filter = new TagFilter('@wip,@vip&&@user');
73         $feature = new FeatureNode(null, null, array('wip'), null, array(), null, null, null, 1);
74         $this->assertFalse($filter->isFeatureMatch($feature));
75
76         $feature = new FeatureNode(null, null, array('vip'), null, array(), null, null, null, 1);
77         $this->assertFalse($filter->isFeatureMatch($feature));
78
79         $feature = new FeatureNode(null, null, array('wip', 'user'), null, array(), null, null, null, 1);
80         $this->assertTrue($filter->isFeatureMatch($feature));
81
82         $feature = new FeatureNode(null, null, array('vip', 'user'), null, array(), null, null, null, 1);
83         $this->assertTrue($filter->isFeatureMatch($feature));
84     }
85
86     public function testIsScenarioMatchFilter()
87     {
88         $feature = new FeatureNode(null, null, array('feature-tag'), null, array(), null, null, null, 1);
89         $scenario = new ScenarioNode(null, array(), array(), null, 2);
90
91         $filter = new TagFilter('@wip');
92         $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
93
94         $filter = new TagFilter('~@done');
95         $this->assertTrue($filter->isScenarioMatch($feature, $scenario));
96
97         $scenario = new ScenarioNode(null, array(
98             'tag1',
99             'tag2',
100             'tag3'
101         ), array(), null, 2);
102         $filter = new TagFilter('@tag5,@tag4,@tag6');
103         $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
104
105         $scenario = new ScenarioNode(null, array(
106             'tag1',
107             'tag2',
108             'tag3',
109             'tag5'
110         ), array(), null, 2);
111         $this->assertTrue($filter->isScenarioMatch($feature, $scenario));
112
113         $filter = new TagFilter('@wip&&@vip');
114         $scenario = new ScenarioNode(null, array('wip', 'not-done'), array(), null, 2);
115         $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
116
117         $scenario = new ScenarioNode(null, array(
118             'wip',
119             'not-done',
120             'vip'
121         ), array(), null, 2);
122         $this->assertTrue($filter->isScenarioMatch($feature, $scenario));
123
124         $filter = new TagFilter('@wip,@vip&&@user');
125         $scenario = new ScenarioNode(null, array(
126             'wip'
127         ), array(), null, 2);
128         $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
129
130         $scenario = new ScenarioNode(null, array('vip'), array(), null, 2);
131         $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
132
133         $scenario = new ScenarioNode(null, array('wip', 'user'), array(), null, 2);
134         $this->assertTrue($filter->isScenarioMatch($feature, $scenario));
135
136         $filter = new TagFilter('@feature-tag&&@user');
137         $scenario = new ScenarioNode(null, array('wip', 'user'), array(), null, 2);
138         $this->assertTrue($filter->isScenarioMatch($feature, $scenario));
139
140         $filter = new TagFilter('@feature-tag&&@user');
141         $scenario = new ScenarioNode(null, array('wip'), array(), null, 2);
142         $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
143     }
144 }