Changeset 374

Show
Ignore:
Timestamp:
03/13/07 17:23:44 (1 year ago)
Author:
mikey
Message:

added stubRequest as argument to constructor of net.stubbles.ipo.session.stubAbstractSession

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/docroot/index.php

    r286 r374  
    55                      'net.stubbles.websites.stubXJConfPageFactory', 
    66                      'net.stubbles.ipo.request.stubWebRequest', 
    7                       'net.stubbles.ipo.session.stubPHPSession' 
     7                      'net.stubbles.ipo.session.stubPHPSession', 
     8                      'net.stubbles.ipo.response.stubResponse' 
    89); 
    910class Bootstrap 
     
    1213    { 
    1314        $request     = new stubWebRequest(); 
    14         $session     = new stubPHPSession('stubSID'); 
     15        $session     = new stubPHPSession($request, 'stubSID'); 
    1516        $pageFactory = new stubXJConfPageFactory(stubXJConfLoader::getInstance()); 
    16         $processor   = new stubMemphisProcessor($request, $session, $pageFactory); 
     17        $processor   = new stubMemphisProcessor($request, $session, new stubBaseResponse(), $pageFactory); 
    1718        $processor->process()->getResponse()->send(); 
    1819    } 
  • trunk/docroot/xml.php

    r348 r374  
    2424    { 
    2525        $request        = new stubWebRequest(); 
    26         $session        = new stubPHPSession('stubSID'); 
     26        $session        = new stubPHPSession($request, 'stubSID'); 
    2727        $response       = new stubBaseResponse(); 
    2828        $preInterceptor = new stubXMLPreInterceptor(); 
  • trunk/src/main/php/net/stubbles/ipo/session/stubAbstractSession.php

    r291 r374  
    77 * @subpackage  ipo_session 
    88 */ 
    9 stubClassLoader::load('net.stubbles.ipo.session.stubSession'); 
     9stubClassLoader::load('net.stubbles.ipo.session.stubSession', 
     10                      'net.stubbles.ipo.request.stubRequest' 
     11); 
    1012/** 
    1113 * Base class for session implementations. 
     
    3840     * constructor 
    3941     *  
    40      * @param  string  $sessionName  name of the session 
    41      */ 
    42     public final function __construct($sessionName) 
    43     { 
    44         $this->doConstruct($sessionName); 
     42     * @param  stubRequest  $request      request instance 
     43     * @param  string       $sessionName  name of the session 
     44     */ 
     45    public final function __construct(stubRequest $request, $sessionName) 
     46    { 
     47        $this->doConstruct($request, $sessionName); 
    4548         
    4649        if ($this->hasValue(stubSession::START_TIME) == false || $this->doGetValue(stubSession::FINGERPRINT) != $this->getFingerprint()) { 
     
    6770     * template method for child classes to do the real construction 
    6871     *  
    69      * @param  string  $sessionName  name of the session 
    70      */ 
    71     protected abstract function doConstruct($sessionName); 
     72     * @param  stubRequest  $request      request instance 
     73     * @param  string       $sessionName  name of the session 
     74     */ 
     75    protected abstract function doConstruct(stubRequest $request, $sessionName); 
    7276         
    7377    /** 
  • trunk/src/main/php/net/stubbles/ipo/session/stubPHPSession.php

    r291 r374  
    77 * @subpackage  ipo_session 
    88 */ 
    9 stubClassLoader::load('net.stubbles.ipo.session.stubAbstractSession'); 
     9stubClassLoader::load('net.stubbles.ipo.session.stubAbstractSession', 
     10                      'net.stubbles.ipo.request.filters.stubMD5Filter' 
     11); 
    1012/** 
    1113 * Session class using default PHP sessions. 
     
    2123{ 
    2224    /** 
     25     * the request instance 
     26     * 
     27     * @var  stubRequest 
     28     */ 
     29    protected $request; 
     30     
     31    /** 
    2332     * template method for child classes to do the real construction 
    2433     *  
    25      * @param  string  $sessionName  name of the session 
     34     * @param  stubRequest  $request      request instance 
     35     * @param  string       $sessionName  name of the session 
    2636     */ 
    27     protected function doConstruct($sessionName) 
     37    protected function doConstruct(stubRequest $request, $sessionName) 
    2838    { 
     39        $this->request = $request; 
    2940        session_name($sessionName); 
    3041        @session_start(); 
     
    3546     *  
    3647     * @return  string 
    37      * @todo    no direct access to $_SERVER 
    3848     * @todo    configureable hidden salt 
    3949     */ 
    4050    protected function getFingerprint() 
    4151    { 
    42         return md5($_SERVER['HTTP_USER_AGENT'] . 'foo'); 
     52        return $this->request->getFilteredValue(new stubMD5Filter('', 'foo'), 'HTTP_USER_AGENT', stubRequest::SOURCE_HEADER); 
    4353    } 
    4454     
  • trunk/src/main/php/net/stubbles/websites/stubFrontController.php

    r359 r374  
    114114        } 
    115115         
    116         $this->session = new $className(stubRegistry::getConfig('net.stubbles.ipo.session.name', 'SID')); 
     116        $this->session = new $className($this->request, stubRegistry::getConfig('net.stubbles.ipo.session.name', 'SID')); 
    117117        if (($this->session instanceof stubSession) == false) { 
    118118            throw new stubException('Configured session class is not an instance of stubSession.'); 
  • trunk/src/test/php/net/stubbles/ipo/session/stubAbstractSessionTestCase.php

    r291 r374  
    88 */ 
    99stubClassLoader::load('net.stubbles.ipo.session.stubAbstractSession'); 
     10Mock::generate('stubRequest'); 
    1011class stubTestSession extends stubAbstractSession 
    1112{ 
     
    1314    protected $data = array(); 
    1415     
    15     protected function doConstruct($sessionName) 
     16    protected function doConstruct(stubRequest $request, $sessionName) 
    1617    { 
    1718        if (strlen($sessionName) > 1) { 
     
    6970    public function setUp() 
    7071    { 
    71         $this->session = new stubTestSession(''); 
     72        $this->session = new stubTestSession(new MockstubRequest(), ''); 
    7273    } 
    7374 
     
    8586        $nextToken = $this->session->getNextToken(); 
    8687         
    87         $this->session = new stubTestSession($startTime . '|foobarbaz|' . $nextToken); 
     88        $this->session = new stubTestSession(new MockstubRequest(), $startTime . '|foobarbaz|' . $nextToken); 
    8889        $this->assertEqual($this->session->getStartTime(), $startTime); 
    8990        $this->assertFalse($this->session->isNew()); 
     
    176177    { 
    177178        // original session started at 50 with fingerprint blub 
    178         $this->session = new stubTestSession('50|blub|dummy'); 
     179        $this->session = new stubTestSession(new MockstubRequest(), '50|blub|dummy'); 
    179180        $this->assertTrue($this->session->isNew()); 
    180181        $this->assertNotEqual($this->session->getStartTime(), 50); 
  • trunk/src/test/php/net/stubbles/ipo/session/stubPHPSessionTestCase.php

    r272 r374  
    88 */ 
    99stubClassLoader::load('net.stubbles.ipo.session.stubPHPSession'); 
     10Mock::generate('stubRequest'); 
    1011/** 
    1112 * Tests for net.stubbles.ipo.session.stubPHPSession 
     
    2324    protected $session; 
    2425    /** 
    25      * switch whether user agent has been that by test 
     26     * mocked request instance 
    2627     * 
    27      * @var  bool 
     28     * @var  SimpleMock 
    2829     */ 
    29     protected $userAgentSet = false
     30    protected $mockStubRequest
    3031     
    3132    /** 
     
    3435    public function setUp() 
    3536    { 
    36         if (isset($_SERVER['HTTP_USER_AGENT']) == false) { 
    37             $_SERVER['HTTP_USER_AGENT'] = 'dummy for preventing E_NOTICE in cli mode.'; 
    38             $this->userAgentSet         = true; 
    39         } 
    40          
     37        $this->mockStubRequest = new MockStubRequest(); 
     38        $this->mockStubRequest->setReturnValue('getFilteredValue', 'foobarbaz'); 
    4139        $_SESSION      = array(); 
    42         $this->session = new stubPHPSession('test'); 
     40        $this->session = new stubPHPSession($this->mockStubRequest, 'test'); 
    4341    } 
    44      
    45     /** 
    46      * clear test environment 
    47      */ 
    48     public function tearDown() 
    49     { 
    50         if (true == $this->userAgentSet) { 
    51             unset($_SERVER['HTTP_USER_AGENT']); 
    52             $this->userAgentSet = false; 
    53         } 
    54     } 
    55      
     42 
    5643    /** 
    5744     * test that regenerating the id gives a new id for the session 
  • trunk/src/test/php/net/stubbles/websites/stubFrontControllerInjectionMapTestCase.php

    r344 r374  
    77 * @subpackage  websites_test 
    88 */ 
    9 stubClassLoader::load('net.stubbles.websites.stubFrontController'); 
     9stubClassLoader::load('net.stubbles.websites.stubFrontController', 
     10                      'net.stubbles.ipo.session.stubAbstractSession' 
     11); 
    1012Mock::generate('stubRequest'); 
    1113Mock::generate('stubSession'); 
     
    1618    protected $sessionName; 
    1719     
    18     protected function doConstruct($sessionName) 
     20    protected function doConstruct(stubRequest $request, $sessionName) 
    1921    { 
    2022        $this->sessionName = $sessionName; 
     
    5153     */ 
    5254    protected $frontController; 
    53     /** 
    54      * switch whether user agent has been that by test 
    55      * 
    56      * @var  bool 
    57      */ 
    58     protected $userAgentSet = false; 
    5955     
    6056    /** 
     
    6460    { 
    6561        $this->frontController = new TeststubFrontController(); 
    66         if (isset($_SERVER['HTTP_USER_AGENT']) == false) { 
    67             $_SERVER['HTTP_USER_AGENT'] = 'dummy for preventing E_NOTICE in cli mode.'; 
    68             $this->userAgentSet         = true; 
    69         } 
    70          
    7162        stubRegistry::setConfig('net.stubbles.ipo.request.class', 'MockstubRequest'); 
    7263        stubRegistry::setConfig('net.stubbles.ipo.session.class', 'MockstubSession'); 
    7364    } 
    74      
    75     /** 
    76      * clear test environment 
    77      */ 
    78     public function tearDown() 
    79     { 
    80         if (true == $this->userAgentSet) { 
    81             unset($_SERVER['HTTP_USER_AGENT']); 
    82             $this->userAgentSet = false; 
    83         } 
    84     } 
    85      
     65 
    8666    /** 
    8767     * assure that properties are set and retrieved correct