SimpleUrl { public String getSimplified() { return simplifiedUrl; } SimpleUrl(String url); String getUrl(); String getSimplified();  }
@Test public void simplifiedShouldReturnEmptyWhenEmptyInput() { assertThat(new SimpleUrl("").getSimplified()).isEmpty(); }
@Test public void simplifiedShouldReturnInputValueWhenProtocolOnlyInput() { assertThat(new SimpleUrl("file:").getSimplified()).isEqualTo("file:"); }
@Test public void simplifiedShouldReturnInputValueWhenRelativePath() { assertThat(new SimpleUrl("abcd/ef/gh").getSimplified()).isEqualTo("abcd/ef/gh"); }
@Test public void simplifiedShouldReturnInputValueWhenAbsolutePath() { assertThat(new SimpleUrl("/abcd/ef/gh").getSimplified()).isEqualTo("/abcd/ef/gh"); }
@Test public void simplifiedShouldReturnInputValueWhenHttpUrl() { assertThat(new SimpleUrl("http: }
@Test public void simplifiedShouldReturnInputValueWhenPathContainsColumn() { assertThat(new SimpleUrl("ab/cd:ef/gh").getSimplified()).isEqualTo("ab/cd:ef/gh"); }
@Test public void simplifiedShouldCollapseComplexePathWhenContainingParentDirElement() { assertThat(new SimpleUrl("file: }
@Test public void simplifiedShouldCollapseComplexePathWhenContainingParentDirElementInRelativePath() { assertThat(new SimpleUrl("file: }
@Test public void simplifiedShouldCollapseComplexePathWhenContainingParentDirElementWithoutDoubleSlashes() { assertThat(new SimpleUrl("file:/home/user/./foo/../.bar/baz").getSimplified()).isEqualTo("file:/home/user/.bar/baz"); }
@Test public void simplifiedShouldCollapseComplexePathWhenContainingParentDirElementInRelativePathWithoutDoubleSlashes() { assertThat(new SimpleUrl("file:../.././foo/../.bar/baz").getSimplified()).isEqualTo("file:../../.bar/baz"); }
@Test public void simplifiedShouldReplaceASingleWindowSeperatorByASlash() { assertThat(new SimpleUrl("\\").getSimplified()).isEqualTo("/"); }
@Test public void simplifiedShouldReplaceAllWindowsSeperatorBySlashes() { assertThat(new SimpleUrl("file:c:\\\\programs\\run.exe").getSimplified()).isEqualTo("file:c: }