Вход Регистрация
Файл: vkolhoze.com/vendor/guzzle/guzzle/tests/Guzzle/Tests/Parser/Cookie/CookieParserProvider.php
Строк: 248
<?php

namespace GuzzleTestsParserCookie;

use 
GuzzleHttpUrl;

/**
 * @covers GuzzleParserCookieCookieParser
 */
class CookieParserProvider extends GuzzleTestsGuzzleTestCase
{
    
/**
     * Provides the parsed information from a cookie
     *
     * @return array
     */
    
public function cookieParserDataProvider()
    {
        return array(
            array(
                
'ASIHTTPRequestTestCookie=This+is+the+value; expires=Sat, 26-Jul-2008 17:00:42 GMT; path=/tests; domain=allseeing-i.com; PHPSESSID=6c951590e7a9359bcedde25cda73e43c; path=/";',
                array(
                    
'domain' => 'allseeing-i.com',
                    
'path' => '/',
                    
'data' => array(
                        
'PHPSESSID' => '6c951590e7a9359bcedde25cda73e43c'
                    
),
                    
'max_age' => NULL,
                    
'expires' => 'Sat, 26-Jul-2008 17:00:42 GMT',
                    
'version' => NULL,
                    
'secure' => NULL,
                    
'discard' => NULL,
                    
'port' => NULL,
                    
'cookies' => array(
                        
'ASIHTTPRequestTestCookie' => 'This+is+the+value'
                    
),
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
)
            ),
            array(
''false),
            array(
'foo'false),
            
// Test setting a blank value for a cookie
            
array(array(
                
'foo=''foo =''foo =;''foo= ;''foo =''foo= '),
                array(
                    
'cookies' => array(
                        
'foo' => ''
                    
),
                    
'data' => array(),
                    
'discard' => null,
                    
'domain' => null,
                    
'expires' => null,
                    
'max_age' => null,
                    
'path' => '/',
                    
'port' => null,
                    
'secure' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
)
            ),
            
// Test setting a value and removing quotes
            
array(array(
                
'foo=1''foo =1''foo =1;''foo=1 ;''foo =1''foo= 1''foo = 1 ;''foo="1"''foo="1";''foo= "1";'),
                array(
                    
'cookies' => array(
                        
'foo' => '1'
                    
),
                    
'data' => array(),
                    
'discard' => null,
                    
'domain' => null,
                    
'expires' => null,
                    
'max_age' => null,
                    
'path' => '/',
                    
'port' => null,
                    
'secure' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
)
            ),
            
// Test setting multiple values
            
array(array(
                
'foo=1; bar=2;''foo =1; bar = "2"''foo=1;   bar=2'),
                array(
                    
'cookies' => array(
                        
'foo' => '1',
                        
'bar' => '2',
                    ),
                    
'data' => array(),
                    
'discard' => null,
                    
'domain' => null,
                    
'expires' => null,
                    
'max_age' => null,
                    
'path' => '/',
                    
'port' => null,
                    
'secure' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
)
            ),
            
// Tests getting the domain and path from a reference request
            
array(array(
                
'foo=1; port="80,8081"; httponly''foo=1; port="80,8081"; domain=www.test.com; HttpOnly;''foo=1; ; domain=www.test.com; path=/path; port="80,8081"; HttpOnly;'),
                array(
                    
'cookies' => array(
                        
'foo' => 1
                    
),
                    
'data' => array(),
                    
'discard' => null,
                    
'domain' => 'www.test.com',
                    
'expires' => null,
                    
'max_age' => null,
                    
'path' => '/path',
                    
'port' => array('80''8081'),
                    
'secure' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => true
                
),
                
'http://www.test.com/path/'
            
),
            
// Some of the following tests are based on http://framework.zend.com/svn/framework/standard/trunk/tests/Zend/Http/CookieTest.php
            
array(
                
'justacookie=foo; domain=example.com',
                array(
                    
'cookies' => array(
                        
'justacookie' => 'foo'
                    
),
                    
'domain' => 'example.com',
                    
'data' => array(),
                    
'discard' => null,
                    
'expires' => null,
                    
'max_age' => null,
                    
'path' => '/',
                    
'port' => null,
                    
'secure' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
)
            ),
            array(
                
'expires=tomorrow; secure; path=/Space Out/; expires=Tue, 21-Nov-2006 08:33:44 GMT; domain=.example.com',
                array(
                    
'cookies' => array(
                        
'expires' => 'tomorrow'
                    
),
                    
'domain' => '.example.com',
                    
'path' => '/Space Out/',
                    
'expires' => 'Tue, 21-Nov-2006 08:33:44 GMT',
                    
'data' => array(),
                    
'discard' => null,
                    
'port' => null,
                    
'secure' => true,
                    
'version' => null,
                    
'max_age' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
)
            ),
            array(
                
'domain=unittests; expires=Tue, 21-Nov-2006 08:33:44 GMT; domain=example.com; path=/some value/',
                array(
                    
'cookies' => array(
                        
'domain' => 'unittests'
                    
),
                    
'domain' => 'example.com',
                    
'path' => '/some value/',
                    
'expires' => 'Tue, 21-Nov-2006 08:33:44 GMT',
                    
'secure' => false,
                    
'data' => array(),
                    
'discard' => null,
                    
'max_age' => null,
                    
'port' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
)
            ),
            array(
                
'path=indexAction; path=/; domain=.foo.com; expires=Tue, 21-Nov-2006 08:33:44 GMT',
                array(
                    
'cookies' => array(
                        
'path' => 'indexAction'
                    
),
                    
'domain' => '.foo.com',
                    
'path' => '/',
                    
'expires' => 'Tue, 21-Nov-2006 08:33:44 GMT',
                    
'secure' => false,
                    
'data' => array(),
                    
'discard' => null,
                    
'max_age' => null,
                    
'port' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
)
            ),
            array(
                
'secure=sha1; secure; SECURE; domain=some.really.deep.domain.com; version=1; Max-Age=86400',
                array(
                    
'cookies' => array(
                        
'secure' => 'sha1'
                    
),
                    
'domain' => 'some.really.deep.domain.com',
                    
'path' => '/',
                    
'secure' => true,
                    
'data' => array(),
                    
'discard' => null,
                    
'expires' => time() + 86400,
                    
'max_age' => 86400,
                    
'port' => null,
                    
'version' => 1,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
)
            ),
            array(
                
'PHPSESSID=123456789+abcd%2Cef; secure; discard; domain=.localdomain; path=/foo/baz; expires=Tue, 21-Nov-2006 08:33:44 GMT;',
                array(
                    
'cookies' => array(
                        
'PHPSESSID' => '123456789+abcd%2Cef'
                    
),
                    
'domain' => '.localdomain',
                    
'path' => '/foo/baz',
                    
'expires' => 'Tue, 21-Nov-2006 08:33:44 GMT',
                    
'secure' => true,
                    
'data' => array(),
                    
'discard' => true,
                    
'max_age' => null,
                    
'port' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
)
            ),
            
// rfc6265#section-5.1.4
            
array(
                
'cookie=value',
                array(
                    
'cookies' => array(
                        
'cookie' => 'value'
                    
),
                    
'domain' => 'example.com',
                    
'data' => array(),
                    
'discard' => null,
                    
'expires' => null,
                    
'max_age' => null,
                    
'path' => '/some/path',
                    
'port' => null,
                    
'secure' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
),
                
'http://example.com/some/path/test.html'
            
),
            array(
                
'empty=path',
                array(
                    
'cookies' => array(
                        
'empty' => 'path'
                    
),
                    
'domain' => 'example.com',
                    
'data' => array(),
                    
'discard' => null,
                    
'expires' => null,
                    
'max_age' => null,
                    
'path' => '/',
                    
'port' => null,
                    
'secure' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
),
                
'http://example.com/test.html'
            
),
            array(
                
'baz=qux',
                array(
                    
'cookies' => array(
                        
'baz' => 'qux'
                    
),
                    
'domain' => 'example.com',
                    
'data' => array(),
                    
'discard' => null,
                    
'expires' => null,
                    
'max_age' => null,
                    
'path' => '/',
                    
'port' => null,
                    
'secure' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
),
                
'http://example.com?query=here'
            
),
            array(
                
'test=noSlashPath; path=someString',
                array(
                    
'cookies' => array(
                        
'test' => 'noSlashPath'
                    
),
                    
'domain' => 'example.com',
                    
'data' => array(),
                    
'discard' => null,
                    
'expires' => null,
                    
'max_age' => null,
                    
'path' => '/real/path',
                    
'port' => null,
                    
'secure' => null,
                    
'version' => null,
                    
'comment' => null,
                    
'comment_url' => null,
                    
'http_only' => false
                
),
                
'http://example.com/real/path/'
            
),
        );
    }

    
/**
     * @dataProvider cookieParserDataProvider
     */
    
public function testParseCookie($cookie$parsed$url null)
    {
        
$c $this->cookieParserClass;
        
$parser = new $c();

        
$request null;
        if (
$url) {
            
$url Url::factory($url);
            
$host $url->getHost();
            
$path $url->getPath();
        } else {
            
$host '';
            
$path '';
        }

        foreach ((array) 
$cookie as $c) {
            
$p $parser->parseCookie($c$host$path);

            
// Remove expires values from the assertion if they are relatively equal by allowing a 5 minute difference
            
if ($p['expires'] != $parsed['expires']) {
                if (
abs($p['expires'] - $parsed['expires']) < 300) {
                    unset(
$p['expires']);
                    unset(
$parsed['expires']);
                }
            }

            if (
is_array($parsed)) {
                foreach (
$parsed as $key => $value) {
                    
$this->assertEquals($parsed[$key], $p[$key], 'Comparing ' $key ' ' var_export($valuetrue) . ' : ' var_export($parsedtrue) . ' | ' var_export($ptrue));
                }

                foreach (
$p as $key => $value) {
                    
$this->assertEquals($p[$key], $parsed[$key], 'Comparing ' $key ' ' var_export($valuetrue) . ' : ' var_export($parsedtrue) . ' | ' var_export($ptrue));
                }
            } else {
                
$this->assertEquals($parsed$p);
            }
        }
    }
}
Онлайн: 2
Реклама