Commit | Line | Data |
---|---|---|
6a488035 TO |
1 | <?php |
2 | ||
aba1cd8b EM |
3 | /** |
4 | * Class CRM_Extension_InfoTest | |
5 | */ | |
6a488035 | 6 | class CRM_Extension_InfoTest extends CiviUnitTestCase { |
00be9182 | 7 | public function setUp() { |
6a488035 TO |
8 | parent::setUp(); |
9 | $this->file = NULL; | |
10 | } | |
11 | ||
00be9182 | 12 | public function tearDown() { |
6a488035 TO |
13 | if ($this->file) { |
14 | unlink($this->file); | |
15 | } | |
16 | parent::tearDown(); | |
17 | } | |
18 | ||
00be9182 | 19 | public function testGood_file() { |
6a488035 TO |
20 | $this->file = tempnam(sys_get_temp_dir(), 'infoxml-'); |
21 | file_put_contents($this->file, "<extension key='test.foo' type='module'><file>foo</file><typeInfo><extra>zamboni</extra></typeInfo></extension>"); | |
22 | ||
23 | $info = CRM_Extension_Info::loadFromFile($this->file); | |
24 | $this->assertEquals('test.foo', $info->key); | |
25 | $this->assertEquals('foo', $info->file); | |
26 | $this->assertEquals('zamboni', $info->typeInfo['extra']); | |
27 | } | |
28 | ||
00be9182 | 29 | public function testBad_file() { |
6a488035 TO |
30 | // <file> vs file> |
31 | $this->file = tempnam(sys_get_temp_dir(), 'infoxml-'); | |
32 | file_put_contents($this->file, "<extension key='test.foo' type='module'>file>foo</file></extension>"); | |
33 | ||
34 | $exc = NULL; | |
35 | try { | |
36 | $info = CRM_Extension_Info::loadFromFile($this->file); | |
0db6c3e1 TO |
37 | } |
38 | catch (CRM_Extension_Exception $e) { | |
6a488035 TO |
39 | $exc = $e; |
40 | } | |
41 | $this->assertTrue(is_object($exc)); | |
42 | } | |
43 | ||
00be9182 | 44 | public function testGood_string() { |
6a488035 TO |
45 | $data = "<extension key='test.foo' type='module'><file>foo</file><typeInfo><extra>zamboni</extra></typeInfo></extension>"; |
46 | ||
47 | $info = CRM_Extension_Info::loadFromString($data); | |
48 | $this->assertEquals('test.foo', $info->key); | |
49 | $this->assertEquals('foo', $info->file); | |
50 | $this->assertEquals('zamboni', $info->typeInfo['extra']); | |
51 | } | |
52 | ||
00be9182 | 53 | public function testBad_string() { |
6a488035 TO |
54 | // <file> vs file> |
55 | $data = "<extension key='test.foo' type='module'>file>foo</file></extension>"; | |
56 | ||
57 | $exc = NULL; | |
58 | try { | |
59 | $info = CRM_Extension_Info::loadFromString($data); | |
0db6c3e1 TO |
60 | } |
61 | catch (CRM_Extension_Exception $e) { | |
6a488035 TO |
62 | $exc = $e; |
63 | } | |
64 | $this->assertTrue(is_object($exc)); | |
65 | } | |
96025800 | 66 | |
6a488035 | 67 | } |