- <?php
- /**
- * File for the TraxGeneratorTest class
- *
- * (PHP 5)
- *
- * @package PHPonTraxTest
- * @license http://opensource.org/licenses/gpl-license.php GNU Public License
- * @copyright (c) Walter O. Haas 2006
- * @version $Id: TraxGeneratorTest.php 198 2006-04-20 16:20:30Z haas $
- * @author Walt Haas <haas@xmission.com>
- */
-
- echo "testing TraxGenerator\n";
- require_once 'testenv.php';
- require_once 'inflector.php';
-
- // Call TraxGeneratorTest::main() if this source file is executed directly.
- if (!defined("PHPUnit2_MAIN_METHOD")) {
- define("PHPUnit2_MAIN_METHOD", "TraxGeneratorTest::main");
- }
-
- require_once "PHPUnit2/Framework/TestCase.php";
- require_once "PHPUnit2/Framework/TestSuite.php";
-
- // You may remove the following line when all tests have been implemented.
- require_once "PHPUnit2/Framework/IncompleteTestError.php";
-
- static $tmpdir; // temporary directory
-
- // Create a temporary directory to receive generated files
- // @todo <b>FIXME:</b> Is this platform independent?
- do {
- $tmpdir = '/tmp/traxtest' . mt_rand(0, 99999999) . '/';
- } while (!mkdir($tmpdir,0700));
- define('TRAX_ROOT', $tmpdir);
-
- define('TRAX_MODE', 'test');
-
- // Directories where Trax stores things
- $GLOBALS['TRAX_INCLUDES'] = array('controllers' => 'controllers',
- 'helpers' => 'helpers',
- 'models' => 'models',
- 'views' => 'views',
- 'layouts' => 'views/layouts');
-
- // Set up information that normally comes from database.ini
- $GLOBALS['TRAX_DB_SETTINGS']['test']
- = array('phptype' => 'mysql',
- 'database' => 'test_development',
- 'hostspec' => 'localhost',
- 'username' => 'root',
- 'password' => '',
- 'persistent' => true);
-
- // Create a DB to test with
- @ini_set('include_path','./mockDB:'.ini_get('include_path'));
- require_once "DB.php";
- $db =& DB::Connect($GLOBALS['TRAX_DB_SETTINGS']['test'],
- array('persistent' => true));
- if (PEAR::isError($db) || is_a($db, 'DB_Error')) {
- PHPUnit2_Framework_Assert::fail("Unable to create database");
- }
- $db->setFetchMode(DB_FETCHMODE_ASSOC);
- $GLOBALS['ACTIVE_RECORD_DB'] = $db;
-
- define('TRAX_VIEWS_EXTENTION', 'phtml');
-
- require_once "trax_generator.php";
- require_once "action_view/helpers.php";
- require_once "action_view/helpers/active_record_helper.php";
- require_once "active_record.php";
- require_once "trax_exceptions.php";
-
- /**
- * When a class is referenced, get it from app/models
- */
- function __autoload($class_name) {
- $file = Inflector::underscore($class_name).".php";
- $file_org = $class_name.".php";
-
- if(file_exists(TRAX_ROOT.$GLOBALS['TRAX_INCLUDES']['models']."/$file")) {
- # Include model classes
- include_once(TRAX_ROOT.$GLOBALS['TRAX_INCLUDES']['models']."/$file");
- } elseif(file_exists(TRAX_LIB_ROOT."/$file")) {
- # Include extra controller classes
- include_once(TRAX_LIB_ROOT."/$file");
- }
- }
-
- /**
- * Test class for TraxGenerator.
- * Generated by PHPUnit2_Util_Skeleton on 2006-03-01 at 15:34:17.
- */
- class TraxGeneratorTest extends PHPUnit2_Framework_TestCase {
-
-
- /**
- * Runs the test methods of this class.
- *
- * @access public
- * @static
- */
- public static function main() {
- require_once "PHPUnit2/TextUI/TestRunner.php";
-
- $suite = new PHPUnit2_Framework_TestSuite("TraxGeneratorTest");
- $result = PHPUnit2_TextUI_TestRunner::run($suite);
- }
-
- /**
- * Set up dummy Trax work area
- *
- * Create a dummy Trax work area in the temporary directory
- * @access protected
- */
- protected function setUp() {
-
- // Create empty directories representing the Trax work area
- mkdir(TRAX_ROOT.'controllers',0700,true);
- mkdir(TRAX_ROOT.'helpers',0700,true);
- mkdir(TRAX_ROOT.'models',0700,true);
- mkdir(TRAX_ROOT.'views/layouts',0700,true);
- }
-
- /**
- * Remove the dummy Trax work area
- *
- * @access protected
- */
- protected function tearDown() {
-
- // Empty the temporary directory
- $this->rmrfdir(TRAX_ROOT);
- }
-
- /**
- * Remove all the contents of a directory
- * @param string $dir Name of directory to empty. Ends with '/'
- */
- private function rmrfdir($dir) {
-
- // Open the directory
- $dir_h = opendir($dir);
-
- if (!$dir_h) {
- return; //
- }
-
- // Delete everything in the directory
- while (false !== ($item = readdir($dir_h))) {
- if (is_dir($dir.$item)) {
-
- // $item is a directory. Recurse if appropriate
- if ( ($item != '.') && ($item != '..') ) {
- $this->rmrfdir($dir.$item.'/'); // empty the directory
- rmdir($dir.$item); // remove the empty directory
- }
- } else { // if (is_dir($item))
-
- // $item is not a directory.
- unlink($dir.$item);
- } // if (is_dir($item)) ... else
- } // while (false !== ($item = readdir($dir_h)))
-
- // Close the directory
- closedir($dir_h);
- }
-
-
- /**
- * Verify that generator_help() outputs a "Usage" message
- */
- public function testGenerator_help() {
- $tg = new TraxGenerator;
- ob_start();
- $tg->generator_help(); // should produce a usage
- $output = ob_get_clean();
- $this->assertContains('Usage', $output);
- }
-
- /**
- * Verify that scaffold_help() outputs a "Usage" message
- */
- public function testScaffold_help() {
- $tg = new TraxGenerator;
- ob_start();
- $tg->scaffold_help(); // should produce a usage
- $output = ob_get_clean();
- $this->assertContains('Usage', $output);
- }
-
- /**
- * Verify that controller_help() outputs a "Usage" message
- */
- public function testController_help() {
- $tg = new TraxGenerator;
- ob_start();
- $tg->controller_help(); // should produce a usage
- $output = ob_get_clean();
- $this->assertContains('Usage', $output);
- }
-
- /**
- * Verify that model_help() outputs a "Usage" message
- */
- public function testModel_help() {
- $tg = new TraxGenerator;
- ob_start();
- $tg->model_help(); // should produce a usage
- $output = ob_get_clean();
- $this->assertContains('Usage', $output);
- }
-
- /**
- * Verify that generate_controller() generates a controller
- *
- * We would like to test
- * {@link TraxGenerator::create_controller() create_controller()},
- * {@link TraxGenerator::create_helper() create_helper()}
- * and {@link TraxGenerator::create_view() create_view()} in
- * isolation before we test
- * {@link TraxGenerator::generate_controller() generate_controller()}
- * but that's impossible because they depend on private variables
- * which are set only in generate_controller().
- */
- public function testGenerate_controller() {
-
- // Generate a mumble controller with no views
- $tg = new TraxGenerator;
- ob_start();
- $tg->generate_controller('mumble');
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertTrue(is_file(TRAX_ROOT
- . 'controllers/mumble_controller.php'));
- $controller = file_get_contents(TRAX_ROOT
- . 'controllers/mumble_controller.php');
- $this->assertContains('class MumbleController extends'
- . ' ApplicationController', $controller);
- $this->assertTrue(is_file(TRAX_ROOT
- . 'helpers/mumble_helper.php'));
- $this->assertTrue(is_dir(TRAX_ROOT . 'views/mumble'));
-
- // Verify that a second attempt to create the same controller
- // reports that it exists
- $tg = new TraxGenerator;
- ob_start();
- $tg->generate_controller('mumble');
- $output = ob_get_clean();
- $this->assertContains('exists', $output);
- $this->assertTrue(file_exists(TRAX_ROOT
- . 'controllers/mumble_controller.php'));
-
- // Generate a controller with one view file
- $tg = new TraxGenerator;
- ob_start();
- $tg->generate_controller('store', 'manager');
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertTrue(is_file(TRAX_ROOT
- . 'controllers/store_controller.php'));
- $controller = file_get_contents(TRAX_ROOT
- . 'controllers/store_controller.php');
- $this->assertContains('class StoreController extends'
- . ' ApplicationController', $controller);
- $this->assertTrue(is_file(TRAX_ROOT
- . 'helpers/store_helper.php'));
- $this->assertTrue(is_dir(TRAX_ROOT . 'views/store'));
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/store/manager.phtml'));
- $view = file_get_contents(TRAX_ROOT . 'views/store/manager.phtml');
- $this->assertContains('Store->manager',$view);
- $this->assertContains('store/manager.phtml',$view);
-
- // Generate a controller with two view files
- $tg = new TraxGenerator;
- ob_start();
- $tg->generate_controller('account', array('customer','teller'));
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertTrue(is_file(TRAX_ROOT
- . 'controllers/account_controller.php'));
- $controller = file_get_contents(TRAX_ROOT
- . 'controllers/account_controller.php');
- $this->assertContains('class AccountController extends'
- . ' ApplicationController', $controller);
- $this->assertTrue(is_file(TRAX_ROOT
- . 'helpers/account_helper.php'));
- $this->assertTrue(is_dir(TRAX_ROOT . 'views/account'));
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/account/customer.phtml'));
- $view = file_get_contents(TRAX_ROOT . 'views/account/customer.phtml');
- $this->assertContains('Account->customer',$view);
- $this->assertContains('account/customer.phtml',$view);
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/account/teller.phtml'));
- $view = file_get_contents(TRAX_ROOT . 'views/account/teller.phtml');
- $this->assertContains('Account->teller',$view);
- $this->assertContains('account/teller.phtml',$view);
-
- // Generate a controller in a subdirectory
- $tg = new TraxGenerator;
- ob_start();
- $tg->generate_controller('forum/admin');
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertTrue(is_file(TRAX_ROOT
- . 'controllers/forum/admin_controller.php'));
- $controller = file_get_contents(TRAX_ROOT
- . 'controllers/forum/admin_controller.php');
- $this->assertContains('class AdminController extends'
- . ' ApplicationController', $controller);
- $this->assertTrue(is_file(TRAX_ROOT
- . 'helpers/forum/admin_helper.php'));
- $this->assertTrue(is_dir(TRAX_ROOT . 'views/forum/admin'));
- }
-
- /**
- * Verify that generate_model() generates a model
- */
- public function testGenerate_model() {
-
- // Generate a CreditCard model
- $tg = new TraxGenerator;
- ob_start();
- $tg->generate_model('CreditCard');
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertTrue(is_file(TRAX_ROOT . 'models/credit_card.php'));
- $model = file_get_contents(TRAX_ROOT . 'models/credit_card.php');
- $this->assertContains('class CreditCard extends ActiveRecord',
- $model);
-
- // Generate a soap_opera model
- $tg = new TraxGenerator;
- ob_start();
- $tg->generate_model('soap_opera');
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertTrue(is_file(TRAX_ROOT . 'models/soap_opera.php'));
- $model = file_get_contents(TRAX_ROOT . 'models/soap_opera.php');
- $this->assertContains('class SoapOpera extends ActiveRecord',
- $model);
- }
-
- /**
- * Verify that generate_scaffold() generates a model and controller
- */
- public function testGenerate_scaffold1() {
-
- // Generate a PersonName/membership scaffold
- $tg = new TraxGenerator;
- ob_start();
- $tg->generate_scaffold('PersonName', 'membership');
-
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertNotContains('Error:', $output);
- $this->assertNotContains('Notice:', $output);
-
- // verify controller
- $this->assertTrue(is_file(TRAX_ROOT
- . 'controllers/membership_controller.php'));
- $controller = file_get_contents(TRAX_ROOT
- . 'controllers/membership_controller.php');
- $this->assertContains('class MembershipController extends'
- . ' ApplicationController', $controller);
- $this->assertNotContains('Error:', $controller);
- $this->assertNotContains('Notice:', $controller);
-
- // verify model
- $this->assertTrue(is_file(TRAX_ROOT
- . 'models/person_name.php'));
- $model = file_get_contents(TRAX_ROOT
- . 'models/person_name.php');
- $this->assertContains('class PersonName extends'
- . ' ActiveRecord', $model);
- $this->assertNotContains('Error:', $model);
- $this->assertNotContains('Notice:', $model);
-
- // verify helper
- $this->assertTrue(is_file(TRAX_ROOT
- . 'helpers/membership_helper.php'));
- $helper = file_get_contents(TRAX_ROOT
- . 'helpers/membership_helper.php');
- $this->assertContains('MembershipController', $helper);
- $this->assertNotContains('Error:', $helper);
- $this->assertNotContains('Notice:', $helper);
-
- // verify views
- $this->assertTrue(is_dir(TRAX_ROOT . 'views/membership'));
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/add.phtml'));
- $add = file_get_contents(TRAX_ROOT
- . 'views/membership/add.phtml');
- $this->assertContains('New PersonName', $add);
- $this->assertNotContains('Error:', $add);
- $this->assertNotContains('Notice:', $add);
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/edit.phtml'));
- $edit = file_get_contents(TRAX_ROOT
- . 'views/membership/edit.phtml');
- $this->assertContains('Editing PersonName', $edit);
- $this->assertNotContains('Error:', $edit);
- $this->assertNotContains('Notice:', $edit);
-
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/_form.phtml'));
- $_form = file_get_contents(TRAX_ROOT
- . 'views/membership/_form.phtml');
- $this->assertContains('PersonName', $_form);
- $this->assertNotContains('Error:', $_form);
- $this->assertNotContains('Notice:', $_form);
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/index.phtml'));
- $index = file_get_contents(TRAX_ROOT
- . 'views/membership/index.phtml');
- $this->assertContains('Listing PersonNames', $index);
- $this->assertNotContains('Error:', $index);
- $this->assertNotContains('Notice:', $index);
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/show.phtml'));
- $show = file_get_contents(TRAX_ROOT
- . 'views/membership/show.phtml');
- $this->assertContains('PersonName', $show);
- $this->assertNotContains('Error:', $show);
- $this->assertNotContains('Notice:', $show);
-
- // verify layout
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/layouts/membership.phtml'));
- $layout = file_get_contents(TRAX_ROOT
- . 'views/layouts/membership.phtml');
- $this->assertContains('membership', $layout);
- }
-
- /**
- * Verify that generate_scaffold() defaults controller from model
- */
- public function testGenerate_scaffold2() {
-
- // Generate a PersonName/person_name scaffold
- $tg = new TraxGenerator;
- ob_start();
- $tg->generate_scaffold('PersonName',null);
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertNotContains('Error:', $output);
- $this->assertNotContains('Notice:', $output);
-
- // verify controller
- $this->assertTrue(is_file(TRAX_ROOT
- . 'controllers/person_name_controller.php'));
- $controller = file_get_contents(TRAX_ROOT
- . 'controllers/person_name_controller.php');
- $this->assertContains('class PersonNameController extends'
- . ' ApplicationController', $controller);
- $this->assertNotContains('Error:', $controller);
- $this->assertNotContains('Notice:', $controller);
-
- // verify model
- $this->assertTrue(is_file(TRAX_ROOT
- . 'models/person_name.php'));
- $model = file_get_contents(TRAX_ROOT
- . 'models/person_name.php');
- $this->assertContains('class PersonName extends'
- . ' ActiveRecord', $model);
- $this->assertNotContains('Error:', $model);
- $this->assertNotContains('Notice:', $model);
-
- // verify helper
- $this->assertTrue(is_file(TRAX_ROOT
- . 'helpers/person_name_helper.php'));
- $helper = file_get_contents(TRAX_ROOT
- . 'helpers/person_name_helper.php');
- $this->assertContains('PersonNameController', $helper);
- $this->assertNotContains('Error:', $helper);
- $this->assertNotContains('Notice:', $helper);
-
- // verify views
- $this->assertTrue(is_dir(TRAX_ROOT . 'views/person_name'));
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/person_name/add.phtml'));
- $add = file_get_contents(TRAX_ROOT
- . 'views/person_name/add.phtml');
- $this->assertContains('New PersonName', $add);
- $this->assertNotContains('Error:', $add);
- $this->assertNotContains('Notice:', $add);
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/person_name/edit.phtml'));
- $edit = file_get_contents(TRAX_ROOT
- . 'views/person_name/edit.phtml');
- $this->assertContains('Editing PersonName', $edit);
- $this->assertNotContains('Error:', $edit);
- $this->assertNotContains('Notice:', $edit);
-
-
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/person_name/_form.phtml'));
- $_form = file_get_contents(TRAX_ROOT
- . 'views/person_name/_form.phtml');
- $this->assertContains('PersonName', $_form);
- $this->assertNotContains('Error:', $_form);
- $this->assertNotContains('Notice:', $_form);
-
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/person_name/index.phtml'));
- $index = file_get_contents(TRAX_ROOT
- . 'views/person_name/index.phtml');
- $this->assertContains('Listing PersonNames', $index);
- $this->assertNotContains('Error:', $index);
- $this->assertNotContains('Notice:', $index);
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/person_name/show.phtml'));
- $show = file_get_contents(TRAX_ROOT
- . 'views/person_name/show.phtml');
- $this->assertContains('PersonName', $show);
- $this->assertNotContains('Error:', $show);
- $this->assertNotContains('Notice:', $show);
-
- // verify layout
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/layouts/person_name.phtml'));
- $layout = file_get_contents(TRAX_ROOT
- . 'views/layouts/person_name.phtml');
- $this->assertContains('person_name', $layout);
- }
-
- /**
- * Verify generate_scaffold() with additional views
- */
- public function testGenerate_scaffold3() {
-
- // Generate a PersonName/membership scaffold
- $tg = new TraxGenerator;
- ob_start();
- $tg->generate_scaffold('PersonName', 'membership',
- array('join', 'renew'));
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertNotContains('Error:', $output);
- $this->assertNotContains('Notice:', $output);
-
- // verify controller
- $this->assertTrue(is_file(TRAX_ROOT
- . 'controllers/membership_controller.php'));
- $controller = file_get_contents(TRAX_ROOT
- . 'controllers/membership_controller.php');
- $this->assertContains('class MembershipController extends'
- . ' ApplicationController', $controller);
- $this->assertNotContains('Error:', $controller);
- $this->assertNotContains('Notice:', $controller);
-
- // verify model
- $this->assertTrue(is_file(TRAX_ROOT
- . 'models/person_name.php'));
- $model = file_get_contents(TRAX_ROOT
- . 'models/person_name.php');
- $this->assertContains('class PersonName extends'
- . ' ActiveRecord', $model);
- $this->assertNotContains('Error:', $model);
- $this->assertNotContains('Notice:', $model);
-
- // verify helper
- $this->assertTrue(is_file(TRAX_ROOT
- . 'helpers/membership_helper.php'));
- $helper = file_get_contents(TRAX_ROOT
- . 'helpers/membership_helper.php');
- $this->assertContains('MembershipController', $helper);
- $this->assertNotContains('Error:', $helper);
- $this->assertNotContains('Notice:', $helper);
-
- // verify views
- $this->assertTrue(is_dir(TRAX_ROOT . 'views/membership'));
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/add.phtml'));
- $add = file_get_contents(TRAX_ROOT
- . 'views/membership/add.phtml');
- $this->assertContains('New PersonName', $add);
- $this->assertNotContains('Error:', $add);
- $this->assertNotContains('Notice:', $add);
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/edit.phtml'));
- $edit = file_get_contents(TRAX_ROOT
- . 'views/membership/edit.phtml');
- $this->assertContains('Editing PersonName', $edit);
- $this->assertNotContains('Error:', $edit);
- $this->assertNotContains('Notice:', $edit);
-
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/_form.phtml'));
- $_form = file_get_contents(TRAX_ROOT
- . 'views/membership/_form.phtml');
- $this->assertContains('PersonName', $_form);
- $this->assertNotContains('Error:', $_form);
- $this->assertNotContains('Notice:', $_form);
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/index.phtml'));
- $index = file_get_contents(TRAX_ROOT
- . 'views/membership/index.phtml');
- $this->assertContains('Listing PersonNames', $index);
- $this->assertNotContains('Error:', $index);
- $this->assertNotContains('Notice:', $index);
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/show.phtml'));
- $show = file_get_contents(TRAX_ROOT
- . 'views/membership/show.phtml');
- $this->assertContains('PersonName', $show);
- $this->assertNotContains('Error:', $show);
- $this->assertNotContains('Notice:', $show);
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/join.phtml'));
- $join = file_get_contents(TRAX_ROOT
- . 'views/membership/join.phtml');
- $this->assertContains('Membership->join', $join);
- $this->assertNotContains('Error:', $join);
- $this->assertNotContains('Notice:', $join);
-
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/renew.phtml'));
- $renew = file_get_contents(TRAX_ROOT
- . 'views/membership/renew.phtml');
- $this->assertContains('Membership->renew', $renew);
- $this->assertNotContains('Error:', $renew);
- $this->assertNotContains('Notice:', $renew);
-
- // verify layout
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/layouts/membership.phtml'));
- $layout = file_get_contents(TRAX_ROOT
- . 'views/layouts/membership.phtml');
- $this->assertContains('membership', $layout);
- }
-
- /**
- * Verify generate_scaffold() with the controller in a subdirectory
- */
- public function testGenerate_scaffold4() {
-
- // Generate a PersonName/membership scaffold
- $tg = new TraxGenerator;
- ob_start();
- $tg->generate_scaffold('PersonName', 'admin/membership');
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertNotContains('Error:', $output);
- $this->assertNotContains('Notice:', $output);
-
- // verify controller
- $this->assertTrue(is_file(TRAX_ROOT
- . 'controllers/admin/membership_controller.php'));
- $controller = file_get_contents(TRAX_ROOT
- . 'controllers/admin/membership_controller.php');
- $this->assertContains('class MembershipController extends'
- . ' ApplicationController', $controller);
- $this->assertNotContains('Error:', $controller);
- $this->assertNotContains('Notice:', $controller);
-
- // verify model
- $this->assertTrue(is_file(TRAX_ROOT
- . 'models/person_name.php'));
- $model = file_get_contents(TRAX_ROOT
- . 'models/person_name.php');
- $this->assertContains('class PersonName extends'
- . ' ActiveRecord', $model);
- $this->assertNotContains('Error:', $model);
- $this->assertNotContains('Notice:', $model);
-
- // verify helper
- $this->assertTrue(is_file(TRAX_ROOT
- . 'helpers/admin/membership_helper.php'));
- $helper = file_get_contents(TRAX_ROOT
- . 'helpers/admin/membership_helper.php');
- $this->assertContains('MembershipController', $helper);
- $this->assertNotContains('Error:', $helper);
- $this->assertNotContains('Notice:', $helper);
-
- // verify views
- $this->assertTrue(is_dir(TRAX_ROOT . 'views/admin/membership'));
-
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/admin/membership/add.phtml'));
- $add = file_get_contents(TRAX_ROOT
- . 'views/admin/membership/add.phtml');
- $this->assertContains('New PersonName', $add);
- $this->assertNotContains('Error:', $add);
- $this->assertNotContains('Notice:', $add);
-
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/admin/membership/edit.phtml'));
- $edit = file_get_contents(TRAX_ROOT
- . 'views/admin/membership/edit.phtml');
- $this->assertContains('Editing PersonName', $edit);
- $this->assertNotContains('Error:', $edit);
- $this->assertNotContains('Notice:', $edit);
-
-
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/admin/membership/_form.phtml'));
- $_form = file_get_contents(TRAX_ROOT
- . 'views/admin/membership/_form.phtml');
- $this->assertContains('PersonName', $_form);
- $this->assertNotContains('Error:', $_form);
- $this->assertNotContains('Notice:', $_form);
-
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/admin/membership/index.phtml'));
- $index = file_get_contents(TRAX_ROOT
- . 'views/admin/membership/index.phtml');
- $this->assertContains('Listing PersonNames', $index);
- $this->assertNotContains('Error:', $index);
- $this->assertNotContains('Notice:', $index);
-
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/admin/membership/show.phtml'));
- $show = file_get_contents(TRAX_ROOT
- . 'views/admin/membership/show.phtml');
- $this->assertContains('PersonName', $show);
- $this->assertNotContains('Error:', $show);
- $this->assertNotContains('Notice:', $show);
-
- // verify layout
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/layouts/admin/membership.phtml'));
- $layout = file_get_contents(TRAX_ROOT
- . 'views/layouts/admin/membership.phtml');
- $this->assertContains('membership', $layout);
- }
-
- /**
- * Test fix_php_brackets()
- */
- public function testFix_php_brackets() {
- $tg = new TraxGenerator;
- $this->assertEquals($tg->fix_php_brackets('< ?php foo ? >'),
- '<?php foo ?>');
- }
-
- /**
- * @todo Implement testRun().
- */
- public function testRun() {
-
- // Verify that no command produces usage message
- $tg = new TraxGenerator;
- ob_start();
- $tg->run(); // should produce a usage
- $result = ob_get_clean();
- $this->assertContains('Usage', $result);
-
- // Verify that unknown command produces usage message
- $_SERVER['argv'][1] = 'foo';
- $tg = new TraxGenerator;
- ob_start();
- $tg->run(); // should produce a usage
- $result = ob_get_clean();
- $this->assertContains('Usage', $result);
-
- // Generate a CreditCard model
- $_SERVER['argv'][1] = 'model';
- $_SERVER['argv'][2] = 'CreditCard';
- $tg = new TraxGenerator;
- ob_start();
- $tg->run();
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertTrue(is_file(TRAX_ROOT . 'models/credit_card.php'));
-
- // Generate a mumble controller with no views
- $_SERVER['argv'][1] = 'controller';
- $_SERVER['argv'][2] = 'mumble';
- $tg = new TraxGenerator;
- ob_start();
- $tg->run();
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertTrue(is_file(TRAX_ROOT
- . 'controllers/mumble_controller.php'));
- $this->assertTrue(is_file(TRAX_ROOT
- . 'helpers/mumble_helper.php'));
- $this->assertTrue(is_dir(TRAX_ROOT . 'views/mumble'));
-
-
- // Generate a PersonName/membership scaffold
- $_SERVER['argv'][1] = 'scaffold';
- $_SERVER['argv'][2] = 'PersonName';
- $_SERVER['argv'][3] = 'membership';
- $tg = new TraxGenerator;
- ob_start();
- $tg->run();
- $output = ob_get_clean();
- $this->assertContains('create', $output);
- $this->assertNotContains('Error:', $output);
- $this->assertNotContains('Notice:', $output);
-
- // verify controller
- $this->assertTrue(is_file(TRAX_ROOT
- . 'controllers/membership_controller.php'));
-
- // verify model
- $this->assertTrue(is_file(TRAX_ROOT
- . 'models/person_name.php'));
-
- // verify helper
- $this->assertTrue(is_file(TRAX_ROOT
- . 'helpers/membership_helper.php'));
-
- // verify views
- $this->assertTrue(is_dir(TRAX_ROOT . 'views/membership'));
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/add.phtml'));
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/edit.phtml'));
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/_form.phtml'));
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/index.phtml'));
- $this->assertTrue(is_file(TRAX_ROOT . 'views/membership/show.phtml'));
-
- // verify layout
- $this->assertTrue(is_file(TRAX_ROOT
- . 'views/layouts/membership.phtml'));
- }
- }
-
- // Call TraxGeneratorTest::main() if this source file is executed directly.
- if (PHPUnit2_MAIN_METHOD == "TraxGeneratorTest::main") {
- TraxGeneratorTest::main();
- }
-
- // Clean up temp directory when done
- rmdir(TRAX_ROOT);
-
- // -- set Emacs parameters --
- // Local variables:
- // tab-width: 4
- // c-basic-offset: 4
- // c-hanging-comment-ender-p: nil
- // indent-tabs-mode: nil
- // End:
- ?>