@@ -767,6 +767,62 @@ public function testSymlinkCreatesTargetDirectoryIfItDoesNotExist()
767
767
$ this ->assertEquals ($ file , readlink ($ link2 ));
768
768
}
769
769
770
+ public function testReadLinkNotFinal ()
771
+ {
772
+ $ this ->markAsSkippedIfSymlinkIsMissing ();
773
+
774
+ $ file = $ this ->workspace .DIRECTORY_SEPARATOR .'file ' ;
775
+ $ link1 = $ this ->workspace .DIRECTORY_SEPARATOR .'dir ' .DIRECTORY_SEPARATOR .'link ' ;
776
+ $ link2 = $ this ->workspace .DIRECTORY_SEPARATOR .'dir ' .DIRECTORY_SEPARATOR .'subdir ' .DIRECTORY_SEPARATOR .'link ' ;
777
+
778
+ touch ($ file );
779
+
780
+ $ this ->filesystem ->symlink ($ file , $ link1 );
781
+ $ this ->filesystem ->symlink ($ link1 , $ link2 );
782
+
783
+ $ this ->assertTrue (is_link ($ link1 ));
784
+ $ this ->assertEquals ($ file , $ this ->filesystem ->readlink ($ link1 , false ));
785
+ $ this ->assertTrue (is_link ($ link2 ));
786
+ $ this ->assertEquals ($ link1 , $ this ->filesystem ->readlink ($ link2 , false ));
787
+ }
788
+
789
+ public function testReadLinkFinal ()
790
+ {
791
+ $ this ->markAsSkippedIfSymlinkIsMissing ();
792
+
793
+ $ file = $ this ->workspace .DIRECTORY_SEPARATOR .'file ' ;
794
+ $ link1 = $ this ->workspace .DIRECTORY_SEPARATOR .'dir ' .DIRECTORY_SEPARATOR .'link ' ;
795
+ $ link2 = $ this ->workspace .DIRECTORY_SEPARATOR .'dir ' .DIRECTORY_SEPARATOR .'subdir ' .DIRECTORY_SEPARATOR .'link ' ;
796
+
797
+ touch ($ file );
798
+
799
+ $ this ->filesystem ->symlink ($ file , $ link1 );
800
+ $ this ->filesystem ->symlink ($ link1 , $ link2 );
801
+
802
+ $ this ->assertTrue (is_link ($ link1 ));
803
+ $ this ->assertEquals ($ file , $ this ->filesystem ->readlink ($ link1 , true ));
804
+ $ this ->assertTrue (is_link ($ link2 ));
805
+ $ this ->assertEquals ($ file , $ this ->filesystem ->readlink ($ link2 , true ));
806
+ }
807
+
808
+ public function testReadLinkNotLink ()
809
+ {
810
+ $ file = $ this ->workspace .DIRECTORY_SEPARATOR .'file ' ;
811
+
812
+ touch ($ file );
813
+
814
+ $ this ->assertEquals ($ file , $ this ->filesystem ->readlink ($ file , false ));
815
+ $ this ->assertEquals ($ file , $ this ->filesystem ->readlink ($ file , true ));
816
+ }
817
+
818
+ /**
819
+ * @expectedException \Symfony\Component\Filesystem\Exception\IOException
820
+ */
821
+ public function testReadLinkFails ()
822
+ {
823
+ $ this ->filesystem ->readlink ($ this ->workspace .DIRECTORY_SEPARATOR .'invalid ' );
824
+ }
825
+
770
826
/**
771
827
* @dataProvider providePathsForMakePathRelative
772
828
*/
0 commit comments