Example #1
0
 function testIntlUnavailableIncomplete()
 {
     if (!Equal::$intlAvailable) {
         return $this->markTestSkipped("Intl extension not available");
     }
     Equal::$intlAvailable = false;
     try {
         $flat = $this->compare('a', 'a');
         $this->assertTrue($flat->valid);
         $this->assertFalse($flat->complete);
     } finally {
         Equal::$intlAvailable = true;
     }
 }
Example #2
0
        }
        cmp_bool:
        if (is_bool($left) && is_bool($right)) {
            if ($this->test($left != $right)) {
                $ctx->addReason($this, ['id' => 'equal.boolNotEqual', 'params' => $properties]);
            }
            return;
        }
    }
    private function test($result)
    {
        return !$this->negate ? $result : !$result;
    }
    private function compareString(Context $ctx, $left, $right)
    {
        if (is_string($left) && is_string($right)) {
            if (static::$intlAvailable) {
                if ($this->test(\Normalizer::normalize($left) != \Normalizer::normalize($right))) {
                    $ctx->addReason($this, ['id' => 'equal.stringNotEqual', 'params' => $properties]);
                }
            } else {
                $ctx->setIncomplete($this);
            }
        } else {
            $ctx->addReason($this, ['id' => 'equal.incomparable', 'params' => ['leftProp' => $this->left, 'rightProp' => $this->right]]);
        }
        return;
    }
}
Equal::$intlAvailable = extension_loaded('intl');