MDL-64506 phpunit: Update unit tests to use classic
[moodle.git] / admin / tool / usertours / tests / theme_filter_test.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 /**
18  * Tests for theme filter.
19  *
20  * @package    tool_usertours
21  * @copyright  2016 Andrew Nicols <andrew@nicols.co.uk>
22  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 defined('MOODLE_INTERNAL') || die();
27 /**
28  * Tests for theme filter.
29  *
30  * @package    tool_usertours
31  * @copyright  2016 Andrew Nicols <andrew@nicols.co.uk>
32  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
33  */
34 class tool_usertours_theme_filter_testcase extends advanced_testcase {
36     /**
37      * Data Provider for filter_matches function.
38      *
39      * @return array
40      */
41     public function filter_matches_provider() {
42         return [
43             'No config set; Matches' => [
44                 null,
45                 'boost',
46                 true,
47             ],
48             'Empty config set; Matches' => [
49                 [],
50                 'boost',
51                 true,
52             ],
53             'Single matching value set; Matches' => [
54                 ['boost'],
55                 'boost',
56                 true,
57             ],
58             'Multiple values set including matching; Matches' => [
59                 ['boost', 'classic'],
60                 'boost',
61                 true,
62             ],
63             'Single value set; No match' => [
64                 ['classic'],
65                 'boost',
66                 false,
67             ],
68             'Multiple values set; No match' => [
69                 ['classic', 'artificial'],
70                 'boost',
71                 false,
72             ],
73         ];
74     }
76     /**
77      * Test the filter_matches function.
78      *
79      * @dataProvider    filter_matches_provider
80      * @param   array       $filtervalues   The filter values
81      * @param   string      $currenttheme   The name of the current theme
82      * @param   boolean     $expected       Whether the tour is expected to match
83      */
84     public function test_filter_matches($filtervalues, $currenttheme, $expected) {
85         global $PAGE;
87         $filtername = \tool_usertours\local\filter\theme::class;
89         // Note: No need to persist this tour.
90         $tour = new \tool_usertours\tour();
91         if ($filtervalues !== null) {
92             $tour->set_filter_values('theme', $filtervalues);
93         }
95         $PAGE->theme->name = $currenttheme;
97         // Note: The theme filter does not use the context.
98         $this->assertEquals($expected, $filtername::filter_matches($tour, \context_system::instance()));
99     }