Changeset 2683

Show
Ignore:
Timestamp:
12/01/06 05:56:47 (3 months ago)
Author:
demian
Message:

tests for CLI args, fixes #1321

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/0.6-bugfix/lib/SGL/Request.php

    r2680 r2683  
    150150 
    151151        // catch arbitrary arguments 
    152         for ($i=0; $i < count($arguments); $i++) { 
    153             if (3 <= $i) { 
    154                 array_push($longOptions, substr($arguments[$i], 2, strpos($arguments[$i], "=") -1)); 
    155             } 
     152        for ($i = 3; $i < count($arguments); $i++) { 
     153            array_push($longOptions, substr($arguments[$i], 2, strpos($arguments[$i], "=") - 1)); 
    156154        } 
    157155        $options = $console->getopt2($arguments, $shortOptions, $longOptions); 
  • branches/0.6-bugfix/lib/SGL/tests/RequestTest.ndb.php

    r2166 r2683  
    55 * Test suite. 
    66 * 
    7  * @package SGL 
    8  * @author  Demian Turner <demian@phpkitchen.net> 
    9  * @version $Id: UrlTest.ndb.php,v 1.1 2005/06/23 14:56:01 demian Exp $ 
     7 * @package    seagull 
     8 * @subpackage test 
     9 * @author     Demian Turner <demian@phpkitchen.net> 
     10 * @version    $Id: UrlTest.ndb.php,v 1.1 2005/06/23 14:56:01 demian Exp $ 
    1011 */ 
    11 class RequestTest extends UnitTestCase { 
    12  
     12class RequestTest extends UnitTestCase 
     13
    1314    function RequestTest() 
    1415    { 
     
    1617    } 
    1718 
    18     function setup() 
     19    function setUp() 
    1920    { 
    20  
    2121    } 
    2222 
    23     function teardown() 
     23    function tearDown() 
    2424    { 
    2525        $_REQUEST = array(); 
     26        if (isset($_SERVER['argc'])) { 
     27            unset($_SERVER['argc']); 
     28        } 
     29        if (isset($_SERVER['argv'])) { 
     30            unset($_SERVER['argv']); 
     31        } 
    2632    } 
    2733 
     
    3945        $this->assertEqual($req->get('foo'), 'fooValue'); 
    4046    } 
     47 
     48    function testCliArguments() 
     49    { 
     50        $_SERVER['argc'] = 1; 
     51        $_SERVER['argv'] = array('index.php'); 
     52        $req = new SGL_Request(); 
     53        $req->initCli(); 
     54 
     55        // test no params 
     56        $this->assertFalse(count($req->getAll())); 
     57 
     58        unset($req); 
     59        $_SERVER['argc'] = 2; 
     60        $_SERVER['argv'] = array('index.php', '--moduleName=default'); 
     61        $req = new SGL_Request(); 
     62        $req->initCli(); 
     63 
     64        // test module name is caught 
     65        $this->assertTrue(count($req->getAll()) == 1); 
     66        $this->assertTrue($req->get('moduleName') == 'default'); 
     67 
     68        unset($req); 
     69        $_SERVER['argc'] = 2; 
     70        $_SERVER['argv'] = array('index.php', '--moduleName=default', 
     71            '--managerName=translation', '--action=update'); 
     72        $req = new SGL_Request(); 
     73        $req->initCli(); 
     74 
     75        // test module name, manager and action are recognized 
     76        $this->assertTrue(count($req->getAll()) == 3); 
     77        $this->assertTrue($req->get('moduleName') == 'default'); 
     78        $this->assertTrue($req->get('managerName') == 'translation'); 
     79        $this->assertTrue($req->get('action') == 'update'); 
     80 
     81        unset($req); 
     82        $_SERVER['argc'] = 6; 
     83        $_SERVER['argv'] = array( 
     84            'index.php', 
     85            '--moduleName=default', 
     86            '--managerName=translation', 
     87            '--action=update', 
     88            '--paramNumberOne=firstParameter', 
     89            '--paramNumberTwo=secondParameter', 
     90            '--paramNumberThree=thirdParameter' 
     91        ); 
     92        $req = new SGL_Request(); 
     93        $req->initCli(); 
     94 
     95        // test optional params 
     96        $this->assertTrue(count($req->getAll()) == 6); 
     97        $this->assertTrue($req->get('moduleName') == 'default'); 
     98        $this->assertTrue($req->get('managerName') == 'translation'); 
     99        $this->assertTrue($req->get('action') == 'update'); 
     100        $this->assertTrue($req->get('paramNumberOne') == 'firstParameter'); 
     101        $this->assertTrue($req->get('paramNumberTwo') == 'secondParameter'); 
     102        $this->assertTrue($req->get('paramNumberThree') == 'thirdParameter'); 
     103    } 
    41104} 
    42105