public static function escape($string, $arrayGlue = ' ') { if ($string instanceof SafeHtml) { return $string; } else { if ($string instanceof ISafeHtmlProducer) { $result = $string->produceSafeHTML(); if ($result instanceof SafeHtml) { return $result; } else { if (is_array($result)) { return self::escape($result, $arrayGlue); } else { if ($result instanceof ISafeHtmlProducer) { return self::escape($result, $arrayGlue); } else { try { Strings::stringable($result); return self::escape((string) $result); } catch (\Exception $ex) { $class = get_class($string); throw new \Exception("Object (of class '{$class}') implements " . "ISafeHTMLProducer but did not return anything " . "renderable from produceSafeHTML()."); } } } } } else { if (is_array($string)) { return implode($arrayGlue, array_map(['\\Packaged\\Glimpse\\Core\\SafeHtml', 'escape'], $string)); } } } return Strings::escape($string); }
function assert_stringlike($parameter) { \Packaged\Helpers\Strings::stringable($parameter); }
public function testAssertStringLike() { Strings::stringable(null); Strings::stringable(""); Strings::stringable("Hello World"); Strings::stringable(1); Strings::stringable(9.9999); Strings::stringable(true); Strings::stringable(new Exception('.')); $obj = (object) []; $caught = null; try { Strings::stringable($obj); } catch (InvalidArgumentException $ex) { $caught = $ex; } $this->assertInstanceOf("InvalidArgumentException", $caught); $array = ["foo" => "bar", "bar" => "foo"]; $caught = null; try { Strings::stringable($array); } catch (InvalidArgumentException $ex) { $caught = $ex; } $this->assertInstanceOf("InvalidArgumentException", $caught); }