-
Notifications
You must be signed in to change notification settings - Fork 36
/
ThemeTest.php
111 lines (94 loc) · 3.65 KB
/
ThemeTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
App::uses('Theme', 'Themes.Model');
class ThemeTest extends CakeTestCase {
public $fixtures = array(
'plugin.themes.theme',
'plugin.trash.trash',
);
public function startTest() {
$this->Theme = ClassRegistry::init('Themes.Theme');
$this->Theme->Behaviors->detach('Trashable');
}
public function endTest() {
unset($this->Theme);
ClassRegistry::flush();
}
public function testGetting() {
$expected['Theme'] = array(
'id' => 4,
'name' => 'aqueous_light',
'default_layout' => null,
'core' => false
);
$this->assertEqual($expected, $this->Theme->getCurrentTheme());
}
public function testSave() {
$result = $this->Theme->save(array('id' => 1, 'active' => true));
unset($result['Theme']['modified']);
$expected = array('Theme' => array('id' => 1, 'active' => true));
$this->assertEqual($result, $expected);
$result = $this->Theme->find('all');
$this->assertEqual($result[0]['Theme']['id'], 1);
$this->assertTrue($result[0]['Theme']['active']);
$this->assertFalse($result[1]['Theme']['active']);
$this->assertFalse($result[2]['Theme']['active']);
$this->assertFalse($result[3]['Theme']['active']);
$result = $this->Theme->save(array('id' => 2, 'active' => false));
unset($result['Theme']['modified']);
$expected = array('Theme' => array('id' => 2, 'active' => false));
$this->assertEqual($result, $expected);
$result = $this->Theme->find('all');
$this->assertEqual($result[0]['Theme']['id'], 1);
$this->assertTrue($result[0]['Theme']['active']);
$this->assertFalse($result[1]['Theme']['active']);
$this->assertFalse($result[2]['Theme']['active']);
$this->assertFalse($result[3]['Theme']['active']);
}
public function testKeepingOneActiveThemeAtATime() {
// adding a new theme that is active should be the only active one
$theme = $this->Theme->find('first', array('conditions' => array('Theme.active' => 0)));
unset($theme['Theme']['id']);
$theme['Theme']['active'] = 1;
$theme['Theme']['name'] = 'some new theme';
$this->Theme->save($theme);
$result = $this->Theme->find('count', array('conditions' => array('Theme.active' => 1)));
$expected = 1;
$this->assertEquals($expected, $result);
// making a theme active should be the only active one
$theme = $this->Theme->find('first', array('conditions' => array('Theme.active' => 0)));
$theme['Theme']['active'] = 1;
$this->Theme->save($theme);
$result = $this->Theme->find('count', array('conditions' => array('Theme.active' => 1)));
$expected = 1;
$this->assertEquals($expected, $result);
// deleteing an active theme should set another to active
$this->Theme->delete($theme['Theme']['id']);
$result = $this->Theme->find('count', array('conditions' => array('Theme.active' => 1)));
$expected = 1;
$this->assertEquals($expected, $result);
}
public function testDeactivateAll() {
$result = $this->Theme->find('count', array('conditions' => array('active' => 1)));
$this->assertEqual($result, 1);
$this->Theme->deactivateAll();
$result = $this->Theme->find('count', array('conditions' => array('active' => 1)));
$this->assertEqual($result, 0);
}
public function testInstalled() {
$result = $this->Theme->installed();
$expected = array(
'default' => 'Default',
'terrafirma' => 'Terrafirma',
'aqueous' => 'Aqueous',
'aqueous_light' => 'Aqueous Light'
);
$this->assertEqual($result, $expected);
}
public function testNotInstalled() {
//$result = $this->Theme->notInstalled();
}
public function testDelete() {
$this->assertFalse($this->Theme->delete(4));
$this->assertTrue($this->Theme->delete(1));
}
}