nur-sery/nur_tests/pathTest.php

85 lines
4.0 KiB
PHP

<?php
namespace nur;
use nur\t\TestCase;
class pathTest extends TestCase {
function testSplit() {
self::assertSame([false, false], path::split(false));
self::assertSame([null, null], path::split(null));
self::assertSame(["", ""], path::split(""));
self::assertSame(["/", "a"], path::split("/a"));
self::assertSame(["/a", ""], path::split("/a/"));
self::assertSame(["/a", "b"], path::split("/a/b"));
self::assertSame(["/a/b", "c"], path::split("/a/b/c"));
self::assertSame(["", "a"], path::split("a"));
self::assertSame(["a", ""], path::split("a/"));
self::assertSame(["a", "b"], path::split("a/b"));
self::assertSame(["a/b", "c"], path::split("a/b/c"));
}
function testJoin() {
self::assertNull(path::join());
self::assertNull(path::join(null));
self::assertNull(path::join(false));
self::assertNull(path::join(null, null));
self::assertNull(path::join(null, false));
self::assertSame(".", path::join(""));
self::assertSame("a", path::join("a", ""));
self::assertSame("a", path::join("", "a"));
self::assertSame("a/b", path::join("a", "b"));
self::assertSame("a/b", path::join("a/", "b"));
self::assertSame("a/b", path::join("a", "/b"));
self::assertSame("a/b", path::join("a/", "/b"));
}
function testReljoin() {
self::assertNull(path::reljoin());
self::assertNull(path::reljoin(null));
self::assertNull(path::reljoin(false));
self::assertNull(path::reljoin(null, null));
self::assertNull(path::reljoin(null, false));
self::assertSame(".", path::reljoin(""));
self::assertSame("a", path::reljoin("a", ""));
self::assertSame("a", path::reljoin("", "a"));
self::assertSame("a/b", path::reljoin("a", "b"));
self::assertSame("a/b", path::reljoin("a/", "b"));
self::assertSame("/b", path::reljoin("a", "/b"));
self::assertSame("/b", path::reljoin("a/", "/b"));
}
function testEnsure_ext() {
# non strict
self::assertSame("a", path::ensure_ext("a", "", null));
self::assertSame("a.x", path::ensure_ext("a", ".x", null));
self::assertSame("a.x", path::ensure_ext("a.x", ".x", null));
self::assertSame("a.x", path::ensure_ext("a", ".x", ".y"));
self::assertSame("a.x", path::ensure_ext("a.x", ".x", ".y"));
self::assertSame("a.x", path::ensure_ext("a.y", ".x", ".y"));
self::assertSame("a.x", path::ensure_ext("a", ".x", [".y", ".z"]));
self::assertSame("a.x", path::ensure_ext("a.x", ".x", [".y", ".z"]));
self::assertSame("a.x", path::ensure_ext("a.y", ".x", [".y", ".z"]));
self::assertSame("a.x", path::ensure_ext("a.z", ".x", [".y", ".z"]));
self::assertSame("a.x", path::ensure_ext("a", ".x", [".x", ".y", ".z"]));
self::assertSame("a.x", path::ensure_ext("a.x", ".x", [".x", ".y", ".z"]));
self::assertSame("a.x", path::ensure_ext("a.y", ".x", [".x", ".y", ".z"]));
self::assertSame("a.x", path::ensure_ext("a.z", ".x", [".x", ".y", ".z"]));
# strict
self::assertSame("a", path::ensure_ext("a", "", null, true));
self::assertSame("a.x", path::ensure_ext("a", ".x", null, true));
self::assertSame("a.x.x", path::ensure_ext("a.x", ".x", null, true));
self::assertSame("a.x", path::ensure_ext("a", ".x", ".y", true));
self::assertSame("a.x.x", path::ensure_ext("a.x", ".x", ".y", true));
self::assertSame("a.x", path::ensure_ext("a.y", ".x", ".y", true));
self::assertSame("a.x", path::ensure_ext("a", ".x", [".y", ".z"], true));
self::assertSame("a.x.x", path::ensure_ext("a.x", ".x", [".y", ".z"], true));
self::assertSame("a.x", path::ensure_ext("a.y", ".x", [".y", ".z"], true));
self::assertSame("a.x", path::ensure_ext("a.z", ".x", [".y", ".z"], true));
self::assertSame("a.x", path::ensure_ext("a", ".x", [".x", ".y", ".z"], true));
self::assertSame("a.x", path::ensure_ext("a.x", ".x", [".x", ".y", ".z"], true));
self::assertSame("a.x", path::ensure_ext("a.y", ".x", [".x", ".y", ".z"], true));
self::assertSame("a.x", path::ensure_ext("a.z", ".x", [".x", ".y", ".z"], true));
}
}