85 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			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));
 | |
|   }
 | |
| }
 |