| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * TestFixture for OptionsPage WebUI testing. | 6 * TestFixture for OptionsPage WebUI testing. |
| 7 * @extends {testing.Test} | 7 * @extends {testing.Test} |
| 8 * @constructor | 8 * @constructor |
| 9 */ | 9 */ |
| 10 function OptionsWebUITest() {} | 10 function OptionsWebUITest() {} |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 defaultZoomFactor.selectedIndex = defaultZoomFactor.options.length - 1; | 107 defaultZoomFactor.selectedIndex = defaultZoomFactor.options.length - 1; |
| 108 var event = { target: defaultZoomFactor }; | 108 var event = { target: defaultZoomFactor }; |
| 109 if (defaultZoomFactor.onchange) defaultZoomFactor.onchange(event); | 109 if (defaultZoomFactor.onchange) defaultZoomFactor.onchange(event); |
| 110 testDone(); | 110 testDone(); |
| 111 }); | 111 }); |
| 112 | 112 |
| 113 // If |confirmInterstitial| is true, the OK button of the Do Not Track | 113 // If |confirmInterstitial| is true, the OK button of the Do Not Track |
| 114 // interstitial is pressed, otherwise the abort button is pressed. | 114 // interstitial is pressed, otherwise the abort button is pressed. |
| 115 OptionsWebUITest.prototype.testDoNotTrackInterstitial = | 115 OptionsWebUITest.prototype.testDoNotTrackInterstitial = |
| 116 function(confirmInterstitial) { | 116 function(confirmInterstitial) { |
| 117 Preferences.prefsFetchedCallback({'enable_do_not_track': {'value': false } }); |
| 117 var buttonToClick = confirmInterstitial ? $('do-not-track-confirm-ok') | 118 var buttonToClick = confirmInterstitial ? $('do-not-track-confirm-ok') |
| 118 : $('do-not-track-confirm-cancel'); | 119 : $('do-not-track-confirm-cancel'); |
| 119 var dntCheckbox = $('do-not-track-enabled'); | 120 var dntCheckbox = $('do-not-track-enabled'); |
| 120 var dntOverlay = DoNotTrackConfirmOverlay.getInstance(); | 121 var dntOverlay = OptionsPage.registeredOverlayPages['donottrackconfirm']; |
| 121 assertFalse(dntCheckbox.checked); | 122 assertFalse(dntCheckbox.checked); |
| 122 | 123 |
| 123 var visibleChangeCounter = 0; | 124 var visibleChangeCounter = 0; |
| 124 var visibleChangeHandler = function() { | 125 var visibleChangeHandler = function() { |
| 125 ++visibleChangeCounter; | 126 ++visibleChangeCounter; |
| 126 switch (visibleChangeCounter) { | 127 switch (visibleChangeCounter) { |
| 127 case 1: | 128 case 1: |
| 128 window.setTimeout(function() { | 129 window.setTimeout(function() { |
| 129 assertTrue(dntOverlay.visible); | 130 assertTrue(dntOverlay.visible); |
| 130 buttonToClick.click(); | 131 buttonToClick.click(); |
| 131 }, 0); | 132 }, 0); |
| 132 break; | 133 break; |
| 133 case 2: | 134 case 2: |
| 134 window.setTimeout(function() { | 135 window.setTimeout(function() { |
| 135 assertFalse(dntOverlay.visible); | 136 assertFalse(dntOverlay.visible); |
| 136 assertEquals(confirmInterstitial, dntCheckbox.checked); | 137 assertEquals(confirmInterstitial, dntCheckbox.checked); |
| 137 DoNotTrackConfirmOverlay.getInstance().removeEventListener( | 138 dntOverlay.removeEventListener(visibleChangeHandler); |
| 138 visibleChangeHandler); | |
| 139 testDone(); | 139 testDone(); |
| 140 }, 0); | 140 }, 0); |
| 141 break; | 141 break; |
| 142 default: | 142 default: |
| 143 assertTrue(false); | 143 assertTrue(false); |
| 144 } | 144 } |
| 145 } | 145 } |
| 146 DoNotTrackConfirmOverlay.getInstance().addEventListener('visibleChange', | 146 dntOverlay.addEventListener('visibleChange', visibleChangeHandler); |
| 147 visibleChangeHandler); | |
| 148 | 147 |
| 149 if (confirmInterstitial) { | 148 if (confirmInterstitial) { |
| 150 this.mockHandler.expects(once()).setBooleanPref( | 149 this.mockHandler.expects(once()).setBooleanPref( |
| 151 ["enable_do_not_track", true]); | 150 ['enable_do_not_track', true, 'Options_DoNotTrackCheckbox']); |
| 152 } else { | 151 } else { |
| 153 // The mock handler complains if setBooleanPref is called even though | 152 // The mock handler complains if setBooleanPref is called even though |
| 154 // it should not be. | 153 // it should not be. |
| 155 } | 154 } |
| 156 | 155 |
| 157 dntCheckbox.click(); | 156 dntCheckbox.click(); |
| 158 } | 157 } |
| 159 | 158 |
| 160 TEST_F('OptionsWebUITest', 'EnableDoNotTrackAndConfirmInterstitial', | 159 TEST_F('OptionsWebUITest', 'EnableDoNotTrackAndConfirmInterstitial', |
| 161 function() { | 160 function() { |
| 162 this.testDoNotTrackInterstitial(true); | 161 this.testDoNotTrackInterstitial(true); |
| 163 }); | 162 }); |
| 164 | 163 |
| 165 TEST_F('OptionsWebUITest', 'EnableDoNotTrackAndCancelInterstitial', | 164 TEST_F('OptionsWebUITest', 'EnableDoNotTrackAndCancelInterstitial', |
| 166 function() { | 165 function() { |
| 167 this.testDoNotTrackInterstitial(false); | 166 this.testDoNotTrackInterstitial(false); |
| 168 }); | 167 }); |
| 169 | 168 |
| 170 // Check that the "Do not Track" preference can be correctly disabled. | 169 // Check that the "Do not Track" preference can be correctly disabled. |
| 171 // In order to do that, we need to enable it first. | 170 // In order to do that, we need to enable it first. |
| 172 TEST_F('OptionsWebUITest', 'EnableAndDisableDoNotTrack', function() { | 171 TEST_F('OptionsWebUITest', 'EnableAndDisableDoNotTrack', function() { |
| 172 Preferences.prefsFetchedCallback({'enable_do_not_track': {'value': false } }); |
| 173 var dntCheckbox = $('do-not-track-enabled'); | 173 var dntCheckbox = $('do-not-track-enabled'); |
| 174 var dntOverlay = DoNotTrackConfirmOverlay.getInstance(); | 174 var dntOverlay = OptionsPage.registeredOverlayPages['donottrackconfirm']; |
| 175 assertFalse(dntCheckbox.checked); | 175 assertFalse(dntCheckbox.checked); |
| 176 | 176 |
| 177 var visibleChangeCounter = 0; | 177 var visibleChangeCounter = 0; |
| 178 var visibleChangeHandler = function() { | 178 var visibleChangeHandler = function() { |
| 179 ++visibleChangeCounter; | 179 ++visibleChangeCounter; |
| 180 switch (visibleChangeCounter) { | 180 switch (visibleChangeCounter) { |
| 181 case 1: | 181 case 1: |
| 182 window.setTimeout(function() { | 182 window.setTimeout(function() { |
| 183 assertTrue(dntOverlay.visible); | 183 assertTrue(dntOverlay.visible); |
| 184 $('do-not-track-confirm-ok').click(); | 184 $('do-not-track-confirm-ok').click(); |
| 185 }, 0); | 185 }, 0); |
| 186 break; | 186 break; |
| 187 case 2: | 187 case 2: |
| 188 window.setTimeout(function() { | 188 window.setTimeout(function() { |
| 189 assertFalse(dntOverlay.visible); | 189 assertFalse(dntOverlay.visible); |
| 190 assertTrue(dntCheckbox.checked); | 190 assertTrue(dntCheckbox.checked); |
| 191 DoNotTrackConfirmOverlay.getInstance().removeEventListener( | 191 dntOverlay.removeEventListener(visibleChangeHandler); |
| 192 visibleChangeHandler); | |
| 193 dntCheckbox.click(); | 192 dntCheckbox.click(); |
| 194 }, 0); | 193 }, 0); |
| 195 break; | 194 break; |
| 196 default: | 195 default: |
| 197 assertNotReached(); | 196 assertNotReached(); |
| 198 } | 197 } |
| 199 } | 198 } |
| 200 DoNotTrackConfirmOverlay.getInstance().addEventListener('visibleChange', | 199 dntOverlay.addEventListener('visibleChange', visibleChangeHandler); |
| 201 visibleChangeHandler); | |
| 202 | 200 |
| 203 this.mockHandler.expects(once()).setBooleanPref( | 201 this.mockHandler.expects(once()).setBooleanPref( |
| 204 eq(["enable_do_not_track", true])); | 202 eq(["enable_do_not_track", true, 'Options_DoNotTrackCheckbox'])); |
| 205 | 203 |
| 206 var verifyCorrectEndState = function() { | 204 var verifyCorrectEndState = function() { |
| 207 window.setTimeout(function() { | 205 window.setTimeout(function() { |
| 208 assertFalse(dntOverlay.visible); | 206 assertFalse(dntOverlay.visible); |
| 209 assertFalse(dntCheckbox.checked); | 207 assertFalse(dntCheckbox.checked); |
| 210 testDone(); | 208 testDone(); |
| 211 }, 0) | 209 }, 0) |
| 212 } | 210 } |
| 213 this.mockHandler.expects(once()).setBooleanPref( | 211 this.mockHandler.expects(once()).setBooleanPref( |
| 214 eq(["enable_do_not_track", false, 'Options_DoNotTrackCheckbox'])).will( | 212 eq(["enable_do_not_track", false, 'Options_DoNotTrackCheckbox'])).will( |
| 215 callFunction(verifyCorrectEndState)); | 213 callFunction(verifyCorrectEndState)); |
| 216 | 214 |
| 217 dntCheckbox.click(); | 215 dntCheckbox.click(); |
| 218 }); | 216 }); |
| OLD | NEW |