function testRegister()
 {
     $rule_match = new MockSearchEngineRegexRule($this);
     $rule_match->setReturnValue('match', true);
     $rule_match->setReturnValue('getMatchingPhrase', 'test');
     $rule_match->setReturnValue('getEngineName', 'engine_name');
     $this->stats_search_phrase->registerSearchEngineRule($rule_match);
     $date = new Date();
     $this->assertTrue($this->stats_search_phrase->register($date));
     $db = DbFactory::instance();
     $db->sqlSelect('sys_stat_search_phrase');
     $arr = $db->getArray();
     $this->assertEqual(sizeof($arr), 1);
     $record = current($arr);
     $this->assertEqual($record['phrase'], 'test');
     $this->assertEqual($record['engine'], 'engine_name');
     $this->assertEqual($record['time'], $date->getStamp());
 }
 function testRegisterFailedNoMatchingRule()
 {
     $rule = new MockSearchEngineRegexRule($this);
     $rule->setReturnValue('getMatchingPhrase', $phrase = 'test');
     $rule->setReturnValue('getEngineName', $name = 'engine_name');
     $rule->expectOnce('match', array($url = 'http://example.com'));
     $rule->setReturnValue('match', false);
     $this->register->registerSearchEngineRule($rule);
     $stats_request = new StatsRequest();
     $stats_request->setTime($time = time());
     $stats_request->setRefererUri(new Uri($url));
     $this->assertFalse($this->register->register($stats_request));
     $rs =& $this->db->select('stats_search_phrase');
     $this->assertEqual($rs->getRowCount(), 0);
 }