Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
ComponentValueList
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
8
100.00% covered (success)
100.00%
1 / 1
 testObjects
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
7
 toComponentValueArray
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2declare( strict_types = 1 );
3
4/**
5 * @file
6 * @license https://opensource.org/licenses/Apache-2.0 Apache-2.0
7 */
8
9namespace Wikimedia\CSS\Objects;
10
11use InvalidArgumentException;
12
13/**
14 * Represent a list of CSS component values, eg. `10px 20px` is the
15 * component value list in the declaration `margin: 10px 20px;`.
16 * @extends CSSObjectList<ComponentValue>
17 */
18class ComponentValueList extends CSSObjectList {
19    /**
20     * @var string
21     */
22    protected static $objectType = ComponentValue::class;
23
24    /** @inheritDoc */
25    protected static function testObjects( array $objects ) {
26        foreach ( $objects as $object ) {
27            $type = $object instanceof Token ? $object->type() : 'n/a';
28            switch ( $type ) {
29                case Token::T_FUNCTION:
30                case Token::T_LEFT_BRACKET:
31                case Token::T_LEFT_PAREN:
32                case Token::T_LEFT_BRACE:
33                    throw new InvalidArgumentException(
34                        static::class . " may not contain tokens of type \"$type\"."
35                    );
36            }
37        }
38    }
39
40    /** @inheritDoc */
41    public function toComponentValueArray() {
42        // Much simpler
43        return $this->objects;
44    }
45}