@@ -1781,5 +1781,86 @@ describe("animations", function() {
1781
1781
expect ( isElementRemoved ) . toBe ( true ) ;
1782
1782
} ) ) ;
1783
1783
1784
+ it ( 'leave : should trigger a callback for an leave animation' ,
1785
+ inject ( function ( $animate , $rootScope , $$rAF , $rootElement , $document ) {
1786
+
1787
+ var callbackTriggered = false ;
1788
+ $animate . on ( 'leave' , jqLite ( $document [ 0 ] . body ) , function ( ) {
1789
+ callbackTriggered = true ;
1790
+ } ) ;
1791
+
1792
+ element = jqLite ( '<div></div>' ) ;
1793
+ $rootElement . append ( element ) ;
1794
+ $animate . leave ( element , $rootElement ) ;
1795
+ $rootScope . $digest ( ) ;
1796
+
1797
+ $$rAF . flush ( ) ;
1798
+
1799
+ expect ( callbackTriggered ) . toBe ( true ) ;
1800
+ } ) ) ;
1801
+
1802
+ it ( 'leave : should not fire a callback if the element is outside of the given container' ,
1803
+ inject ( function ( $animate , $rootScope , $$rAF , $rootElement ) {
1804
+
1805
+ var callbackTriggered = false ;
1806
+ var innerContainer = jqLite ( '<div></div>' ) ;
1807
+ $rootElement . append ( innerContainer ) ;
1808
+
1809
+ $animate . on ( 'leave' , innerContainer ,
1810
+ function ( element , phase , data ) {
1811
+ callbackTriggered = true ;
1812
+ } ) ;
1813
+
1814
+ element = jqLite ( '<div></div>' ) ;
1815
+ $rootElement . append ( element ) ;
1816
+ $animate . leave ( element , $rootElement ) ;
1817
+ $rootScope . $digest ( ) ;
1818
+
1819
+ expect ( callbackTriggered ) . toBe ( false ) ;
1820
+ } ) ) ;
1821
+
1822
+ it ( 'leave : should fire a `start` callback when the animation starts with the matching element' ,
1823
+ inject ( function ( $animate , $rootScope , $$rAF , $rootElement , $document ) {
1824
+
1825
+ element = jqLite ( '<div></div>' ) ;
1826
+
1827
+ var capturedState ;
1828
+ var capturedElement ;
1829
+ $animate . on ( 'leave' , jqLite ( $document [ 0 ] . body ) , function ( element , phase ) {
1830
+ capturedState = phase ;
1831
+ capturedElement = element ;
1832
+ } ) ;
1833
+
1834
+ $rootElement . append ( element ) ;
1835
+ $animate . leave ( element , $rootElement ) ;
1836
+ $rootScope . $digest ( ) ;
1837
+ $$rAF . flush ( ) ;
1838
+
1839
+ expect ( capturedState ) . toBe ( 'start' ) ;
1840
+ expect ( capturedElement ) . toBe ( element ) ;
1841
+ } ) ) ;
1842
+
1843
+ it ( 'leave : should fire a `close` callback when the animation ends with the matching element' ,
1844
+ inject ( function ( $animate , $rootScope , $$rAF , $rootElement , $document ) {
1845
+
1846
+ element = jqLite ( '<div></div>' ) ;
1847
+
1848
+ var capturedState ;
1849
+ var capturedElement ;
1850
+ $animate . on ( 'leave' , jqLite ( $document [ 0 ] . body ) , function ( element , phase ) {
1851
+ capturedState = phase ;
1852
+ capturedElement = element ;
1853
+ } ) ;
1854
+
1855
+ $rootElement . append ( element ) ;
1856
+ var runner = $animate . leave ( element , $rootElement ) ;
1857
+ $rootScope . $digest ( ) ;
1858
+ runner . end ( ) ;
1859
+ $$rAF . flush ( ) ;
1860
+
1861
+ expect ( capturedState ) . toBe ( 'close' ) ;
1862
+ expect ( capturedElement ) . toBe ( element ) ;
1863
+ } ) ) ;
1864
+
1784
1865
} ) ;
1785
1866
} ) ;
0 commit comments