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; } }
} 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');