#!/www/server/bin/php x = "attr"; $obj->y = (object)[]; $obj->y->z = "attr"; is(it_text::transmogrify(""), ""); is(it_text::transmogrify("foo"), "foo"); is(it_text::transmogrify("{foo}"), ""); is(it_text::transmogrify("{foo}", array('foo' => 1)), "1"); is(it_text::transmogrify("{foo}{foo}", array('foo' => 1)), "11"); is(it_text::transmogrify("{foo}X", array('foo' => 1)), "1X"); is(it_text::transmogrify("{foo}X{foo}", array('foo' => 1)), "1X1"); is(it_text::transmogrify("X{foo}", array('foo' => 1)), "X1"); is(it_text::transmogrify("X{foo}{bar}", array('foo' => 1, 'bar' => 2)), "X12"); is(it_text::transmogrify("X{foo}", array('foo' => "&")), "X&"); is(it_text::transmogrify("X{x}", $obj), "Xattr"); is(it_text::transmogrify("X{y.z}", $obj), "Xattr"); is(it_text::transmogrify("{mb_strlen(xxx)}", null, null, ['mb_strlen' => 1]), "3"); is(it_text::transmogrify("{it::ucfirst(xxx)}", null, null, ['it::ucfirst' => 1]), "Xxx"); is(it_text::transmogrify("{format violation}"), '{format violation}');