2 // vim: foldmethod=marker
4 * Ethna_Plugin_Handle_AddTemplate_Test.php
6 * @author Yoshinari Takaoka <takaoka@beatcraft.com>
10 require_once ETHNA_BASE . '/test/Ethna_MockProject.php';
12 //{{{ Ethna_Plugin_Handle_AddTemplate_Test
14 * Test Case For Ethna_Plugin_Handle_AddTemplate_Test
18 class Ethna_Plugin_Handle_AddTemplate_Test extends Ethna_UnitTestBase
24 $this->proj = new Ethna_MockProject();
25 $r = $this->proj->create();
26 if (Ethna::isError($r)) {
27 $this->fail($r->getMessage());
33 $this->proj->delete();
36 function test_template_dir_exists()
38 $ctl =& $this->proj->getController();
41 $r = $this->proj->runCmd('add-template', array('test'));
42 $template_dir = $ctl->getTemplatedir();
43 $this->assertTrue(file_exists($template_dir));
46 $r = $this->proj->runCmd('add-template', array('-l', 'en_US', 'test'));
47 $template_dir = $ctl->getTemplatedir();
48 $this->assertTrue(file_exists($template_dir));
51 function test_cmd_option()
53 // unrecognized option
54 $r = $this->proj->runCmd('add-template', array('-k'));
55 $this->assertTrue(Ethna::isError($r));
56 $this->assertEqual('unrecognized option -k', $r->getMessage());
58 // skel requires an argument
59 $r = $this->proj->runCmd('add-template', array('-s'));
60 $this->assertTrue(Ethna::isError($r));
61 $this->assertEqual('option -s requires an argument', $r->getMessage());
63 $r = $this->proj->runCmd('add-template', array('--skelfile'));
64 $this->assertTrue(Ethna::isError($r));
65 $this->assertEqual('option --skelfile requires an argument', $r->getMessage());
67 // locale requires an argument
68 $r = $this->proj->runCmd('add-template', array('-l'));
69 $this->assertTrue(Ethna::isError($r));
70 $this->assertEqual('option -l requires an argument', $r->getMessage());
72 $r = $this->proj->runCmd('add-template', array('--locale'));
73 $this->assertTrue(Ethna::isError($r));
74 $this->assertEqual('option --locale requires an argument', $r->getMessage());
76 // template name isn't set
77 $r = $this->proj->runCmd('add-template', array());
78 $this->assertTrue(Ethna::isError($r));
79 $this->assertEqual('template name isn\'t set.', $r->getMessage());
82 $r = $this->proj->runCmd('add-template', array('-l', 'invalid::locale', 'test'));
83 $this->assertTrue(Ethna::isError($r));
84 $this->assertEqual('You specified locale, but invalid : invalid::locale', $r->getMessage());
86 // normal command exexute
87 $r = $this->proj->runCmd('add-template', array('-l', 'ja_JP', 'test'));
88 $this->assertFalse(Ethna::isError($r));