From 14cb34031d9f0246d802b03b92f799d414708dc9 Mon Sep 17 00:00:00 2001 From: Rafael Dohms Date: Sun, 13 Jan 2013 11:52:45 +0100 Subject: [PATCH 01/16] Rules Rewrite (Closes #25) To avoid having the Rule object violate Single Responsibility Filtering and Annotation were separated. The actual filter action is now in the "Filters" namespace and the rules act as simple annotation classes only parsing configuration. Rewrote tests and added a FilterLoader in the mix to help find the proper class to handle a rule. This also makes it possible create new rules that use 'services' to apply themselves. --- Filter.php | 84 +++++++++++++----------- Filters/Alnum.php | 32 +++++++++ Filters/Alpha.php | 32 +++++++++ Filters/BaseFilter.php | 29 ++++++++ Filters/Boolean.php | 25 +++++++ Filters/Digits.php | 32 +++++++++ Filters/Float.php | 30 +++++++++ Filters/HtmlEntities.php | 26 ++++++++ Filters/Int.php | 26 ++++++++ Filters/Loader/FilterLoader.php | 49 ++++++++++++++ Filters/Loader/FilterLoaderInterface.php | 19 ++++++ Filters/PregReplace.php | 26 ++++++++ Filters/RegExp.php | 54 +++++++++++++++ Filters/StripNewlines.php | 25 +++++++ Filters/StripTags.php | 27 ++++++++ Filters/ToLower.php | 64 ++++++++++++++++++ Filters/ToUpper.php | 63 ++++++++++++++++++ Filters/Trim.php | 33 ++++++++++ ObjectWalker.php | 80 +++++++++++++--------- Rules/Alnum.php | 16 +---- Rules/Alpha.php | 16 +---- Rules/Boolean.php | 13 +--- Rules/Digits.php | 16 +---- Rules/Float.php | 17 +---- Rules/HtmlEntities.php | 10 +-- Rules/Int.php | 9 +-- Rules/PregReplace.php | 8 --- Rules/RegExp.php | 35 +--------- Rules/Rule.php | 72 ++++++++++---------- Rules/StripNewlines.php | 14 +--- Rules/StripTags.php | 18 ++--- Rules/ToLower.php | 49 ++------------ Rules/ToUpper.php | 49 ++------------ Rules/Trim.php | 23 ++----- 34 files changed, 757 insertions(+), 364 deletions(-) create mode 100644 Filters/Alnum.php create mode 100644 Filters/Alpha.php create mode 100644 Filters/BaseFilter.php create mode 100644 Filters/Boolean.php create mode 100644 Filters/Digits.php create mode 100644 Filters/Float.php create mode 100644 Filters/HtmlEntities.php create mode 100644 Filters/Int.php create mode 100644 Filters/Loader/FilterLoader.php create mode 100644 Filters/Loader/FilterLoaderInterface.php create mode 100644 Filters/PregReplace.php create mode 100644 Filters/RegExp.php create mode 100644 Filters/StripNewlines.php create mode 100644 Filters/StripTags.php create mode 100644 Filters/ToLower.php create mode 100644 Filters/ToUpper.php create mode 100644 Filters/Trim.php diff --git a/Filter.php b/Filter.php index 6d91532..607640b 100644 --- a/Filter.php +++ b/Filter.php @@ -5,29 +5,38 @@ /** * Filter Object, responsible for retrieving the filtering rules * for the object and applying them - * + * * @package DMS * @subpackage Filter - * + * */ +use DMS\Filter\Filters\Loader\FilterLoaderInterface; + class Filter implements FilterInterface { /** * - * @var Mapping\ClassMetadataFactory + * @var Mapping\ClassMetadataFactory */ protected $metadataFactory; - + + /** + * @var FilterLoaderInterface + */ + protected $filterLoader; + /** * Constructor - * - * @param Mapping\ClassMetadataFactory $metadataFactory + * + * @param Mapping\ClassMetadataFactory $metadataFactory + * @param FilterLoaderInterface $filterLoader */ - public function __construct(Mapping\ClassMetadataFactory $metadataFactory) + public function __construct(Mapping\ClassMetadataFactory $metadataFactory, $filterLoader) { $this->metadataFactory = $metadataFactory; + $this->filterLoader = $filterLoader; } - + /** * {@inheritDoc} */ @@ -43,18 +52,19 @@ public function filterProperty($object, $property) { $this->walkObject($object, $property); } - + /** * {@inheritDoc} */ - public function filterValue($value, $filter) + public function filterValue($value, $rule) { - - if ($filter instanceof Rules\Rule) { - return $filter->applyFilter($value); + + if ($rule instanceof Rules\Rule) { + $filter = $this->filterLoader->getFilterForRule($rule); + return $filter->apply($rule, $value); } - - return $this->walkRuleChain($value, $filter); + + return $this->walkRuleChain($value, $rule); } /** @@ -64,52 +74,52 @@ public function getMetadataFactory() { return $this->metadataFactory; } - + /** * Iterates over annotated properties in an object filtering the selected * values - * + * * @param object $object * @param string $limitProperty */ protected function walkObject($object, $limitProperty = null) { - + if ( $object === null ) { return; } - + $metadata = $this->metadataFactory->getClassMetadata(get_class($object)); - + //Get a Object Handler/Walker - $walker = new ObjectWalker($object); - + $walker = new ObjectWalker($object, $this->filterLoader); + //Get all filtered properties or limit with selected $properties = ($limitProperty !== null)? array($limitProperty) : $metadata->getFilteredProperties(); - + //Iterate over properties with filters foreach( $properties as $property ) { - + $walker->applyFilterRules($property, $metadata->getPropertyRules($property)); - + } - + } - + /** * Iterates over an array of filters applying all to the value - * + * * @param mixed $value - * @param array $filters - * @return mixed + * @param array $rules + * @return mixed */ - protected function walkRuleChain($value, $filters) + protected function walkRuleChain($value, $rules) { - - foreach($filters as $filter) { - $value = $filter->applyFilter($value); + foreach($rules as $rule) { + $filter = $this->filterLoader->getFilterForRule($rule); + $value = $filter->apply($rule, $value); } - + return $value; } - -} \ No newline at end of file + +} diff --git a/Filters/Alnum.php b/Filters/Alnum.php new file mode 100644 index 0000000..bcdd444 --- /dev/null +++ b/Filters/Alnum.php @@ -0,0 +1,32 @@ +allowWhitespace)? " ":""; + + $rule->unicodePattern = '/[^\p{L}\p{N}' . $whitespaceChar . ']/u'; + $rule->pattern = '/[^a-zA-Z0-9' . $whitespaceChar . ']/'; + + return parent::apply($rule, $value); + } +} diff --git a/Filters/Alpha.php b/Filters/Alpha.php new file mode 100644 index 0000000..ddb3a80 --- /dev/null +++ b/Filters/Alpha.php @@ -0,0 +1,32 @@ +allowWhitespace)? " ":""; + + $rule->unicodePattern = '/[^\p{L}' . $whitespaceChar . ']/u'; + $rule->pattern = '/[^a-zA-Z' . $whitespaceChar . ']/'; + + return parent::apply($rule, $value); + } +} diff --git a/Filters/BaseFilter.php b/Filters/BaseFilter.php new file mode 100644 index 0000000..98b3734 --- /dev/null +++ b/Filters/BaseFilter.php @@ -0,0 +1,29 @@ +allowWhitespace)? " ":""; + + $rule->unicodePattern = '/[^\p{N}' . $whitespaceChar . ']/'; + $rule->pattern = '/[^0-9' . $whitespaceChar . ']/'; + + return parent::apply($rule, $value); + } +} diff --git a/Filters/Float.php b/Filters/Float.php new file mode 100644 index 0000000..1eba0af --- /dev/null +++ b/Filters/Float.php @@ -0,0 +1,30 @@ +flags, $rule->encoding, $rule->doubleEncode); + } + +} diff --git a/Filters/Int.php b/Filters/Int.php new file mode 100644 index 0000000..abdcc9b --- /dev/null +++ b/Filters/Int.php @@ -0,0 +1,26 @@ +container = $container; + } + + /** + * Finds the filter responsible for executing a specific rule + * + * @param Rule $rule + * + * @throws \UnexpectedValueException If filter can't be located + * @return BaseFilter + */ + public function getFilterForRule(Rule $rule) + { + $filterIdentifier = $rule->getFilter(); + + if (class_exists($filterIdentifier)){ + return new $filterIdentifier; + } + + if ($this->container !== null && $this->container->has($filterIdentifier)) { + return $this->container->get($filterIdentifier); + } + + $error = "Unable to locate filter for: $filterIdentifier defined in " . get_class($rule); + throw new \UnexpectedValueException($error); + + } +} diff --git a/Filters/Loader/FilterLoaderInterface.php b/Filters/Loader/FilterLoaderInterface.php new file mode 100644 index 0000000..ee88150 --- /dev/null +++ b/Filters/Loader/FilterLoaderInterface.php @@ -0,0 +1,19 @@ +regexp, $rule->replacement, $value); + } +} diff --git a/Filters/RegExp.php b/Filters/RegExp.php new file mode 100644 index 0000000..938d02e --- /dev/null +++ b/Filters/RegExp.php @@ -0,0 +1,54 @@ +checkUnicodeSupport() && $rule->unicodePattern !== null) + ? $rule->unicodePattern + : $rule->pattern; + + return preg_replace($pattern, '', $value); + } + + /** + * Verifies that Regular Expression functions support unicode + * @return boolean + */ + public function checkUnicodeSupport() + { + if (null === self::$unicodeEnabled) { + self::$unicodeEnabled = (@preg_match('/\pL/u', 'a')) ? true : false; + } + + return self::$unicodeEnabled; + } + +} diff --git a/Filters/StripNewlines.php b/Filters/StripNewlines.php new file mode 100644 index 0000000..c031a5a --- /dev/null +++ b/Filters/StripNewlines.php @@ -0,0 +1,25 @@ +allowed); + } +} diff --git a/Filters/ToLower.php b/Filters/ToLower.php new file mode 100644 index 0000000..1679fc7 --- /dev/null +++ b/Filters/ToLower.php @@ -0,0 +1,64 @@ +useEncoding($rule)) { + return mb_strtolower((string) $value, $rule->encoding); + } + + return strtolower((string) $value); + } + + /** + * Verify is encoding is set and if we have the proper + * function to use it + * + * @param \DMS\Filter\Rules\ToLower $rule + * + * @throws \DMS\Filter\Exception\FilterException + * @return boolean + */ + public function useEncoding($rule) + { + if ($rule->encoding === null) { + return false; + } + + if (!function_exists('mb_strtolower')) { + throw new FilterException( + 'mbstring is required to use ToLower with an encoding.'); + } + + $this->encoding = (string) $rule->encoding; + $encodings = array_map('strtolower', mb_list_encodings()); + + if (!in_array(strtolower($rule->encoding), $encodings)) { + throw new FilterException( + "mbstring does not support the '".$rule->encoding."' encoding" + ); + } + + return true; + } +} diff --git a/Filters/ToUpper.php b/Filters/ToUpper.php new file mode 100644 index 0000000..747a976 --- /dev/null +++ b/Filters/ToUpper.php @@ -0,0 +1,63 @@ +useEncoding($rule)) { + return mb_strtoupper((string) $value, $rule->encoding); + } + + return strtoupper((string) $value); + } + + /** + * Verify is encoding is set and if we have the proper + * function to use it + * + * @param \DMS\Filter\Rules\ToUpper $rule + * + * @throws \DMS\Filter\Exception\FilterException + * @return boolean + */ + public function useEncoding($rule) + { + if ($rule->encoding === null) { + return false; + } + + if (!function_exists('mb_strtoupper')) { + throw new FilterException( + 'mbstring is required to use ToLower with an encoding.'); + } + + $this->encoding = (string) $rule->encoding; + $encodings = array_map('strtolower', mb_list_encodings()); + + if (!in_array(strtolower($rule->encoding), $encodings)) { + throw new FilterException( + "mbstring does not support the '".$rule->encoding."' encoding" + ); + } + + return true; + } +} diff --git a/Filters/Trim.php b/Filters/Trim.php new file mode 100644 index 0000000..7fb5c7a --- /dev/null +++ b/Filters/Trim.php @@ -0,0 +1,33 @@ +charlist === null) { + return trim($value); + } + + return trim($value, $rule->charlist); + } +} diff --git a/ObjectWalker.php b/ObjectWalker.php index 0cd7a24..d36c2f3 100644 --- a/ObjectWalker.php +++ b/ObjectWalker.php @@ -2,10 +2,12 @@ namespace DMS\Filter; +use DMS\Filter\Filters\Loader\FilterLoaderInterface; + /** * Walks over the properties of an object applying the filters * that were defined for them - * + * * @package DMS * @subpackage Filter */ @@ -15,28 +17,35 @@ class ObjectWalker * @var object */ protected $object; - + /** - * @var ReflectionClass + * @var \ReflectionClass */ protected $reflClass; + /** + * @var FilterLoaderInterface + */ + protected $filterLoader; + /** * Constructor - * - * @param object $object + * + * @param object $object + * @param FilterLoaderInterface $filterLoader */ - public function __construct( $object ) + public function __construct( $object, $filterLoader ) { - $this->object = $object; - $this->reflClass = new \ReflectionClass($object); + $this->object = $object; + $this->reflClass = new \ReflectionClass($object); + $this->filterLoader = $filterLoader; } - + /** * Applies the selected rules to a property in the object - * + * * @param string $property - * @param array $filterRules + * @param array $filterRules */ public function applyFilterRules($property, $filterRules = array()) { @@ -44,59 +53,66 @@ public function applyFilterRules($property, $filterRules = array()) $this->applyFilterRule($property, $rule); } } - + /** * Applies a Filtering Rule to a property - * + * * @param string $property * @param Rules\Rule $filterRule + * + * @throws \UnexpectedValueException */ - public function applyFilterRule($property, Rules\Rule $filterRule) + public function applyFilterRule($property, Rules\Rule $filterRule) { - + + if ($this->filterLoader === null) { + throw new \UnexpectedValueException("A FilterLoader must be provided"); + } + $value = $this->getPropertyValue($property); - - $filteredValue = $filterRule->applyFilter($value); - + + $filter = $this->filterLoader->getFilterForRule($filterRule); + $filteredValue = $filter->apply($filterRule, $value); + $this->setPropertyValue($property, $filteredValue); - + } - + /** * Retrieves the value of the property, overcoming visibility problems - * - * @param string $property - * @return mixed + * + * @param string $propertyName + * @return mixed */ private function getPropertyValue($propertyName) { return $this->getAccessibleReflectionProperty($propertyName) ->getValue($this->object); } - + /** * Overrides the value of a property, overcoming visibility problems - * - * @param string $property - * @param mixed $value + * + * @param string$propertyName + * @param mixed $value */ private function setPropertyValue($propertyName, $value) { $this->getAccessibleReflectionProperty($propertyName) ->setValue($this->object, $value); } - + /** * Retrieves a property from the object and makes it visible - * + * * @param string $propertyName - * @return ReflectionProperty + * @return \ReflectionProperty */ private function getAccessibleReflectionProperty($propertyName) { $property = $this->reflClass->getProperty($propertyName); $property->setAccessible(true); - + return $property; } -} \ No newline at end of file +} diff --git a/Rules/Alnum.php b/Rules/Alnum.php index 5087ca4..74581e9 100644 --- a/Rules/Alnum.php +++ b/Rules/Alnum.php @@ -20,20 +20,6 @@ class Alnum extends RegExp */ public $allowWhitespace = true; - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - //Check for Whitespace support - $whitespaceChar = ($this->allowWhitespace)? " ":""; - - $this->unicodePattern = '/[^\p{L}\p{N}' . $whitespaceChar . ']/u'; - $this->pattern = '/[^a-zA-Z0-9' . $whitespaceChar . ']/'; - - return parent::applyFilter($value); - } - /** * {@inheritDoc} */ @@ -42,4 +28,4 @@ public function getDefaultOption() return 'allowWhitespace'; } -} \ No newline at end of file +} diff --git a/Rules/Alpha.php b/Rules/Alpha.php index fd829fd..d9c90c6 100644 --- a/Rules/Alpha.php +++ b/Rules/Alpha.php @@ -20,20 +20,6 @@ class Alpha extends RegExp */ public $allowWhitespace = true; - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - //Check for Whitespace support - $whitespaceChar = ($this->allowWhitespace)? " ":""; - - $this->unicodePattern = '/[^\p{L}' . $whitespaceChar . ']/u'; - $this->pattern = '/[^a-zA-Z' . $whitespaceChar . ']/'; - - return parent::applyFilter($value); - } - /** * {@inheritDoc} */ @@ -42,4 +28,4 @@ public function getDefaultOption() return 'allowWhitespace'; } -} \ No newline at end of file +} diff --git a/Rules/Boolean.php b/Rules/Boolean.php index c9a8423..526c474 100644 --- a/Rules/Boolean.php +++ b/Rules/Boolean.php @@ -4,20 +4,13 @@ /** * Boolean Rule - * + * * @package DMS * @subpackage Filter - * + * * @Annotation */ class Boolean extends Rule { - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - return (boolean) $value; - } -} \ No newline at end of file +} diff --git a/Rules/Digits.php b/Rules/Digits.php index 115d23c..991af85 100644 --- a/Rules/Digits.php +++ b/Rules/Digits.php @@ -20,20 +20,6 @@ class Digits extends RegExp */ public $allowWhitespace = true; - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - //Check for Whitespace support - $whitespaceChar = ($this->allowWhitespace)? " ":""; - - $this->unicodePattern = '/[^\p{N}' . $whitespaceChar . ']/'; - $this->pattern = '/[^0-9' . $whitespaceChar . ']/'; - - return parent::applyFilter($value); - } - /** * {@inheritDoc} */ @@ -42,4 +28,4 @@ public function getDefaultOption() return 'allowWhitespace'; } -} \ No newline at end of file +} diff --git a/Rules/Float.php b/Rules/Float.php index c91646d..947fd7a 100644 --- a/Rules/Float.php +++ b/Rules/Float.php @@ -5,24 +5,13 @@ /** * Float Rule * Converts content into a Float - * + * * @package DMS * @subpackage Filter - * + * * @Annotation */ class Float extends Rule { - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - if (is_array($value) || is_object($value)) { - return null; - } - - return floatval($value); - } -} \ No newline at end of file +} diff --git a/Rules/HtmlEntities.php b/Rules/HtmlEntities.php index 8d68083..64af464 100644 --- a/Rules/HtmlEntities.php +++ b/Rules/HtmlEntities.php @@ -32,12 +32,4 @@ class HtmlEntities extends Rule */ public $doubleEncode = true; - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - return htmlentities($value, $this->flags, $this->encoding, $this->doubleEncode); - } - -} \ No newline at end of file +} diff --git a/Rules/Int.php b/Rules/Int.php index e70875d..34f2b1e 100644 --- a/Rules/Int.php +++ b/Rules/Int.php @@ -13,12 +13,5 @@ */ class Int extends Rule { - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - return (int) ($value); - } -} \ No newline at end of file +} diff --git a/Rules/PregReplace.php b/Rules/PregReplace.php index 5af3435..e178565 100644 --- a/Rules/PregReplace.php +++ b/Rules/PregReplace.php @@ -27,14 +27,6 @@ class PregReplace extends Rule */ public $replacement = ""; - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - return preg_replace($this->regexp, $this->replacement, $value); - } - /** * {@inheritDoc} */ diff --git a/Rules/RegExp.php b/Rules/RegExp.php index 1a4018b..fac340a 100644 --- a/Rules/RegExp.php +++ b/Rules/RegExp.php @@ -14,13 +14,6 @@ */ class RegExp extends Rule { - /** - * Defines if Unicode is supported - * - * @var boolean - */ - protected static $unicodeEnabled; - /** * Unicode version of Pattern * @@ -35,30 +28,4 @@ class RegExp extends Rule */ public $pattern; - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - //Build pattern - $pattern = ($this->checkUnicodeSupport() && $this->unicodePattern !== null) - ? $this->unicodePattern - : $this->pattern; - - return preg_replace($pattern, '', $value); - } - - /** - * Verifies that Regular Expression functions support unicode - * @return boolean - */ - public function checkUnicodeSupport() - { - if (null === self::$unicodeEnabled) { - self::$unicodeEnabled = (@preg_match('/\pL/u', 'a')) ? true : false; - } - - return self::$unicodeEnabled; - } - -} \ No newline at end of file +} diff --git a/Rules/Rule.php b/Rules/Rule.php index c6829fe..7c9f9c7 100644 --- a/Rules/Rule.php +++ b/Rules/Rule.php @@ -8,26 +8,18 @@ /** * Base class for a Filtering Rule, it implements common behaviour - * + * + * Rules are classes that define the metadata supported by + * each filter and are used to annotate objects. + * * @package DMS * @subpackage Filter * @category Rule - * + * */ abstract class Rule { - /** - * Applies actual filter rule to the value and returns the filtered - * value to be replaced in the original object - * - * @param mixed $value - * @return mixed - */ - abstract function applyFilter($value); - - /** - * * Initializes the filter rule with its options * * @param mixed $options The options (as associative array) @@ -44,9 +36,9 @@ abstract function applyFilter($value); */ public function __construct($options = null) { - + $result = $this->parseOptions($options); - + if (count($result->invalidOptions) > 0) { throw new InvalidOptionsException( sprintf('The options "%s" do not exist in rule %s', implode('", "', $result->invalidOptions), get_class($this)), @@ -61,66 +53,66 @@ public function __construct($options = null) ); } } - + /** * Parses provided options into their properties and returns results * for the parsing process - * + * * @param mixed $options - * @return \stdClass + * @return \stdClass */ private function parseOptions($options) { $parseResult = new \stdClass(); $parseResult->invalidOptions = array(); $parseResult->missingOptions = array_flip((array) $this->getRequiredOptions()); - + //Doctrine parses constructor parameter into 'value' array param, restore it if (is_array($options) && count($options) == 1 && isset($options['value'])) { $options = $options['value']; } - + //Parse Option Array if (is_array($options) && count($options) > 0 && is_string(key($options))) { $this->parseOptionsArray($options, $parseResult); return $parseResult; } - + //Parse Single Value if (null !== $options && ! (is_array($options) && count($options) === 0)) { $this->parseSingleOption($options, $parseResult); return $parseResult; } - + return $parseResult; } - + /** * Parses Options in the array format - * + * * @param array $options - * @param \stdClass $result + * @param \stdClass $result */ private function parseOptionsArray($options, $result) { foreach ($options as $option => $value) { - + if (!property_exists($this, $option)) { $result->invalidOptions[] = $option; continue; } - + //Define Option $this->$option = $value; unset($result->missingOptions[$option]); } } - + /** * Parses single option received - * + * * @param string $options - * @param \stdClass $result + * @param \stdClass $result */ private function parseSingleOption($options, $result) { @@ -132,18 +124,18 @@ private function parseSingleOption($options, $result) sprintf('No default option is configured for rule %s', get_class($this)) ); } - + //Default option points to invalid one if (!property_exists($this, $option)) { $result->invalidOptions[] = $option; return; } - + //Define Option $this->$option = $options; unset($result->missingOptions[$option]); } - + /** * Returns the name of the required options * @@ -156,7 +148,7 @@ public function getRequiredOptions() { return array(); } - + /** * Returns the name of the default option * @@ -169,4 +161,16 @@ public function getDefaultOption() { return null; } + + /** + * Retrieves the Filter class that is responsible for executing this filter + * It may also be a service name. By default it loads a class with the + * same name from the Filters namespace. + * + * @return string + */ + public function getFilter() + { + return str_replace('Rules', 'Filters', get_class($this)); + } } diff --git a/Rules/StripNewlines.php b/Rules/StripNewlines.php index 71efbab..2e6b228 100644 --- a/Rules/StripNewlines.php +++ b/Rules/StripNewlines.php @@ -4,20 +4,12 @@ /** * StripNewlines Rule - * + * * @package DMS * @subpackage Filter - * + * * @Annotation */ class StripNewlines extends Rule { - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - return str_replace(array("\n", "\r"), '', $value); - } - -} \ No newline at end of file +} diff --git a/Rules/StripTags.php b/Rules/StripTags.php index c9556ca..49d8092 100644 --- a/Rules/StripTags.php +++ b/Rules/StripTags.php @@ -4,28 +4,20 @@ /** * StripTags Rule - * + * * @package DMS * @subpackage Filter - * + * * @Annotation */ class StripTags extends Rule { /** - * Comma separated string of allowed tags - * + * String of allowed tags. Ex: + * * @var string */ public $allowed = null; - - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - return strip_tags($value, $this->allowed); - } /** * {@inheritDoc} @@ -34,4 +26,4 @@ public function getDefaultOption() { return 'allowed'; } -} \ No newline at end of file +} diff --git a/Rules/ToLower.php b/Rules/ToLower.php index aa82cda..edb29bf 100644 --- a/Rules/ToLower.php +++ b/Rules/ToLower.php @@ -6,62 +6,21 @@ /** * ToLower Rule - * + * * @package DMS * @subpackage Filter - * + * * @Annotation */ class ToLower extends Rule { /** * Encoding to be used - * + * * @var string */ public $encoding = null; - - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - if ($this->useEncoding()) { - return mb_strtolower((string) $value, $this->encoding); - } - - return strtolower((string) $value); - } - /** - * Verify is encoding is set and if we have the proper - * function to use it - * - * @return boolean - */ - public function useEncoding() - { - if ($this->encoding === null) { - return false; - } - - if (!function_exists('mb_strtolower')) { - throw new FilterException( - 'mbstring is required to use ToLower with an encoding.'); - } - - $this->encoding = (string) $this->encoding; - $encodings = array_map('strtolower', mb_list_encodings()); - - if (!in_array(strtolower($this->encoding), $encodings)) { - throw new FilterException( - "mbstring does not support the '".$this->encoding."' encoding" - ); - } - - return true; - } - /** * {@inheritDoc} */ @@ -69,4 +28,4 @@ public function getDefaultOption() { return 'encoding'; } -} \ No newline at end of file +} diff --git a/Rules/ToUpper.php b/Rules/ToUpper.php index e272f4c..a5dab18 100644 --- a/Rules/ToUpper.php +++ b/Rules/ToUpper.php @@ -6,62 +6,21 @@ /** * ToUpper Rule - * + * * @package DMS * @subpackage Filter - * + * * @Annotation */ class ToUpper extends Rule { /** * Encoding to be used - * + * * @var string */ public $encoding = null; - - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - if ($this->useEncoding()) { - return mb_strtoupper((string) $value, $this->encoding); - } - - return strtoupper((string) $value); - } - /** - * Verify is encoding is set and if we have the proper - * function to use it - * - * @return boolean - */ - public function useEncoding() - { - if ($this->encoding === null) { - return false; - } - - if (!function_exists('mb_strtoupper')) { - throw new FilterException( - 'mbstring is required to use ToLower with an encoding.'); - } - - $this->encoding = (string) $this->encoding; - $encodings = array_map('strtolower', mb_list_encodings()); - - if (!in_array(strtolower($this->encoding), $encodings)) { - throw new FilterException( - "mbstring does not support the '".$this->encoding."' encoding" - ); - } - - return true; - } - /** * {@inheritDoc} */ @@ -69,4 +28,4 @@ public function getDefaultOption() { return 'encoding'; } -} \ No newline at end of file +} diff --git a/Rules/Trim.php b/Rules/Trim.php index f5f8e25..20ad454 100644 --- a/Rules/Trim.php +++ b/Rules/Trim.php @@ -4,35 +4,20 @@ /** * Trim Rule - * + * * @package DMS * @subpackage Filter - * + * * @Annotation */ class Trim extends Rule { /** * Comma separated string of allowed tags - * + * * @var string */ public $charlist = null; - - /** - * {@inheritDoc} - */ - public function applyFilter($value) - { - //trim() only operates in default mode - //if no second argument is passed, it - //cannot be passed as null - if ($this->charlist === null) { - return trim($value); - } - - return trim($value, $this->charlist); - } /** * {@inheritDoc} @@ -41,4 +26,4 @@ public function getDefaultOption() { return 'charlist'; } -} \ No newline at end of file +} From a235b9698de559a98b669bcc701792d1d4e5e029 Mon Sep 17 00:00:00 2001 From: Rafael Dohms Date: Wed, 23 Jan 2013 18:54:17 +0100 Subject: [PATCH 02/16] Fixing bad annotations Adding Callback filter skeleton --- Filters/Alnum.php | 2 - Filters/Alpha.php | 2 - Filters/Boolean.php | 2 - Filters/Callback.php | 24 +++++++++ Filters/Digits.php | 2 - Filters/Float.php | 2 - Filters/HtmlEntities.php | 2 - Filters/Int.php | 2 - Filters/PregReplace.php | 2 - Filters/RegExp.php | 2 - Filters/StripNewlines.php | 2 - Filters/StripTags.php | 2 - Filters/ToLower.php | 2 - Filters/ToUpper.php | 2 - Filters/Trim.php | 2 - Mapping/ClassMetadata.php | 38 +++++++------- Mapping/ClassMetadataFactory.php | 90 ++++++++++++++++---------------- Rules/Callback.php | 23 ++++++++ 18 files changed, 111 insertions(+), 92 deletions(-) create mode 100644 Filters/Callback.php create mode 100644 Rules/Callback.php diff --git a/Filters/Alnum.php b/Filters/Alnum.php index bcdd444..67a2a6b 100644 --- a/Filters/Alnum.php +++ b/Filters/Alnum.php @@ -9,8 +9,6 @@ * * @package DMS * @subpackage Filter - * - * @Annotation */ class Alnum extends RegExp { diff --git a/Filters/Alpha.php b/Filters/Alpha.php index ddb3a80..acb95e9 100644 --- a/Filters/Alpha.php +++ b/Filters/Alpha.php @@ -9,8 +9,6 @@ * * @package DMS * @subpackage Filter - * - * @Annotation */ class Alpha extends RegExp { diff --git a/Filters/Boolean.php b/Filters/Boolean.php index 7b60390..24b3cb3 100644 --- a/Filters/Boolean.php +++ b/Filters/Boolean.php @@ -9,8 +9,6 @@ * * @package DMS * @subpackage Filter - * - * @Annotation */ class Boolean extends BaseFilter { diff --git a/Filters/Callback.php b/Filters/Callback.php new file mode 100644 index 0000000..389a7c0 --- /dev/null +++ b/Filters/Callback.php @@ -0,0 +1,24 @@ +className = $class; } - + /** * {@inheritDoc} */ @@ -50,40 +50,40 @@ public function getFilteredProperties() public function getPropertyRules($property) { if ( ! isset($this->filteredProperties[$property])) return; - + return $this->filteredProperties[$property]['rules']; } /** * {@inheritDoc} - * + * * @todo bend this method into calestenics */ public function mergeRules($metadata) { foreach ( $metadata->getFilteredProperties() as $property ) { - + foreach ($metadata->getPropertyRules($property) as $rule) { $this->addPropertyRule($property, clone $rule); } - + } } /** * {@inheritDoc} - * + * * @todo check for duplicate rules */ - public function addPropertyRule($property, $rule) + public function addPropertyRule($property, $rule) { if (!isset ($this->filteredProperties[$property])) { $this->filteredProperties[$property] = array('rules' => array()); } - + $this->filteredProperties[$property]['rules'][] = $rule; } - + /** * {@inheritDoc} */ @@ -91,7 +91,7 @@ public function getClassName() { return $this->className; } - + /** * {@inheritDoc} */ @@ -103,9 +103,9 @@ public function getReflectionClass() return $this->reflClass; } - -} \ No newline at end of file + +} diff --git a/Mapping/ClassMetadataFactory.php b/Mapping/ClassMetadataFactory.php index 088c21a..ce4aa6c 100644 --- a/Mapping/ClassMetadataFactory.php +++ b/Mapping/ClassMetadataFactory.php @@ -6,154 +6,154 @@ /** * Responsible for loading metadata for selected classes - * + * * @package DMS * @subpackage Filter */ class ClassMetadataFactory implements ClassMetadataFactoryInterface { /** - * @var Loader\LoaderInterface + * @var Loader\LoaderInterface */ protected $loader; - + /** - * @var Doctrine\Common\Cache\Cache + * @var \Doctrine\Common\Cache\Cache */ protected $cache; - + /** * @var array */ protected $parsedClasses = array(); - + /** * Constructor * Receives a Loader and a Doctrine Compatible cache instance - * + * * @param Loader\LoaderInterface $loader - * @param Cache $cache + * @param Cache $cache */ public function __construct(Loader\LoaderInterface $loader, Cache $cache = null) { $this->loader = $loader; $this->cache = $cache; } - + /** * {@inheritDoc} */ public function getClassMetadata($class) { - + $class = ltrim($class, '\\'); - + //Already parsed if ( $this->isParsed($class) ) { return $this->getParsedClass($class); } - + //Check Cache for it if ($this->cache !== null && $this->cache->contains($class)) { - + $this->setParsedClass($class, $this->cache->fetch($class)); return $this->getParsedClass($class); - + } - + //Parse unloaded and uncached class return $this->parseClassMetadata($class); } - + /** * Reads class metadata for a new and unparsed class - * + * * @param string $class - * @return ClassMetadata + * @return ClassMetadata */ - private function parseClassMetadata($class) + private function parseClassMetadata($class) { $metadata = new ClassMetadata($class); - + //Load up parent and interfaces $this->loadParentMetadata($metadata); $this->loadInterfaceMetadata($metadata); - + //Load Annotations from Reader $this->loader->loadClassMetadata($metadata); - + //Store internally $this->setParsedClass($class, $metadata); - + if ($this->cache !== null) { $this->cache->save($class, $metadata); } - - return $metadata; + + return $metadata; } - + /** * Checks if a class has already been parsed - * + * * @param string $class - * @return booelan + * @return boolean */ private function isParsed($class) { return isset($this->parsedClasses[$class]); } - + /** * Retrieves data from a class already parsed - * + * * @param string $class - * @return ClassMetadata + * @return ClassMetadata */ private function getParsedClass($class) { if ( ! $this->isParsed($class)) return; - + return $this->parsedClasses[$class]; } - + /** * Stores data from a parsed class - * + * * @param string $class - * @param ClassMetadata $metadata + * @param ClassMetadata $metadata */ private function setParsedClass($class, $metadata) { $this->parsedClasses[$class] = $metadata; } - + /** * Checks if the class being parsed has a parent and cascades parsing * to its parent - * - * @param ClassMetadata $metadata + * + * @param ClassMetadata $metadata */ protected function loadParentMetadata($metadata) { $parent = $metadata->getReflectionClass()->getParentClass(); - + if ($parent) { $metadata->mergeRules($this->getClassMetadata($parent->getName())); } } - + /** * Checks if the object has interfaces and cascades parsing of annotatiosn * to all the interfaces - * - * @param ClassMetadata $metadata + * + * @param ClassMetadata $metadata */ protected function loadInterfaceMetadata($metadata) { foreach( $metadata->getReflectionClass()->getInterfaces() as $interface ) { - + $metadata->mergeRules($this->getClassMetadata($interface->getName())); - + } } -} \ No newline at end of file +} diff --git a/Rules/Callback.php b/Rules/Callback.php new file mode 100644 index 0000000..63b508a --- /dev/null +++ b/Rules/Callback.php @@ -0,0 +1,23 @@ + Date: Thu, 9 Jan 2014 21:35:01 +0100 Subject: [PATCH 03/16] Fixing some CS and optimizing some code. --- Exception/RuleOptionsException.php | 10 ++++---- Filter.php | 19 ++++++++++----- FilterInterface.php | 24 +++++++++--------- Filters/BaseFilter.php | 2 +- Filters/Loader/FilterLoader.php | 10 ++++++-- Filters/Loader/FilterLoaderInterface.php | 8 +++++- Filters/StripTags.php | 2 +- Filters/ToLower.php | 6 ++--- Mapping/ClassMetadata.php | 10 ++++---- Mapping/ClassMetadataFactory.php | 8 +++--- Mapping/ClassMetadataInterface.php | 31 +++++++++++++----------- ObjectWalker.php | 4 +-- README.md | 12 ++++----- Rules/Rule.php | 26 ++++++++++++++------ Rules/ToLower.php | 2 -- Rules/ToUpper.php | 2 -- Version.php | 29 ---------------------- composer.json | 4 +-- 18 files changed, 104 insertions(+), 105 deletions(-) delete mode 100644 Version.php diff --git a/Exception/RuleOptionsException.php b/Exception/RuleOptionsException.php index 6576b87..518b0e8 100644 --- a/Exception/RuleOptionsException.php +++ b/Exception/RuleOptionsException.php @@ -4,7 +4,7 @@ /** * Base Exception for errors with rule options - * + * * @package DMS * @subpackage Filter * @category Exception @@ -18,9 +18,9 @@ class RuleOptionsException extends FilterException /** * Constructor - * + * * @param string $message - * @param array $options + * @param array $options */ public function __construct($message, array $options) { @@ -31,12 +31,12 @@ public function __construct($message, array $options) /** * Retrieve options that triggered exception - * + * * @return array */ public function getOptions() { return $this->options; - } + } } diff --git a/Filter.php b/Filter.php index 607640b..4e9ab18 100644 --- a/Filter.php +++ b/Filter.php @@ -12,6 +12,13 @@ */ use DMS\Filter\Filters\Loader\FilterLoaderInterface; +/** + * Class Filter + * + * Executor, receives objects that need filtering and executes attached rules. + * + * @package DMS\Filter + */ class Filter implements FilterInterface { /** @@ -82,9 +89,9 @@ public function getMetadataFactory() * @param object $object * @param string $limitProperty */ - protected function walkObject($object, $limitProperty = null) { - - if ( $object === null ) { + protected function walkObject($object, $limitProperty = null) + { + if ($object === null) { return; } @@ -94,10 +101,10 @@ protected function walkObject($object, $limitProperty = null) { $walker = new ObjectWalker($object, $this->filterLoader); //Get all filtered properties or limit with selected - $properties = ($limitProperty !== null)? array($limitProperty) : $metadata->getFilteredProperties(); + $properties = ($limitProperty !== null) ? array($limitProperty) : $metadata->getFilteredProperties(); //Iterate over properties with filters - foreach( $properties as $property ) { + foreach ($properties as $property) { $walker->applyFilterRules($property, $metadata->getPropertyRules($property)); @@ -114,7 +121,7 @@ protected function walkObject($object, $limitProperty = null) { */ protected function walkRuleChain($value, $rules) { - foreach($rules as $rule) { + foreach ($rules as $rule) { $filter = $this->filterLoader->getFilterForRule($rule); $value = $filter->apply($rule, $value); } diff --git a/FilterInterface.php b/FilterInterface.php index 9ef5fe9..a614472 100644 --- a/FilterInterface.php +++ b/FilterInterface.php @@ -4,7 +4,7 @@ /** * Filters the values of a given object - * + * * @package DMS * @subpackage Filter */ @@ -13,35 +13,35 @@ interface FilterInterface /** * Iterates over the properties of the object applying filters and * replacing values - * + * * @param mixed $object */ public function filterEntity($object); - + /** * Filters a specific property in an object, replacing the current value - * + * * @param mixed $object * @param string $property */ public function filterProperty($object, $property); /** - * Runs a given value through one or more filter rules returning the + * Runs a given value through one or more filter rules returning the * filtered value - * + * * @param mixed $value * @param array|Rules\Rule $filter - * + * * @return mixed */ - public function filterValue($value, $filter); - + public function filterValue($value, $filter); + /** * Retrieves the metadata factory for class metdatas - * + * * @return Mapping\ClassMetadataFactoryInterface */ public function getMetadataFactory(); - -} \ No newline at end of file + +} diff --git a/Filters/BaseFilter.php b/Filters/BaseFilter.php index 98b3734..0be8701 100644 --- a/Filters/BaseFilter.php +++ b/Filters/BaseFilter.php @@ -24,6 +24,6 @@ abstract class BaseFilter * * @return mixed */ - abstract function apply( Rule $rule, $value); + abstract function apply(Rule $rule, $value); } diff --git a/Filters/Loader/FilterLoader.php b/Filters/Loader/FilterLoader.php index 33f92f1..b2cc71e 100644 --- a/Filters/Loader/FilterLoader.php +++ b/Filters/Loader/FilterLoader.php @@ -5,6 +5,13 @@ use DMS\Filter\Rules\Rule; use Symfony\Component\DependencyInjection\ContainerInterface; +/** + * Class FilterLoader + * + * Loads the filter that enforces a specific rule. + * + * @package DMS\Filter\Filters\Loader + */ class FilterLoader implements FilterLoaderInterface { /** @@ -34,7 +41,7 @@ public function getFilterForRule(Rule $rule) { $filterIdentifier = $rule->getFilter(); - if (class_exists($filterIdentifier)){ + if (class_exists($filterIdentifier)) { return new $filterIdentifier; } @@ -44,6 +51,5 @@ public function getFilterForRule(Rule $rule) $error = "Unable to locate filter for: $filterIdentifier defined in " . get_class($rule); throw new \UnexpectedValueException($error); - } } diff --git a/Filters/Loader/FilterLoaderInterface.php b/Filters/Loader/FilterLoaderInterface.php index ee88150..1f8a772 100644 --- a/Filters/Loader/FilterLoaderInterface.php +++ b/Filters/Loader/FilterLoaderInterface.php @@ -3,8 +3,14 @@ use DMS\Filter\Filters\BaseFilter; use DMS\Filter\Rules\Rule; -use Symfony\Component\DependencyInjection\ContainerInterface; +/** + * Interface FilterLoaderInterface + * + * Defines the required interface for a loader capable of finding the executor of a specific rule. + * + * @package DMS\Filter\Filters\Loader + */ interface FilterLoaderInterface { /** diff --git a/Filters/StripTags.php b/Filters/StripTags.php index 13bc9bd..2af0bed 100644 --- a/Filters/StripTags.php +++ b/Filters/StripTags.php @@ -18,7 +18,7 @@ class StripTags extends BaseFilter * @param \DMS\Filter\Rules\StripTags $rule * @param mixed $filter */ - public function apply( Rule $rule, $value) + public function apply(Rule $rule, $value) { return strip_tags($value, $rule->allowed); } diff --git a/Filters/ToLower.php b/Filters/ToLower.php index a15af99..63b17bd 100644 --- a/Filters/ToLower.php +++ b/Filters/ToLower.php @@ -43,12 +43,10 @@ public function useEncoding($rule) return false; } - if (!function_exists('mb_strtolower')) { - throw new FilterException( - 'mbstring is required to use ToLower with an encoding.'); + if (! function_exists('mb_strtolower')) { + throw new FilterException('mbstring is required to use ToLower with an encoding.'); } - $this->encoding = (string) $rule->encoding; $encodings = array_map('strtolower', mb_list_encodings()); if (!in_array(strtolower($rule->encoding), $encodings)) { diff --git a/Mapping/ClassMetadata.php b/Mapping/ClassMetadata.php index 4faf021..17508e3 100644 --- a/Mapping/ClassMetadata.php +++ b/Mapping/ClassMetadata.php @@ -49,7 +49,9 @@ public function getFilteredProperties() */ public function getPropertyRules($property) { - if ( ! isset($this->filteredProperties[$property])) return; + if (! isset($this->filteredProperties[$property])) { + return null; + } return $this->filteredProperties[$property]['rules']; } @@ -57,16 +59,14 @@ public function getPropertyRules($property) /** * {@inheritDoc} * - * @todo bend this method into calestenics + * @todo bend this method into calesthenics */ public function mergeRules($metadata) { - foreach ( $metadata->getFilteredProperties() as $property ) { - + foreach ($metadata->getFilteredProperties() as $property) { foreach ($metadata->getPropertyRules($property) as $rule) { $this->addPropertyRule($property, clone $rule); } - } } diff --git a/Mapping/ClassMetadataFactory.php b/Mapping/ClassMetadataFactory.php index ce4aa6c..d043533 100644 --- a/Mapping/ClassMetadataFactory.php +++ b/Mapping/ClassMetadataFactory.php @@ -49,7 +49,7 @@ public function getClassMetadata($class) $class = ltrim($class, '\\'); //Already parsed - if ( $this->isParsed($class) ) { + if ($this->isParsed($class)) { return $this->getParsedClass($class); } @@ -111,7 +111,9 @@ private function isParsed($class) */ private function getParsedClass($class) { - if ( ! $this->isParsed($class)) return; + if (! $this->isParsed($class)) { + return null; + } return $this->parsedClasses[$class]; } @@ -150,7 +152,7 @@ protected function loadParentMetadata($metadata) */ protected function loadInterfaceMetadata($metadata) { - foreach( $metadata->getReflectionClass()->getInterfaces() as $interface ) { + foreach ($metadata->getReflectionClass()->getInterfaces() as $interface) { $metadata->mergeRules($this->getClassMetadata($interface->getName())); diff --git a/Mapping/ClassMetadataInterface.php b/Mapping/ClassMetadataInterface.php index 3d51bee..8b06e91 100644 --- a/Mapping/ClassMetadataInterface.php +++ b/Mapping/ClassMetadataInterface.php @@ -2,9 +2,12 @@ namespace DMS\Filter\Mapping; +use DMS\Filter\Rules\Rule; +use ReflectionClass; + /** * Method required by a ClassMetadata class - * + * * @package DMS * @subpackage Filter */ @@ -13,45 +16,45 @@ interface ClassMetadataInterface /** * Retrieve a list of the object's properties that have filters attached * to them - * + * * @return array */ public function getFilteredProperties(); - + /** * Retrieve s list of filtering rules attached to a property - * + * * @param string $property * @return array */ public function getPropertyRules($property); - + /** * Merges rules from another metadata object into this one - * + * * @param ClassMetadata $metadata */ public function mergeRules($metadata); - + /** * Get name of class represented in this Metadata object - * - * @return string + * + * @return string */ public function getClassName(); - + /** * Returns a ReflectionClass instance for this class. * * @return ReflectionClass */ public function getReflectionClass(); - + /** * Adds a new rule to a property - * + * * @param string $property - * @param Rules\Rule $rule + * @param Rule $rule */ public function addPropertyRule($property, $rule); -} \ No newline at end of file +} diff --git a/ObjectWalker.php b/ObjectWalker.php index d36c2f3..9c8581e 100644 --- a/ObjectWalker.php +++ b/ObjectWalker.php @@ -34,7 +34,7 @@ class ObjectWalker * @param object $object * @param FilterLoaderInterface $filterLoader */ - public function __construct( $object, $filterLoader ) + public function __construct($object, $filterLoader) { $this->object = $object; $this->reflClass = new \ReflectionClass($object); @@ -49,7 +49,7 @@ public function __construct( $object, $filterLoader ) */ public function applyFilterRules($property, $filterRules = array()) { - foreach($filterRules as $rule ) { + foreach ($filterRules as $rule) { $this->applyFilterRule($property, $rule); } } diff --git a/README.md b/README.md index b398763..c84d2a1 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This library provides a service that can be used to filter object values based o ## Usage -Your Entity: +Your Entity: ```php -``` +``` Filtering: @@ -69,7 +69,7 @@ Filtering: echo $user->name; //"My name" echo $user->email; //"email@mail.com" ?> -``` +``` Full example: https://gist.github.com/1098352 @@ -77,7 +77,7 @@ Full example: https://gist.github.com/1098352 This package relies on these external libraries: -* Doctrine Common: Reader and Cache +* Doctrine Annotations ## Contributing @@ -92,6 +92,6 @@ Feel free to send pull requests, just follow these guides: ## Credits -This library is inspired by the Symfony 2 Validator component and is meant to work alongside it. +This library is inspired by the Symfony 2 Validator component and is meant to work alongside it. -Symfony 2 Validator: https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Validator \ No newline at end of file +Symfony 2 Validator: https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Validator diff --git a/Rules/Rule.php b/Rules/Rule.php index 7c9f9c7..e50470e 100644 --- a/Rules/Rule.php +++ b/Rules/Rule.php @@ -2,9 +2,10 @@ namespace DMS\Filter\Rules; -use DMS\Filter\Exception\InvalidOptionsException, - DMS\Filter\Exception\MissingOptionsException, - DMS\Filter\Exception\RuleDefinitionException; +use DMS\Filter\Exception\InvalidOptionsException; +use DMS\Filter\Exception\MissingOptionsException; +use DMS\Filter\Exception\RuleDefinitionException; +use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * Base class for a Filtering Rule, it implements common behaviour @@ -41,14 +42,22 @@ public function __construct($options = null) if (count($result->invalidOptions) > 0) { throw new InvalidOptionsException( - sprintf('The options "%s" do not exist in rule %s', implode('", "', $result->invalidOptions), get_class($this)), + sprintf( + 'The options "%s" do not exist in rule %s', + implode('", "', $result->invalidOptions), + get_class($this) + ), $result->invalidOptions ); } if (count($result->missingOptions) > 0) { throw new MissingOptionsException( - sprintf('The options "%s" must be set for rule %s', implode('", "', array_keys($result->missingOptions)), get_class($this)), + sprintf( + 'The options "%s" must be set for rule %s', + implode('", "', array_keys($result->missingOptions)), + get_class($this) + ), array_keys($result->missingOptions) ); } @@ -65,7 +74,7 @@ private function parseOptions($options) { $parseResult = new \stdClass(); $parseResult->invalidOptions = array(); - $parseResult->missingOptions = array_flip((array) $this->getRequiredOptions()); + $parseResult->missingOptions = array_flip((array)$this->getRequiredOptions()); //Doctrine parses constructor parameter into 'value' array param, restore it if (is_array($options) && count($options) == 1 && isset($options['value'])) { @@ -97,7 +106,7 @@ private function parseOptionsArray($options, $result) { foreach ($options as $option => $value) { - if (!property_exists($this, $option)) { + if (! property_exists($this, $option)) { $result->invalidOptions[] = $option; continue; } @@ -113,6 +122,7 @@ private function parseOptionsArray($options, $result) * * @param string $options * @param \stdClass $result + * @throws \DMS\Filter\Exception\RuleDefinitionException */ private function parseSingleOption($options, $result) { @@ -126,7 +136,7 @@ private function parseSingleOption($options, $result) } //Default option points to invalid one - if (!property_exists($this, $option)) { + if (! property_exists($this, $option)) { $result->invalidOptions[] = $option; return; } diff --git a/Rules/ToLower.php b/Rules/ToLower.php index edb29bf..fc5f047 100644 --- a/Rules/ToLower.php +++ b/Rules/ToLower.php @@ -2,8 +2,6 @@ namespace DMS\Filter\Rules; -use DMS\Filter\Exception\FilterException; - /** * ToLower Rule * diff --git a/Rules/ToUpper.php b/Rules/ToUpper.php index a5dab18..a2019e2 100644 --- a/Rules/ToUpper.php +++ b/Rules/ToUpper.php @@ -2,8 +2,6 @@ namespace DMS\Filter\Rules; -use DMS\Filter\Exception\FilterException; - /** * ToUpper Rule * diff --git a/Version.php b/Version.php deleted file mode 100644 index 6080472..0000000 --- a/Version.php +++ /dev/null @@ -1,29 +0,0 @@ -=5.3.2", - "doctrine/common": ">=2.1" + "doctrine/annotations": "~1.1" }, "autoload": { @@ -25,4 +25,4 @@ }, "target-dir": "DMS/Filter" -} \ No newline at end of file +} From 92346e9ec8dc471b2e0781cc4d9c3451964ee738 Mon Sep 17 00:00:00 2001 From: Rafael Dohms Date: Thu, 9 Jan 2014 22:42:47 +0100 Subject: [PATCH 04/16] Fixing more CS issues from Insight --- Mapping/ClassMetadata.php | 6 ++- Mapping/ClassMetadataFactory.php | 16 +++---- Mapping/ClassMetadataInterface.php | 6 +-- Mapping/Loader/AnnotationLoader.php | 65 +++++++++++++++-------------- Mapping/Loader/LoaderInterface.php | 10 ++--- Rules/Rule.php | 6 +-- 6 files changed, 57 insertions(+), 52 deletions(-) diff --git a/Mapping/ClassMetadata.php b/Mapping/ClassMetadata.php index 17508e3..27c8e3f 100644 --- a/Mapping/ClassMetadata.php +++ b/Mapping/ClassMetadata.php @@ -2,6 +2,8 @@ namespace DMS\Filter\Mapping; +use DMS\Filter\Rules\Rule; + /** * Represents a class that has Annotations * @@ -61,7 +63,7 @@ public function getPropertyRules($property) * * @todo bend this method into calesthenics */ - public function mergeRules($metadata) + public function mergeRules(ClassMetadataInterface $metadata) { foreach ($metadata->getFilteredProperties() as $property) { foreach ($metadata->getPropertyRules($property) as $rule) { @@ -75,7 +77,7 @@ public function mergeRules($metadata) * * @todo check for duplicate rules */ - public function addPropertyRule($property, $rule) + public function addPropertyRule($property, Rule $rule) { if (!isset ($this->filteredProperties[$property])) { $this->filteredProperties[$property] = array('rules' => array()); diff --git a/Mapping/ClassMetadataFactory.php b/Mapping/ClassMetadataFactory.php index d043533..b770e54 100644 --- a/Mapping/ClassMetadataFactory.php +++ b/Mapping/ClassMetadataFactory.php @@ -69,7 +69,7 @@ public function getClassMetadata($class) * Reads class metadata for a new and unparsed class * * @param string $class - * @return ClassMetadata + * @return ClassMetadataInterface */ private function parseClassMetadata($class) { @@ -107,7 +107,7 @@ private function isParsed($class) * Retrieves data from a class already parsed * * @param string $class - * @return ClassMetadata + * @return ClassMetadataInterface */ private function getParsedClass($class) { @@ -122,9 +122,9 @@ private function getParsedClass($class) * Stores data from a parsed class * * @param string $class - * @param ClassMetadata $metadata + * @param ClassMetadataInterface $metadata */ - private function setParsedClass($class, $metadata) + private function setParsedClass($class, ClassMetadataInterface $metadata) { $this->parsedClasses[$class] = $metadata; } @@ -133,9 +133,9 @@ private function setParsedClass($class, $metadata) * Checks if the class being parsed has a parent and cascades parsing * to its parent * - * @param ClassMetadata $metadata + * @param ClassMetadataInterface $metadata */ - protected function loadParentMetadata($metadata) + protected function loadParentMetadata(ClassMetadataInterface $metadata) { $parent = $metadata->getReflectionClass()->getParentClass(); @@ -148,9 +148,9 @@ protected function loadParentMetadata($metadata) * Checks if the object has interfaces and cascades parsing of annotatiosn * to all the interfaces * - * @param ClassMetadata $metadata + * @param ClassMetadataInterface $metadata */ - protected function loadInterfaceMetadata($metadata) + protected function loadInterfaceMetadata(ClassMetadataInterface $metadata) { foreach ($metadata->getReflectionClass()->getInterfaces() as $interface) { diff --git a/Mapping/ClassMetadataInterface.php b/Mapping/ClassMetadataInterface.php index 8b06e91..b30c262 100644 --- a/Mapping/ClassMetadataInterface.php +++ b/Mapping/ClassMetadataInterface.php @@ -32,9 +32,9 @@ public function getPropertyRules($property); /** * Merges rules from another metadata object into this one * - * @param ClassMetadata $metadata + * @param ClassMetadataInterface $metadata */ - public function mergeRules($metadata); + public function mergeRules(ClassMetadataInterface $metadata); /** * Get name of class represented in this Metadata object @@ -56,5 +56,5 @@ public function getReflectionClass(); * @param string $property * @param Rule $rule */ - public function addPropertyRule($property, $rule); + public function addPropertyRule($property, Rule $rule); } diff --git a/Mapping/Loader/AnnotationLoader.php b/Mapping/Loader/AnnotationLoader.php index 9e6618b..a167884 100644 --- a/Mapping/Loader/AnnotationLoader.php +++ b/Mapping/Loader/AnnotationLoader.php @@ -2,14 +2,16 @@ namespace DMS\Filter\Mapping\Loader; -use Doctrine\Common\Annotations\Reader, - Doctrine\Common\Annotations\AnnotationRegistry, - DMS\Filter\Rules, - DMS\Filter\Mapping; +use DMS\Filter\Mapping\ClassMetadataInterface; +use Doctrine\Common\Annotations\Reader; +use Doctrine\Common\Annotations\AnnotationRegistry; +use DMS\Filter\Rules; +use DMS\Filter\Mapping; +use ReflectionProperty; /** * Loader that reads filtering data from Annotations - * + * * @package DMS * @subpackage Filter */ @@ -17,54 +19,53 @@ class AnnotationLoader implements LoaderInterface { /** * - * @var Doctrine\Common\Annotations\Reader + * @var Reader */ protected $reader; - + /** * Constructor - * - * @param Doctrine\Common\Annotations\Reader $reader + * + * @param Reader $reader */ public function __construct(Reader $reader) { $this->reader = $reader; - + //Register Filter Rules Annotation Namespace AnnotationRegistry::registerAutoloadNamespace('DMS\Filter\Rules', __DIR__ . '/../../../../'); - + } - + /** * Loads annotations data present in the class, using a Doctrine * annotation reader - * - * @param ClassMetadata $metadata + * + * @param ClassMetadataInterface $metadata + * @return bool|void */ - public function loadClassMetadata(Mapping\ClassMetadataInterface $metadata) + public function loadClassMetadata(ClassMetadataInterface $metadata) { - + $reflClass = $metadata->getReflectionClass(); - + //Iterate over properties to get annotations - foreach($reflClass->getProperties() as $property) { - + foreach ($reflClass->getProperties() as $property) { + $this->readProperty($property, $metadata); - + } - + } - + /** * Reads annotations for a selected property in the class - * + * * @param ReflectionProperty $property - * @param ClassMetadata $metadata + * @param ClassMetadataInterface $metadata */ - private function readProperty($property, $metadata) + private function readProperty(ReflectionProperty $property, ClassMetadataInterface $metadata) { - $reflClass = $metadata->getReflectionClass(); - // Skip if this property is not from this class if ($property->getDeclaringClass()->getName() != $metadata->getClassName() @@ -73,11 +74,13 @@ private function readProperty($property, $metadata) } //Iterate over all annotations - foreach($this->reader->getPropertyAnnotations($property) as $rule) { + foreach ($this->reader->getPropertyAnnotations($property) as $rule) { //Skip is its not a rule - if ( ! $rule instanceof Rules\Rule ) continue; - + if (! $rule instanceof Rules\Rule) { + continue; + } + //Add Rule $metadata->addPropertyRule($property->getName(), $rule); @@ -85,4 +88,4 @@ private function readProperty($property, $metadata) } -} \ No newline at end of file +} diff --git a/Mapping/Loader/LoaderInterface.php b/Mapping/Loader/LoaderInterface.php index 6791cbe..51fbc94 100644 --- a/Mapping/Loader/LoaderInterface.php +++ b/Mapping/Loader/LoaderInterface.php @@ -2,11 +2,11 @@ namespace DMS\Filter\Mapping\Loader; -use DMS\Filter\Mapping; +use DMS\Filter\Mapping\ClassMetadataInterface; /** * Interface for a Loader - * + * * @package DMS * @subpackage Filter */ @@ -15,9 +15,9 @@ interface LoaderInterface /** * Load a Class Metadata. * - * @param ClassMetadata $metadata A metadata + * @param ClassMetadataInterface $metadata A metadata * * @return Boolean */ - function loadClassMetadata(Mapping\ClassMetadataInterface $metadata); -} \ No newline at end of file + public function loadClassMetadata(ClassMetadataInterface $metadata); +} diff --git a/Rules/Rule.php b/Rules/Rule.php index e50470e..6ef40ff 100644 --- a/Rules/Rule.php +++ b/Rules/Rule.php @@ -102,7 +102,7 @@ private function parseOptions($options) * @param array $options * @param \stdClass $result */ - private function parseOptionsArray($options, $result) + private function parseOptionsArray($options, \stdClass $result) { foreach ($options as $option => $value) { @@ -124,11 +124,11 @@ private function parseOptionsArray($options, $result) * @param \stdClass $result * @throws \DMS\Filter\Exception\RuleDefinitionException */ - private function parseSingleOption($options, $result) + private function parseSingleOption($options, \stdClass $result) { $option = $this->getDefaultOption(); - //No Default set, usnsure what to do + //No Default set, unsure what to do if (null === $option) { throw new RuleDefinitionException( sprintf('No default option is configured for rule %s', get_class($this)) From 438419d141499bd2a908b4d3f8dc7eee8f3d3d54 Mon Sep 17 00:00:00 2001 From: Rafael Dohms Date: Tue, 14 Jan 2014 12:31:41 +0100 Subject: [PATCH 05/16] Fixed directory structure - moved code to src - moved tests here from DMS - moved Test do DMS\Test - added required libraries for testing --- .gitignore | 1 + README.md | 2 +- composer.json | 10 +- composer.lock | 636 +++ phpunit.xml | 25 + .../DMS/Filter/Exception}/FilterException.php | 0 .../Exception}/InvalidOptionsException.php | 0 .../Exception}/MissingOptionsException.php | 0 .../Exception}/RuleDefinitionException.php | 0 .../Exception}/RuleOptionsException.php | 0 Filter.php => src/DMS/Filter/Filter.php | 0 .../DMS/Filter/FilterInterface.php | 0 {Filters => src/DMS/Filter/Filters}/Alnum.php | 0 {Filters => src/DMS/Filter/Filters}/Alpha.php | 0 .../DMS/Filter/Filters}/BaseFilter.php | 0 .../DMS/Filter/Filters}/Boolean.php | 0 .../DMS/Filter/Filters}/Callback.php | 0 .../DMS/Filter/Filters}/Digits.php | 0 {Filters => src/DMS/Filter/Filters}/Float.php | 0 .../DMS/Filter/Filters}/HtmlEntities.php | 0 {Filters => src/DMS/Filter/Filters}/Int.php | 0 .../Filter/Filters}/Loader/FilterLoader.php | 0 .../Filters}/Loader/FilterLoaderInterface.php | 0 .../DMS/Filter/Filters}/PregReplace.php | 0 .../DMS/Filter/Filters}/RegExp.php | 0 .../DMS/Filter/Filters}/StripNewlines.php | 0 .../DMS/Filter/Filters}/StripTags.php | 0 .../DMS/Filter/Filters}/ToLower.php | 0 .../DMS/Filter/Filters}/ToUpper.php | 0 {Filters => src/DMS/Filter/Filters}/Trim.php | 0 .../DMS/Filter/Mapping}/ClassMetadata.php | 0 .../Filter/Mapping}/ClassMetadataFactory.php | 0 .../ClassMetadataFactoryInterface.php | 0 .../Mapping}/ClassMetadataInterface.php | 0 .../Mapping}/Loader/AnnotationLoader.php | 0 .../Mapping}/Loader/LoaderInterface.php | 0 .../DMS/Filter/ObjectWalker.php | 0 {Rules => src/DMS/Filter/Rules}/Alnum.php | 0 {Rules => src/DMS/Filter/Rules}/Alpha.php | 0 {Rules => src/DMS/Filter/Rules}/Boolean.php | 0 {Rules => src/DMS/Filter/Rules}/Callback.php | 0 {Rules => src/DMS/Filter/Rules}/Digits.php | 0 {Rules => src/DMS/Filter/Rules}/Float.php | 0 .../DMS/Filter/Rules}/HtmlEntities.php | 0 {Rules => src/DMS/Filter/Rules}/Int.php | 0 .../DMS/Filter/Rules}/PregReplace.php | 0 {Rules => src/DMS/Filter/Rules}/RegExp.php | 0 {Rules => src/DMS/Filter/Rules}/Rule.php | 0 .../DMS/Filter/Rules}/StripNewlines.php | 0 {Rules => src/DMS/Filter/Rules}/StripTags.php | 0 {Rules => src/DMS/Filter/Rules}/ToLower.php | 0 {Rules => src/DMS/Filter/Rules}/ToUpper.php | 0 {Rules => src/DMS/Filter/Rules}/Trim.php | 0 tests/DMS/Filter/FilterTest.php | 121 + tests/DMS/Filter/Filters/AlnumTest.php | 61 + tests/DMS/Filter/Filters/AlphaTest.php | 61 + tests/DMS/Filter/Filters/BooleanTest.php | 45 + tests/DMS/Filter/Filters/DigitsTest.php | 59 + tests/DMS/Filter/Filters/FloatTest.php | 43 + tests/DMS/Filter/Filters/HtmlEntitiesTest.php | 45 + tests/DMS/Filter/Filters/IntTest.php | 45 + .../Filters/Loader/FilterLoaderTest.php | 47 + tests/DMS/Filter/Filters/PregReplaceTest.php | 43 + .../DMS/Filter/Filters/StripNewlinesTest.php | 44 + tests/DMS/Filter/Filters/StripTagsTest.php | 42 + tests/DMS/Filter/Filters/ToLowerTest.php | 64 + tests/DMS/Filter/Filters/ToUpperTest.php | 64 + tests/DMS/Filter/Filters/TrimTest.php | 45 + .../Mapping/ClassMetadataFactoryTest.php | 63 + tests/DMS/Filter/Rules/RuleTest.php | 102 + .../Tests/Dummy/Classes/AnnotatedClass.php | 30 + .../Dummy/Classes/AnnotatedInterface.php | 8 + .../Dummy/Classes/ChildAnnotatedClass.php | 16 + .../Tests/Dummy/Rules/DefaultOptionRule.php | 21 + .../Dummy/Rules/InvalidDefaultOptionRule.php | 21 + .../Tests/Dummy/Rules/MultipleOptionsRule.php | 20 + tests/DMS/Tests/Dummy/Rules/NoOptionsRule.php | 14 + .../Tests/Dummy/Rules/RequiredOptionsRule.php | 28 + tests/DMS/Tests/FilterTestCase.php | 33 + vendor/autoload.php | 7 + vendor/bin/phpunit | 1 + vendor/composer/ClassLoader.php | 246 + vendor/composer/autoload_classmap.php | 355 ++ vendor/composer/autoload_namespaces.php | 14 + vendor/composer/autoload_real.php | 67 + vendor/composer/include_paths.php | 17 + vendor/composer/installed.json | 636 +++ vendor/doctrine/annotations/.gitignore | 3 + vendor/doctrine/annotations/.travis.yml | 9 + vendor/doctrine/annotations/README.md | 11 + vendor/doctrine/annotations/composer.json | 30 + .../Common/Annotations/Annotation.php | 79 + .../Annotations/Annotation/Attribute.php | 47 + .../Annotations/Annotation/Attributes.php | 37 + .../Common/Annotations/Annotation/Enum.php | 85 + .../Annotation/IgnoreAnnotation.php | 54 + .../Annotations/Annotation/Required.php | 33 + .../Common/Annotations/Annotation/Target.php | 107 + .../Annotations/AnnotationException.php | 158 + .../Common/Annotations/AnnotationReader.php | 318 ++ .../Common/Annotations/AnnotationRegistry.php | 139 + .../Common/Annotations/CachedReader.php | 250 + .../Doctrine/Common/Annotations/DocLexer.php | 132 + .../Doctrine/Common/Annotations/DocParser.php | 1049 ++++ .../Common/Annotations/FileCacheReader.php | 269 ++ .../Common/Annotations/IndexedReader.php | 141 + .../Doctrine/Common/Annotations/PhpParser.php | 89 + .../Doctrine/Common/Annotations/Reader.php | 67 + .../Annotations/SimpleAnnotationReader.php | 157 + .../Common/Annotations/TokenParser.php | 175 + vendor/doctrine/annotations/phpunit.xml.dist | 31 + .../Common/Annotations/AbstractReaderTest.php | 571 +++ .../Annotations/AnnotationReaderTest.php | 13 + .../Common/Annotations/CachedReaderTest.php | 56 + .../Tests/Common/Annotations/DocLexerTest.php | 137 + .../Common/Annotations/DocParserTest.php | 1276 +++++ .../Tests/Common/Annotations/DummyClass.php | 48 + .../Annotations/FileCacheReaderTest.php | 40 + .../Annotation/AnnotWithDefaultValue.php | 10 + .../Fixtures/Annotation/Autoload.php | 10 + .../Annotations/Fixtures/Annotation/Route.php | 11 + .../Fixtures/Annotation/Secure.php | 18 + .../Fixtures/Annotation/Template.php | 14 + .../Fixtures/Annotation/Version.php | 11 + .../Annotations/Fixtures/AnnotationEnum.php | 21 + .../Fixtures/AnnotationEnumInvalid.php | 17 + .../Fixtures/AnnotationEnumLiteral.php | 34 + .../Fixtures/AnnotationEnumLiteralInvalid.php | 31 + .../Fixtures/AnnotationTargetAll.php | 14 + .../Fixtures/AnnotationTargetAnnotation.php | 14 + .../Fixtures/AnnotationTargetClass.php | 15 + .../Fixtures/AnnotationTargetMethod.php | 15 + .../AnnotationTargetPropertyMethod.php | 14 + .../Fixtures/AnnotationWithAttributes.php | 119 + .../Fixtures/AnnotationWithConstants.php | 20 + .../AnnotationWithRequiredAttributes.php | 50 + ...ithRequiredAttributesWithoutContructor.php | 24 + .../AnnotationWithTargetSyntaxError.php | 11 + .../Fixtures/AnnotationWithVarType.php | 62 + .../Tests/Common/Annotations/Fixtures/Api.php | 10 + .../Annotations/Fixtures/ClassDDC1660.php | 30 + .../Fixtures/ClassWithAnnotationEnum.php | 29 + ...assWithAnnotationWithTargetSyntaxError.php | 21 + .../ClassWithAnnotationWithVarType.php | 31 + .../Annotations/Fixtures/ClassWithClosure.php | 52 + .../Fixtures/ClassWithConstants.php | 10 + .../ClassWithFullyQualifiedUseStatements.php | 11 + ...lassWithInvalidAnnotationTargetAtClass.php | 17 + ...assWithInvalidAnnotationTargetAtMethod.php | 20 + ...sWithInvalidAnnotationTargetAtProperty.php | 24 + .../Annotations/Fixtures/ClassWithRequire.php | 15 + .../ClassWithValidAnnotationTarget.php | 41 + .../Annotations/Fixtures/Controller.php | 300 ++ ...erentNamespacesPerFileWithClassAsFirst.php | 15 + ...ferentNamespacesPerFileWithClassAsLast.php | 15 + ...EqualNamespacesPerFileWithClassAsFirst.php | 13 + .../EqualNamespacesPerFileWithClassAsLast.php | 12 + ...lobalNamespacesPerFileWithClassAsFirst.php | 12 + ...GlobalNamespacesPerFileWithClassAsLast.php | 12 + .../Fixtures/IntefaceWithConstants.php | 10 + .../InvalidAnnotationUsageButIgnoredClass.php | 14 + .../Fixtures/InvalidAnnotationUsageClass.php | 10 + .../Fixtures/MultipleClassesInFile.php | 9 + .../MultipleImportsInUseStatement.php | 10 + .../NamespaceAndClassCommentedOut.php | 20 + .../NamespaceWithClosureDeclaration.php | 12 + .../Fixtures/NamespacedSingleClassLOC1000.php | 1009 ++++ .../Annotations/Fixtures/NoAnnotation.php | 5 + .../Fixtures/NonNamespacedClass.php | 10 + .../Fixtures/SingleClassLOC1000.php | 1006 ++++ .../Annotations/Fixtures/TestInterface.php | 13 + .../Common/Annotations/PerformanceTest.php | 194 + .../Common/Annotations/PhpParserTest.php | 207 + .../SimpleAnnotationReaderTest.php | 97 + .../Common/Annotations/Ticket/DCOM55Test.php | 65 + .../Annotations/Ticket/DCOM58Entity.php | 8 + .../Common/Annotations/Ticket/DCOM58Test.php | 112 + .../Common/Annotations/TopLevelAnnotation.php | 8 + .../tests/Doctrine/Tests/DoctrineTestCase.php | 10 + .../tests/Doctrine/Tests/TestInit.php | 26 + vendor/doctrine/cache/.coveralls.yml | 4 + vendor/doctrine/cache/.gitignore | 3 + vendor/doctrine/cache/.travis.yml | 26 + vendor/doctrine/cache/LICENSE | 19 + vendor/doctrine/cache/README.md | 14 + vendor/doctrine/cache/build.properties | 3 + vendor/doctrine/cache/build.xml | 110 + vendor/doctrine/cache/composer.json | 33 + .../lib/Doctrine/Common/Cache/ApcCache.php | 98 + .../lib/Doctrine/Common/Cache/ArrayCache.php | 93 + .../cache/lib/Doctrine/Common/Cache/Cache.php | 111 + .../Doctrine/Common/Cache/CacheProvider.php | 241 + .../Doctrine/Common/Cache/CouchbaseCache.php | 121 + .../lib/Doctrine/Common/Cache/FileCache.php | 158 + .../Doctrine/Common/Cache/FilesystemCache.php | 113 + .../Doctrine/Common/Cache/MemcacheCache.php | 121 + .../Doctrine/Common/Cache/MemcachedCache.php | 124 + .../Doctrine/Common/Cache/MongoDBCache.php | 191 + .../Doctrine/Common/Cache/PhpFileCache.php | 107 + .../lib/Doctrine/Common/Cache/RedisCache.php | 131 + .../lib/Doctrine/Common/Cache/RiakCache.php | 250 + .../lib/Doctrine/Common/Cache/Version.php | 25 + .../Doctrine/Common/Cache/WinCacheCache.php | 91 + .../lib/Doctrine/Common/Cache/XcacheCache.php | 109 + .../Doctrine/Common/Cache/ZendDataCache.php | 83 + vendor/doctrine/cache/phpunit.xml.dist | 31 + .../Tests/Common/Cache/ApcCacheTest.php | 20 + .../Tests/Common/Cache/ArrayCacheTest.php | 26 + .../Tests/Common/Cache/BaseFileCacheTest.php | 40 + .../Doctrine/Tests/Common/Cache/CacheTest.php | 241 + .../Tests/Common/Cache/CouchbaseCacheTest.php | 47 + .../Tests/Common/Cache/FileCacheTest.php | 107 + .../Common/Cache/FilesystemCacheTest.php | 75 + .../Tests/Common/Cache/MemcacheCacheTest.php | 54 + .../Tests/Common/Cache/MemcachedCacheTest.php | 56 + .../Tests/Common/Cache/MongoDBCacheTest.php | 61 + .../Tests/Common/Cache/PhpFileCacheTest.php | 118 + .../Tests/Common/Cache/RedisCacheTest.php | 30 + .../Tests/Common/Cache/RiakCacheTest.php | 64 + .../Tests/Common/Cache/WinCacheCacheTest.php | 20 + .../Tests/Common/Cache/XcacheCacheTest.php | 20 + .../Tests/Common/Cache/ZendDataCacheTest.php | 28 + .../tests/Doctrine/Tests/DoctrineTestCase.php | 10 + .../cache/tests/Doctrine/Tests/TestInit.php | 21 + vendor/doctrine/cache/tests/travis/php.ini | 6 + .../cache/tests/travis/phpunit.travis.xml | 35 + vendor/doctrine/lexer/README.md | 5 + vendor/doctrine/lexer/composer.json | 19 + .../Doctrine/Common/Lexer/AbstractLexer.php | 265 + .../phpunit/php-code-coverage/.gitattributes | 1 + vendor/phpunit/php-code-coverage/.gitignore | 9 + vendor/phpunit/php-code-coverage/.travis.yml | 17 + .../phpunit/php-code-coverage/CONTRIBUTING.md | 5 + vendor/phpunit/php-code-coverage/LICENSE | 33 + .../php-code-coverage/PHP/CodeCoverage.php | 801 ++++ .../PHP/CodeCoverage/Autoload.php | 94 + .../PHP/CodeCoverage/Autoload.php.in | 74 + .../PHP/CodeCoverage/Driver.php | 70 + .../PHP/CodeCoverage/Driver/Xdebug.php | 97 + .../PHP/CodeCoverage/Exception.php | 59 + .../PHP/CodeCoverage/Filter.php | 347 ++ .../PHP/CodeCoverage/Report/Clover.php | 346 ++ .../PHP/CodeCoverage/Report/Factory.php | 280 ++ .../PHP/CodeCoverage/Report/HTML.php | 222 + .../PHP/CodeCoverage/Report/HTML/Renderer.php | 285 ++ .../Report/HTML/Renderer/Dashboard.php | 240 + .../Report/HTML/Renderer/Directory.php | 132 + .../Report/HTML/Renderer/File.php | 583 +++ .../Renderer/Template/coverage_bar.html.dist | 3 + .../Template/css/bootstrap-responsive.min.css | 9 + .../Renderer/Template/css/bootstrap.min.css | 9 + .../HTML/Renderer/Template/css/style.css | 86 + .../Renderer/Template/dashboard.html.dist | 121 + .../Renderer/Template/directory.html.dist | 59 + .../Template/directory_item.html.dist | 13 + .../HTML/Renderer/Template/file.html.dist | 65 + .../Renderer/Template/file_item.html.dist | 14 + .../img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../Template/img/glyphicons-halflings.png | Bin 0 -> 12799 bytes .../Renderer/Template/js/bootstrap.min.js | 6 + .../HTML/Renderer/Template/js/highcharts.js | 250 + .../HTML/Renderer/Template/js/html5shiv.js | 8 + .../HTML/Renderer/Template/js/jquery.min.js | 5 + .../Renderer/Template/method_item.html.dist | 11 + .../PHP/CodeCoverage/Report/Node.php | 380 ++ .../CodeCoverage/Report/Node/Directory.php | 512 ++ .../PHP/CodeCoverage/Report/Node/File.php | 721 +++ .../PHP/CodeCoverage/Report/Node/Iterator.php | 148 + .../PHP/CodeCoverage/Report/PHP.php | 74 + .../PHP/CodeCoverage/Report/Text.php | 278 ++ .../PHP/CodeCoverage/Util.php | 265 + .../Util/InvalidArgumentHelper.php | 80 + .../PHP/CodeCoverage/Version.php | 92 + .../phpunit/php-code-coverage/README.markdown | 53 + .../Tests/PHP/CodeCoverage/FilterTest.php | 303 ++ .../PHP/CodeCoverage/Report/CloverTest.php | 109 + .../PHP/CodeCoverage/Report/FactoryTest.php | 263 + .../Tests/PHP/CodeCoverage/UtilTest.php | 232 + .../Tests/PHP/CodeCoverageTest.php | 560 +++ .../php-code-coverage/Tests/TestCase.php | 303 ++ .../Tests/_files/BankAccount-clover.xml | 26 + .../Tests/_files/BankAccount.php | 33 + .../Tests/_files/BankAccountTest.php | 70 + .../_files/CoverageClassExtendedTest.php | 12 + .../Tests/_files/CoverageClassTest.php | 12 + .../CoverageFunctionParenthesesTest.php | 11 + ...erageFunctionParenthesesWhitespaceTest.php | 11 + .../Tests/_files/CoverageFunctionTest.php | 11 + .../CoverageMethodOneLineAnnotationTest.php | 12 + .../_files/CoverageMethodParenthesesTest.php | 12 + ...overageMethodParenthesesWhitespaceTest.php | 12 + .../Tests/_files/CoverageMethodTest.php | 12 + .../Tests/_files/CoverageNoneTest.php | 9 + .../Tests/_files/CoverageNotPrivateTest.php | 12 + .../Tests/_files/CoverageNotProtectedTest.php | 12 + .../Tests/_files/CoverageNotPublicTest.php | 12 + .../Tests/_files/CoverageNothingTest.php | 13 + .../Tests/_files/CoveragePrivateTest.php | 12 + .../Tests/_files/CoverageProtectedTest.php | 12 + .../Tests/_files/CoveragePublicTest.php | 12 + .../CoverageTwoDefaultClassAnnotations.php | 19 + .../Tests/_files/CoveredClass.php | 36 + .../Tests/_files/CoveredFunction.php | 4 + .../NamespaceCoverageClassExtendedTest.php | 12 + .../_files/NamespaceCoverageClassTest.php | 12 + ...NamespaceCoverageCoversClassPublicTest.php | 16 + .../NamespaceCoverageCoversClassTest.php | 21 + .../_files/NamespaceCoverageMethodTest.php | 12 + .../NamespaceCoverageNotPrivateTest.php | 12 + .../NamespaceCoverageNotProtectedTest.php | 12 + .../_files/NamespaceCoverageNotPublicTest.php | 12 + .../_files/NamespaceCoveragePrivateTest.php | 12 + .../_files/NamespaceCoverageProtectedTest.php | 12 + .../_files/NamespaceCoveragePublicTest.php | 12 + .../Tests/_files/NamespaceCoveredClass.php | 38 + .../_files/NotExistingCoveredElementTest.php | 24 + .../class-with-anonymous-function-clover.xml | 22 + .../Tests/_files/ignored-lines-clover.xml | 17 + ...urce_with_class_and_anonymous_function.php | 19 + .../Tests/_files/source_with_ignore.php | 38 + .../Tests/_files/source_with_namespace.php | 20 + .../source_with_oneline_annotations.php | 35 + .../Tests/_files/source_without_ignore.php | 4 + .../Tests/_files/source_without_namespace.php | 18 + vendor/phpunit/php-code-coverage/build.xml | 162 + .../ControlSignatureSniff.php | 22 + .../Whitespace/ConcatenationSpacingSniff.php | 22 + .../php-code-coverage/build/PHPCS/ruleset.xml | 35 + .../phpunit/php-code-coverage/build/phpmd.xml | 27 + .../php-code-coverage/build/travis-ci.xml | 24 + .../phpunit/php-code-coverage/composer.json | 49 + vendor/phpunit/php-code-coverage/package.xml | 133 + .../php-code-coverage/phpunit.xml.dist | 29 + .../php-code-coverage/scripts/auto_append.php | 5 + .../scripts/auto_prepend.php | 10 + .../phpunit/php-file-iterator/.gitattributes | 1 + vendor/phpunit/php-file-iterator/.gitignore | 7 + .../php-file-iterator/ChangeLog.markdown | 31 + .../php-file-iterator/File/Iterator.php | 196 + .../File/Iterator/Autoload.php | 66 + .../File/Iterator/Autoload.php.in | 64 + .../File/Iterator/Facade.php | 161 + .../File/Iterator/Factory.php | 120 + vendor/phpunit/php-file-iterator/LICENSE | 33 + .../phpunit/php-file-iterator/README.markdown | 23 + vendor/phpunit/php-file-iterator/build.xml | 161 + .../ControlSignatureSniff.php | 22 + .../Whitespace/ConcatenationSpacingSniff.php | 22 + .../php-file-iterator/build/PHPCS/ruleset.xml | 35 + .../phpunit/php-file-iterator/build/phpmd.xml | 27 + .../phpunit/php-file-iterator/composer.json | 33 + vendor/phpunit/php-file-iterator/package.xml | 65 + .../phpunit/php-text-template/.gitattributes | 1 + vendor/phpunit/php-text-template/.gitignore | 7 + .../php-text-template/ChangeLog.markdown | 24 + vendor/phpunit/php-text-template/LICENSE | 33 + .../phpunit/php-text-template/README.markdown | 23 + .../php-text-template/Text/Template.php | 164 + .../Text/Template/Autoload.php | 65 + .../Text/Template/Autoload.php.in | 65 + vendor/phpunit/php-text-template/build.xml | 161 + .../ControlSignatureSniff.php | 22 + .../Whitespace/ConcatenationSpacingSniff.php | 22 + .../php-text-template/build/PHPCS/ruleset.xml | 35 + .../phpunit/php-text-template/build/phpmd.xml | 27 + .../phpunit/php-text-template/composer.json | 32 + vendor/phpunit/php-text-template/package.xml | 59 + vendor/phpunit/php-timer/.gitattributes | 1 + vendor/phpunit/php-timer/.gitignore | 7 + vendor/phpunit/php-timer/LICENSE | 33 + vendor/phpunit/php-timer/PHP/Timer.php | 148 + .../phpunit/php-timer/PHP/Timer/Autoload.php | 66 + .../php-timer/PHP/Timer/Autoload.php.in | 66 + vendor/phpunit/php-timer/README.md | 56 + vendor/phpunit/php-timer/Tests/TimerTest.php | 142 + vendor/phpunit/php-timer/build.xml | 160 + .../ControlSignatureSniff.php | 22 + .../Whitespace/ConcatenationSpacingSniff.php | 22 + .../phpunit/php-timer/build/PHPCS/ruleset.xml | 35 + vendor/phpunit/php-timer/build/phpmd.xml | 27 + vendor/phpunit/php-timer/composer.json | 32 + vendor/phpunit/php-timer/package.xml | 58 + vendor/phpunit/php-timer/phpunit.xml.dist | 26 + .../phpunit/php-token-stream/.gitattributes | 1 + vendor/phpunit/php-token-stream/.gitignore | 7 + vendor/phpunit/php-token-stream/LICENSE | 33 + vendor/phpunit/php-token-stream/PHP/Token.php | 727 +++ .../php-token-stream/PHP/Token/Stream.php | 627 +++ .../PHP/Token/Stream/Autoload.php | 226 + .../PHP/Token/Stream/Autoload.php.in | 65 + .../PHP/Token/Stream/CachingFactory.php | 85 + vendor/phpunit/php-token-stream/README.md | 22 + .../Tests/Token/ClassTest.php | 128 + .../Tests/Token/ClosureTest.php | 129 + .../Tests/Token/FunctionTest.php | 188 + .../Tests/Token/IncludeTest.php | 117 + .../Tests/Token/InterfaceTest.php | 236 + .../Tests/Token/NamespaceTest.php | 124 + .../php-token-stream/Tests/TokenTest.php | 85 + .../_files/classExtendsNamespacedClass.php | 10 + .../Tests/_files/classInNamespace.php | 6 + .../Tests/_files/classInScopedNamespace.php | 9 + .../php-token-stream/Tests/_files/closure.php | 7 + .../php-token-stream/Tests/_files/issue19.php | 3 + .../php-token-stream/Tests/_files/issue30.php | 8 + ...tipleNamespacesWithOneClassUsingBraces.php | 12 + ...espacesWithOneClassUsingNonBraceSyntax.php | 14 + .../php-token-stream/Tests/_files/source.php | 32 + .../php-token-stream/Tests/_files/source2.php | 6 + .../php-token-stream/Tests/_files/source3.php | 14 + .../php-token-stream/Tests/_files/source4.php | 30 + .../php-token-stream/Tests/_files/source5.php | 5 + vendor/phpunit/php-token-stream/build.xml | 162 + .../ControlSignatureSniff.php | 22 + .../Whitespace/ConcatenationSpacingSniff.php | 22 + .../php-token-stream/build/PHPCS/ruleset.xml | 35 + .../phpunit/php-token-stream/build/phpmd.xml | 27 + vendor/phpunit/php-token-stream/composer.json | 38 + vendor/phpunit/php-token-stream/package.xml | 69 + .../phpunit/php-token-stream/phpunit.xml.dist | 27 + .../phpunit-mock-objects/.gitattributes | 1 + .../phpunit/phpunit-mock-objects/.gitignore | 7 + .../phpunit/phpunit-mock-objects/.travis.yml | 22 + .../phpunit-mock-objects/CONTRIBUTING.md | 5 + .../phpunit-mock-objects/ChangeLog.markdown | 27 + vendor/phpunit/phpunit-mock-objects/LICENSE | 33 + .../PHPUnit/Framework/MockObject/Autoload.php | 100 + .../Framework/MockObject/Autoload.php.in | 65 + .../Framework/MockObject/Builder/Identity.php | 70 + .../MockObject/Builder/InvocationMocker.php | 193 + .../Framework/MockObject/Builder/Match.php | 66 + .../MockObject/Builder/MethodNameMatch.php | 68 + .../MockObject/Builder/Namespace.php | 79 + .../MockObject/Builder/ParametersMatch.php | 89 + .../Framework/MockObject/Builder/Stub.php | 66 + .../Framework/MockObject/Generator.php | 808 ++++ .../Generator/mocked_class.tpl.dist | 52 + .../Generator/mocked_clone.tpl.dist | 4 + .../Generator/mocked_object_method.tpl.dist | 22 + .../Generator/mocked_static_method.tpl.dist | 22 + .../MockObject/Generator/trait_class.tpl.dist | 4 + .../Generator/unmocked_clone.tpl.dist | 5 + .../MockObject/Generator/wsdl_class.tpl.dist | 9 + .../MockObject/Generator/wsdl_method.tpl.dist | 4 + .../Framework/MockObject/Invocation.php | 58 + .../MockObject/Invocation/Object.php | 75 + .../MockObject/Invocation/Static.php | 191 + .../Framework/MockObject/InvocationMocker.php | 201 + .../Framework/MockObject/Invokable.php | 79 + .../PHPUnit/Framework/MockObject/Matcher.php | 308 ++ .../MockObject/Matcher/AnyInvokedCount.php | 72 + .../MockObject/Matcher/AnyParameters.php | 74 + .../MockObject/Matcher/Invocation.php | 88 + .../MockObject/Matcher/InvokedAtIndex.php | 127 + .../MockObject/Matcher/InvokedAtLeastOnce.php | 85 + .../MockObject/Matcher/InvokedCount.php | 143 + .../MockObject/Matcher/InvokedRecorder.php | 107 + .../MockObject/Matcher/MethodName.php | 102 + .../MockObject/Matcher/Parameters.php | 160 + .../Matcher/StatelessInvocation.php | 96 + .../Framework/MockObject/MockBuilder.php | 291 ++ .../Framework/MockObject/MockObject.php | 94 + .../PHPUnit/Framework/MockObject/Stub.php | 71 + .../MockObject/Stub/ConsecutiveCalls.php | 87 + .../Framework/MockObject/Stub/Exception.php | 80 + .../MockObject/Stub/MatcherCollection.php | 66 + .../Framework/MockObject/Stub/Return.php | 78 + .../MockObject/Stub/ReturnArgument.php | 78 + .../MockObject/Stub/ReturnCallback.php | 94 + .../Framework/MockObject/Stub/ReturnSelf.php | 76 + .../MockObject/Stub/ReturnValueMap.php | 87 + .../Framework/MockObject/Verifiable.php | 65 + .../Tests/GeneratorTest.php | 79 + .../Tests/MockBuilderTest.php | 152 + .../MockObject/Invocation/ObjectTest.php | 82 + .../MockObject/Invocation/StaticTest.php | 52 + .../Tests/MockObject/class.phpt | 128 + .../MockObject/class_call_parent_clone.phpt | 82 + .../class_call_parent_constructor.phpt | 81 + .../class_dont_call_parent_clone.phpt | 81 + .../class_dont_call_parent_constructor.phpt | 81 + ...ing_interface_call_parent_constructor.phpt | 86 + ...nterface_dont_call_parent_constructor.phpt | 86 + .../Tests/MockObject/class_partial.phpt | 107 + .../Tests/MockObject/interface.phpt | 101 + .../invocation_object_clone_object.phpt | 130 + .../invocation_static_clone_object.phpt | 130 + .../Tests/MockObject/namespaced_class.phpt | 131 + .../namespaced_class_call_parent_clone.phpt | 84 + ...espaced_class_call_parent_constructor.phpt | 83 + ...mespaced_class_dont_call_parent_clone.phpt | 83 + ...ed_class_dont_call_parent_constructor.phpt | 83 + ...ing_interface_call_parent_constructor.phpt | 88 + ...nterface_dont_call_parent_constructor.phpt | 88 + .../MockObject/namespaced_class_partial.phpt | 109 + .../MockObject/namespaced_interface.phpt | 103 + .../Tests/MockObject/nonexistent_class.phpt | 78 + .../nonexistent_class_with_namespace.phpt | 86 + ...ith_namespace_starting_with_separator.phpt | 86 + .../Tests/MockObject/wsdl_class.phpt | 36 + .../MockObject/wsdl_class_namespace.phpt | 38 + .../Tests/MockObject/wsdl_class_partial.phpt | 29 + .../Tests/MockObjectTest.php | 648 +++ .../Tests/_files/AbstractMockTestClass.php | 5 + .../Tests/_files/AnInterface.php | 5 + .../Tests/_files/FunctionCallback.php | 9 + .../Tests/_files/GoogleSearch.wsdl | 198 + .../Tests/_files/MethodCallback.php | 21 + .../_files/MethodCallbackByReference.php | 11 + .../Tests/_files/Mockable.php | 28 + .../Tests/_files/PartialMockTestClass.php | 18 + .../Tests/_files/SomeClass.php | 13 + .../Tests/_files/StaticMockTestClass.php | 12 + vendor/phpunit/phpunit-mock-objects/build.xml | 162 + .../ControlSignatureSniff.php | 22 + .../Whitespace/ConcatenationSpacingSniff.php | 22 + .../build/PHPCS/ruleset.xml | 35 + .../phpunit-mock-objects/build/phpmd.xml | 27 + .../phpunit-mock-objects/build/travis-ci.xml | 28 + .../phpunit-mock-objects/composer.json | 37 + .../phpunit/phpunit-mock-objects/package.xml | 193 + .../phpunit-mock-objects/phpunit.xml.dist | 31 + vendor/phpunit/phpunit/.gitattributes | 1 + vendor/phpunit/phpunit/.gitignore | 19 + vendor/phpunit/phpunit/.travis.yml | 21 + vendor/phpunit/phpunit/CONTRIBUTING.md | 55 + vendor/phpunit/phpunit/LICENSE | 33 + vendor/phpunit/phpunit/PHPUnit/Autoload.php | 248 + .../phpunit/phpunit/PHPUnit/Autoload.php.in | 130 + .../PHPUnit/Extensions/GroupTestSuite.php | 99 + .../PHPUnit/Extensions/PhptTestCase.php | 269 ++ .../Extensions/PhptTestCase/Logger.php | 62 + .../PHPUnit/Extensions/PhptTestSuite.php | 82 + .../PHPUnit/Extensions/RepeatedTest.php | 155 + .../PHPUnit/Extensions/TestDecorator.php | 149 + .../PHPUnit/Extensions/TicketListener.php | 224 + .../phpunit/PHPUnit/Framework/Assert.php | 2844 +++++++++++ .../PHPUnit/Framework/Assert/Functions.php | 2428 ++++++++++ .../PHPUnit/Framework/Assert/Functions.php.in | 44 + .../Framework/AssertionFailedError.php | 68 + .../phpunit/PHPUnit/Framework/Comparator.php | 97 + .../PHPUnit/Framework/Comparator/Array.php | 177 + .../Framework/Comparator/DOMDocument.php | 114 + .../PHPUnit/Framework/Comparator/Double.php | 101 + .../Framework/Comparator/Exception.php | 92 + .../Framework/Comparator/MockObject.php | 86 + .../PHPUnit/Framework/Comparator/Numeric.php | 112 + .../PHPUnit/Framework/Comparator/Object.php | 145 + .../PHPUnit/Framework/Comparator/Resource.php | 97 + .../PHPUnit/Framework/Comparator/Scalar.php | 136 + .../Framework/Comparator/SplObjectStorage.php | 114 + .../PHPUnit/Framework/Comparator/Type.php | 105 + .../PHPUnit/Framework/ComparatorFactory.php | 156 + .../PHPUnit/Framework/ComparisonFailure.php | 166 + .../phpunit/PHPUnit/Framework/Constraint.php | 180 + .../PHPUnit/Framework/Constraint/And.php | 164 + .../Framework/Constraint/ArrayHasKey.php | 114 + .../Framework/Constraint/Attribute.php | 129 + .../PHPUnit/Framework/Constraint/Callback.php | 116 + .../Constraint/ClassHasAttribute.php | 124 + .../Constraint/ClassHasStaticAttribute.php | 98 + .../Framework/Constraint/Composite.php | 114 + .../PHPUnit/Framework/Constraint/Count.php | 128 + .../Framework/Constraint/Exception.php | 129 + .../Framework/Constraint/ExceptionCode.php | 109 + .../Framework/Constraint/ExceptionMessage.php | 109 + .../Framework/Constraint/FileExists.php | 102 + .../Framework/Constraint/GreaterThan.php | 96 + .../Framework/Constraint/IsAnything.php | 102 + .../PHPUnit/Framework/Constraint/IsEmpty.php | 104 + .../PHPUnit/Framework/Constraint/IsEqual.php | 215 + .../PHPUnit/Framework/Constraint/IsFalse.php | 82 + .../Framework/Constraint/IsIdentical.php | 173 + .../Framework/Constraint/IsInstanceOf.php | 121 + .../PHPUnit/Framework/Constraint/IsJson.php | 109 + .../PHPUnit/Framework/Constraint/IsNull.php | 82 + .../PHPUnit/Framework/Constraint/IsTrue.php | 82 + .../PHPUnit/Framework/Constraint/IsType.php | 190 + .../Framework/Constraint/JsonMatches.php | 110 + .../JsonMatches/ErrorMessageProvider.php | 106 + .../PHPUnit/Framework/Constraint/LessThan.php | 96 + .../PHPUnit/Framework/Constraint/Not.php | 203 + .../Constraint/ObjectHasAttribute.php | 77 + .../PHPUnit/Framework/Constraint/Or.php | 157 + .../Framework/Constraint/PCREMatch.php | 105 + .../PHPUnit/Framework/Constraint/SameSize.php | 73 + .../Framework/Constraint/StringContains.php | 122 + .../Framework/Constraint/StringEndsWith.php | 96 + .../Framework/Constraint/StringMatches.php | 134 + .../Framework/Constraint/StringStartsWith.php | 96 + .../Constraint/TraversableContains.php | 152 + .../Constraint/TraversableContainsOnly.php | 135 + .../PHPUnit/Framework/Constraint/Xor.php | 162 + .../phpunit/PHPUnit/Framework/Error.php | 75 + .../PHPUnit/Framework/Error/Deprecated.php | 65 + .../PHPUnit/Framework/Error/Notice.php | 65 + .../PHPUnit/Framework/Error/Warning.php | 65 + .../phpunit/PHPUnit/Framework/Exception.php | 59 + .../Framework/ExpectationFailedException.php | 82 + .../PHPUnit/Framework/IncompleteTest.php | 60 + .../PHPUnit/Framework/IncompleteTestError.php | 60 + .../phpunit/PHPUnit/Framework/OutputError.php | 60 + .../Framework/Process/TestCaseMethod.tpl.dist | 64 + .../PHPUnit/Framework/SelfDescribing.php | 65 + .../phpunit/PHPUnit/Framework/SkippedTest.php | 59 + .../PHPUnit/Framework/SkippedTestError.php | 60 + .../Framework/SkippedTestSuiteError.php | 60 + .../PHPUnit/Framework/SyntheticError.php | 121 + .../phpunit/PHPUnit/Framework/Test.php | 66 + .../phpunit/PHPUnit/Framework/TestCase.php | 1894 ++++++++ .../phpunit/PHPUnit/Framework/TestFailure.php | 179 + .../PHPUnit/Framework/TestListener.php | 126 + .../phpunit/PHPUnit/Framework/TestResult.php | 956 ++++ .../phpunit/PHPUnit/Framework/TestSuite.php | 950 ++++ .../Framework/TestSuite/DataProvider.php | 70 + .../phpunit/PHPUnit/Framework/Warning.php | 125 + .../phpunit/PHPUnit/Runner/BaseTestRunner.php | 189 + .../Runner/StandardTestSuiteLoader.php | 153 + .../PHPUnit/Runner/TestSuiteLoader.php | 71 + .../phpunit/PHPUnit/Runner/Version.php | 102 + .../phpunit/PHPUnit/TextUI/Command.php | 897 ++++ .../phpunit/PHPUnit/TextUI/ResultPrinter.php | 664 +++ .../phpunit/PHPUnit/TextUI/TestRunner.php | 817 ++++ vendor/phpunit/phpunit/PHPUnit/Util/Class.php | 363 ++ .../phpunit/PHPUnit/Util/Configuration.php | 1039 ++++ .../PHPUnit/Util/DeprecatedFeature.php | 102 + .../PHPUnit/Util/DeprecatedFeature/Logger.php | 201 + vendor/phpunit/phpunit/PHPUnit/Util/Diff.php | 292 ++ .../phpunit/PHPUnit/Util/ErrorHandler.php | 132 + .../phpunit/PHPUnit/Util/Fileloader.php | 107 + .../phpunit/PHPUnit/Util/Filesystem.php | 81 + .../phpunit/phpunit/PHPUnit/Util/Filter.php | 146 + .../phpunit/phpunit/PHPUnit/Util/Getopt.php | 207 + .../phpunit/PHPUnit/Util/GlobalState.php | 427 ++ .../PHPUnit/Util/InvalidArgumentHelper.php | 80 + .../phpunit/phpunit/PHPUnit/Util/Log/JSON.php | 260 + .../phpunit/PHPUnit/Util/Log/JUnit.php | 482 ++ .../phpunit/phpunit/PHPUnit/Util/Log/TAP.php | 250 + vendor/phpunit/phpunit/PHPUnit/Util/PHP.php | 336 ++ .../phpunit/PHPUnit/Util/PHP/Default.php | 67 + .../phpunit/PHPUnit/Util/PHP/Windows.php | 90 + .../phpunit/phpunit/PHPUnit/Util/Printer.php | 208 + .../phpunit/phpunit/PHPUnit/Util/String.php | 118 + vendor/phpunit/phpunit/PHPUnit/Util/Test.php | 610 +++ .../PHPUnit/Util/TestDox/NamePrettifier.php | 177 + .../PHPUnit/Util/TestDox/ResultPrinter.php | 347 ++ .../Util/TestDox/ResultPrinter/HTML.php | 123 + .../Util/TestDox/ResultPrinter/Text.php | 95 + .../PHPUnit/Util/TestSuiteIterator.php | 148 + vendor/phpunit/phpunit/PHPUnit/Util/Type.php | 303 ++ vendor/phpunit/phpunit/PHPUnit/Util/XML.php | 920 ++++ vendor/phpunit/phpunit/README.md | 96 + .../Tests/Extensions/RepeatedTestTest.php | 108 + .../Tests/Framework/Assert/FunctionsTest.php | 80 + .../phpunit/Tests/Framework/AssertTest.php | 4245 +++++++++++++++++ .../Tests/Framework/ComparatorTest.php | 159 + .../JsonMatches/ErrorMessageProviderTest.php | 122 + .../Framework/Constraint/JsonMatchesTest.php | 89 + .../Tests/Framework/ConstraintTest.php | 3647 ++++++++++++++ .../phpunit/Tests/Framework/SuiteTest.php | 185 + .../phpunit/Tests/Framework/TestCaseTest.php | 439 ++ .../Tests/Framework/TestFailureTest.php | 68 + .../Tests/Framework/TestImplementorTest.php | 79 + .../Tests/Framework/TestListenerTest.php | 145 + .../phpunit/Tests/Regression/1021.phpt | 19 + .../Tests/Regression/1021/Issue1021Test.php | 23 + .../phpunit/phpunit/Tests/Regression/523.phpt | 19 + .../Tests/Regression/523/Issue523Test.php | 13 + .../phpunit/phpunit/Tests/Regression/578.phpt | 37 + .../Tests/Regression/578/Issue578Test.php | 20 + .../phpunit/phpunit/Tests/Regression/684.phpt | 26 + .../Tests/Regression/684/Issue684Test.php | 4 + .../phpunit/phpunit/Tests/Regression/783.phpt | 21 + .../Tests/Regression/783/ChildSuite.php | 15 + .../phpunit/Tests/Regression/783/OneTest.php | 10 + .../Tests/Regression/783/ParentSuite.php | 13 + .../phpunit/Tests/Regression/783/TwoTest.php | 10 + .../phpunit/Tests/Regression/GitHub/244.phpt | 40 + .../Regression/GitHub/244/Issue244Test.php | 55 + .../phpunit/Tests/Regression/GitHub/322.phpt | 28 + .../Regression/GitHub/322/Issue322Test.php | 17 + .../Regression/GitHub/322/phpunit322.xml | 11 + .../phpunit/Tests/Regression/GitHub/433.phpt | 33 + .../Regression/GitHub/433/Issue433Test.php | 21 + .../phpunit/Tests/Regression/GitHub/445.phpt | 34 + .../Regression/GitHub/445/Issue445Test.php | 21 + .../phpunit/Tests/Regression/GitHub/498.phpt | 31 + .../Regression/GitHub/498/Issue498Test.php | 46 + .../phpunit/Tests/Regression/GitHub/503.phpt | 34 + .../Regression/GitHub/503/Issue503Test.php | 11 + .../phpunit/Tests/Regression/GitHub/581.phpt | 43 + .../Regression/GitHub/581/Issue581Test.php | 10 + .../phpunit/Tests/Regression/GitHub/74.phpt | 31 + .../Regression/GitHub/74/Issue74Test.php | 9 + .../Regression/GitHub/74/NewException.php | 4 + .../phpunit/Tests/Regression/GitHub/765.phpt | 28 + .../Regression/GitHub/765/Issue765Test.php | 22 + .../phpunit/Tests/Regression/GitHub/863.phpt | 25 + .../Tests/Runner/BaseTestRunnerTest.php | 65 + .../Tests/TextUI/abstract-test-class.phpt | 30 + .../Tests/TextUI/concrete-test-class.phpt | 22 + .../dataprovider-log-xml-isolation.phpt | 49 + .../Tests/TextUI/dataprovider-log-xml.phpt | 50 + .../Tests/TextUI/dataprovider-testdox.phpt | 19 + .../phpunit/phpunit/Tests/TextUI/debug.phpt | 28 + .../Tests/TextUI/default-isolation.phpt | 22 + .../phpunit/phpunit/Tests/TextUI/default.phpt | 21 + .../Tests/TextUI/dependencies-isolation.phpt | 42 + .../phpunit/Tests/TextUI/dependencies.phpt | 42 + .../Tests/TextUI/dependencies2-isolation.phpt | 23 + .../phpunit/Tests/TextUI/dependencies2.phpt | 22 + .../Tests/TextUI/dependencies3-isolation.phpt | 23 + .../phpunit/Tests/TextUI/dependencies3.phpt | 21 + .../phpunit/Tests/TextUI/empty-testcase.phpt | 29 + .../phpunit/Tests/TextUI/exception-stack.phpt | 55 + .../Tests/TextUI/exclude-group-isolation.phpt | 24 + .../phpunit/Tests/TextUI/exclude-group.phpt | 23 + .../Tests/TextUI/failure-isolation.phpt | 144 + .../phpunit/phpunit/Tests/TextUI/failure.phpt | 144 + .../phpunit/Tests/TextUI/fatal-isolation.phpt | 29 + .../phpunit/phpunit/Tests/TextUI/fatal.phpt | 17 + .../Tests/TextUI/filter-class-isolation.phpt | 24 + .../phpunit/Tests/TextUI/filter-class.phpt | 23 + .../Tests/TextUI/filter-method-isolation.phpt | 24 + .../phpunit/Tests/TextUI/filter-method.phpt | 23 + .../Tests/TextUI/filter-no-results.phpt | 23 + .../phpunit/Tests/TextUI/group-isolation.phpt | 24 + .../phpunit/phpunit/Tests/TextUI/group.phpt | 23 + vendor/phpunit/phpunit/Tests/TextUI/help.phpt | 67 + .../phpunit/phpunit/Tests/TextUI/help2.phpt | 68 + .../phpunit/Tests/TextUI/list-groups.phpt | 22 + .../phpunit/Tests/TextUI/log-json.phpt | 77 + .../phpunit/phpunit/Tests/TextUI/log-tap.phpt | 28 + .../phpunit/phpunit/Tests/TextUI/log-xml.phpt | 31 + .../Tests/TextUI/strict-incomplete.phpt | 23 + .../Tests/TextUI/strict-isolation.phpt | 24 + .../phpunit/phpunit/Tests/TextUI/strict.phpt | 23 + vendor/phpunit/phpunit/Tests/TextUI/tap.phpt | 20 + .../Tests/TextUI/test-suffix-multiple.phpt | 22 + .../Tests/TextUI/test-suffix-single.phpt | 22 + .../phpunit/Tests/TextUI/testdox-html.phpt | 23 + .../phpunit/Tests/TextUI/testdox-text.phpt | 27 + .../phpunit/phpunit/Tests/TextUI/testdox.phpt | 21 + .../phpunit/phpunit/Tests/Util/ClassTest.php | 84 + .../phpunit/Tests/Util/ConfigurationTest.php | 390 ++ .../phpunit/phpunit/Tests/Util/DiffTest.php | 268 ++ .../Tests/Util/TestDox/NamePrettifierTest.php | 108 + .../phpunit/phpunit/Tests/Util/TestTest.php | 240 + .../phpunit/phpunit/Tests/Util/TypeTest.php | 269 ++ vendor/phpunit/phpunit/Tests/Util/XMLTest.php | 328 ++ .../phpunit/Tests/_files/AbstractTest.php | 7 + .../phpunit/phpunit/Tests/_files/Author.php | 66 + .../phpunit/Tests/_files/BankAccount.php | 116 + .../phpunit/Tests/_files/BankAccountTest.php | 133 + .../Tests/_files/BankAccountTest.test.php | 133 + vendor/phpunit/phpunit/Tests/_files/Book.php | 59 + .../phpunit/Tests/_files/Calculator.php | 14 + .../ChangeCurrentWorkingDirectoryTest.php | 10 + .../_files/ClassWithNonPublicAttributes.php | 29 + .../Tests/_files/ClassWithToString.php | 61 + .../phpunit/Tests/_files/ConcreteTest.my.php | 9 + .../phpunit/Tests/_files/ConcreteTest.php | 9 + .../phpunit/Tests/_files/DataProviderTest.php | 21 + .../Tests/_files/DependencyFailureTest.php | 22 + .../Tests/_files/DependencySuccessTest.php | 21 + .../Tests/_files/DependencyTestSuite.php | 16 + .../phpunit/Tests/_files/DoubleTestCase.php | 25 + .../Tests/_files/EmptyTestCaseTest.php | 4 + vendor/phpunit/phpunit/Tests/_files/Error.php | 8 + .../ExceptionInAssertPostConditionsTest.php | 35 + .../ExceptionInAssertPreConditionsTest.php | 35 + .../Tests/_files/ExceptionInSetUpTest.php | 35 + .../Tests/_files/ExceptionInTearDownTest.php | 35 + .../phpunit/Tests/_files/ExceptionInTest.php | 35 + .../Tests/_files/ExceptionNamespaceTest.php | 38 + .../phpunit/Tests/_files/ExceptionStack.php | 23 + .../phpunit/Tests/_files/ExceptionTest.php | 102 + .../phpunit/phpunit/Tests/_files/Failure.php | 8 + .../phpunit/Tests/_files/FailureTest.php | 76 + .../phpunit/Tests/_files/FatalTest.php | 14 + .../phpunit/Tests/_files/IncompleteTest.php | 8 + .../Tests/_files/InheritedTestCase.php | 9 + .../Tests/_files/JsonData/arrayObject.js | 1 + .../Tests/_files/JsonData/simpleObject.js | 1 + .../Tests/_files/JsonData/simpleObject2.js | 1 + .../phpunit/Tests/_files/MockRunner.php | 7 + .../Tests/_files/MultiDependencyTest.php | 23 + .../Tests/_files/NoArgTestCaseTest.php | 7 + .../phpunit/Tests/_files/NoTestCaseClass.php | 4 + .../phpunit/Tests/_files/NoTestCases.php | 7 + .../phpunit/Tests/_files/NonStatic.php | 8 + .../Tests/_files/NotPublicTestCase.php | 11 + .../phpunit/Tests/_files/NotVoidTestCase.php | 4 + .../phpunit/Tests/_files/NothingTest.php | 7 + .../phpunit/Tests/_files/OneTestCase.php | 11 + .../phpunit/Tests/_files/OutputTestCase.php | 27 + .../phpunit/Tests/_files/OverrideTestCase.php | 9 + .../_files/RequirementsClassDocBlockTest.php | 23 + .../phpunit/Tests/_files/RequirementsTest.php | 112 + .../phpunit/Tests/_files/SampleClass.php | 14 + .../_files/SelectorAssertionsFixture.html | 44 + .../phpunit/Tests/_files/Singleton.php | 22 + .../phpunit/Tests/_files/StackTest.php | 24 + .../phpunit/phpunit/Tests/_files/Struct.php | 10 + .../phpunit/phpunit/Tests/_files/Success.php | 7 + .../Tests/_files/TemplateMethodsTest.php | 52 + .../phpunit/Tests/_files/TestIterator.php | 36 + .../Tests/_files/ThrowExceptionTestCase.php | 8 + .../Tests/_files/ThrowNoExceptionTestCase.php | 7 + .../phpunit/phpunit/Tests/_files/WasRun.php | 10 + vendor/phpunit/phpunit/Tests/_files/bar.xml | 1 + .../phpunit/Tests/_files/configuration.xml | 115 + .../Tests/_files/configuration_xinclude.xml | 68 + .../Tests/_files/expectedFileFormat.txt | 1 + vendor/phpunit/phpunit/Tests/_files/foo.xml | 1 + ...uctureAttributesAreSameButValuesAreNot.xml | 10 + .../Tests/_files/structureExpected.xml | 10 + .../Tests/_files/structureIgnoreTextNodes.xml | 13 + .../_files/structureIsSameButDataIsNot.xml | 10 + .../structureWrongNumberOfAttributes.xml | 10 + .../_files/structureWrongNumberOfNodes.xml | 9 + vendor/phpunit/phpunit/build.xml | 315 ++ .../ControlSignatureSniff.php | 23 + .../Whitespace/ConcatenationSpacingSniff.php | 22 + .../phpunit/phpunit/build/PHPCS/ruleset.xml | 35 + vendor/phpunit/phpunit/build/assertions.php | 65 + .../phpunit/build/phar-autoload.php.in | 37 + vendor/phpunit/phpunit/build/phpmd.xml | 27 + vendor/phpunit/phpunit/build/travis-ci.xml | 36 + vendor/phpunit/phpunit/composer.json | 68 + vendor/phpunit/phpunit/composer/bin/phpunit | 63 + vendor/phpunit/phpunit/package.xml | 292 ++ vendor/phpunit/phpunit/phpdox.xml.dist | 16 + vendor/phpunit/phpunit/phpunit.bat | 43 + vendor/phpunit/phpunit/phpunit.php | 46 + vendor/phpunit/phpunit/phpunit.xml.dist | 40 + vendor/phpunit/phpunit/phpunit.xsd | 251 + .../yaml/Symfony/Component/Yaml/.gitignore | 3 + .../yaml/Symfony/Component/Yaml/CHANGELOG.md | 8 + .../yaml/Symfony/Component/Yaml/Dumper.php | 73 + .../yaml/Symfony/Component/Yaml/Escaper.php | 89 + .../Yaml/Exception/DumpException.php | 23 + .../Yaml/Exception/ExceptionInterface.php | 23 + .../Yaml/Exception/ParseException.php | 148 + .../Yaml/Exception/RuntimeException.php | 23 + .../yaml/Symfony/Component/Yaml/Inline.php | 463 ++ .../yaml/Symfony/Component/Yaml/LICENSE | 19 + .../yaml/Symfony/Component/Yaml/Parser.php | 640 +++ .../yaml/Symfony/Component/Yaml/README.md | 19 + .../Component/Yaml/Tests/DumperTest.php | 207 + .../Yaml/Tests/Fixtures/YtsAnchorAlias.yml | 31 + .../Yaml/Tests/Fixtures/YtsBasicTests.yml | 178 + .../Yaml/Tests/Fixtures/YtsBlockMapping.yml | 51 + .../Tests/Fixtures/YtsDocumentSeparator.yml | 85 + .../Yaml/Tests/Fixtures/YtsErrorTests.yml | 25 + .../Tests/Fixtures/YtsFlowCollections.yml | 60 + .../Yaml/Tests/Fixtures/YtsFoldedScalars.yml | 176 + .../Tests/Fixtures/YtsNullsAndEmpties.yml | 45 + .../Fixtures/YtsSpecificationExamples.yml | 1695 +++++++ .../Yaml/Tests/Fixtures/YtsTypeTransfers.yml | 244 + .../Yaml/Tests/Fixtures/embededPhp.yml | 1 + .../Yaml/Tests/Fixtures/escapedCharacters.yml | 147 + .../Component/Yaml/Tests/Fixtures/index.yml | 18 + .../Yaml/Tests/Fixtures/sfComments.yml | 65 + .../Yaml/Tests/Fixtures/sfCompact.yml | 159 + .../Yaml/Tests/Fixtures/sfMergeKey.yml | 27 + .../Yaml/Tests/Fixtures/sfObjects.yml | 11 + .../Yaml/Tests/Fixtures/sfQuotes.yml | 33 + .../Component/Yaml/Tests/Fixtures/sfTests.yml | 135 + .../Tests/Fixtures/unindentedCollections.yml | 62 + .../Component/Yaml/Tests/InlineTest.php | 231 + .../Yaml/Tests/ParseExceptionTest.php | 30 + .../Component/Yaml/Tests/ParserTest.php | 619 +++ .../Symfony/Component/Yaml/Tests/YamlTest.php | 31 + .../yaml/Symfony/Component/Yaml/Unescaper.php | 146 + .../yaml/Symfony/Component/Yaml/Yaml.php | 100 + .../yaml/Symfony/Component/Yaml/composer.json | 31 + .../Symfony/Component/Yaml/phpunit.xml.dist | 29 + 878 files changed, 94384 insertions(+), 4 deletions(-) create mode 100644 .gitignore create mode 100644 composer.lock create mode 100644 phpunit.xml rename {Exception => src/DMS/Filter/Exception}/FilterException.php (100%) rename {Exception => src/DMS/Filter/Exception}/InvalidOptionsException.php (100%) rename {Exception => src/DMS/Filter/Exception}/MissingOptionsException.php (100%) rename {Exception => src/DMS/Filter/Exception}/RuleDefinitionException.php (100%) rename {Exception => src/DMS/Filter/Exception}/RuleOptionsException.php (100%) rename Filter.php => src/DMS/Filter/Filter.php (100%) rename FilterInterface.php => src/DMS/Filter/FilterInterface.php (100%) rename {Filters => src/DMS/Filter/Filters}/Alnum.php (100%) rename {Filters => src/DMS/Filter/Filters}/Alpha.php (100%) rename {Filters => src/DMS/Filter/Filters}/BaseFilter.php (100%) rename {Filters => src/DMS/Filter/Filters}/Boolean.php (100%) rename {Filters => src/DMS/Filter/Filters}/Callback.php (100%) rename {Filters => src/DMS/Filter/Filters}/Digits.php (100%) rename {Filters => src/DMS/Filter/Filters}/Float.php (100%) rename {Filters => src/DMS/Filter/Filters}/HtmlEntities.php (100%) rename {Filters => src/DMS/Filter/Filters}/Int.php (100%) rename {Filters => src/DMS/Filter/Filters}/Loader/FilterLoader.php (100%) rename {Filters => src/DMS/Filter/Filters}/Loader/FilterLoaderInterface.php (100%) rename {Filters => src/DMS/Filter/Filters}/PregReplace.php (100%) rename {Filters => src/DMS/Filter/Filters}/RegExp.php (100%) rename {Filters => src/DMS/Filter/Filters}/StripNewlines.php (100%) rename {Filters => src/DMS/Filter/Filters}/StripTags.php (100%) rename {Filters => src/DMS/Filter/Filters}/ToLower.php (100%) rename {Filters => src/DMS/Filter/Filters}/ToUpper.php (100%) rename {Filters => src/DMS/Filter/Filters}/Trim.php (100%) rename {Mapping => src/DMS/Filter/Mapping}/ClassMetadata.php (100%) rename {Mapping => src/DMS/Filter/Mapping}/ClassMetadataFactory.php (100%) rename {Mapping => src/DMS/Filter/Mapping}/ClassMetadataFactoryInterface.php (100%) rename {Mapping => src/DMS/Filter/Mapping}/ClassMetadataInterface.php (100%) rename {Mapping => src/DMS/Filter/Mapping}/Loader/AnnotationLoader.php (100%) rename {Mapping => src/DMS/Filter/Mapping}/Loader/LoaderInterface.php (100%) rename ObjectWalker.php => src/DMS/Filter/ObjectWalker.php (100%) rename {Rules => src/DMS/Filter/Rules}/Alnum.php (100%) rename {Rules => src/DMS/Filter/Rules}/Alpha.php (100%) rename {Rules => src/DMS/Filter/Rules}/Boolean.php (100%) rename {Rules => src/DMS/Filter/Rules}/Callback.php (100%) rename {Rules => src/DMS/Filter/Rules}/Digits.php (100%) rename {Rules => src/DMS/Filter/Rules}/Float.php (100%) rename {Rules => src/DMS/Filter/Rules}/HtmlEntities.php (100%) rename {Rules => src/DMS/Filter/Rules}/Int.php (100%) rename {Rules => src/DMS/Filter/Rules}/PregReplace.php (100%) rename {Rules => src/DMS/Filter/Rules}/RegExp.php (100%) rename {Rules => src/DMS/Filter/Rules}/Rule.php (100%) rename {Rules => src/DMS/Filter/Rules}/StripNewlines.php (100%) rename {Rules => src/DMS/Filter/Rules}/StripTags.php (100%) rename {Rules => src/DMS/Filter/Rules}/ToLower.php (100%) rename {Rules => src/DMS/Filter/Rules}/ToUpper.php (100%) rename {Rules => src/DMS/Filter/Rules}/Trim.php (100%) create mode 100644 tests/DMS/Filter/FilterTest.php create mode 100644 tests/DMS/Filter/Filters/AlnumTest.php create mode 100644 tests/DMS/Filter/Filters/AlphaTest.php create mode 100644 tests/DMS/Filter/Filters/BooleanTest.php create mode 100644 tests/DMS/Filter/Filters/DigitsTest.php create mode 100644 tests/DMS/Filter/Filters/FloatTest.php create mode 100644 tests/DMS/Filter/Filters/HtmlEntitiesTest.php create mode 100644 tests/DMS/Filter/Filters/IntTest.php create mode 100644 tests/DMS/Filter/Filters/Loader/FilterLoaderTest.php create mode 100644 tests/DMS/Filter/Filters/PregReplaceTest.php create mode 100644 tests/DMS/Filter/Filters/StripNewlinesTest.php create mode 100644 tests/DMS/Filter/Filters/StripTagsTest.php create mode 100644 tests/DMS/Filter/Filters/ToLowerTest.php create mode 100644 tests/DMS/Filter/Filters/ToUpperTest.php create mode 100644 tests/DMS/Filter/Filters/TrimTest.php create mode 100644 tests/DMS/Filter/Mapping/ClassMetadataFactoryTest.php create mode 100644 tests/DMS/Filter/Rules/RuleTest.php create mode 100644 tests/DMS/Tests/Dummy/Classes/AnnotatedClass.php create mode 100644 tests/DMS/Tests/Dummy/Classes/AnnotatedInterface.php create mode 100644 tests/DMS/Tests/Dummy/Classes/ChildAnnotatedClass.php create mode 100644 tests/DMS/Tests/Dummy/Rules/DefaultOptionRule.php create mode 100644 tests/DMS/Tests/Dummy/Rules/InvalidDefaultOptionRule.php create mode 100644 tests/DMS/Tests/Dummy/Rules/MultipleOptionsRule.php create mode 100644 tests/DMS/Tests/Dummy/Rules/NoOptionsRule.php create mode 100644 tests/DMS/Tests/Dummy/Rules/RequiredOptionsRule.php create mode 100644 tests/DMS/Tests/FilterTestCase.php create mode 100644 vendor/autoload.php create mode 120000 vendor/bin/phpunit create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/include_paths.php create mode 100644 vendor/composer/installed.json create mode 100644 vendor/doctrine/annotations/.gitignore create mode 100644 vendor/doctrine/annotations/.travis.yml create mode 100644 vendor/doctrine/annotations/README.md create mode 100644 vendor/doctrine/annotations/composer.json create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php create mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php create mode 100644 vendor/doctrine/annotations/phpunit.xml.dist create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/AbstractReaderTest.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/AnnotationReaderTest.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/CachedReaderTest.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DocLexerTest.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DocParserTest.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/DummyClass.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/FileCacheReaderTest.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/AnnotWithDefaultValue.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Autoload.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Route.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Secure.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Template.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Annotation/Version.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnum.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumInvalid.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumLiteral.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationEnumLiteralInvalid.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetAll.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetAnnotation.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetClass.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetMethod.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationTargetPropertyMethod.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithAttributes.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithConstants.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithRequiredAttributes.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithRequiredAttributesWithoutContructor.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithTargetSyntaxError.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/AnnotationWithVarType.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Api.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassDDC1660.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationEnum.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationWithTargetSyntaxError.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithAnnotationWithVarType.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithClosure.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithConstants.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithFullyQualifiedUseStatements.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtClass.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtMethod.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithInvalidAnnotationTargetAtProperty.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithRequire.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/ClassWithValidAnnotationTarget.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/Controller.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/DifferentNamespacesPerFileWithClassAsFirst.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/DifferentNamespacesPerFileWithClassAsLast.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/EqualNamespacesPerFileWithClassAsFirst.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/EqualNamespacesPerFileWithClassAsLast.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/GlobalNamespacesPerFileWithClassAsFirst.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/GlobalNamespacesPerFileWithClassAsLast.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/IntefaceWithConstants.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/InvalidAnnotationUsageButIgnoredClass.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/InvalidAnnotationUsageClass.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/MultipleClassesInFile.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/MultipleImportsInUseStatement.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespaceAndClassCommentedOut.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespaceWithClosureDeclaration.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NamespacedSingleClassLOC1000.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NoAnnotation.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/NonNamespacedClass.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/SingleClassLOC1000.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Fixtures/TestInterface.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/PerformanceTest.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/PhpParserTest.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/SimpleAnnotationReaderTest.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM55Test.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Entity.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Test.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/Common/Annotations/TopLevelAnnotation.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/DoctrineTestCase.php create mode 100644 vendor/doctrine/annotations/tests/Doctrine/Tests/TestInit.php create mode 100644 vendor/doctrine/cache/.coveralls.yml create mode 100644 vendor/doctrine/cache/.gitignore create mode 100644 vendor/doctrine/cache/.travis.yml create mode 100644 vendor/doctrine/cache/LICENSE create mode 100644 vendor/doctrine/cache/README.md create mode 100644 vendor/doctrine/cache/build.properties create mode 100644 vendor/doctrine/cache/build.xml create mode 100644 vendor/doctrine/cache/composer.json create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/Version.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php create mode 100644 vendor/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php create mode 100644 vendor/doctrine/cache/phpunit.xml.dist create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ApcCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ArrayCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/BaseFileCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/CacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/CouchbaseCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/FileCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/FilesystemCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MemcacheCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MemcachedCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/MongoDBCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/PhpFileCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/RedisCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/RiakCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/WinCacheCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/XcacheCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/ZendDataCacheTest.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/DoctrineTestCase.php create mode 100644 vendor/doctrine/cache/tests/Doctrine/Tests/TestInit.php create mode 100644 vendor/doctrine/cache/tests/travis/php.ini create mode 100644 vendor/doctrine/cache/tests/travis/phpunit.travis.xml create mode 100644 vendor/doctrine/lexer/README.md create mode 100644 vendor/doctrine/lexer/composer.json create mode 100644 vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php create mode 100644 vendor/phpunit/php-code-coverage/.gitattributes create mode 100644 vendor/phpunit/php-code-coverage/.gitignore create mode 100644 vendor/phpunit/php-code-coverage/.travis.yml create mode 100644 vendor/phpunit/php-code-coverage/CONTRIBUTING.md create mode 100644 vendor/phpunit/php-code-coverage/LICENSE create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Autoload.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Autoload.php.in create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Driver.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Driver/Xdebug.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Exception.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Filter.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Clover.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Factory.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Dashboard.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Directory.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/File.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/coverage_bar.html.dist create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/css/bootstrap-responsive.min.css create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/css/bootstrap.min.css create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/css/style.css create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/dashboard.html.dist create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/directory.html.dist create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/directory_item.html.dist create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/file.html.dist create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/file_item.html.dist create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/img/glyphicons-halflings-white.png create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/img/glyphicons-halflings.png create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/js/bootstrap.min.js create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/js/highcharts.js create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/js/html5shiv.js create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/js/jquery.min.js create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/method_item.html.dist create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/Directory.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/File.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Node/Iterator.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/PHP.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/Text.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Util.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Util/InvalidArgumentHelper.php create mode 100644 vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Version.php create mode 100644 vendor/phpunit/php-code-coverage/README.markdown create mode 100644 vendor/phpunit/php-code-coverage/Tests/PHP/CodeCoverage/FilterTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/PHP/CodeCoverage/Report/CloverTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/PHP/CodeCoverage/Report/FactoryTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/PHP/CodeCoverage/UtilTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/PHP/CodeCoverageTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/TestCase.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/BankAccount-clover.xml create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/BankAccount.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/BankAccountTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageClassExtendedTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageClassTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageFunctionParenthesesTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageFunctionParenthesesWhitespaceTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageFunctionTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageMethodOneLineAnnotationTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageMethodParenthesesTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageMethodParenthesesWhitespaceTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageMethodTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageNoneTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageNotPrivateTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageNotProtectedTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageNotPublicTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageNothingTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoveragePrivateTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageProtectedTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoveragePublicTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoverageTwoDefaultClassAnnotations.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoveredClass.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/CoveredFunction.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoverageClassExtendedTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoverageClassTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoverageCoversClassPublicTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoverageCoversClassTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoverageMethodTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoverageNotPrivateTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoverageNotProtectedTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoverageNotPublicTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoveragePrivateTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoverageProtectedTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoveragePublicTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NamespaceCoveredClass.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/NotExistingCoveredElementTest.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/class-with-anonymous-function-clover.xml create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/ignored-lines-clover.xml create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/source_with_class_and_anonymous_function.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/source_with_ignore.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/source_with_namespace.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/source_with_oneline_annotations.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/source_without_ignore.php create mode 100644 vendor/phpunit/php-code-coverage/Tests/_files/source_without_namespace.php create mode 100644 vendor/phpunit/php-code-coverage/build.xml create mode 100644 vendor/phpunit/php-code-coverage/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php create mode 100644 vendor/phpunit/php-code-coverage/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php create mode 100644 vendor/phpunit/php-code-coverage/build/PHPCS/ruleset.xml create mode 100644 vendor/phpunit/php-code-coverage/build/phpmd.xml create mode 100644 vendor/phpunit/php-code-coverage/build/travis-ci.xml create mode 100644 vendor/phpunit/php-code-coverage/composer.json create mode 100644 vendor/phpunit/php-code-coverage/package.xml create mode 100644 vendor/phpunit/php-code-coverage/phpunit.xml.dist create mode 100644 vendor/phpunit/php-code-coverage/scripts/auto_append.php create mode 100644 vendor/phpunit/php-code-coverage/scripts/auto_prepend.php create mode 100644 vendor/phpunit/php-file-iterator/.gitattributes create mode 100644 vendor/phpunit/php-file-iterator/.gitignore create mode 100644 vendor/phpunit/php-file-iterator/ChangeLog.markdown create mode 100644 vendor/phpunit/php-file-iterator/File/Iterator.php create mode 100644 vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php create mode 100644 vendor/phpunit/php-file-iterator/File/Iterator/Autoload.php.in create mode 100644 vendor/phpunit/php-file-iterator/File/Iterator/Facade.php create mode 100644 vendor/phpunit/php-file-iterator/File/Iterator/Factory.php create mode 100644 vendor/phpunit/php-file-iterator/LICENSE create mode 100644 vendor/phpunit/php-file-iterator/README.markdown create mode 100644 vendor/phpunit/php-file-iterator/build.xml create mode 100644 vendor/phpunit/php-file-iterator/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php create mode 100644 vendor/phpunit/php-file-iterator/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php create mode 100644 vendor/phpunit/php-file-iterator/build/PHPCS/ruleset.xml create mode 100644 vendor/phpunit/php-file-iterator/build/phpmd.xml create mode 100644 vendor/phpunit/php-file-iterator/composer.json create mode 100644 vendor/phpunit/php-file-iterator/package.xml create mode 100644 vendor/phpunit/php-text-template/.gitattributes create mode 100644 vendor/phpunit/php-text-template/.gitignore create mode 100644 vendor/phpunit/php-text-template/ChangeLog.markdown create mode 100644 vendor/phpunit/php-text-template/LICENSE create mode 100644 vendor/phpunit/php-text-template/README.markdown create mode 100644 vendor/phpunit/php-text-template/Text/Template.php create mode 100644 vendor/phpunit/php-text-template/Text/Template/Autoload.php create mode 100644 vendor/phpunit/php-text-template/Text/Template/Autoload.php.in create mode 100644 vendor/phpunit/php-text-template/build.xml create mode 100644 vendor/phpunit/php-text-template/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php create mode 100644 vendor/phpunit/php-text-template/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php create mode 100644 vendor/phpunit/php-text-template/build/PHPCS/ruleset.xml create mode 100644 vendor/phpunit/php-text-template/build/phpmd.xml create mode 100644 vendor/phpunit/php-text-template/composer.json create mode 100644 vendor/phpunit/php-text-template/package.xml create mode 100644 vendor/phpunit/php-timer/.gitattributes create mode 100644 vendor/phpunit/php-timer/.gitignore create mode 100644 vendor/phpunit/php-timer/LICENSE create mode 100644 vendor/phpunit/php-timer/PHP/Timer.php create mode 100644 vendor/phpunit/php-timer/PHP/Timer/Autoload.php create mode 100644 vendor/phpunit/php-timer/PHP/Timer/Autoload.php.in create mode 100644 vendor/phpunit/php-timer/README.md create mode 100644 vendor/phpunit/php-timer/Tests/TimerTest.php create mode 100644 vendor/phpunit/php-timer/build.xml create mode 100644 vendor/phpunit/php-timer/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php create mode 100644 vendor/phpunit/php-timer/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php create mode 100644 vendor/phpunit/php-timer/build/PHPCS/ruleset.xml create mode 100644 vendor/phpunit/php-timer/build/phpmd.xml create mode 100644 vendor/phpunit/php-timer/composer.json create mode 100644 vendor/phpunit/php-timer/package.xml create mode 100644 vendor/phpunit/php-timer/phpunit.xml.dist create mode 100644 vendor/phpunit/php-token-stream/.gitattributes create mode 100644 vendor/phpunit/php-token-stream/.gitignore create mode 100644 vendor/phpunit/php-token-stream/LICENSE create mode 100644 vendor/phpunit/php-token-stream/PHP/Token.php create mode 100644 vendor/phpunit/php-token-stream/PHP/Token/Stream.php create mode 100644 vendor/phpunit/php-token-stream/PHP/Token/Stream/Autoload.php create mode 100644 vendor/phpunit/php-token-stream/PHP/Token/Stream/Autoload.php.in create mode 100644 vendor/phpunit/php-token-stream/PHP/Token/Stream/CachingFactory.php create mode 100644 vendor/phpunit/php-token-stream/README.md create mode 100644 vendor/phpunit/php-token-stream/Tests/Token/ClassTest.php create mode 100644 vendor/phpunit/php-token-stream/Tests/Token/ClosureTest.php create mode 100644 vendor/phpunit/php-token-stream/Tests/Token/FunctionTest.php create mode 100644 vendor/phpunit/php-token-stream/Tests/Token/IncludeTest.php create mode 100644 vendor/phpunit/php-token-stream/Tests/Token/InterfaceTest.php create mode 100644 vendor/phpunit/php-token-stream/Tests/Token/NamespaceTest.php create mode 100644 vendor/phpunit/php-token-stream/Tests/TokenTest.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/classExtendsNamespacedClass.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/classInNamespace.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/classInScopedNamespace.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/closure.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/issue19.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/issue30.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/multipleNamespacesWithOneClassUsingBraces.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/multipleNamespacesWithOneClassUsingNonBraceSyntax.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/source.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/source2.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/source3.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/source4.php create mode 100644 vendor/phpunit/php-token-stream/Tests/_files/source5.php create mode 100644 vendor/phpunit/php-token-stream/build.xml create mode 100644 vendor/phpunit/php-token-stream/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php create mode 100644 vendor/phpunit/php-token-stream/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php create mode 100644 vendor/phpunit/php-token-stream/build/PHPCS/ruleset.xml create mode 100644 vendor/phpunit/php-token-stream/build/phpmd.xml create mode 100644 vendor/phpunit/php-token-stream/composer.json create mode 100644 vendor/phpunit/php-token-stream/package.xml create mode 100644 vendor/phpunit/php-token-stream/phpunit.xml.dist create mode 100644 vendor/phpunit/phpunit-mock-objects/.gitattributes create mode 100644 vendor/phpunit/phpunit-mock-objects/.gitignore create mode 100644 vendor/phpunit/phpunit-mock-objects/.travis.yml create mode 100644 vendor/phpunit/phpunit-mock-objects/CONTRIBUTING.md create mode 100644 vendor/phpunit/phpunit-mock-objects/ChangeLog.markdown create mode 100644 vendor/phpunit/phpunit-mock-objects/LICENSE create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Autoload.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Autoload.php.in create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Identity.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/InvocationMocker.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Match.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/MethodNameMatch.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Namespace.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/ParametersMatch.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Builder/Stub.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator/mocked_class.tpl.dist create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator/mocked_clone.tpl.dist create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator/mocked_object_method.tpl.dist create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator/mocked_static_method.tpl.dist create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator/trait_class.tpl.dist create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator/unmocked_clone.tpl.dist create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator/wsdl_class.tpl.dist create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Generator/wsdl_method.tpl.dist create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation/Object.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invocation/Static.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/InvocationMocker.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Invokable.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/AnyInvokedCount.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/AnyParameters.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/Invocation.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedAtIndex.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedAtLeastOnce.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedCount.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedRecorder.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/MethodName.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/Parameters.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/StatelessInvocation.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/MockBuilder.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/MockObject.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ConsecutiveCalls.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/Exception.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/MatcherCollection.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/Return.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnArgument.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnCallback.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnSelf.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Stub/ReturnValueMap.php create mode 100644 vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Verifiable.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/GeneratorTest.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockBuilderTest.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/Invocation/ObjectTest.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/Invocation/StaticTest.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/class.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/class_call_parent_clone.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/class_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/class_dont_call_parent_clone.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/class_dont_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/class_implementing_interface_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/class_implementing_interface_dont_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/class_partial.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/interface.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/invocation_object_clone_object.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/invocation_static_clone_object.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/namespaced_class.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/namespaced_class_call_parent_clone.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/namespaced_class_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/namespaced_class_dont_call_parent_clone.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/namespaced_class_dont_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/namespaced_class_implementing_interface_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/namespaced_class_implementing_interface_dont_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/namespaced_class_partial.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/namespaced_interface.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/nonexistent_class.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/nonexistent_class_with_namespace.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/nonexistent_class_with_namespace_starting_with_separator.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/wsdl_class.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/wsdl_class_namespace.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObject/wsdl_class_partial.phpt create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/MockObjectTest.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/_files/AbstractMockTestClass.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/_files/AnInterface.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/_files/FunctionCallback.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/_files/GoogleSearch.wsdl create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/_files/MethodCallback.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/_files/MethodCallbackByReference.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/_files/Mockable.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/_files/PartialMockTestClass.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/_files/SomeClass.php create mode 100644 vendor/phpunit/phpunit-mock-objects/Tests/_files/StaticMockTestClass.php create mode 100644 vendor/phpunit/phpunit-mock-objects/build.xml create mode 100644 vendor/phpunit/phpunit-mock-objects/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php create mode 100644 vendor/phpunit/phpunit-mock-objects/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php create mode 100644 vendor/phpunit/phpunit-mock-objects/build/PHPCS/ruleset.xml create mode 100644 vendor/phpunit/phpunit-mock-objects/build/phpmd.xml create mode 100644 vendor/phpunit/phpunit-mock-objects/build/travis-ci.xml create mode 100644 vendor/phpunit/phpunit-mock-objects/composer.json create mode 100644 vendor/phpunit/phpunit-mock-objects/package.xml create mode 100644 vendor/phpunit/phpunit-mock-objects/phpunit.xml.dist create mode 100644 vendor/phpunit/phpunit/.gitattributes create mode 100644 vendor/phpunit/phpunit/.gitignore create mode 100644 vendor/phpunit/phpunit/.travis.yml create mode 100644 vendor/phpunit/phpunit/CONTRIBUTING.md create mode 100644 vendor/phpunit/phpunit/LICENSE create mode 100644 vendor/phpunit/phpunit/PHPUnit/Autoload.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Autoload.php.in create mode 100644 vendor/phpunit/phpunit/PHPUnit/Extensions/GroupTestSuite.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Extensions/PhptTestCase.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Extensions/PhptTestCase/Logger.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Extensions/PhptTestSuite.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Extensions/RepeatedTest.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Extensions/TestDecorator.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Extensions/TicketListener.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Assert.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Assert/Functions.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Assert/Functions.php.in create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/AssertionFailedError.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Array.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/DOMDocument.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Double.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Exception.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/MockObject.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Numeric.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Object.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Resource.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Scalar.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/SplObjectStorage.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Comparator/Type.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/ComparatorFactory.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/ComparisonFailure.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/And.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ArrayHasKey.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Attribute.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Callback.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ClassHasAttribute.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ClassHasStaticAttribute.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Composite.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Count.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Exception.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ExceptionCode.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ExceptionMessage.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/FileExists.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/GreaterThan.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsAnything.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsEmpty.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsEqual.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsFalse.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsIdentical.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsInstanceOf.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsJson.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsNull.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsTrue.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/IsType.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/JsonMatches.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/JsonMatches/ErrorMessageProvider.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/LessThan.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Not.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/ObjectHasAttribute.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Or.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/PCREMatch.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/SameSize.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/StringContains.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/StringEndsWith.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/StringMatches.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/StringStartsWith.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/TraversableContains.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/TraversableContainsOnly.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Constraint/Xor.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Error.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Error/Deprecated.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Error/Notice.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Error/Warning.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Exception.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/ExpectationFailedException.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/IncompleteTest.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/IncompleteTestError.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/OutputError.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Process/TestCaseMethod.tpl.dist create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/SelfDescribing.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/SkippedTest.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/SkippedTestError.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/SkippedTestSuiteError.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/SyntheticError.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Test.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/TestFailure.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/TestListener.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite/DataProvider.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Framework/Warning.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Runner/BaseTestRunner.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Runner/StandardTestSuiteLoader.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Runner/TestSuiteLoader.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Runner/Version.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/TextUI/ResultPrinter.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Class.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Configuration.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/DeprecatedFeature.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/DeprecatedFeature/Logger.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Diff.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/ErrorHandler.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Fileloader.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Filesystem.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Filter.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Getopt.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/GlobalState.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/InvalidArgumentHelper.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Log/JSON.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Log/JUnit.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Log/TAP.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/PHP.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/PHP/Default.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/PHP/Windows.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Printer.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/String.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Test.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/TestDox/NamePrettifier.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter/HTML.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/TestDox/ResultPrinter/Text.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/TestSuiteIterator.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/Type.php create mode 100644 vendor/phpunit/phpunit/PHPUnit/Util/XML.php create mode 100644 vendor/phpunit/phpunit/README.md create mode 100644 vendor/phpunit/phpunit/Tests/Extensions/RepeatedTestTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Framework/Assert/FunctionsTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Framework/AssertTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Framework/ComparatorTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Framework/Constraint/JsonMatches/ErrorMessageProviderTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Framework/Constraint/JsonMatchesTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Framework/ConstraintTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Framework/SuiteTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Framework/TestCaseTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Framework/TestFailureTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Framework/TestImplementorTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Framework/TestListenerTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/1021.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/1021/Issue1021Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/523.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/523/Issue523Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/578.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/578/Issue578Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/684.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/684/Issue684Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/783.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/783/ChildSuite.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/783/OneTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/783/ParentSuite.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/783/TwoTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/244.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/244/Issue244Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/322.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/322/Issue322Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/322/phpunit322.xml create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/433.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/433/Issue433Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/445.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/445/Issue445Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/498.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/498/Issue498Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/503.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/503/Issue503Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/581.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/581/Issue581Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/74.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/74/Issue74Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/74/NewException.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/765.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/765/Issue765Test.php create mode 100644 vendor/phpunit/phpunit/Tests/Regression/GitHub/863.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Runner/BaseTestRunnerTest.php create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/abstract-test-class.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/concrete-test-class.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/dataprovider-log-xml-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/dataprovider-log-xml.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/dataprovider-testdox.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/debug.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/default-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/default.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/dependencies-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/dependencies.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/dependencies2-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/dependencies2.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/dependencies3-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/dependencies3.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/empty-testcase.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/exception-stack.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/exclude-group-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/exclude-group.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/failure-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/failure.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/fatal-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/fatal.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/filter-class-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/filter-class.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/filter-method-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/filter-method.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/filter-no-results.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/group-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/group.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/help.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/help2.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/list-groups.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/log-json.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/log-tap.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/log-xml.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/strict-incomplete.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/strict-isolation.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/strict.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/tap.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/test-suffix-multiple.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/test-suffix-single.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/testdox-html.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/testdox-text.phpt create mode 100644 vendor/phpunit/phpunit/Tests/TextUI/testdox.phpt create mode 100644 vendor/phpunit/phpunit/Tests/Util/ClassTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Util/ConfigurationTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Util/DiffTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Util/TestDox/NamePrettifierTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Util/TestTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Util/TypeTest.php create mode 100644 vendor/phpunit/phpunit/Tests/Util/XMLTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/AbstractTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/Author.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/BankAccount.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/BankAccountTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/BankAccountTest.test.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/Book.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/Calculator.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ChangeCurrentWorkingDirectoryTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ClassWithNonPublicAttributes.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ClassWithToString.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ConcreteTest.my.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ConcreteTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/DataProviderTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/DependencyFailureTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/DependencySuccessTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/DependencyTestSuite.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/DoubleTestCase.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/EmptyTestCaseTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/Error.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ExceptionInAssertPostConditionsTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ExceptionInAssertPreConditionsTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ExceptionInSetUpTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ExceptionInTearDownTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ExceptionInTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ExceptionNamespaceTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ExceptionStack.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ExceptionTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/Failure.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/FailureTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/FatalTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/IncompleteTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/InheritedTestCase.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/JsonData/arrayObject.js create mode 100644 vendor/phpunit/phpunit/Tests/_files/JsonData/simpleObject.js create mode 100644 vendor/phpunit/phpunit/Tests/_files/JsonData/simpleObject2.js create mode 100644 vendor/phpunit/phpunit/Tests/_files/MockRunner.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/MultiDependencyTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/NoArgTestCaseTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/NoTestCaseClass.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/NoTestCases.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/NonStatic.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/NotPublicTestCase.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/NotVoidTestCase.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/NothingTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/OneTestCase.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/OutputTestCase.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/OverrideTestCase.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/RequirementsClassDocBlockTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/RequirementsTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/SampleClass.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/SelectorAssertionsFixture.html create mode 100644 vendor/phpunit/phpunit/Tests/_files/Singleton.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/StackTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/Struct.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/Success.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/TemplateMethodsTest.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/TestIterator.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ThrowExceptionTestCase.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/ThrowNoExceptionTestCase.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/WasRun.php create mode 100644 vendor/phpunit/phpunit/Tests/_files/bar.xml create mode 100644 vendor/phpunit/phpunit/Tests/_files/configuration.xml create mode 100644 vendor/phpunit/phpunit/Tests/_files/configuration_xinclude.xml create mode 100644 vendor/phpunit/phpunit/Tests/_files/expectedFileFormat.txt create mode 100644 vendor/phpunit/phpunit/Tests/_files/foo.xml create mode 100644 vendor/phpunit/phpunit/Tests/_files/structureAttributesAreSameButValuesAreNot.xml create mode 100644 vendor/phpunit/phpunit/Tests/_files/structureExpected.xml create mode 100644 vendor/phpunit/phpunit/Tests/_files/structureIgnoreTextNodes.xml create mode 100644 vendor/phpunit/phpunit/Tests/_files/structureIsSameButDataIsNot.xml create mode 100644 vendor/phpunit/phpunit/Tests/_files/structureWrongNumberOfAttributes.xml create mode 100644 vendor/phpunit/phpunit/Tests/_files/structureWrongNumberOfNodes.xml create mode 100644 vendor/phpunit/phpunit/build.xml create mode 100644 vendor/phpunit/phpunit/build/PHPCS/Sniffs/ControlStructures/ControlSignatureSniff.php create mode 100644 vendor/phpunit/phpunit/build/PHPCS/Sniffs/Whitespace/ConcatenationSpacingSniff.php create mode 100644 vendor/phpunit/phpunit/build/PHPCS/ruleset.xml create mode 100755 vendor/phpunit/phpunit/build/assertions.php create mode 100644 vendor/phpunit/phpunit/build/phar-autoload.php.in create mode 100644 vendor/phpunit/phpunit/build/phpmd.xml create mode 100644 vendor/phpunit/phpunit/build/travis-ci.xml create mode 100644 vendor/phpunit/phpunit/composer.json create mode 100755 vendor/phpunit/phpunit/composer/bin/phpunit create mode 100644 vendor/phpunit/phpunit/package.xml create mode 100644 vendor/phpunit/phpunit/phpdox.xml.dist create mode 100644 vendor/phpunit/phpunit/phpunit.bat create mode 100755 vendor/phpunit/phpunit/phpunit.php create mode 100644 vendor/phpunit/phpunit/phpunit.xml.dist create mode 100644 vendor/phpunit/phpunit/phpunit.xsd create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/.gitignore create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/CHANGELOG.md create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Dumper.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Escaper.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Exception/DumpException.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Exception/ExceptionInterface.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Exception/ParseException.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Exception/RuntimeException.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/LICENSE create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/README.md create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/DumperTest.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsAnchorAlias.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsBasicTests.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsBlockMapping.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsDocumentSeparator.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsErrorTests.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsFlowCollections.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsFoldedScalars.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsNullsAndEmpties.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsSpecificationExamples.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/YtsTypeTransfers.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/embededPhp.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/escapedCharacters.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/index.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfComments.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfCompact.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfMergeKey.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfObjects.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfQuotes.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/sfTests.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/Fixtures/unindentedCollections.yml create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/InlineTest.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParseExceptionTest.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Tests/YamlTest.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Unescaper.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/Yaml.php create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/composer.json create mode 100644 vendor/symfony/yaml/Symfony/Component/Yaml/phpunit.xml.dist diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0b5ebbe --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +tests/_reports diff --git a/README.md b/README.md index c84d2a1..670dcff 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ Feel free to send pull requests, just follow these guides: * Code * Test * Tests are in: https://github.com/rdohms/DMS - * Just create Testcase and run `phpunit` inside the `tests` folder + * Just create FilterTestCase and run `phpunit` inside the `tests` folder * Submit PR ## Credits diff --git a/composer.json b/composer.json index 7489254..2bbf738 100644 --- a/composer.json +++ b/composer.json @@ -15,14 +15,18 @@ "require": { "php": ">=5.3.2", - "doctrine/annotations": "~1.1" + "doctrine/annotations": "~1.1", + "doctrine/cache": "~1.3" }, "autoload": { "psr-0": { - "DMS\\Filter": "" + "DMS": ["src","tests"] } }, - "target-dir": "DMS/Filter" + "target-dir": "DMS/Filter", + "require-dev": { + "phpunit/phpunit": "~3" + } } diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..a58236d --- /dev/null +++ b/composer.lock @@ -0,0 +1,636 @@ +{ + "_readme": [ + "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" + ], + "hash": "2c02a2a73a9cdf3ed097f1d1d941ab55", + "packages": [ + { + "name": "doctrine/annotations", + "version": "v1.1.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "40db0c96985aab2822edbc4848b3bd2429e02670" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/40db0c96985aab2822edbc4848b3bd2429e02670", + "reference": "40db0c96985aab2822edbc4848b3bd2429e02670", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "php": ">=5.3.2" + }, + "require-dev": { + "doctrine/cache": "1.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Annotations\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com", + "homepage": "http://www.jwage.com/", + "role": "Creator" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com", + "homepage": "http://www.instaclick.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "time": "2013-06-16 21:33:03" + }, + { + "name": "doctrine/cache", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "e16d7adf45664a50fa86f515b6d5e7f670130449" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/e16d7adf45664a50fa86f515b6d5e7f670130449", + "reference": "e16d7adf45664a50fa86f515b6d5e7f670130449", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "phpunit/phpunit": ">=3.7", + "satooshi/php-coveralls": "~0.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Cache\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com", + "homepage": "http://www.jwage.com/", + "role": "Creator" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com", + "homepage": "http://www.instaclick.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" + } + ], + "description": "Caching library offering an object-oriented API for many cache backends", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "cache", + "caching" + ], + "time": "2013-10-25 19:04:14" + }, + { + "name": "doctrine/lexer", + "version": "v1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/2f708a85bb3aab5d99dab8be435abd73e0b18acb", + "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "Doctrine\\Common\\Lexer\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com", + "homepage": "http://www.instaclick.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" + } + ], + "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "lexer", + "parser" + ], + "time": "2013-01-12 18:59:04" + } + ], + "packages-dev": [ + { + "name": "phpunit/php-code-coverage", + "version": "1.2.13", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "466e7cd2554b4e264c9e3f31216d25ac0e5f3d94" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/466e7cd2554b4e264c9e3f31216d25ac0e5f3d94", + "reference": "466e7cd2554b4e264c9e3f31216d25ac0e5f3d94", + "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-09-10 08:14:32" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.3.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb", + "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb", + "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": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2013-10-10 15:34:57" + }, + { + "name": "phpunit/php-text-template", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5180896f51c5b3648ac946b05f9ec02be78a0b23" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5180896f51c5b3648ac946b05f9ec02be78a0b23", + "reference": "5180896f51c5b3648ac946b05f9ec02be78a0b23", + "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 18:15:28" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c", + "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c", + "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": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2013-08-02 07:42:54" + }, + { + "name": "phpunit/php-token-stream", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "5220af2a7929aa35cf663d97c89ad3d50cf5fa3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/5220af2a7929aa35cf663d97c89ad3d50cf5fa3e", + "reference": "5220af2a7929aa35cf663d97c89ad3d50cf5fa3e", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-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": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2013-09-13 04:58:23" + }, + { + "name": "phpunit/phpunit", + "version": "3.7.28", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d", + "reference": "3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d", + "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.4", + "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-10-17 07:27:40" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/5794e3c5c5ba0fb037b11d8151add2a07fa82875", + "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875", + "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.4.1", + "target-dir": "Symfony/Component/Yaml", + "source": { + "type": "git", + "url": "https://github.com/symfony/Yaml.git", + "reference": "4e1a237fc48145fae114b96458d799746ad89aa0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Yaml/zipball/4e1a237fc48145fae114b96458d799746ad89aa0", + "reference": "4e1a237fc48145fae114b96458d799746ad89aa0", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-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-12-28 08:12:03" + } + ], + "aliases": [ + + ], + "minimum-stability": "stable", + "stability-flags": [ + + ], + "platform": { + "php": ">=5.3.2" + }, + "platform-dev": [ + + ] +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..83ec053 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,25 @@ + + + + + + tests/DMS + + + + + + src/DMS + + + tests + vendor + + + + + + + + + diff --git a/Exception/FilterException.php b/src/DMS/Filter/Exception/FilterException.php similarity index 100% rename from Exception/FilterException.php rename to src/DMS/Filter/Exception/FilterException.php diff --git a/Exception/InvalidOptionsException.php b/src/DMS/Filter/Exception/InvalidOptionsException.php similarity index 100% rename from Exception/InvalidOptionsException.php rename to src/DMS/Filter/Exception/InvalidOptionsException.php diff --git a/Exception/MissingOptionsException.php b/src/DMS/Filter/Exception/MissingOptionsException.php similarity index 100% rename from Exception/MissingOptionsException.php rename to src/DMS/Filter/Exception/MissingOptionsException.php diff --git a/Exception/RuleDefinitionException.php b/src/DMS/Filter/Exception/RuleDefinitionException.php similarity index 100% rename from Exception/RuleDefinitionException.php rename to src/DMS/Filter/Exception/RuleDefinitionException.php diff --git a/Exception/RuleOptionsException.php b/src/DMS/Filter/Exception/RuleOptionsException.php similarity index 100% rename from Exception/RuleOptionsException.php rename to src/DMS/Filter/Exception/RuleOptionsException.php diff --git a/Filter.php b/src/DMS/Filter/Filter.php similarity index 100% rename from Filter.php rename to src/DMS/Filter/Filter.php diff --git a/FilterInterface.php b/src/DMS/Filter/FilterInterface.php similarity index 100% rename from FilterInterface.php rename to src/DMS/Filter/FilterInterface.php diff --git a/Filters/Alnum.php b/src/DMS/Filter/Filters/Alnum.php similarity index 100% rename from Filters/Alnum.php rename to src/DMS/Filter/Filters/Alnum.php diff --git a/Filters/Alpha.php b/src/DMS/Filter/Filters/Alpha.php similarity index 100% rename from Filters/Alpha.php rename to src/DMS/Filter/Filters/Alpha.php diff --git a/Filters/BaseFilter.php b/src/DMS/Filter/Filters/BaseFilter.php similarity index 100% rename from Filters/BaseFilter.php rename to src/DMS/Filter/Filters/BaseFilter.php diff --git a/Filters/Boolean.php b/src/DMS/Filter/Filters/Boolean.php similarity index 100% rename from Filters/Boolean.php rename to src/DMS/Filter/Filters/Boolean.php diff --git a/Filters/Callback.php b/src/DMS/Filter/Filters/Callback.php similarity index 100% rename from Filters/Callback.php rename to src/DMS/Filter/Filters/Callback.php diff --git a/Filters/Digits.php b/src/DMS/Filter/Filters/Digits.php similarity index 100% rename from Filters/Digits.php rename to src/DMS/Filter/Filters/Digits.php diff --git a/Filters/Float.php b/src/DMS/Filter/Filters/Float.php similarity index 100% rename from Filters/Float.php rename to src/DMS/Filter/Filters/Float.php diff --git a/Filters/HtmlEntities.php b/src/DMS/Filter/Filters/HtmlEntities.php similarity index 100% rename from Filters/HtmlEntities.php rename to src/DMS/Filter/Filters/HtmlEntities.php diff --git a/Filters/Int.php b/src/DMS/Filter/Filters/Int.php similarity index 100% rename from Filters/Int.php rename to src/DMS/Filter/Filters/Int.php diff --git a/Filters/Loader/FilterLoader.php b/src/DMS/Filter/Filters/Loader/FilterLoader.php similarity index 100% rename from Filters/Loader/FilterLoader.php rename to src/DMS/Filter/Filters/Loader/FilterLoader.php diff --git a/Filters/Loader/FilterLoaderInterface.php b/src/DMS/Filter/Filters/Loader/FilterLoaderInterface.php similarity index 100% rename from Filters/Loader/FilterLoaderInterface.php rename to src/DMS/Filter/Filters/Loader/FilterLoaderInterface.php diff --git a/Filters/PregReplace.php b/src/DMS/Filter/Filters/PregReplace.php similarity index 100% rename from Filters/PregReplace.php rename to src/DMS/Filter/Filters/PregReplace.php diff --git a/Filters/RegExp.php b/src/DMS/Filter/Filters/RegExp.php similarity index 100% rename from Filters/RegExp.php rename to src/DMS/Filter/Filters/RegExp.php diff --git a/Filters/StripNewlines.php b/src/DMS/Filter/Filters/StripNewlines.php similarity index 100% rename from Filters/StripNewlines.php rename to src/DMS/Filter/Filters/StripNewlines.php diff --git a/Filters/StripTags.php b/src/DMS/Filter/Filters/StripTags.php similarity index 100% rename from Filters/StripTags.php rename to src/DMS/Filter/Filters/StripTags.php diff --git a/Filters/ToLower.php b/src/DMS/Filter/Filters/ToLower.php similarity index 100% rename from Filters/ToLower.php rename to src/DMS/Filter/Filters/ToLower.php diff --git a/Filters/ToUpper.php b/src/DMS/Filter/Filters/ToUpper.php similarity index 100% rename from Filters/ToUpper.php rename to src/DMS/Filter/Filters/ToUpper.php diff --git a/Filters/Trim.php b/src/DMS/Filter/Filters/Trim.php similarity index 100% rename from Filters/Trim.php rename to src/DMS/Filter/Filters/Trim.php diff --git a/Mapping/ClassMetadata.php b/src/DMS/Filter/Mapping/ClassMetadata.php similarity index 100% rename from Mapping/ClassMetadata.php rename to src/DMS/Filter/Mapping/ClassMetadata.php diff --git a/Mapping/ClassMetadataFactory.php b/src/DMS/Filter/Mapping/ClassMetadataFactory.php similarity index 100% rename from Mapping/ClassMetadataFactory.php rename to src/DMS/Filter/Mapping/ClassMetadataFactory.php diff --git a/Mapping/ClassMetadataFactoryInterface.php b/src/DMS/Filter/Mapping/ClassMetadataFactoryInterface.php similarity index 100% rename from Mapping/ClassMetadataFactoryInterface.php rename to src/DMS/Filter/Mapping/ClassMetadataFactoryInterface.php diff --git a/Mapping/ClassMetadataInterface.php b/src/DMS/Filter/Mapping/ClassMetadataInterface.php similarity index 100% rename from Mapping/ClassMetadataInterface.php rename to src/DMS/Filter/Mapping/ClassMetadataInterface.php diff --git a/Mapping/Loader/AnnotationLoader.php b/src/DMS/Filter/Mapping/Loader/AnnotationLoader.php similarity index 100% rename from Mapping/Loader/AnnotationLoader.php rename to src/DMS/Filter/Mapping/Loader/AnnotationLoader.php diff --git a/Mapping/Loader/LoaderInterface.php b/src/DMS/Filter/Mapping/Loader/LoaderInterface.php similarity index 100% rename from Mapping/Loader/LoaderInterface.php rename to src/DMS/Filter/Mapping/Loader/LoaderInterface.php diff --git a/ObjectWalker.php b/src/DMS/Filter/ObjectWalker.php similarity index 100% rename from ObjectWalker.php rename to src/DMS/Filter/ObjectWalker.php diff --git a/Rules/Alnum.php b/src/DMS/Filter/Rules/Alnum.php similarity index 100% rename from Rules/Alnum.php rename to src/DMS/Filter/Rules/Alnum.php diff --git a/Rules/Alpha.php b/src/DMS/Filter/Rules/Alpha.php similarity index 100% rename from Rules/Alpha.php rename to src/DMS/Filter/Rules/Alpha.php diff --git a/Rules/Boolean.php b/src/DMS/Filter/Rules/Boolean.php similarity index 100% rename from Rules/Boolean.php rename to src/DMS/Filter/Rules/Boolean.php diff --git a/Rules/Callback.php b/src/DMS/Filter/Rules/Callback.php similarity index 100% rename from Rules/Callback.php rename to src/DMS/Filter/Rules/Callback.php diff --git a/Rules/Digits.php b/src/DMS/Filter/Rules/Digits.php similarity index 100% rename from Rules/Digits.php rename to src/DMS/Filter/Rules/Digits.php diff --git a/Rules/Float.php b/src/DMS/Filter/Rules/Float.php similarity index 100% rename from Rules/Float.php rename to src/DMS/Filter/Rules/Float.php diff --git a/Rules/HtmlEntities.php b/src/DMS/Filter/Rules/HtmlEntities.php similarity index 100% rename from Rules/HtmlEntities.php rename to src/DMS/Filter/Rules/HtmlEntities.php diff --git a/Rules/Int.php b/src/DMS/Filter/Rules/Int.php similarity index 100% rename from Rules/Int.php rename to src/DMS/Filter/Rules/Int.php diff --git a/Rules/PregReplace.php b/src/DMS/Filter/Rules/PregReplace.php similarity index 100% rename from Rules/PregReplace.php rename to src/DMS/Filter/Rules/PregReplace.php diff --git a/Rules/RegExp.php b/src/DMS/Filter/Rules/RegExp.php similarity index 100% rename from Rules/RegExp.php rename to src/DMS/Filter/Rules/RegExp.php diff --git a/Rules/Rule.php b/src/DMS/Filter/Rules/Rule.php similarity index 100% rename from Rules/Rule.php rename to src/DMS/Filter/Rules/Rule.php diff --git a/Rules/StripNewlines.php b/src/DMS/Filter/Rules/StripNewlines.php similarity index 100% rename from Rules/StripNewlines.php rename to src/DMS/Filter/Rules/StripNewlines.php diff --git a/Rules/StripTags.php b/src/DMS/Filter/Rules/StripTags.php similarity index 100% rename from Rules/StripTags.php rename to src/DMS/Filter/Rules/StripTags.php diff --git a/Rules/ToLower.php b/src/DMS/Filter/Rules/ToLower.php similarity index 100% rename from Rules/ToLower.php rename to src/DMS/Filter/Rules/ToLower.php diff --git a/Rules/ToUpper.php b/src/DMS/Filter/Rules/ToUpper.php similarity index 100% rename from Rules/ToUpper.php rename to src/DMS/Filter/Rules/ToUpper.php diff --git a/Rules/Trim.php b/src/DMS/Filter/Rules/Trim.php similarity index 100% rename from Rules/Trim.php rename to src/DMS/Filter/Rules/Trim.php diff --git a/tests/DMS/Filter/FilterTest.php b/tests/DMS/Filter/FilterTest.php new file mode 100644 index 0000000..2ac1d0b --- /dev/null +++ b/tests/DMS/Filter/FilterTest.php @@ -0,0 +1,121 @@ +filter = new Filter($this->buildMetadataFactory(), new FilterLoader()); + } + + public function tearDown() + { + parent::tearDown(); + } + + public function testFilter() + { + $class = new Dummy\Classes\AnnotatedClass(); + $class->name = "Sir Isaac Newton"; + $class->nickname = "justaname"; + $class->description = "This is an apple.

Isn't it?

"; + + $classClone = clone $class; + + $this->filter->filterEntity($class); + + $this->assertNotEquals($classClone->name, $class->name); + $this->assertEquals($classClone->nickname, $class->nickname); + $this->assertNotEquals($classClone->description, $class->description); + + $this->assertNotContains(" Newton"; + $class->nickname = "justaname"; + $class->description = "This is an apple.

Isn't it?

"; + $class->surname = " Surname"; + + $classClone = clone $class; + + $this->filter->filterEntity($class); + + $this->assertNotEquals($classClone->name, $class->name); + $this->assertEquals($classClone->nickname, $class->nickname); + $this->assertNotEquals($classClone->description, $class->description); + $this->assertNotEquals($classClone->surname, $class->surname); + + $this->assertNotContains(" Newton"; + $class->description = "This is an apple.

Isn't it?

"; + + $classClone = clone $class; + + $this->filter->filterProperty($class, 'description'); + + $this->assertEquals($classClone->name, $class->name); + $this->assertNotEquals($classClone->description, $class->description); + + $this->assertContains(" + + + + + diff --git a/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/directory.html.dist b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/directory.html.dist new file mode 100644 index 0000000..ea4932c --- /dev/null +++ b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/directory.html.dist @@ -0,0 +1,59 @@ + + + + + Code Coverage for {full_path} + + + + + + + +
+
+
+
+ +
+
+
+
+
+ + + + diff --git a/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/directory_item.html.dist b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/directory_item.html.dist new file mode 100644 index 0000000..4a19a06 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/directory_item.html.dist @@ -0,0 +1,13 @@ + + {icon}{name} + {lines_bar} +
{lines_executed_percent}
+
{lines_number}
+ {methods_bar} +
{methods_tested_percent}
+
{methods_number}
+ {classes_bar} +
{classes_tested_percent}
+
{classes_number}
+ + diff --git a/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/file.html.dist b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/file.html.dist new file mode 100644 index 0000000..31a513e --- /dev/null +++ b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/file.html.dist @@ -0,0 +1,65 @@ + + + + + Code Coverage for {full_path} + + + + + + + +
+
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + +{items} + +
 
Code Coverage
 
Classes and Traits
Functions and Methods
Lines
+ + +{lines} + +
+ +
+ + + + + diff --git a/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/file_item.html.dist b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/file_item.html.dist new file mode 100644 index 0000000..7bff4e5 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/file_item.html.dist @@ -0,0 +1,14 @@ + + {name} + {classes_bar} +
{classes_tested_percent}
+
{classes_number}
+ {methods_bar} +
{methods_tested_percent}
+
{methods_number}
+ {crap} + {lines_bar} +
{lines_executed_percent}
+
{lines_number}
+ + diff --git a/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/img/glyphicons-halflings-white.png b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/img/glyphicons-halflings-white.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf6484a29d8da269f9bc874b25493a45fae3bae GIT binary patch literal 8777 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 B7G?kd literal 0 HcmV?d00001 diff --git a/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/img/glyphicons-halflings.png b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/img/glyphicons-halflings.png new file mode 100644 index 0000000000000000000000000000000000000000..a9969993201f9cee63cf9f49217646347297b643 GIT binary patch literal 12799 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 literal 0 HcmV?d00001 diff --git a/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/js/bootstrap.min.js b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/js/bootstrap.min.js new file mode 100644 index 0000000..6eeb15c --- /dev/null +++ b/vendor/phpunit/php-code-coverage/PHP/CodeCoverage/Report/HTML/Renderer/Template/js/bootstrap.min.js @@ -0,0 +1,6 @@ +/*! +* Bootstrap.js by @fat & @mdo +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function($){"use strict";$(function(){$.support.transition=function(){var transitionEnd=function(){var name,el=document.createElement("bootstrap"),transEndEventNames={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(name in transEndEventNames)if(void 0!==el.style[name])return transEndEventNames[name]}();return transitionEnd&&{end:transitionEnd}}()})}(window.jQuery),!function($){"use strict";var dismiss='[data-dismiss="alert"]',Alert=function(el){$(el).on("click",dismiss,this.close)};Alert.prototype.close=function(e){function removeElement(){$parent.trigger("closed").remove()}var $parent,$this=$(this),selector=$this.attr("data-target");selector||(selector=$this.attr("href"),selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,"")),$parent=$(selector),e&&e.preventDefault(),$parent.length||($parent=$this.hasClass("alert")?$this:$this.parent()),$parent.trigger(e=$.Event("close")),e.isDefaultPrevented()||($parent.removeClass("in"),$.support.transition&&$parent.hasClass("fade")?$parent.on($.support.transition.end,removeElement):removeElement())};var old=$.fn.alert;$.fn.alert=function(option){return this.each(function(){var $this=$(this),data=$this.data("alert");data||$this.data("alert",data=new Alert(this)),"string"==typeof option&&data[option].call($this)})},$.fn.alert.Constructor=Alert,$.fn.alert.noConflict=function(){return $.fn.alert=old,this},$(document).on("click.alert.data-api",dismiss,Alert.prototype.close)}(window.jQuery),!function($){"use strict";var Button=function(element,options){this.$element=$(element),this.options=$.extend({},$.fn.button.defaults,options)};Button.prototype.setState=function(state){var d="disabled",$el=this.$element,data=$el.data(),val=$el.is("input")?"val":"html";state+="Text",data.resetText||$el.data("resetText",$el[val]()),$el[val](data[state]||this.options[state]),setTimeout(function(){"loadingText"==state?$el.addClass(d).attr(d,d):$el.removeClass(d).removeAttr(d)},0)},Button.prototype.toggle=function(){var $parent=this.$element.closest('[data-toggle="buttons-radio"]');$parent&&$parent.find(".active").removeClass("active"),this.$element.toggleClass("active")};var old=$.fn.button;$.fn.button=function(option){return this.each(function(){var $this=$(this),data=$this.data("button"),options="object"==typeof option&&option;data||$this.data("button",data=new Button(this,options)),"toggle"==option?data.toggle():option&&data.setState(option)})},$.fn.button.defaults={loadingText:"loading..."},$.fn.button.Constructor=Button,$.fn.button.noConflict=function(){return $.fn.button=old,this},$(document).on("click.button.data-api","[data-toggle^=button]",function(e){var $btn=$(e.target);$btn.hasClass("btn")||($btn=$btn.closest(".btn")),$btn.button("toggle")})}(window.jQuery),!function($){"use strict";var Carousel=function(element,options){this.$element=$(element),this.options=options,"hover"==this.options.pause&&this.$element.on("mouseenter",$.proxy(this.pause,this)).on("mouseleave",$.proxy(this.cycle,this))};Carousel.prototype={cycle:function(e){return e||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval($.proxy(this.next,this),this.options.interval)),this},to:function(pos){var $active=this.$element.find(".item.active"),children=$active.parent().children(),activePos=children.index($active),that=this;if(!(pos>children.length-1||0>pos))return this.sliding?this.$element.one("slid",function(){that.to(pos)}):activePos==pos?this.pause().cycle():this.slide(pos>activePos?"next":"prev",$(children[pos]))},pause:function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&$.support.transition.end&&(this.$element.trigger($.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){return this.sliding?void 0:this.slide("next")},prev:function(){return this.sliding?void 0:this.slide("prev")},slide:function(type,next){var e,$active=this.$element.find(".item.active"),$next=next||$active[type](),isCycling=this.interval,direction="next"==type?"left":"right",fallback="next"==type?"first":"last",that=this;if(this.sliding=!0,isCycling&&this.pause(),$next=$next.length?$next:this.$element.find(".item")[fallback](),e=$.Event("slide",{relatedTarget:$next[0]}),!$next.hasClass("active")){if($.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(e),e.isDefaultPrevented())return;$next.addClass(type),$next[0].offsetWidth,$active.addClass(direction),$next.addClass(direction),this.$element.one($.support.transition.end,function(){$next.removeClass([type,direction].join(" ")).addClass("active"),$active.removeClass(["active",direction].join(" ")),that.sliding=!1,setTimeout(function(){that.$element.trigger("slid")},0)})}else{if(this.$element.trigger(e),e.isDefaultPrevented())return;$active.removeClass("active"),$next.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return isCycling&&this.cycle(),this}}};var old=$.fn.carousel;$.fn.carousel=function(option){return this.each(function(){var $this=$(this),data=$this.data("carousel"),options=$.extend({},$.fn.carousel.defaults,"object"==typeof option&&option),action="string"==typeof option?option:options.slide;data||$this.data("carousel",data=new Carousel(this,options)),"number"==typeof option?data.to(option):action?data[action]():options.interval&&data.cycle()})},$.fn.carousel.defaults={interval:5e3,pause:"hover"},$.fn.carousel.Constructor=Carousel,$.fn.carousel.noConflict=function(){return $.fn.carousel=old,this},$(document).on("click.carousel.data-api","[data-slide]",function(e){var href,$this=$(this),$target=$($this.attr("data-target")||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,"")),options=$.extend({},$target.data(),$this.data());$target.carousel(options),e.preventDefault()})}(window.jQuery),!function($){"use strict";var Collapse=function(element,options){this.$element=$(element),this.options=$.extend({},$.fn.collapse.defaults,options),this.options.parent&&(this.$parent=$(this.options.parent)),this.options.toggle&&this.toggle()};Collapse.prototype={constructor:Collapse,dimension:function(){var hasWidth=this.$element.hasClass("width");return hasWidth?"width":"height"},show:function(){var dimension,scroll,actives,hasData;if(!this.transitioning){if(dimension=this.dimension(),scroll=$.camelCase(["scroll",dimension].join("-")),actives=this.$parent&&this.$parent.find("> .accordion-group > .in"),actives&&actives.length){if(hasData=actives.data("collapse"),hasData&&hasData.transitioning)return;actives.collapse("hide"),hasData||actives.data("collapse",null)}this.$element[dimension](0),this.transition("addClass",$.Event("show"),"shown"),$.support.transition&&this.$element[dimension](this.$element[0][scroll])}},hide:function(){var dimension;this.transitioning||(dimension=this.dimension(),this.reset(this.$element[dimension]()),this.transition("removeClass",$.Event("hide"),"hidden"),this.$element[dimension](0))},reset:function(size){var dimension=this.dimension();return this.$element.removeClass("collapse")[dimension](size||"auto")[0].offsetWidth,this.$element[null!==size?"addClass":"removeClass"]("collapse"),this},transition:function(method,startEvent,completeEvent){var that=this,complete=function(){"show"==startEvent.type&&that.reset(),that.transitioning=0,that.$element.trigger(completeEvent)};this.$element.trigger(startEvent),startEvent.isDefaultPrevented()||(this.transitioning=1,this.$element[method]("in"),$.support.transition&&this.$element.hasClass("collapse")?this.$element.one($.support.transition.end,complete):complete())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var old=$.fn.collapse;$.fn.collapse=function(option){return this.each(function(){var $this=$(this),data=$this.data("collapse"),options="object"==typeof option&&option;data||$this.data("collapse",data=new Collapse(this,options)),"string"==typeof option&&data[option]()})},$.fn.collapse.defaults={toggle:!0},$.fn.collapse.Constructor=Collapse,$.fn.collapse.noConflict=function(){return $.fn.collapse=old,this},$(document).on("click.collapse.data-api","[data-toggle=collapse]",function(e){var href,$this=$(this),target=$this.attr("data-target")||e.preventDefault()||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,""),option=$(target).data("collapse")?"toggle":$this.data();$this[$(target).hasClass("in")?"addClass":"removeClass"]("collapsed"),$(target).collapse(option)})}(window.jQuery),!function($){"use strict";function clearMenus(){$(toggle).each(function(){getParent($(this)).removeClass("open")})}function getParent($this){var $parent,selector=$this.attr("data-target");return selector||(selector=$this.attr("href"),selector=selector&&/#/.test(selector)&&selector.replace(/.*(?=#[^\s]*$)/,"")),$parent=$(selector),$parent.length||($parent=$this.parent()),$parent}var toggle="[data-toggle=dropdown]",Dropdown=function(element){var $el=$(element).on("click.dropdown.data-api",this.toggle);$("html").on("click.dropdown.data-api",function(){$el.parent().removeClass("open")})};Dropdown.prototype={constructor:Dropdown,toggle:function(){var $parent,isActive,$this=$(this);if(!$this.is(".disabled, :disabled"))return $parent=getParent($this),isActive=$parent.hasClass("open"),clearMenus(),isActive||$parent.toggleClass("open"),$this.focus(),!1},keydown:function(e){var $this,$items,$parent,isActive,index;if(/(38|40|27)/.test(e.keyCode)&&($this=$(this),e.preventDefault(),e.stopPropagation(),!$this.is(".disabled, :disabled"))){if($parent=getParent($this),isActive=$parent.hasClass("open"),!isActive||isActive&&27==e.keyCode)return $this.click();$items=$("[role=menu] li:not(.divider):visible a",$parent),$items.length&&(index=$items.index($items.filter(":focus")),38==e.keyCode&&index>0&&index--,40==e.keyCode&&$items.length-1>index&&index++,~index||(index=0),$items.eq(index).focus())}}};var old=$.fn.dropdown;$.fn.dropdown=function(option){return this.each(function(){var $this=$(this),data=$this.data("dropdown");data||$this.data("dropdown",data=new Dropdown(this)),"string"==typeof option&&data[option].call($this)})},$.fn.dropdown.Constructor=Dropdown,$.fn.dropdown.noConflict=function(){return $.fn.dropdown=old,this},$(document).on("click.dropdown.data-api touchstart.dropdown.data-api",clearMenus).on("click.dropdown touchstart.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("touchstart.dropdown.data-api",".dropdown-menu",function(e){e.stopPropagation()}).on("click.dropdown.data-api touchstart.dropdown.data-api",toggle,Dropdown.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api",toggle+", [role=menu]",Dropdown.prototype.keydown)}(window.jQuery),!function($){"use strict";var Modal=function(element,options){this.options=options,this.$element=$(element).delegate('[data-dismiss="modal"]',"click.dismiss.modal",$.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};Modal.prototype={constructor:Modal,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var that=this,e=$.Event("show");this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.backdrop(function(){var transition=$.support.transition&&that.$element.hasClass("fade");that.$element.parent().length||that.$element.appendTo(document.body),that.$element.show(),transition&&that.$element[0].offsetWidth,that.$element.addClass("in").attr("aria-hidden",!1),that.enforceFocus(),transition?that.$element.one($.support.transition.end,function(){that.$element.focus().trigger("shown")}):that.$element.focus().trigger("shown")}))},hide:function(e){e&&e.preventDefault(),e=$.Event("hide"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),$(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),$.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal())},enforceFocus:function(){var that=this;$(document).on("focusin.modal",function(e){that.$element[0]===e.target||that.$element.has(e.target).length||that.$element.focus()})},escape:function(){var that=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(e){27==e.which&&that.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var that=this,timeout=setTimeout(function(){that.$element.off($.support.transition.end),that.hideModal()},500);this.$element.one($.support.transition.end,function(){clearTimeout(timeout),that.hideModal()})},hideModal:function(){this.$element.hide().trigger("hidden"),this.backdrop()},removeBackdrop:function(){this.$backdrop.remove(),this.$backdrop=null},backdrop:function(callback){var animate=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var doAnimate=$.support.transition&&animate;this.$backdrop=$('