/** * Sets up a mocked logger stream * * @return void **/ public function setUp() { parent::setUp(); $class = $this->getMockClass('BaseLog', array('write'), array(), 'SQSBaseLog'); CakeLog::config('queuetest', array('engine' => $class, 'types' => array('error', 'debug'), 'scopes' => array('sqs'))); $this->logger = CakeLog::stream('queuetest'); CakeLog::disable('stderr'); Configure::write('SQS', array()); }
/** * setup create a request object to get out of router later. * * @return void */ public function setUp() { parent::setUp(); App::build(array('View' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'View' . DS)), App::RESET); Router::reload(); $request = new CakeRequest(null, false); $request->base = ''; Router::setRequestInfo($request); Configure::write('debug', 2); CakeLog::disable('stdout'); CakeLog::disable('stderr'); }
/** * test LogError() * * @return void */ public function testLogError() { @unlink(LOGS . 'error.log'); // disable stderr output for this test if (CakeLog::stream('stderr')) { CakeLog::disable('stderr'); } LogError('Testing LogError() basic function'); LogError("Testing with\nmulti-line\nstring"); if (CakeLog::stream('stderr')) { CakeLog::enable('stderr'); } $result = file_get_contents(LOGS . 'error.log'); $this->assertRegExp('/Error: Testing LogError\\(\\) basic function/', $result); $this->assertNotRegExp("/Error: Testing with\nmulti-line\nstring/", $result); $this->assertRegExp('/Error: Testing with multi-line string/', $result); }
/** * test disable invalid stream * * @expectedException CakeLogException * @return void */ public function testStreamDisableInvalid() { CakeLog::disable('bogus_stream'); }
/** * Tests you can set priorities on the jobs to be run * * @return void **/ public function testExecutePriorities() { CakeLog::disable('stderr'); Configure::write('Gearman.prefix', 'test'); $client = $this->getMock('GearmanClient', array('doLowBackground', 'doHighBackground')); GearmanQueue::client($client); $client->expects($this->any())->method('returnCode')->will($this->returnValue(GEARMAN_SUCCESS)); $client->expects($this->at(0))->method('doLowBackground')->with('test_foo', json_encode('data'))->will($this->returnValue(GEARMAN_SUCCESS)); $client->expects($this->at(1))->method('doHighBackground')->with('test_foo', json_encode('data'))->will($this->returnValue(GEARMAN_SUCCESS)); GearmanQueue::execute('foo', 'data', 'low'); GearmanQueue::execute('foo', 'data', 'high'); }
/** * Test file and console and logging * * @return void */ public function testFileAndConsoleLogging() { CakeLog::disable('stdout'); CakeLog::disable('stderr'); // file logging $this->Shell->log_something(); $this->assertTrue(file_exists(LOGS . 'error.log')); unlink(LOGS . 'error.log'); $this->assertFalse(file_exists(LOGS . 'error.log')); // both file and console logging require_once CORE_TEST_CASES . DS . 'Log' . DS . 'Engine' . DS . 'ConsoleLogTest.php'; $mock = $this->getMock('ConsoleLog', array('write'), array(array('types' => 'error'))); TestCakeLog::config('console', array('engine' => 'Console', 'stream' => 'php://stderr')); TestCakeLog::replace('console', $mock); $mock->expects($this->once())->method('write')->with('error', $this->Shell->testMessage); $this->Shell->log_something(); $this->assertTrue(file_exists(LOGS . 'error.log')); $contents = file_get_contents(LOGS . 'error.log'); $this->assertContains($this->Shell->testMessage, $contents); CakeLog::enable('stdout'); CakeLog::enable('stderr'); }