Added PHPUnit

This commit is contained in:
Travis Swientek 2013-07-18 12:59:36 -05:00
parent d821940138
commit 834ca6f184
39 changed files with 1396 additions and 70357 deletions

422
composer.lock generated
View File

@ -3,20 +3,20 @@
"This file locks the dependencies of your project to a known state", "This file locks the dependencies of your project to a known state",
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
], ],
"hash": "ceb22f026edcfffa78d1c1eda80bb8af", "hash": "310ef17b762e0b0089b3d47f095feb45",
"packages": [ "packages": [
{ {
"name": "guzzle/guzzle", "name": "guzzle/guzzle",
"version": "v3.7.1", "version": "v3.7.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/guzzle.git", "url": "https://github.com/guzzle/guzzle.git",
"reference": "v3.7.1" "reference": "v3.7.0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/v3.7.1", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/v3.7.0",
"reference": "v3.7.1", "reference": "v3.7.0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -95,7 +95,7 @@
"rest", "rest",
"web service" "web service"
], ],
"time": "2013-07-05 20:17:54" "time": "2013-06-11 00:24:07"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
@ -153,7 +153,415 @@
} }
], ],
"packages-dev": [ "packages-dev": [
{
"name": "phpunit/php-code-coverage",
"version": "1.2.12",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "1.2.12"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1.2.12",
"reference": "1.2.12",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"phpunit/php-file-iterator": ">=1.3.0@stable",
"phpunit/php-text-template": ">=1.1.1@stable",
"phpunit/php-token-stream": ">=1.1.3@stable"
},
"require-dev": {
"phpunit/phpunit": "3.7.*@dev"
},
"suggest": {
"ext-dom": "*",
"ext-xdebug": ">=2.0.5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2.x-dev"
}
},
"autoload": {
"classmap": [
"PHP/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
"keywords": [
"coverage",
"testing",
"xunit"
],
"time": "2013-07-06 06:26:16"
},
{
"name": "phpunit/php-file-iterator",
"version": "1.3.3",
"source": {
"type": "git",
"url": "git://github.com/sebastianbergmann/php-file-iterator.git",
"reference": "1.3.3"
},
"dist": {
"type": "zip",
"url": "https://github.com/sebastianbergmann/php-file-iterator/zipball/1.3.3",
"reference": "1.3.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"autoload": {
"classmap": [
"File/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
"homepage": "http://www.phpunit.de/",
"keywords": [
"filesystem",
"iterator"
],
"time": "2012-10-11 04:44:38"
},
{
"name": "phpunit/php-text-template",
"version": "1.1.4",
"source": {
"type": "git",
"url": "git://github.com/sebastianbergmann/php-text-template.git",
"reference": "1.1.4"
},
"dist": {
"type": "zip",
"url": "https://github.com/sebastianbergmann/php-text-template/zipball/1.1.4",
"reference": "1.1.4",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"autoload": {
"classmap": [
"Text/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Simple template engine.",
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
"keywords": [
"template"
],
"time": "2012-10-31 11:15:28"
},
{
"name": "phpunit/php-timer",
"version": "1.0.4",
"source": {
"type": "git",
"url": "git://github.com/sebastianbergmann/php-timer.git",
"reference": "1.0.4"
},
"dist": {
"type": "zip",
"url": "https://github.com/sebastianbergmann/php-timer/zipball/1.0.4",
"reference": "1.0.4",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"autoload": {
"classmap": [
"PHP/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Utility class for timing",
"homepage": "http://www.phpunit.de/",
"keywords": [
"timer"
],
"time": "2012-10-11 04:45:58"
},
{
"name": "phpunit/php-token-stream",
"version": "1.1.5",
"source": {
"type": "git",
"url": "git://github.com/sebastianbergmann/php-token-stream.git",
"reference": "1.1.5"
},
"dist": {
"type": "zip",
"url": "https://github.com/sebastianbergmann/php-token-stream/zipball/1.1.5",
"reference": "1.1.5",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"php": ">=5.3.3"
},
"type": "library",
"autoload": {
"classmap": [
"PHP/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Wrapper around PHP's tokenizer extension.",
"homepage": "http://www.phpunit.de/",
"keywords": [
"tokenizer"
],
"time": "2012-10-11 04:47:14"
},
{
"name": "phpunit/phpunit",
"version": "3.7.22",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "3.7.22"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.22",
"reference": "3.7.22",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-pcre": "*",
"ext-reflection": "*",
"ext-spl": "*",
"php": ">=5.3.3",
"phpunit/php-code-coverage": "~1.2.1",
"phpunit/php-file-iterator": ">=1.3.1",
"phpunit/php-text-template": ">=1.1.1",
"phpunit/php-timer": "~1.0.2",
"phpunit/phpunit-mock-objects": "~1.2.0",
"symfony/yaml": "~2.0"
},
"require-dev": {
"pear-pear/pear": "1.9.4"
},
"suggest": {
"ext-json": "*",
"ext-simplexml": "*",
"ext-tokenizer": "*",
"phpunit/php-invoker": ">=1.1.0,<1.2.0"
},
"bin": [
"composer/bin/phpunit"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.7.x-dev"
}
},
"autoload": {
"classmap": [
"PHPUnit/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
"",
"../../symfony/yaml/"
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de",
"role": "lead"
}
],
"description": "The PHP Unit Testing framework.",
"homepage": "http://www.phpunit.de/",
"keywords": [
"phpunit",
"testing",
"xunit"
],
"time": "2013-07-06 06:29:15"
},
{
"name": "phpunit/phpunit-mock-objects",
"version": "1.2.3",
"source": {
"type": "git",
"url": "git://github.com/sebastianbergmann/phpunit-mock-objects.git",
"reference": "1.2.3"
},
"dist": {
"type": "zip",
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects/archive/1.2.3.zip",
"reference": "1.2.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"phpunit/php-text-template": ">=1.1.1@stable"
},
"suggest": {
"ext-soap": "*"
},
"type": "library",
"autoload": {
"classmap": [
"PHPUnit/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Mock Object library for PHPUnit",
"homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
"keywords": [
"mock",
"xunit"
],
"time": "2013-01-13 10:24:48"
},
{
"name": "symfony/yaml",
"version": "v2.3.2",
"target-dir": "Symfony/Component/Yaml",
"source": {
"type": "git",
"url": "https://github.com/symfony/Yaml.git",
"reference": "v2.3.2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.3.2",
"reference": "v2.3.2",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
}
},
"autoload": {
"psr-0": {
"Symfony\\Component\\Yaml\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony Yaml Component",
"homepage": "http://symfony.com",
"time": "2013-07-11 19:36:36"
}
], ],
"aliases": [ "aliases": [

69889
phpunit.phar

File diff suppressed because one or more lines are too long

2
vendor/autoload.php vendored
View File

@ -4,4 +4,4 @@
require_once __DIR__ . '/composer' . '/autoload_real.php'; require_once __DIR__ . '/composer' . '/autoload_real.php';
return ComposerAutoloaderInitc3bba688adf807132d48cc1ebc896d16::getLoader(); return ComposerAutoloaderInit0397b86fbbf8902d18a30c6f441f7f8b::getLoader();

View File

@ -6,4 +6,347 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
return array( return array(
'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/File/Iterator.php',
'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/File/Iterator/Facade.php',
'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/File/Iterator/Factory.php',
'PHPUnit_Extensions_GroupTestSuite' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/GroupTestSuite.php',
'PHPUnit_Extensions_PhptTestCase' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/PhptTestCase.php',
'PHPUnit_Extensions_PhptTestCase_Logger' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/PhptTestCase/Logger.php',
'PHPUnit_Extensions_PhptTestSuite' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/PhptTestSuite.php',
'PHPUnit_Extensions_RepeatedTest' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/RepeatedTest.php',
'PHPUnit_Extensions_TestDecorator' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/TestDecorator.php',
'PHPUnit_Extensions_TicketListener' => $vendorDir . '/phpunit/phpunit/PHPUnit/Extensions/TicketListener.php',
'PHPUnit_Framework_Assert' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Assert.php',
'PHPUnit_Framework_AssertionFailedError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/AssertionFailedError.php',
'PHPUnit_Framework_Comparator' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator.php',
'PHPUnit_Framework_ComparatorFactory' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/ComparatorFactory.php',
'PHPUnit_Framework_Comparator_Array' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Array.php',
'PHPUnit_Framework_Comparator_DOMDocument' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/DOMDocument.php',
'PHPUnit_Framework_Comparator_Double' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Double.php',
'PHPUnit_Framework_Comparator_Exception' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Exception.php',
'PHPUnit_Framework_Comparator_MockObject' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/MockObject.php',
'PHPUnit_Framework_Comparator_Numeric' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Numeric.php',
'PHPUnit_Framework_Comparator_Object' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Object.php',
'PHPUnit_Framework_Comparator_Resource' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Resource.php',
'PHPUnit_Framework_Comparator_Scalar' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Scalar.php',
'PHPUnit_Framework_Comparator_SplObjectStorage' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/SplObjectStorage.php',
'PHPUnit_Framework_Comparator_Type' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Comparator/Type.php',
'PHPUnit_Framework_ComparisonFailure' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/ComparisonFailure.php',
'PHPUnit_Framework_Constraint' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint.php',
'PHPUnit_Framework_Constraint_And' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/And.php',
'PHPUnit_Framework_Constraint_ArrayHasKey' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ArrayHasKey.php',
'PHPUnit_Framework_Constraint_Attribute' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Attribute.php',
'PHPUnit_Framework_Constraint_Callback' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Callback.php',
'PHPUnit_Framework_Constraint_ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ClassHasAttribute.php',
'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ClassHasStaticAttribute.php',
'PHPUnit_Framework_Constraint_Composite' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Composite.php',
'PHPUnit_Framework_Constraint_Count' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Count.php',
'PHPUnit_Framework_Constraint_Exception' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Exception.php',
'PHPUnit_Framework_Constraint_ExceptionCode' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ExceptionCode.php',
'PHPUnit_Framework_Constraint_ExceptionMessage' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ExceptionMessage.php',
'PHPUnit_Framework_Constraint_FileExists' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/FileExists.php',
'PHPUnit_Framework_Constraint_GreaterThan' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/GreaterThan.php',
'PHPUnit_Framework_Constraint_IsAnything' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsAnything.php',
'PHPUnit_Framework_Constraint_IsEmpty' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsEmpty.php',
'PHPUnit_Framework_Constraint_IsEqual' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsEqual.php',
'PHPUnit_Framework_Constraint_IsFalse' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsFalse.php',
'PHPUnit_Framework_Constraint_IsIdentical' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsIdentical.php',
'PHPUnit_Framework_Constraint_IsInstanceOf' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsInstanceOf.php',
'PHPUnit_Framework_Constraint_IsJson' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsJson.php',
'PHPUnit_Framework_Constraint_IsNull' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsNull.php',
'PHPUnit_Framework_Constraint_IsTrue' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsTrue.php',
'PHPUnit_Framework_Constraint_IsType' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/IsType.php',
'PHPUnit_Framework_Constraint_JsonMatches' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/JsonMatches.php',
'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/JsonMatches/ErrorMessageProvider.php',
'PHPUnit_Framework_Constraint_LessThan' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/LessThan.php',
'PHPUnit_Framework_Constraint_Not' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Not.php',
'PHPUnit_Framework_Constraint_ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/ObjectHasAttribute.php',
'PHPUnit_Framework_Constraint_Or' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Or.php',
'PHPUnit_Framework_Constraint_PCREMatch' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/PCREMatch.php',
'PHPUnit_Framework_Constraint_SameSize' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/SameSize.php',
'PHPUnit_Framework_Constraint_StringContains' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/StringContains.php',
'PHPUnit_Framework_Constraint_StringEndsWith' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/StringEndsWith.php',
'PHPUnit_Framework_Constraint_StringMatches' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/StringMatches.php',
'PHPUnit_Framework_Constraint_StringStartsWith' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/StringStartsWith.php',
'PHPUnit_Framework_Constraint_TraversableContains' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/TraversableContains.php',
'PHPUnit_Framework_Constraint_TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/TraversableContainsOnly.php',
'PHPUnit_Framework_Constraint_Xor' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Constraint/Xor.php',
'PHPUnit_Framework_Error' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Error.php',
'PHPUnit_Framework_Error_Deprecated' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Error/Deprecated.php',
'PHPUnit_Framework_Error_Notice' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Error/Notice.php',
'PHPUnit_Framework_Error_Warning' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Error/Warning.php',
'PHPUnit_Framework_Exception' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Exception.php',
'PHPUnit_Framework_ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/ExpectationFailedException.php',
'PHPUnit_Framework_IncompleteTest' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/IncompleteTest.php',
'PHPUnit_Framework_IncompleteTestError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/IncompleteTestError.php',
'PHPUnit_Framework_MockObject_Builder_Identity' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Identity.php',
'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/InvocationMocker.php',
'PHPUnit_Framework_MockObject_Builder_Match' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Match.php',
'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/MethodNameMatch.php',
'PHPUnit_Framework_MockObject_Builder_Namespace' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Namespace.php',
'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/ParametersMatch.php',
'PHPUnit_Framework_MockObject_Builder_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Stub.php',
'PHPUnit_Framework_MockObject_Generator' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator.php',
'PHPUnit_Framework_MockObject_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation.php',
'PHPUnit_Framework_MockObject_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/InvocationMocker.php',
'PHPUnit_Framework_MockObject_Invocation_Object' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation/Object.php',
'PHPUnit_Framework_MockObject_Invocation_Static' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation/Static.php',
'PHPUnit_Framework_MockObject_Invokable' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invokable.php',
'PHPUnit_Framework_MockObject_Matcher' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher.php',
'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/AnyInvokedCount.php',
'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/AnyParameters.php',
'PHPUnit_Framework_MockObject_Matcher_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/Invocation.php',
'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedAtIndex.php',
'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',
'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedCount.php',
'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedRecorder.php',
'PHPUnit_Framework_MockObject_Matcher_MethodName' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/MethodName.php',
'PHPUnit_Framework_MockObject_Matcher_Parameters' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/Parameters.php',
'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/StatelessInvocation.php',
'PHPUnit_Framework_MockObject_MockBuilder' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/MockBuilder.php',
'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/MockObject.php',
'PHPUnit_Framework_MockObject_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub.php',
'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ConsecutiveCalls.php',
'PHPUnit_Framework_MockObject_Stub_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/Exception.php',
'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/MatcherCollection.php',
'PHPUnit_Framework_MockObject_Stub_Return' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/Return.php',
'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnArgument.php',
'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnCallback.php',
'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnSelf.php',
'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnValueMap.php',
'PHPUnit_Framework_MockObject_Verifiable' => $vendorDir . '/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Verifiable.php',
'PHPUnit_Framework_OutputError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/OutputError.php',
'PHPUnit_Framework_SelfDescribing' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/SelfDescribing.php',
'PHPUnit_Framework_SkippedTest' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/SkippedTest.php',
'PHPUnit_Framework_SkippedTestError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/SkippedTestError.php',
'PHPUnit_Framework_SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/SkippedTestSuiteError.php',
'PHPUnit_Framework_SyntheticError' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/SyntheticError.php',
'PHPUnit_Framework_Test' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Test.php',
'PHPUnit_Framework_TestCase' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestCase.php',
'PHPUnit_Framework_TestFailure' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestFailure.php',
'PHPUnit_Framework_TestListener' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestListener.php',
'PHPUnit_Framework_TestResult' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestResult.php',
'PHPUnit_Framework_TestSuite' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestSuite.php',
'PHPUnit_Framework_TestSuite_DataProvider' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/TestSuite/DataProvider.php',
'PHPUnit_Framework_Warning' => $vendorDir . '/phpunit/phpunit/PHPUnit/Framework/Warning.php',
'PHPUnit_Runner_BaseTestRunner' => $vendorDir . '/phpunit/phpunit/PHPUnit/Runner/BaseTestRunner.php',
'PHPUnit_Runner_StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/PHPUnit/Runner/StandardTestSuiteLoader.php',
'PHPUnit_Runner_TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/PHPUnit/Runner/TestSuiteLoader.php',
'PHPUnit_Runner_Version' => $vendorDir . '/phpunit/phpunit/PHPUnit/Runner/Version.php',
'PHPUnit_TextUI_Command' => $vendorDir . '/phpunit/phpunit/PHPUnit/TextUI/Command.php',
'PHPUnit_TextUI_ResultPrinter' => $vendorDir . '/phpunit/phpunit/PHPUnit/TextUI/ResultPrinter.php',
'PHPUnit_TextUI_TestRunner' => $vendorDir . '/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php',
'PHPUnit_Util_Class' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Class.php',
'PHPUnit_Util_Configuration' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Configuration.php',
'PHPUnit_Util_DeprecatedFeature' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/DeprecatedFeature.php',
'PHPUnit_Util_DeprecatedFeature_Logger' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/DeprecatedFeature/Logger.php',
'PHPUnit_Util_Diff' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Diff.php',
'PHPUnit_Util_ErrorHandler' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/ErrorHandler.php',
'PHPUnit_Util_Fileloader' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Fileloader.php',
'PHPUnit_Util_Filesystem' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Filesystem.php',
'PHPUnit_Util_Filter' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Filter.php',
'PHPUnit_Util_Getopt' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Getopt.php',
'PHPUnit_Util_GlobalState' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/GlobalState.php',
'PHPUnit_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/InvalidArgumentHelper.php',
'PHPUnit_Util_Log_JSON' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Log/JSON.php',
'PHPUnit_Util_Log_JUnit' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Log/JUnit.php',
'PHPUnit_Util_Log_TAP' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Log/TAP.php',
'PHPUnit_Util_PHP' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/PHP.php',
'PHPUnit_Util_PHP_Default' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/PHP/Default.php',
'PHPUnit_Util_PHP_Windows' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/PHP/Windows.php',
'PHPUnit_Util_Printer' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Printer.php',
'PHPUnit_Util_String' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/String.php',
'PHPUnit_Util_Test' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Test.php',
'PHPUnit_Util_TestDox_NamePrettifier' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/TestDox/NamePrettifier.php',
'PHPUnit_Util_TestDox_ResultPrinter' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter.php',
'PHPUnit_Util_TestDox_ResultPrinter_HTML' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter/HTML.php',
'PHPUnit_Util_TestDox_ResultPrinter_Text' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter/Text.php',
'PHPUnit_Util_TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/TestSuiteIterator.php',
'PHPUnit_Util_Type' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/Type.php',
'PHPUnit_Util_XML' => $vendorDir . '/phpunit/phpunit/PHPUnit/Util/XML.php',
'PHP_CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage.php',
'PHP_CodeCoverage_Driver' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Driver.php',
'PHP_CodeCoverage_Driver_Xdebug' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Driver/Xdebug.php',
'PHP_CodeCoverage_Exception' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Exception.php',
'PHP_CodeCoverage_Filter' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Filter.php',
'PHP_CodeCoverage_Report_Clover' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Clover.php',
'PHP_CodeCoverage_Report_Factory' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Factory.php',
'PHP_CodeCoverage_Report_HTML' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML.php',
'PHP_CodeCoverage_Report_HTML_Renderer' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer.php',
'PHP_CodeCoverage_Report_HTML_Renderer_Dashboard' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Dashboard.php',
'PHP_CodeCoverage_Report_HTML_Renderer_Directory' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Directory.php',
'PHP_CodeCoverage_Report_HTML_Renderer_File' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/File.php',
'PHP_CodeCoverage_Report_Node' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node.php',
'PHP_CodeCoverage_Report_Node_Directory' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/Directory.php',
'PHP_CodeCoverage_Report_Node_File' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/File.php',
'PHP_CodeCoverage_Report_Node_Iterator' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/Iterator.php',
'PHP_CodeCoverage_Report_PHP' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/PHP.php',
'PHP_CodeCoverage_Report_Text' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Text.php',
'PHP_CodeCoverage_Util' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Util.php',
'PHP_CodeCoverage_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Util/InvalidArgumentHelper.php',
'PHP_CodeCoverage_Version' => $vendorDir . '/phpunit/php-code-coverage/PHP/CodeCoverage/Version.php',
'PHP_Timer' => $vendorDir . '/phpunit/php-timer/PHP/Timer.php',
'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/PHP/Token/Stream.php',
'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/PHP/Token/Stream/CachingFactory.php',
'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/PHP/Token.php',
'Text_Template' => $vendorDir . '/phpunit/php-text-template/Text/Template.php',
); );

View File

@ -6,6 +6,7 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
return array( return array(
'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'),
'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'), 'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'),
'Guzzle\\Tests' => array($vendorDir . '/guzzle/guzzle/tests'), 'Guzzle\\Tests' => array($vendorDir . '/guzzle/guzzle/tests'),
'Guzzle' => array($vendorDir . '/guzzle/guzzle/src'), 'Guzzle' => array($vendorDir . '/guzzle/guzzle/src'),

View File

@ -2,7 +2,7 @@
// autoload_real.php generated by Composer // autoload_real.php generated by Composer
class ComposerAutoloaderInitc3bba688adf807132d48cc1ebc896d16 class ComposerAutoloaderInit0397b86fbbf8902d18a30c6f441f7f8b
{ {
private static $loader; private static $loader;
@ -19,13 +19,17 @@ class ComposerAutoloaderInitc3bba688adf807132d48cc1ebc896d16
return self::$loader; return self::$loader;
} }
spl_autoload_register(array('ComposerAutoloaderInitc3bba688adf807132d48cc1ebc896d16', 'loadClassLoader'), true, true); spl_autoload_register(array('ComposerAutoloaderInit0397b86fbbf8902d18a30c6f441f7f8b', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(); self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInitc3bba688adf807132d48cc1ebc896d16', 'loadClassLoader')); spl_autoload_unregister(array('ComposerAutoloaderInit0397b86fbbf8902d18a30c6f441f7f8b', 'loadClassLoader'));
$vendorDir = dirname(__DIR__); $vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir); $baseDir = dirname($vendorDir);
$includePaths = require __DIR__ . '/include_paths.php';
array_push($includePaths, get_include_path());
set_include_path(join(PATH_SEPARATOR, $includePaths));
$map = require __DIR__ . '/autoload_namespaces.php'; $map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) { foreach ($map as $namespace => $path) {
$loader->set($namespace, $path); $loader->set($namespace, $path);

View File

@ -57,17 +57,17 @@
}, },
{ {
"name": "guzzle/guzzle", "name": "guzzle/guzzle",
"version": "v3.7.1", "version": "v3.7.0",
"version_normalized": "3.7.1.0", "version_normalized": "3.7.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/guzzle.git", "url": "https://github.com/guzzle/guzzle.git",
"reference": "v3.7.1" "reference": "v3.7.0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/v3.7.1", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/v3.7.0",
"reference": "v3.7.1", "reference": "v3.7.0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -108,7 +108,7 @@
"zendframework/zend-cache": "2.0.*", "zendframework/zend-cache": "2.0.*",
"zendframework/zend-log": "2.0.*" "zendframework/zend-log": "2.0.*"
}, },
"time": "2013-07-05 20:17:54", "time": "2013-06-11 00:24:07",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@ -148,5 +148,430 @@
"rest", "rest",
"web service" "web service"
] ]
},
{
"name": "symfony/yaml",
"version": "v2.3.2",
"version_normalized": "2.3.2.0",
"target-dir": "Symfony/Component/Yaml",
"source": {
"type": "git",
"url": "https://github.com/symfony/Yaml.git",
"reference": "v2.3.2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.3.2",
"reference": "v2.3.2",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"time": "2013-07-11 19:36:36",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
}
},
"installation-source": "dist",
"autoload": {
"psr-0": {
"Symfony\\Component\\Yaml\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony Yaml Component",
"homepage": "http://symfony.com"
},
{
"name": "phpunit/php-text-template",
"version": "1.1.4",
"version_normalized": "1.1.4.0",
"source": {
"type": "git",
"url": "git://github.com/sebastianbergmann/php-text-template.git",
"reference": "1.1.4"
},
"dist": {
"type": "zip",
"url": "https://github.com/sebastianbergmann/php-text-template/zipball/1.1.4",
"reference": "1.1.4",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"time": "2012-10-31 11:15:28",
"type": "library",
"installation-source": "dist",
"autoload": {
"classmap": [
"Text/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Simple template engine.",
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
"keywords": [
"template"
]
},
{
"name": "phpunit/phpunit-mock-objects",
"version": "1.2.3",
"version_normalized": "1.2.3.0",
"source": {
"type": "git",
"url": "git://github.com/sebastianbergmann/phpunit-mock-objects.git",
"reference": "1.2.3"
},
"dist": {
"type": "zip",
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects/archive/1.2.3.zip",
"reference": "1.2.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"phpunit/php-text-template": ">=1.1.1@stable"
},
"suggest": {
"ext-soap": "*"
},
"time": "2013-01-13 10:24:48",
"type": "library",
"installation-source": "dist",
"autoload": {
"classmap": [
"PHPUnit/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Mock Object library for PHPUnit",
"homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
"keywords": [
"mock",
"xunit"
]
},
{
"name": "phpunit/php-timer",
"version": "1.0.4",
"version_normalized": "1.0.4.0",
"source": {
"type": "git",
"url": "git://github.com/sebastianbergmann/php-timer.git",
"reference": "1.0.4"
},
"dist": {
"type": "zip",
"url": "https://github.com/sebastianbergmann/php-timer/zipball/1.0.4",
"reference": "1.0.4",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"time": "2012-10-11 04:45:58",
"type": "library",
"installation-source": "dist",
"autoload": {
"classmap": [
"PHP/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Utility class for timing",
"homepage": "http://www.phpunit.de/",
"keywords": [
"timer"
]
},
{
"name": "phpunit/php-token-stream",
"version": "1.1.5",
"version_normalized": "1.1.5.0",
"source": {
"type": "git",
"url": "git://github.com/sebastianbergmann/php-token-stream.git",
"reference": "1.1.5"
},
"dist": {
"type": "zip",
"url": "https://github.com/sebastianbergmann/php-token-stream/zipball/1.1.5",
"reference": "1.1.5",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"php": ">=5.3.3"
},
"time": "2012-10-11 04:47:14",
"type": "library",
"installation-source": "dist",
"autoload": {
"classmap": [
"PHP/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Wrapper around PHP's tokenizer extension.",
"homepage": "http://www.phpunit.de/",
"keywords": [
"tokenizer"
]
},
{
"name": "phpunit/php-file-iterator",
"version": "1.3.3",
"version_normalized": "1.3.3.0",
"source": {
"type": "git",
"url": "git://github.com/sebastianbergmann/php-file-iterator.git",
"reference": "1.3.3"
},
"dist": {
"type": "zip",
"url": "https://github.com/sebastianbergmann/php-file-iterator/zipball/1.3.3",
"reference": "1.3.3",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"time": "2012-10-11 04:44:38",
"type": "library",
"installation-source": "dist",
"autoload": {
"classmap": [
"File/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
"homepage": "http://www.phpunit.de/",
"keywords": [
"filesystem",
"iterator"
]
},
{
"name": "phpunit/php-code-coverage",
"version": "1.2.12",
"version_normalized": "1.2.12.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "1.2.12"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1.2.12",
"reference": "1.2.12",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"phpunit/php-file-iterator": ">=1.3.0@stable",
"phpunit/php-text-template": ">=1.1.1@stable",
"phpunit/php-token-stream": ">=1.1.3@stable"
},
"require-dev": {
"phpunit/phpunit": "3.7.*@dev"
},
"suggest": {
"ext-dom": "*",
"ext-xdebug": ">=2.0.5"
},
"time": "2013-07-06 06:26:16",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"classmap": [
"PHP/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
""
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
"keywords": [
"coverage",
"testing",
"xunit"
]
},
{
"name": "phpunit/phpunit",
"version": "3.7.22",
"version_normalized": "3.7.22.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "3.7.22"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.22",
"reference": "3.7.22",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-pcre": "*",
"ext-reflection": "*",
"ext-spl": "*",
"php": ">=5.3.3",
"phpunit/php-code-coverage": "~1.2.1",
"phpunit/php-file-iterator": ">=1.3.1",
"phpunit/php-text-template": ">=1.1.1",
"phpunit/php-timer": "~1.0.2",
"phpunit/phpunit-mock-objects": "~1.2.0",
"symfony/yaml": "~2.0"
},
"require-dev": {
"pear-pear/pear": "1.9.4"
},
"suggest": {
"ext-json": "*",
"ext-simplexml": "*",
"ext-tokenizer": "*",
"phpunit/php-invoker": ">=1.1.0,<1.2.0"
},
"time": "2013-07-06 06:29:15",
"bin": [
"composer/bin/phpunit"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.7.x-dev"
}
},
"installation-source": "dist",
"autoload": {
"classmap": [
"PHPUnit/"
]
},
"notification-url": "https://packagist.org/downloads/",
"include-path": [
"",
"../../symfony/yaml/"
],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de",
"role": "lead"
}
],
"description": "The PHP Unit Testing framework.",
"homepage": "http://www.phpunit.de/",
"keywords": [
"phpunit",
"testing",
"xunit"
]
} }
] ]

View File

@ -1,17 +1,14 @@
language: php language: php
php: php:
- 5.3 - 5.3
- 5.4 - 5.4
- 5.5
before_script: before_script:
- curl --version - curl --version
- pear config-set php_ini ~/.phpenv/versions/`php -r 'echo phpversion();'`/etc/php.ini - pear config-set php_ini ~/.phpenv/versions/`php -r 'echo phpversion();'`/etc/php.ini
- echo 'Installing pecl_http' - echo 'Installing pecl_http'
- wget --quiet http://pecl.php.net/get/pecl_http-1.7.6.tgz - wget --quiet http://pecl.php.net/get/pecl_http-1.7.4.tgz
- tar -xzf pecl_http-1.7.6.tgz - tar -xzf pecl_http-1.7.4.tgz
- sh -c "cd pecl_http-1.7.6 && phpize && ./configure && make && sudo make install" > /dev/null - sh -c "cd pecl_http-1.7.4 && phpize && ./configure && make && sudo make install" > /dev/null
- echo "extension=http.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` - echo "extension=http.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
- pecl install uri_template-beta - pecl install uri_template-beta
- pear config-set auto_discover 1 - pear config-set auto_discover 1
@ -27,5 +24,4 @@ before_script:
- cp phing/build.properties.travis phing/build.properties - cp phing/build.properties.travis phing/build.properties
- echo 'Ensuring the correct version of node is running' - echo 'Ensuring the correct version of node is running'
- ~/.nvm/nvm.sh install v0.6.14 - ~/.nvm/nvm.sh install v0.6.14
script: phing travisci script: phing travisci

View File

@ -1,22 +1,6 @@
CHANGELOG CHANGELOG
========= =========
3.7.1 (2013-07-05)
------------------
* Bug fix: Setting default options on a client now works
* Bug fix: Setting options on HEAD requests now works. See #352
* Bug fix: Moving stream factory before send event to before building the stream. See #353
* Bug fix: Cookies no longer match on IP addresses per RFC 6265
* Bug fix: Correctly parsing header parameters that are in `<>` and quotes
* Added `cert` and `ssl_key` as request options
* `Host` header can now diverge from the host part of a URL if the header is set manually
* `Guzzle\Service\Command\LocationVisitor\Request\XmlVisitor` was rewritten to change from using SimpleXML to XMLWriter
* OAuth parameters are only added via the plugin if they aren't already set
* Exceptions are now thrown when a URL cannot be parsed
* Returning `false` if `Guzzle\Http\EntityBody::getContentMd5()` fails
* Not setting a `Content-MD5` on a command if calculating the Content-MD5 fails via the CommandContentMd5Plugin
3.7.0 (2013-06-10) 3.7.0 (2013-06-10)
------------------ ------------------

View File

@ -32,7 +32,7 @@ The recommended way to install Guzzle is through [Composer](http://getcomposer.o
curl -sS https://getcomposer.org/installer | php curl -sS https://getcomposer.org/installer | php
# Add Guzzle as a dependency # Add Guzzle as a dependency
php composer.phar require guzzle/guzzle:~3.7 php composer.phar require guzzle/guzzle:~3.6
``` ```
After installing, you need to require Composer's autoloader: After installing, you need to require Composer's autoloader:
@ -204,7 +204,3 @@ Unit testing
Guzzle uses PHPUnit for unit testing. In order to run the unit tests, you'll first need Guzzle uses PHPUnit for unit testing. In order to run the unit tests, you'll first need
to install the dependencies of the project using Composer: `php composer.phar install --dev`. to install the dependencies of the project using Composer: `php composer.phar install --dev`.
You can then run the tests using `vendor/bin/phpunit`. You can then run the tests using `vendor/bin/phpunit`.
If you are running the tests with xdebug enabled, you may encounter the following issue: 'Fatal error: Maximum function nesting level of '100' reached, aborting!'. This can be resolved by adding 'xdebug.max_nesting_level = 200' to your php.ini file.
The PECL extensions, uri_template and pecl_http will be required to ensure all the tests can run.

View File

@ -7,7 +7,7 @@ namespace Guzzle\Common;
*/ */
class Version class Version
{ {
const VERSION = '3.7.1'; const VERSION = '3.7.0';
/** /**
* @var bool Set this value to true to enable warnings for deprecated functionality use. This should be on in your * @var bool Set this value to true to enable warnings for deprecated functionality use. This should be on in your

View File

@ -109,8 +109,11 @@ class Client extends AbstractHasDispatcher implements ClientInterface
*/ */
public function setDefaultOption($keyOrPath, $value) public function setDefaultOption($keyOrPath, $value)
{ {
$keyOrPath = self::REQUEST_OPTIONS . '/' . $keyOrPath; if (strpos($keyOrPath, '/')) {
$this->config->setPath($keyOrPath, $value); $this->config->setPath($keyOrPath, $value);
} else {
$this->config[$keyOrPath] = $value;
}
return $this; return $this;
} }
@ -124,9 +127,7 @@ class Client extends AbstractHasDispatcher implements ClientInterface
*/ */
public function getDefaultOption($keyOrPath) public function getDefaultOption($keyOrPath)
{ {
$keyOrPath = self::REQUEST_OPTIONS . '/' . $keyOrPath; return strpos($keyOrPath, '/') ? $this->config->getPath($keyOrPath) : $this->config[$keyOrPath];
return $this->config->getPath($keyOrPath);
} }
final public function setSslVerification($certificateAuthority = true, $verifyPeer = true, $verifyHost = 2) final public function setSslVerification($certificateAuthority = true, $verifyPeer = true, $verifyHost = 2)
@ -243,7 +244,7 @@ class Client extends AbstractHasDispatcher implements ClientInterface
public function head($uri = null, $headers = null, array $options = array()) public function head($uri = null, $headers = null, array $options = array())
{ {
return $this->createRequest('HEAD', $uri, $headers, null, $options); return $this->createRequest('HEAD', $uri, $headers, $options);
} }
public function delete($uri = null, $headers = null, $body = null, array $options = array()) public function delete($uri = null, $headers = null, $body = null, array $options = array())

View File

@ -128,15 +128,18 @@ class RequestMediator
*/ */
public function readRequestBody($ch, $fd, $length) public function readRequestBody($ch, $fd, $length)
{ {
if (!($body = $this->request->getBody())) { $read = '';
return '';
if ($this->request->getBody()) {
$read = $this->request->getBody()->read($length);
if ($this->emitIo) {
$this->request->dispatch('curl.callback.read', array(
'request' => $this->request,
'read' => $read
));
}
} }
$read = (string) $body->read($length); return !$read ? '' : $read;
if ($this->emitIo) {
$this->request->dispatch('curl.callback.read', array('request' => $this->request, 'read' => $read));
}
return $read;
} }
} }

View File

@ -126,11 +126,9 @@ class EntityBody extends Stream implements EntityBodyInterface
public function getContentMd5($rawOutput = false, $base64Encode = false) public function getContentMd5($rawOutput = false, $base64Encode = false)
{ {
if ($hash = self::getHash($this, 'md5', $rawOutput)) { $hash = self::getHash($this, 'md5', $rawOutput);
return $hash && $base64Encode ? base64_encode($hash) : $hash;
} else { return $hash && $base64Encode ? base64_encode($hash) : $hash;
return false;
}
} }
/** /**

View File

@ -122,17 +122,20 @@ class Header implements HeaderInterface
return new \ArrayIterator($this->toArray()); return new \ArrayIterator($this->toArray());
} }
/**
* {@inheritdoc}
* @todo Do not split semicolons when enclosed in quotes (e.g. foo="baz;bar")
*/
public function parseParams() public function parseParams()
{ {
$params = $matches = array(); $params = array();
$callback = array($this, 'trimHeader'); $callback = array($this, 'trimHeader');
// Normalize the header into a single array and iterate over all values // Normalize the header into a single array and iterate over all values
foreach ($this->normalize()->toArray() as $val) { foreach ($this->normalize()->toArray() as $val) {
$part = array(); $part = array();
foreach (preg_split('/;(?=([^"]*"[^"]*")*[^"]*$)/', $val) as $kvp) { foreach (explode(';', $val) as $kvp) {
preg_match_all('/<[^>]+>|[^=]+/', $kvp, $matches); $pieces = array_map($callback, explode('=', $kvp, 2));
$pieces = array_map($callback, $matches[0]);
$part[$pieces[0]] = isset($pieces[1]) ? $pieces[1] : ''; $part[$pieces[0]] = isset($pieces[1]) ? $pieces[1] : '';
} }
$params[] = $part; $params[] = $part;

View File

@ -542,6 +542,21 @@ class Request extends AbstractMessage implements RequestInterface
return $this; return $this;
} }
/**
* {@inheritdoc}
* Adds a check for Host header changes
*/
public function addHeader($header, $value)
{
parent::addHeader($header, $value);
if ($header == 'host' || $header == 'Host') {
$this->setHost((string) $this->getHeader('Host'));
}
return $this;
}
/** /**
* Get an array containing the request and response for event notifications * Get an array containing the request and response for event notifications
* *

View File

@ -333,24 +333,4 @@ class RequestFactory implements RequestFactoryInterface
{ {
$request->getCurlOptions()->set(CURLOPT_PROXY, $value, $flags); $request->getCurlOptions()->set(CURLOPT_PROXY, $value, $flags);
} }
protected function visit_cert(RequestInterface $request, $value, $flags)
{
if (is_array($value)) {
$request->getCurlOptions()->set(CURLOPT_SSLCERT, $value[0]);
$request->getCurlOptions()->set(CURLOPT_SSLCERTPASSWD, $value[1]);
} else {
$request->getCurlOptions()->set(CURLOPT_SSLCERT, $value);
}
}
protected function visit_ssl_key(RequestInterface $request, $value, $flags)
{
if (is_array($value)) {
$request->getCurlOptions()->set(CURLOPT_SSLKEY, $value[0]);
$request->getCurlOptions()->set(CURLOPT_SSLKEYPASSWD, $value[1]);
} else {
$request->getCurlOptions()->set(CURLOPT_SSLKEY, $value);
}
}
} }

View File

@ -88,12 +88,6 @@ interface RequestFactoryInterface
* indefinitely. * indefinitely.
* "verify": Set to true to enable SSL cert validation (the default), false to disable, or supply the path * "verify": Set to true to enable SSL cert validation (the default), false to disable, or supply the path
* to a CA bundle to enable verification using a custom certificate. * to a CA bundle to enable verification using a custom certificate.
* "cert": Set to a string to specify the path to a file containing a PEM formatted certificate. If a
* password is required, then set an array containing the path to the PEM file followed by the the
* password required for the certificate.
* "ssl_key": Specify the path to a file containing a private SSL key in PEM format. If a password is
* required, then set an array containing the path to the SSL key followed by the password required for
* the certificate.
* "proxy": Specify an HTTP proxy (e.g. "http://username:password@192.168.16.1:10") * "proxy": Specify an HTTP proxy (e.g. "http://username:password@192.168.16.1:10")
* "debug": Set to true to display all data sent over the wire * "debug": Set to true to display all data sent over the wire
* @param int $flags Bitwise flags to apply when applying the options to the request. Defaults to no special * @param int $flags Bitwise flags to apply when applying the options to the request. Defaults to no special

View File

@ -27,18 +27,13 @@ class Url
* @param string $url Full URL used to create a Url object * @param string $url Full URL used to create a Url object
* *
* @return Url * @return Url
* @throws InvalidArgumentException
*/ */
public static function factory($url) public static function factory($url)
{ {
static $defaults = array('scheme' => null, 'host' => null, 'path' => null, 'port' => null, 'query' => null, static $defaults = array('scheme' => null, 'host' => null, 'path' => null, 'port' => null, 'query' => null,
'user' => null, 'pass' => null, 'fragment' => null); 'user' => null, 'pass' => null, 'fragment' => null);
if (false === ($parts = parse_url($url))) { $parts = parse_url($url) + $defaults;
throw new InvalidArgumentException('Was unable to parse malformed url: ' . $url);
}
$parts += $defaults;
// Convert the query string into a QueryString object // Convert the query string into a QueryString object
if ($parts['query'] || 0 !== strlen($parts['query'])) { if ($parts['query'] || 0 !== strlen($parts['query'])) {

View File

@ -440,10 +440,6 @@ class Cookie implements ToArrayInterface
return false; return false;
} }
if (filter_var($domain, FILTER_VALIDATE_IP)) {
return false;
}
if (substr($domain, -strlen($realDomain)) === $realDomain) { if (substr($domain, -strlen($realDomain)) === $realDomain) {
// Match exact or 1 deep subdomain. // Match exact or 1 deep subdomain.
return !strcasecmp($domain, $realDomain) || return !strcasecmp($domain, $realDomain) ||

View File

@ -43,9 +43,7 @@ class CommandContentMd5Plugin implements EventSubscriberInterface
&& $command->getOperation()->hasParam($this->contentMd5Param)) { && $command->getOperation()->hasParam($this->contentMd5Param)) {
// Check if an MD5 checksum value should be passed along to the request // Check if an MD5 checksum value should be passed along to the request
if ($command[$this->contentMd5Param] === true) { if ($command[$this->contentMd5Param] === true) {
if (false !== ($md5 = $request->getBody()->getContentMd5(true, true))) { $request->setHeader('Content-MD5', $request->getBody()->getContentMd5(true, true));
$request->setHeader('Content-MD5', $md5);
}
} }
} }

View File

@ -163,22 +163,16 @@ class OauthPlugin implements EventSubscriberInterface
public function getParamsToSign(RequestInterface $request, $timestamp, $nonce) public function getParamsToSign(RequestInterface $request, $timestamp, $nonce)
{ {
$params = new Collection(array( $params = new Collection(array(
'oauth_callback' => $this->config['callback'],
'oauth_consumer_key' => $this->config['consumer_key'], 'oauth_consumer_key' => $this->config['consumer_key'],
'oauth_nonce' => $nonce, 'oauth_nonce' => $nonce,
'oauth_signature_method' => $this->config['signature_method'], 'oauth_signature_method' => $this->config['signature_method'],
'oauth_timestamp' => $timestamp, 'oauth_timestamp' => $timestamp,
'oauth_token' => $this->config['token'], 'oauth_token' => $this->config['token'],
'oauth_verifier' => $this->config['verifier'],
'oauth_version' => $this->config['version'] 'oauth_version' => $this->config['version']
)); ));
if (array_key_exists('callback', $this->config) == true) {
$params['oauth_callback'] = $this->config['callback'];
}
if (array_key_exists('verifier', $this->config) == true) {
$params['oauth_verifier'] = $this->config['verifier'];
}
// Add query string parameters // Add query string parameters
$params->merge($request->getQuery()); $params->merge($request->getQuery());

View File

@ -15,9 +15,6 @@ class XmlVisitor extends AbstractRequestVisitor
/** @var \SplObjectStorage Data object for persisting XML data */ /** @var \SplObjectStorage Data object for persisting XML data */
protected $data; protected $data;
/** @var \XMLWriter XML writer resource */
protected $writer;
/** @var bool Content-Type header added when XML is found */ /** @var bool Content-Type header added when XML is found */
protected $contentType = 'application/xml'; protected $contentType = 'application/xml';
@ -46,7 +43,6 @@ class XmlVisitor extends AbstractRequestVisitor
? $this->data[$command] ? $this->data[$command]
: $this->createRootElement($param->getParent()); : $this->createRootElement($param->getParent());
$this->addXml($xml, $param, $value); $this->addXml($xml, $param, $value);
$this->data[$command] = $xml; $this->data[$command] = $xml;
} }
@ -56,14 +52,13 @@ class XmlVisitor extends AbstractRequestVisitor
// If data was found that needs to be serialized, then do so // If data was found that needs to be serialized, then do so
if (isset($this->data[$command])) { if (isset($this->data[$command])) {
$xml = $this->finishDocument($this->writer); $xml = $this->data[$command]->asXML();
unset($this->data[$command]); unset($this->data[$command]);
} else { } else {
// Check if XML should always be sent for the command // Check if XML should always be sent for the command
$operation = $command->getOperation(); $operation = $command->getOperation();
if ($operation->getData('xmlAllowEmpty')) { if ($operation->getData('xmlAllowEmpty')) {
$xmlWriter = $this->createRootElement($operation); $xml = $this->createRootElement($operation)->asXML();
$xml = $this->finishDocument($xmlWriter);
} }
} }
@ -81,41 +76,42 @@ class XmlVisitor extends AbstractRequestVisitor
* *
* @param Operation $operation Operation object * @param Operation $operation Operation object
* *
* @return \XMLWriter * @return \SimpleXMLElement
*/ */
protected function createRootElement(Operation $operation) protected function createRootElement(Operation $operation)
{ {
static $defaultRoot = array('name' => 'Request'); static $defaultRoot = array('name' => 'Request');
// If no root element was specified, then just wrap the XML in 'Request' // If no root element was specified, then just wrap the XML in 'Request'
$root = $operation->getData('xmlRoot') ?: $defaultRoot; $root = $operation->getData('xmlRoot') ?: $defaultRoot;
// Allow the XML declaration to be customized with xmlEncoding // Allow the XML declaration to be customized with xmlEncoding
$encoding = $operation->getData('xmlEncoding'); $declaration = '<?xml version="1.0"';
if ($encoding = $operation->getData('xmlEncoding')) {
$xmlWriter = $this->startDocument($encoding); $declaration .= ' encoding="' . $encoding . '"';
}
$xmlWriter->startElement($root['name']); $declaration .= "?>";
// Create the wrapping element with no namespaces if no namespaces were present
if (!empty($root['namespaces'])) { // Create the wrapping element with no namespaces if no namespaces were present
// Create the wrapping element with an array of one or more namespaces if (empty($root['namespaces'])) {
foreach ((array) $root['namespaces'] as $prefix => $uri) { return new \SimpleXMLElement("{$declaration}\n<{$root['name']}/>");
$nsLabel = 'xmlns'; } else {
if (!is_numeric($prefix)) { // Create the wrapping element with an array of one or more namespaces
$nsLabel .= ':'.$prefix; $xml = "{$declaration}\n<{$root['name']} ";
} foreach ((array) $root['namespaces'] as $prefix => $uri) {
$xmlWriter->writeAttribute($nsLabel, $uri); $xml .= is_numeric($prefix) ? "xmlns=\"{$uri}\" " : "xmlns:{$prefix}=\"{$uri}\" ";
} }
return new \SimpleXMLElement($xml . "/>");
} }
return $xmlWriter;
} }
/** /**
* Recursively build the XML body * Recursively build the XML body
* *
* @param \XMLWriter $xmlWriter XML to modify * @param \SimpleXMLElement $xml XML to modify
* @param Parameter $param API Parameter * @param Parameter $param API Parameter
* @param mixed $value Value to add * @param mixed $value Value to add
*/ */
protected function addXml(\XMLWriter $xmlWriter, Parameter $param, $value) protected function addXml(\SimpleXMLElement $xml, Parameter $param, $value)
{ {
if ($value === null) { if ($value === null) {
return; return;
@ -123,110 +119,29 @@ class XmlVisitor extends AbstractRequestVisitor
$value = $param->filter($value); $value = $param->filter($value);
$type = $param->getType(); $type = $param->getType();
$name = $param->getWireName();
$prefix = null;
$namespace = $param->getData('xmlNamespace');
if (false !== strpos($name, ':')) {
list($prefix, $name) = explode(':', $name, 2);
}
if ($type == 'object' || $type == 'array') { if ($type == 'object' || $type == 'array') {
if (!$param->getData('xmlFlattened')) { $ele = $param->getData('xmlFlattened') ? $xml : $xml->addChild($param->getWireName());
$xmlWriter->startElementNS(null, $name, $namespace);
}
if ($param->getType() == 'array') { if ($param->getType() == 'array') {
$this->addXmlArray($xmlWriter, $param, $value); $this->addXmlArray($ele, $param, $value, $param->getData('xmlNamespace'));
} elseif ($param->getType() == 'object') { } elseif ($param->getType() == 'object') {
$this->addXmlObject($xmlWriter, $param, $value); $this->addXmlObject($ele, $param, $value);
} }
if (!$param->getData('xmlFlattened')) { } elseif ($param->getData('xmlAttribute')) {
$xmlWriter->endElement(); $xml->addAttribute($param->getWireName(), $value, $param->getData('xmlNamespace'));
}
return;
}
if ($param->getData('xmlAttribute')) {
$this->writeAttribute($xmlWriter, $prefix, $name, $namespace, $value);
} else { } else {
$this->writeElement($xmlWriter, $prefix, $name, $namespace, $value); $xml->addChild($param->getWireName(), $value, $param->getData('xmlNamespace'));
} }
} }
/**
* Write an attribute with namespace if used
*
* @param \XMLWriter $xmlWriter XMLWriter instance
* @param string $prefix Namespace prefix if any
* @param string $name Attribute name
* @param string $namespace The uri of the namespace
* @param string $value The attribute content
*/
protected function writeAttribute($xmlWriter, $prefix, $name, $namespace, $value)
{
if (empty($namespace)) {
$xmlWriter->writeAttribute($name, $value);
} else {
$xmlWriter->writeAttributeNS($prefix, $name, $namespace, $value);
}
}
/**
* Write an element with namespace if used
*
* @param \XMLWriter $xmlWriter XML writer resource
* @param string $prefix Namespace prefix if any
* @param string $name Element name
* @param string $namespace The uri of the namespace
* @param string $value The element content
*/
protected function writeElement(\XMLWriter $xmlWriter, $prefix, $name, $namespace, $value)
{
$xmlWriter->startElementNS($prefix, $name, $namespace);
if (strpbrk($value, '<>&')) {
$xmlWriter->writeCData($value);
} else {
$xmlWriter->writeRaw($value);
}
$xmlWriter->endElement();
}
/**
* Create a new xml writier and start a document
*
* @param string $encoding document encoding
*
* @return \XMLWriter the writer resource
*/
protected function startDocument($encoding)
{
$this->writer = new \XMLWriter();
$this->writer->openMemory();
$this->writer->startDocument('1.0', $encoding);
return $this->writer;
}
/**
* End the document and return the output
*
* @param \XMLWriter $xmlWriter
*
* @return \string the writer resource
*/
protected function finishDocument($xmlWriter)
{
$xmlWriter->endDocument();
return $xmlWriter->outputMemory();
}
/** /**
* Add an array to the XML * Add an array to the XML
*/ */
protected function addXmlArray(\XMLWriter $xmlWriter, Parameter $param, &$value) protected function addXmlArray(\SimpleXMLElement $xml, Parameter $param, &$value)
{ {
if ($items = $param->getItems()) { if ($items = $param->getItems()) {
foreach ($value as $v) { foreach ($value as $v) {
$this->addXml($xmlWriter, $items, $v); $this->addXml($xml, $items, $v);
} }
} }
} }
@ -234,11 +149,11 @@ class XmlVisitor extends AbstractRequestVisitor
/** /**
* Add an object to the XML * Add an object to the XML
*/ */
protected function addXmlObject(\XMLWriter $xmlWriter, Parameter $param, &$value) protected function addXmlObject(\SimpleXMLElement $xml, Parameter $param, &$value)
{ {
foreach ($value as $name => $v) { foreach ($value as $name => $v) {
if ($property = $param->getProperty($name)) { if ($property = $param->getProperty($name)) {
$this->addXml($xmlWriter, $property, $v); $this->addXml($xml, $property, $v);
} }
} }
} }

View File

@ -67,7 +67,14 @@ class OperationResponseParser extends DefaultResponseParser
if ($type == OperationInterface::TYPE_MODEL) { if ($type == OperationInterface::TYPE_MODEL) {
$model = $operation->getServiceDescription()->getModel($operation->getResponseClass()); $model = $operation->getServiceDescription()->getModel($operation->getResponseClass());
} elseif ($type == OperationInterface::TYPE_CLASS) { } elseif ($type == OperationInterface::TYPE_CLASS) {
return $this->parseClass($command); $responseClassInterface = __NAMESPACE__ . '\ResponseClassInterface';
$className = $operation->getResponseClass();
if (!class_exists($className)) {
throw new ResponseClassException("{$className} does not exist");
} elseif (!method_exists($className, 'fromCommand')) {
throw new ResponseClassException("{$className} must implement {$responseClassInterface}");
}
return $className::fromCommand($command);
} }
if (!$model) { if (!$model) {
@ -81,28 +88,6 @@ class OperationResponseParser extends DefaultResponseParser
} }
} }
/**
* Parse a class object
*
* @param CommandInterface $command Command to parse into an object
*
* @return mixed
* @throws ResponseClassException
*/
protected function parseClass(CommandInterface $command)
{
$className = $command->getOperation()->getResponseClass();
if (!class_exists($className)) {
throw new ResponseClassException("{$className} does not exist");
}
if (!method_exists($className, 'fromCommand')) {
throw new ResponseClassException("{$className} must implement the fromCommand() method");
}
return $className::fromCommand($command);
}
/** /**
* Perform transformations on the result array * Perform transformations on the result array
* *
@ -128,8 +113,30 @@ class OperationResponseParser extends DefaultResponseParser
} }
// Visit additional properties when it is an actual schema // Visit additional properties when it is an actual schema
if (($additional = $model->getAdditionalProperties()) instanceof Parameter) { if ($additional = $model->getAdditionalProperties()) {
$this->visitAdditionalProperties($model, $command, $response, $additional, $result, $foundVisitors); if ($additional instanceof Parameter) {
// Only visit when a location is specified
if ($location = $additional->getLocation()) {
if (!isset($foundVisitors[$location])) {
$foundVisitors[$location] = $this->factory->getResponseVisitor($location);
$foundVisitors[$location]->before($command, $result);
}
// Only traverse if an array was parsed from the before() visitors
if (is_array($result)) {
// Find each additional property
foreach (array_keys($result) as $key) {
// Check if the model actually knows this property. If so, then it is not additional
if (!$model->getProperty($key)) {
// Set the name to the key so that we can parse it with each visitor
$additional->setName($key);
$foundVisitors[$location]->visit($command, $response, $additional, $result);
}
}
// Reset the additionalProperties name to null
$additional->setName(null);
}
}
}
} }
// Apply the parameter value with the location visitor // Apply the parameter value with the location visitor
@ -146,35 +153,4 @@ class OperationResponseParser extends DefaultResponseParser
return $result; return $result;
} }
protected function visitAdditionalProperties(
Parameter $model,
CommandInterface $command,
Response $response,
Parameter $additional,
&$result,
array &$foundVisitors
) {
// Only visit when a location is specified
if ($location = $additional->getLocation()) {
if (!isset($foundVisitors[$location])) {
$foundVisitors[$location] = $this->factory->getResponseVisitor($location);
$foundVisitors[$location]->before($command, $result);
}
// Only traverse if an array was parsed from the before() visitors
if (is_array($result)) {
// Find each additional property
foreach (array_keys($result) as $key) {
// Check if the model actually knows this property. If so, then it is not additional
if (!$model->getProperty($key)) {
// Set the name to the key so that we can parse it with each visitor
$additional->setName($key);
$foundVisitors[$location]->visit($command, $response, $additional, $result);
}
}
// Reset the additionalProperties name to null
$additional->setName(null);
}
}
}
} }

View File

@ -138,12 +138,11 @@ class Parameter
*/ */
public function toArray() public function toArray()
{ {
static $checks = array('required', 'description', 'static', 'type', 'format', 'instanceOf', 'location', 'sentAs', $result = array();
$checks = array('required', 'description', 'static', 'type', 'format', 'instanceOf', 'location', 'sentAs',
'pattern', 'minimum', 'maximum', 'minItems', 'maxItems', 'minLength', 'maxLength', 'data', 'enum', 'pattern', 'minimum', 'maximum', 'minItems', 'maxItems', 'minLength', 'maxLength', 'data', 'enum',
'filters'); 'filters');
$result = array();
// Anything that is in the `Items` attribute of an array *must* include it's name if available // Anything that is in the `Items` attribute of an array *must* include it's name if available
if ($this->parent instanceof self && $this->parent->getType() == 'array' && isset($this->name)) { if ($this->parent instanceof self && $this->parent->getType() == 'array' && isset($this->name)) {
$result['name'] = $this->name; $result['name'] = $this->name;

View File

@ -45,6 +45,12 @@ class PhpStreamRequestFactory implements StreamRequestFactoryInterface
throw new InvalidArgumentException('$context must be an array or resource'); throw new InvalidArgumentException('$context must be an array or resource');
} }
$this->setUrl($request);
$this->addDefaultContextOptions($request);
$this->addSslOptions($request);
$this->addBodyOptions($request);
$this->addProxyOptions($request);
// Dispatch the before send event // Dispatch the before send event
$request->dispatch('request.before_send', array( $request->dispatch('request.before_send', array(
'request' => $request, 'request' => $request,
@ -52,12 +58,6 @@ class PhpStreamRequestFactory implements StreamRequestFactoryInterface
'context_options' => $this->contextOptions 'context_options' => $this->contextOptions
)); ));
$this->setUrl($request);
$this->addDefaultContextOptions($request);
$this->addSslOptions($request);
$this->addBodyOptions($request);
$this->addProxyOptions($request);
// Create the file handle but silence errors // Create the file handle but silence errors
return $this->createStream($params) return $this->createStream($params)
->setCustomData('request', $request) ->setCustomData('request', $request)

View File

@ -243,10 +243,11 @@ class Stream implements StreamInterface
return 0; return 0;
} }
$bytes = fwrite($this->stream, $string);
// We can't know the size after writing anything // We can't know the size after writing anything
$this->size = null; $this->size = null;
return fwrite($this->stream, $string); return $bytes;
} }
public function ftell() public function ftell()

View File

@ -573,20 +573,5 @@ class ClientTest extends \Guzzle\Tests\GuzzleTestCase
// With simple key // With simple key
$client->setDefaultOption('allow_redirects', false); $client->setDefaultOption('allow_redirects', false);
$this->assertFalse($client->getDefaultOption('allow_redirects')); $this->assertFalse($client->getDefaultOption('allow_redirects'));
$this->assertEquals(array(
'headers' => array('foo' => 'bar'),
'allow_redirects' => false
), $client->getConfig('request.options'));
$request = $client->get('/');
$this->assertEquals('bar', $request->getHeader('foo'));
}
public function testHeadCanUseOptions()
{
$client = new Client();
$head = $client->head('http://www.foo.com', array(), array('query' => array('foo' => 'bar')));
$this->assertEquals('bar', $head->getQuery()->get('foo'));
} }
} }

View File

@ -199,7 +199,7 @@ class CurlHandleTest extends \Guzzle\Tests\GuzzleTestCase
$auth = base64_encode('michael:123'); $auth = base64_encode('michael:123');
$testFileSize = filesize($testFile); $testFileSize = filesize($testFile);
$tests = array( return array(
// Send a regular GET // Send a regular GET
array('GET', 'http://www.google.com/', null, null, array( array('GET', 'http://www.google.com/', null, null, array(
CURLOPT_RETURNTRANSFER => 0, CURLOPT_RETURNTRANSFER => 0,
@ -335,6 +335,32 @@ class CurlHandleTest extends \Guzzle\Tests\GuzzleTestCase
'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8', 'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8',
'!Transfer-Encoding' => null '!Transfer-Encoding' => null
)), )),
// Send a POST request using a POST file
array('POST', 'http://localhost:8124/post.php', null, $postBody, array(
CURLOPT_RETURNTRANSFER => 0,
CURLOPT_HEADER => 0,
CURLOPT_CONNECTTIMEOUT => 150,
CURLOPT_WRITEFUNCTION => 'callback',
CURLOPT_HEADERFUNCTION => 'callback',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array(
'file' => '@' . $testFile . ';filename=phpunit.xml.dist;type=application/octet-stream'
),
CURLOPT_HTTPHEADER => array (
'Accept:',
'Host: localhost:8124',
'Content-Type: multipart/form-data',
'Expect: 100-Continue',
'User-Agent: ' . $userAgent
)
), array(
'Host' => '*',
'User-Agent' => '*',
'Content-Length' => '*',
'Expect' => '100-Continue',
'Content-Type' => 'multipart/form-data; boundary=*',
'!Transfer-Encoding' => null
)),
// Send a POST request with raw POST data and a custom content-type // Send a POST request with raw POST data and a custom content-type
array('POST', 'http://localhost:8124/post.php', array( array('POST', 'http://localhost:8124/post.php', array(
'Content-Type' => 'application/json' 'Content-Type' => 'application/json'
@ -448,43 +474,6 @@ class CurlHandleTest extends \Guzzle\Tests\GuzzleTestCase
'!Transfer-Encoding' => null '!Transfer-Encoding' => null
)) ))
); );
$postTest = array('POST', 'http://localhost:8124/post.php', null, $postBody, array(
CURLOPT_RETURNTRANSFER => 0,
CURLOPT_HEADER => 0,
CURLOPT_CONNECTTIMEOUT => 150,
CURLOPT_WRITEFUNCTION => 'callback',
CURLOPT_HEADERFUNCTION => 'callback',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array(
'file' => '@' . $testFile . ';filename=phpunit.xml.dist;type=application/octet-stream'
),
CURLOPT_HTTPHEADER => array (
'Accept:',
'Host: localhost:8124',
'Content-Type: multipart/form-data',
'Expect: 100-Continue',
'User-Agent: ' . $userAgent
)
), array(
'Host' => '*',
'User-Agent' => '*',
'Content-Length' => '*',
'Expect' => '100-Continue',
'Content-Type' => 'multipart/form-data; boundary=*',
'!Transfer-Encoding' => null
));
if (version_compare(phpversion(), '5.5.0', '>=')) {
$postTest[4][CURLOPT_POSTFIELDS] = array(
'file' => new \CurlFile($testFile, 'application/octet-stream', 'phpunit.xml.dist')
);
}
$tests[] = $postTest;
return $tests;
} }
/** /**
@ -659,11 +648,7 @@ class CurlHandleTest extends \Guzzle\Tests\GuzzleTestCase
// Ensure the CURLOPT_POSTFIELDS option was set properly // Ensure the CURLOPT_POSTFIELDS option was set properly
$options = $this->requestHandle->getOptions()->getAll(); $options = $this->requestHandle->getOptions()->getAll();
if (version_compare(phpversion(), '5.5.0', '<')) { $this->assertContains('@' . __FILE__ . ';filename=CurlHandleTest.php;type=text/x-', $options[CURLOPT_POSTFIELDS]['foo']);
$this->assertContains('@' . __FILE__ . ';filename=CurlHandleTest.php;type=text/x-', $options[CURLOPT_POSTFIELDS]['foo']);
} else{
$this->assertInstanceOf('CURLFile', $options[CURLOPT_POSTFIELDS]['foo']);
}
$this->assertEquals('baz', $options[CURLOPT_POSTFIELDS]['bar']); $this->assertEquals('baz', $options[CURLOPT_POSTFIELDS]['bar']);
$this->assertEquals('1', $options[CURLOPT_POSTFIELDS]['arr[a]']); $this->assertEquals('1', $options[CURLOPT_POSTFIELDS]['arr[a]']);
$this->assertEquals('2', $options[CURLOPT_POSTFIELDS]['arr[b]']); $this->assertEquals('2', $options[CURLOPT_POSTFIELDS]['arr[b]']);

View File

@ -9,7 +9,7 @@ class LinkTest extends GuzzleTestCase
{ {
public function testParsesLinks() public function testParsesLinks()
{ {
$link = new Link('Link', '<http:/.../front.jpeg>; rel=front; type="image/jpeg", <http://.../back.jpeg>; rel=back; type="image/jpeg", <http://.../side.jpeg?test=1>; rel=side; type="image/jpeg"'); $link = new Link('Link', '<http:/.../front.jpeg>; rel=front; type="image/jpeg", <http://.../back.jpeg>; rel=back; type="image/jpeg"');
$links = $link->getLinks(); $links = $link->getLinks();
$this->assertEquals(array( $this->assertEquals(array(
array( array(
@ -22,11 +22,6 @@ class LinkTest extends GuzzleTestCase
'type' => 'image/jpeg', 'type' => 'image/jpeg',
'url' => 'http://.../back.jpeg', 'url' => 'http://.../back.jpeg',
), ),
array(
'rel' => 'side',
'type' => 'image/jpeg',
'url' => 'http://.../side.jpeg?test=1'
)
), $links); ), $links);
$this->assertEquals(array( $this->assertEquals(array(

View File

@ -128,19 +128,11 @@ class HeaderTest extends \Guzzle\Tests\GuzzleTestCase
$res1 $res1
), ),
array( array(
'foo="baz"; bar=123, boo, test="123", foobar="foo;bar"', 'foo="baz"; bar=123, boo, test="123"',
array( array(
array('foo' => 'baz', 'bar' => '123'), array('foo' => 'baz', 'bar' => '123'),
array('boo' => ''), array('boo' => ''),
array('test' => '123'), array('test' => '123')
array('foobar' => 'foo;bar')
)
),
array(
'<http://.../side.jpeg?test=1>; rel="side"; type="image/jpeg",<http://.../side.jpeg?test=2>; rel=side; type="image/jpeg"',
array(
array('<http://.../side.jpeg?test=1>' => '', 'rel' => 'side', 'type' => 'image/jpeg'),
array('<http://.../side.jpeg?test=2>' => '', 'rel' => 'side', 'type' => 'image/jpeg')
) )
) )
); );

View File

@ -50,14 +50,7 @@ class PostFileTest extends \Guzzle\Tests\GuzzleTestCase
public function testReturnsCurlValueString() public function testReturnsCurlValueString()
{ {
$file = new PostFile('foo', __FILE__); $file = new PostFile('foo', __FILE__);
if (version_compare(phpversion(), '5.5.0', '<')) { $this->assertContains('@' . __FILE__ . ';filename=PostFileTest.php;type=text/x-', $file->getCurlValue());
$this->assertContains('@' . __FILE__ . ';filename=PostFileTest.php;type=text/x-', $file->getCurlValue());
} else {
$c = $file->getCurlValue();
$this->assertEquals(__FILE__, $c->getFilename());
$this->assertEquals('PostFileTest.php', $c->getPostFilename());
$this->assertContains('text/x-', $c->getMimeType());
}
} }
public function testContentDispositionFilePathIsStripped() public function testContentDispositionFilePathIsStripped()

View File

@ -570,34 +570,4 @@ class HttpRequestFactoryTest extends \Guzzle\Tests\GuzzleTestCase
$request = $client->put('/', array(), null, array('params' => array('foo' => 'test'))); $request = $client->put('/', array(), null, array('params' => array('foo' => 'test')));
$this->assertEquals('test', $request->getParams()->get('foo')); $this->assertEquals('test', $request->getParams()->get('foo'));
} }
public function testCanAddSslKey()
{
$client = new Client();
$request = $client->get('/', array(), array('ssl_key' => '/foo.pem'));
$this->assertEquals('/foo.pem', $request->getCurlOptions()->get(CURLOPT_SSLKEY));
}
public function testCanAddSslKeyPassword()
{
$client = new Client();
$request = $client->get('/', array(), array('ssl_key' => array('/foo.pem', 'bar')));
$this->assertEquals('/foo.pem', $request->getCurlOptions()->get(CURLOPT_SSLKEY));
$this->assertEquals('bar', $request->getCurlOptions()->get(CURLOPT_SSLKEYPASSWD));
}
public function testCanAddSslCert()
{
$client = new Client();
$request = $client->get('/', array(), array('cert' => '/foo.pem'));
$this->assertEquals('/foo.pem', $request->getCurlOptions()->get(CURLOPT_SSLCERT));
}
public function testCanAddSslCertPassword()
{
$client = new Client();
$request = $client->get('/', array(), array('cert' => array('/foo.pem', 'bar')));
$this->assertEquals('/foo.pem', $request->getCurlOptions()->get(CURLOPT_SSLCERT));
$this->assertEquals('bar', $request->getCurlOptions()->get(CURLOPT_SSLCERTPASSWD));
}
} }

View File

@ -431,6 +431,40 @@ class RequestTest extends \Guzzle\Tests\GuzzleTestCase
$this->assertTrue($this->request->getEventDispatcher()->hasListeners('request.sent')); $this->assertTrue($this->request->getEventDispatcher()->hasListeners('request.sent'));
} }
public function testCatchesAllHostHeaderChanges()
{
// Tests setting using headers
$this->request->setHeader('Host', 'www.abc.com');
$this->assertEquals('www.abc.com', $this->request->getHost());
$this->assertEquals('www.abc.com:8124', $this->request->getHeader('Host'));
$this->assertEquals(8124, $this->request->getPort());
// Tests setting using setHost()
$this->request->setHost('abc.com');
$this->assertEquals('abc.com', $this->request->getHost());
$this->assertEquals('abc.com:8124', $this->request->getHeader('Host'));
$this->assertEquals(8124, $this->request->getPort());
// Tests setting with a port
$this->request->setHost('abc.com:8081');
$this->assertEquals('abc.com', $this->request->getHost());
$this->assertEquals('abc.com:8081', $this->request->getHeader('Host'));
$this->assertEquals(8081, $this->request->getPort());
// Tests setting with a port using the Host header
$this->request->setHeader('Host', 'solr.com:8983');
$this->assertEquals('solr.com', $this->request->getHost());
$this->assertEquals('solr.com:8983', (string) $this->request->getHeader('Host'));
$this->assertEquals(8983, $this->request->getPort());
// Tests setting with an inferred 443 port using the Host header
$this->request->setScheme('https');
$this->request->setHeader('Host', 'solr.com');
$this->assertEquals('solr.com', $this->request->getHost());
$this->assertEquals('solr.com:8983', (string) $this->request->getHeader('Host'));
$this->assertEquals(8983, $this->request->getPort());
}
public function testRecognizesBasicAuthCredentialsInUrls() public function testRecognizesBasicAuthCredentialsInUrls()
{ {
$this->request->setUrl('http://michael:test@test.com/'); $this->request->setUrl('http://michael:test@test.com/');

View File

@ -224,12 +224,4 @@ class UrlTest extends \Guzzle\Tests\GuzzleTestCase
$this->assertEquals('foo', $url->getHost()); $this->assertEquals('foo', $url->getHost());
$this->assertEquals(8983, $url->getPort()); $this->assertEquals(8983, $url->getPort());
} }
/**
* @expectedException \Guzzle\Common\Exception\InvalidArgumentException
*/
public function testValidatesUrlCanBeParsed()
{
Url::factory('foo:////');
}
} }

View File

@ -124,15 +124,9 @@ var GuzzleServer = function(port) {
// If this is not a control request and no responses are in queue, return 500 response // If this is not a control request and no responses are in queue, return 500 response
if (req.url.indexOf("/guzzle-server") == -1 && !that.responses.length) { if (req.url.indexOf("/guzzle-server") == -1 && !that.responses.length) {
if (req.url == '/guzzle-perf') { res.writeHead(500);
res.writeHead(200); res.end("No responses in queue");
res.end("Body of response"); return;
return;
} else {
res.writeHead(500);
res.end("No responses in queue");
return;
}
} }
// Begin building the request message as a string // Begin building the request message as a string

View File

@ -148,12 +148,6 @@ class CookieTest extends \Guzzle\Tests\GuzzleTestCase
$cookie->setDomain('.com'); $cookie->setDomain('.com');
$this->assertFalse($cookie->matchesDomain('baz.com')); $this->assertFalse($cookie->matchesDomain('baz.com'));
$cookie->setDomain('.127.0.0.1');
$this->assertFalse($cookie->matchesDomain('127.0.0.1'));
$cookie->setDomain('127.0.0.1');
$this->assertTrue($cookie->matchesDomain('127.0.0.1'));
$cookie->setDomain('.com.'); $cookie->setDomain('.com.');
$this->assertFalse($cookie->matchesDomain('baz.com')); $this->assertFalse($cookie->matchesDomain('baz.com'));

View File

@ -163,7 +163,7 @@ class XmlVisitorTest extends AbstractVisitorTestCase
array('Wrap' => array( array('Wrap' => array(
'Foo' => 'test' 'Foo' => 'test'
)), )),
'<Request><Wrap xsi:baz="test" xmlns:xsi="http://foo.com"/></Request>' '<Request><Wrap xmlns:xsi="http://foo.com" xsi:baz="test"/></Request>'
), ),
// Add nodes with custom namespace prefix // Add nodes with custom namespace prefix
array( array(
@ -189,21 +189,6 @@ class XmlVisitorTest extends AbstractVisitorTestCase
)), )),
'<Request><Wrap><xsi:Foo xmlns:xsi="http://foobar.com">test</xsi:Foo></Wrap></Request>' '<Request><Wrap><xsi:Foo xmlns:xsi="http://foobar.com">test</xsi:Foo></Wrap></Request>'
), ),
array(
array(
'parameters' => array(
'Foo' => array(
'location' => 'xml',
'type' => 'string',
'data' => array(
'xmlNamespace' => 'http://foo.com'
)
)
)
),
array('Foo' => '<h1>This is a title</h1>'),
'<Request><Foo xmlns="http://foo.com"><![CDATA[<h1>This is a title</h1>]]></Foo></Request>'
),
// Flat array at top level // Flat array at top level
array( array(
array( array(

View File

@ -25,22 +25,6 @@ class XmlVisitorTest extends AbstractResponseVisitorTest
$this->assertEquals(array('Bar' => 'test'), $result); $this->assertEquals(array('Bar' => 'test'), $result);
} }
public function testBeforeMethodParsesXmlWithNamespace()
{
$this->markTestSkipped("Response/XmlVisitor cannot accept 'xmlns' in response, see #368 (http://git.io/USa1mA).");
$visitor = new Visitor();
$command = $this->getMockBuilder('Guzzle\Service\Command\AbstractCommand')
->setMethods(array('getResponse'))
->getMockForAbstractClass();
$command->expects($this->once())
->method('getResponse')
->will($this->returnValue(new Response(200, null, '<foo xmlns="urn:foo"><bar:Bar xmlns:bar="urn:bar">test</bar:Bar></foo>')));
$result = array();
$visitor->before($command, $result);
$this->assertEquals(array('Bar' => 'test'), $result);
}
public function testBeforeMethodParsesNestedXml() public function testBeforeMethodParsesNestedXml()
{ {
$visitor = new Visitor(); $visitor = new Visitor();