public function testEncryptedStrategy() { $this->skipIf(!MockEncrypt::enabled(), 'The Mcrypt extension is not installed or enabled.'); $key = 'foobar'; $adapter = new Memory(); Session::config(array('primary' => array('adapter' => $adapter, 'filters' => array(), 'strategies' => array('lithium\\tests\\mocks\\storage\\session\\strategy\\MockEncrypt' => array('secret' => $key))))); $value = array('foo' => 'bar'); Session::write('test', $value); $this->assertEqual(array('foo' => 'bar'), Session::read('test')); $this->assertTrue(Session::check('test')); $this->assertTrue(Session::check('test', array('strategies' => false))); $encrypted = Session::read('test', array('strategies' => false)); $this->assertNotEqual($value, $encrypted); $this->assertTrue(is_string($encrypted)); $result = Session::read('test'); $this->assertEqual($value, $result); $result = Session::clear(array('strategies' => false)); $this->assertNull(Session::read('test')); $this->assertFalse(Session::check('test')); $this->assertFalse(Session::check('test', array('strategies' => false))); $savedData = array('test' => $value); $encrypt = new MockEncrypt(array('secret' => $key)); $result = $encrypt->encrypt($savedData); $this->assertEqual($encrypted, $result); $result = $encrypt->decrypt($encrypted); $this->assertEqual($savedData, $result); }