MDL-64506 phpunit: Update unit tests to use classic
[moodle.git] / admin / tool / usertours / tests / theme_filter_test.php
CommitLineData
001fc061
AN
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/>.
16
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 */
24
25defined('MOODLE_INTERNAL') || die();
26
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 */
34class tool_usertours_theme_filter_testcase extends advanced_testcase {
35
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' => [
e00f1c66 59 ['boost', 'classic'],
001fc061
AN
60 'boost',
61 true,
62 ],
63 'Single value set; No match' => [
e00f1c66 64 ['classic'],
001fc061
AN
65 'boost',
66 false,
67 ],
68 'Multiple values set; No match' => [
e00f1c66 69 ['classic', 'artificial'],
001fc061
AN
70 'boost',
71 false,
72 ],
73 ];
74 }
75
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 */
cfc561d0 84 public function test_filter_matches($filtervalues, $currenttheme, $expected) {
001fc061
AN
85 global $PAGE;
86
cfc561d0 87 $filtername = \tool_usertours\local\filter\theme::class;
001fc061 88
cfc561d0
DM
89 // Note: No need to persist this tour.
90 $tour = new \tool_usertours\tour();
001fc061
AN
91 if ($filtervalues !== null) {
92 $tour->set_filter_values('theme', $filtervalues);
93 }
94
95 $PAGE->theme->name = $currenttheme;
96
cfc561d0
DM
97 // Note: The theme filter does not use the context.
98 $this->assertEquals($expected, $filtername::filter_matches($tour, \context_system::instance()));
99 }
001fc061 100}