@@ -14,4 +14,72 @@ describe('hidden thingy', function() {
1414 var expectedValue = browser . params . browser === 'safari' ? '{{ 7 * 6 }}' : '' ;
1515 expect ( element ( by . css ( 'input' ) ) . getAttribute ( 'value' ) ) . toEqual ( expectedValue ) ;
1616 } ) ;
17+
18+ it ( 'should prevent browser autofill on browser.refresh' , function ( ) {
19+
20+ loadFixture ( 'back2dom' ) ;
21+ expect ( element ( by . css ( '#input1' ) ) . getAttribute ( 'value' ) ) . toEqual ( '' ) ;
22+ expect ( element ( by . css ( '#input2' ) ) . getAttribute ( 'value' ) ) . toEqual ( '' ) ;
23+
24+ element ( by . css ( 'textarea' ) ) . sendKeys ( '{{ internalFn() }}' ) ;
25+
26+ expect ( element ( by . css ( '#input1' ) ) . getAttribute ( 'value' ) ) . toEqual ( '{{ internalFn() }}' ) ;
27+ expect ( element ( by . css ( '#input2' ) ) . getAttribute ( 'value' ) ) . toEqual ( '{{ internalFn() }}' ) ;
28+ expect ( element ( by . css ( 'body' ) ) . getAttribute ( 'class' ) ) . toBe ( '' ) ;
29+
30+ browser . refresh ( ) ;
31+ expect ( element ( by . css ( 'body' ) ) . getAttribute ( 'class' ) ) . toBe ( '' ) ;
32+ } ) ;
33+
34+ it ( 'should prevent browser autofill on location.reload' , function ( ) {
35+
36+ loadFixture ( 'back2dom' ) ;
37+ expect ( element ( by . css ( '#input1' ) ) . getAttribute ( 'value' ) ) . toEqual ( '' ) ;
38+ expect ( element ( by . css ( '#input2' ) ) . getAttribute ( 'value' ) ) . toEqual ( '' ) ;
39+
40+ element ( by . css ( 'textarea' ) ) . sendKeys ( '{{ internalFn() }}' ) ;
41+
42+ expect ( element ( by . css ( '#input1' ) ) . getAttribute ( 'value' ) ) . toEqual ( '{{ internalFn() }}' ) ;
43+ expect ( element ( by . css ( '#input2' ) ) . getAttribute ( 'value' ) ) . toEqual ( '{{ internalFn() }}' ) ;
44+ expect ( element ( by . css ( 'body' ) ) . getAttribute ( 'class' ) ) . toBe ( '' ) ;
45+
46+ browser . driver . executeScript ( 'location.reload()' ) ;
47+ expect ( element ( by . css ( 'body' ) ) . getAttribute ( 'class' ) ) . toBe ( '' ) ;
48+ } ) ;
49+
50+ it ( 'should prevent browser autofill on history.back' , function ( ) {
51+
52+ loadFixture ( 'back2dom' ) ;
53+ expect ( element ( by . css ( '#input1' ) ) . getAttribute ( 'value' ) ) . toEqual ( '' ) ;
54+ expect ( element ( by . css ( '#input2' ) ) . getAttribute ( 'value' ) ) . toEqual ( '' ) ;
55+
56+ element ( by . css ( 'textarea' ) ) . sendKeys ( '{{ internalFn() }}' ) ;
57+
58+ expect ( element ( by . css ( '#input1' ) ) . getAttribute ( 'value' ) ) . toEqual ( '{{ internalFn() }}' ) ;
59+ expect ( element ( by . css ( '#input2' ) ) . getAttribute ( 'value' ) ) . toEqual ( '{{ internalFn() }}' ) ;
60+ expect ( element ( by . css ( 'body' ) ) . getAttribute ( 'class' ) ) . toBe ( '' ) ;
61+
62+ loadFixture ( 'sample' ) ;
63+
64+ browser . driver . executeScript ( 'history.back()' ) ;
65+ expect ( element ( by . css ( 'body' ) ) . getAttribute ( 'class' ) ) . toBe ( '' ) ;
66+ } ) ;
67+
68+ it ( 'should prevent browser autofill on history.forward' , function ( ) {
69+
70+ loadFixture ( 'sample' ) ;
71+ loadFixture ( 'back2dom' ) ;
72+ expect ( element ( by . css ( '#input1' ) ) . getAttribute ( 'value' ) ) . toEqual ( '' ) ;
73+ expect ( element ( by . css ( '#input2' ) ) . getAttribute ( 'value' ) ) . toEqual ( '' ) ;
74+
75+ element ( by . css ( 'textarea' ) ) . sendKeys ( '{{ internalFn() }}' ) ;
76+
77+ expect ( element ( by . css ( '#input1' ) ) . getAttribute ( 'value' ) ) . toEqual ( '{{ internalFn() }}' ) ;
78+ expect ( element ( by . css ( '#input2' ) ) . getAttribute ( 'value' ) ) . toEqual ( '{{ internalFn() }}' ) ;
79+ expect ( element ( by . css ( 'body' ) ) . getAttribute ( 'class' ) ) . toBe ( '' ) ;
80+
81+ browser . driver . executeScript ( 'history.back()' ) ;
82+ browser . driver . executeScript ( 'history.forward()' ) ;
83+ expect ( element ( by . css ( 'body' ) ) . getAttribute ( 'class' ) ) . toBe ( '' ) ;
84+ } ) ;
1785} ) ;
0 commit comments