add('test segment 1', 'browserCode==ff'); $segment = $model->getSegment($idSegment); $key1 = Segment::CACHE_KEY . md5($segment['definition']); $this->assertFalse($cache->contains($key1)); Segment::getSegmentHash('dummy'); $this->assertTrue($cache->contains($key1)); } public function testIfSegmentNotFoundDefaultHashReturned() { $definition = 'browserCode==ch'; $defaultHash = md5(urldecode($definition)); $this->assertEquals($defaultHash, Segment::getSegmentHash($definition)); } public function testCashedHashesForSimilarSegments() { $cache = Cache::getEagerCache(); $model = new SegmentEditorModel(); // pageUrl==http://abc.com/d+f // pageUrl==http://abc.com/d f // pageUrl==http://abc.com/d%20f $definitions = [ 'pageUrl==http%253A%252F%252Fabc.com%252Fd%252Bf', 'pageUrl==http%253A%252F%252Fabc.com%252Fd%2520f', 'pageUrl==http%253A%252F%252Fabc.com%252Fd%252520f', ]; $idSegment1 = SegmentEditorApi::getInstance()->add('test segment 1', $definitions[0]); $idSegment2 = SegmentEditorApi::getInstance()->add('test segment 2', $definitions[1]); $idSegment3 = SegmentEditorApi::getInstance()->add('test segment 3', $definitions[2]); $segment1 = $model->getSegment($idSegment1); $segment2 = $model->getSegment($idSegment2); $segment3 = $model->getSegment($idSegment3); $tests = []; $tests[$segment1['hash']] = [ Segment::CACHE_KEY . md5($segment1['definition']), Segment::CACHE_KEY . md5(urldecode($segment1['definition'])), Segment::CACHE_KEY . md5(urlencode($segment1['definition'])), ]; $tests[$segment2['hash']] = [ Segment::CACHE_KEY . md5($segment2['definition']), Segment::CACHE_KEY . md5(urldecode($segment2['definition'])), Segment::CACHE_KEY . md5(urlencode($segment2['definition'])), ]; $tests[$segment3['hash']] = [ Segment::CACHE_KEY . md5($segment3['definition']), Segment::CACHE_KEY . md5(urldecode($segment3['definition'])), Segment::CACHE_KEY . md5(urlencode($segment3['definition'])), ]; Segment::getSegmentHash('dummy'); foreach ($tests as $hash => $keys) { foreach ($keys as $key) { $this->assertEquals($hash, $cache->fetch($key)); } } } public function testSegmentCacheWithOperatorCharacters() { $cache = Cache::getEagerCache(); $model = new SegmentEditorModel(); // pageUrl==http://abc.com/=/@/!/,/; $idSegment = SegmentEditorApi::getInstance()->add('test segment 1', 'pageUrl==http%253A%252F%252Fabc.com%252F%253D%252F%2540%252F!%252F%252C%252F%253B'); $segment = $model->getSegment($idSegment); $key1 = Segment::CACHE_KEY . md5($segment['definition']); Segment::getSegmentHash('dummy'); $this->assertTrue($cache->contains($key1)); } }