| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 package org.chromium.chrome.browser.download; | 5 package org.chromium.chrome.browser.download; |
| 6 | 6 |
| 7 import android.os.Environment; | 7 import android.os.Environment; |
| 8 import android.test.FlakyTest; | |
| 9 import android.test.suitebuilder.annotation.MediumTest; | 8 import android.test.suitebuilder.annotation.MediumTest; |
| 10 import android.view.View; | 9 import android.view.View; |
| 11 | 10 |
| 12 import org.chromium.base.Log; | 11 import org.chromium.base.Log; |
| 13 import org.chromium.base.test.util.CommandLineFlags; | 12 import org.chromium.base.test.util.CommandLineFlags; |
| 14 import org.chromium.base.test.util.DisabledTest; | 13 import org.chromium.base.test.util.DisabledTest; |
| 15 import org.chromium.base.test.util.Feature; | 14 import org.chromium.base.test.util.Feature; |
| 15 import org.chromium.base.test.util.FlakyTest; |
| 16 import org.chromium.chrome.R; | 16 import org.chromium.chrome.R; |
| 17 import org.chromium.chrome.browser.ChromeSwitches; | 17 import org.chromium.chrome.browser.ChromeSwitches; |
| 18 import org.chromium.chrome.browser.compositor.CompositorViewHolder; | 18 import org.chromium.chrome.browser.compositor.CompositorViewHolder; |
| 19 import org.chromium.chrome.browser.compositor.layouts.LayoutManager; | 19 import org.chromium.chrome.browser.compositor.layouts.LayoutManager; |
| 20 import org.chromium.chrome.browser.compositor.layouts.StaticLayout; | 20 import org.chromium.chrome.browser.compositor.layouts.StaticLayout; |
| 21 import org.chromium.chrome.browser.infobar.InfoBarContainer; | 21 import org.chromium.chrome.browser.infobar.InfoBarContainer; |
| 22 import org.chromium.chrome.browser.tabmodel.TabModel; | 22 import org.chromium.chrome.browser.tabmodel.TabModel; |
| 23 import org.chromium.chrome.browser.tabmodel.TabModelUtils; | 23 import org.chromium.chrome.browser.tabmodel.TabModelUtils; |
| 24 import org.chromium.chrome.test.util.InfoBarUtil; | 24 import org.chromium.chrome.test.util.InfoBarUtil; |
| 25 import org.chromium.content.browser.test.util.Criteria; | 25 import org.chromium.content.browser.test.util.Criteria; |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); | 97 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); |
| 98 waitForFocus(); | 98 waitForFocus(); |
| 99 View currentView = getActivity().getActivityTab().getView(); | 99 View currentView = getActivity().getActivityTab().getView(); |
| 100 | 100 |
| 101 int callCount = getChromeDownloadCallCount(); | 101 int callCount = getChromeDownloadCallCount(); |
| 102 singleClickView(currentView); | 102 singleClickView(currentView); |
| 103 assertTrue(waitForChromeDownloadToFinish(callCount)); | 103 assertTrue(waitForChromeDownloadToFinish(callCount)); |
| 104 assertTrue(hasDownload("superbo.txt", SUPERBO_CONTENTS)); | 104 assertTrue(hasDownload("superbo.txt", SUPERBO_CONTENTS)); |
| 105 } | 105 } |
| 106 | 106 |
| 107 /** | 107 @MediumTest |
| 108 * Bug http://crbug/286315 | 108 @Feature({"Downloads"}) |
| 109 * @MediumTest | 109 @DisabledTest(message = "crbug.com/286315") |
| 110 * @Feature({"Downloads"}) | |
| 111 */ | |
| 112 @DisabledTest | |
| 113 public void testCloseEmptyDownloadTab() throws Exception { | 110 public void testCloseEmptyDownloadTab() throws Exception { |
| 114 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/get.html"
)); | 111 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/get.html"
)); |
| 115 waitForFocus(); | 112 waitForFocus(); |
| 116 final int initialTabCount = getActivity().getCurrentTabModel().getCount(
); | 113 final int initialTabCount = getActivity().getCurrentTabModel().getCount(
); |
| 117 View currentView = getActivity().getActivityTab().getView(); | 114 View currentView = getActivity().getActivityTab().getView(); |
| 118 TouchCommon.longPressView(currentView); | 115 TouchCommon.longPressView(currentView); |
| 119 | 116 |
| 120 EnqueueHttpGetDownloadCallbackHelper callbackHelper = getHttpGetDownload
CallbackHelper(); | 117 EnqueueHttpGetDownloadCallbackHelper callbackHelper = getHttpGetDownload
CallbackHelper(); |
| 121 int callCount = callbackHelper.getCallCount(); | 118 int callCount = callbackHelper.getCallCount(); |
| 122 getInstrumentation().invokeContextMenuAction(getActivity(), | 119 getInstrumentation().invokeContextMenuAction(getActivity(), |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 assertTrue("OVERWRITE button wasn't found", | 155 assertTrue("OVERWRITE button wasn't found", |
| 159 InfoBarUtil.clickPrimaryButton(getInfoBars().get(0))); | 156 InfoBarUtil.clickPrimaryButton(getInfoBars().get(0))); |
| 160 assertTrue("Failed to finish downloading file for the second time.", | 157 assertTrue("Failed to finish downloading file for the second time.", |
| 161 waitForChromeDownloadToFinish(callCount)); | 158 waitForChromeDownloadToFinish(callCount)); |
| 162 | 159 |
| 163 assertTrue("Missing first download", hasDownload("superbo.txt", SUPERBO_
CONTENTS)); | 160 assertTrue("Missing first download", hasDownload("superbo.txt", SUPERBO_
CONTENTS)); |
| 164 assertFalse("Should not have second download", | 161 assertFalse("Should not have second download", |
| 165 hasDownload("superbo (1).txt", SUPERBO_CONTENTS)); | 162 hasDownload("superbo (1).txt", SUPERBO_CONTENTS)); |
| 166 } | 163 } |
| 167 | 164 |
| 168 /** | 165 @MediumTest |
| 169 * Bug http://crbug/597230 | 166 @Feature({"Downloads"}) |
| 170 * @MediumTest | 167 @DisabledTest(message = "crbug.com/597230") |
| 171 * @Feature({"Downloads"}) | |
| 172 */ | |
| 173 @DisabledTest | |
| 174 public void testDuplicateHttpPostDownload_CreateNew() throws Exception { | 168 public void testDuplicateHttpPostDownload_CreateNew() throws Exception { |
| 175 // Download a file. | 169 // Download a file. |
| 176 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); | 170 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); |
| 177 waitForFocus(); | 171 waitForFocus(); |
| 178 View currentView = getActivity().getActivityTab().getView(); | 172 View currentView = getActivity().getActivityTab().getView(); |
| 179 int callCount = getChromeDownloadCallCount(); | 173 int callCount = getChromeDownloadCallCount(); |
| 180 singleClickView(currentView); | 174 singleClickView(currentView); |
| 181 assertTrue("Failed to finish downloading file for the first time.", | 175 assertTrue("Failed to finish downloading file for the first time.", |
| 182 waitForChromeDownloadToFinish(callCount)); | 176 waitForChromeDownloadToFinish(callCount)); |
| 183 | 177 |
| 184 // Download a file with the same name. | 178 // Download a file with the same name. |
| 185 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); | 179 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); |
| 186 waitForFocus(); | 180 waitForFocus(); |
| 187 currentView = getActivity().getActivityTab().getView(); | 181 currentView = getActivity().getActivityTab().getView(); |
| 188 callCount = getChromeDownloadCallCount(); | 182 callCount = getChromeDownloadCallCount(); |
| 189 singleClickView(currentView); | 183 singleClickView(currentView); |
| 190 assertPollForInfoBarSize(1); | 184 assertPollForInfoBarSize(1); |
| 191 assertTrue("CREATE NEW button wasn't found", | 185 assertTrue("CREATE NEW button wasn't found", |
| 192 InfoBarUtil.clickSecondaryButton(getInfoBars().get(0))); | 186 InfoBarUtil.clickSecondaryButton(getInfoBars().get(0))); |
| 193 assertTrue("Failed to finish downloading file for the second time.", | 187 assertTrue("Failed to finish downloading file for the second time.", |
| 194 waitForChromeDownloadToFinish(callCount)); | 188 waitForChromeDownloadToFinish(callCount)); |
| 195 | 189 |
| 196 assertTrue("Missing first download", hasDownload("superbo.txt", SUPERBO_
CONTENTS)); | 190 assertTrue("Missing first download", hasDownload("superbo.txt", SUPERBO_
CONTENTS)); |
| 197 assertTrue("Missing second download", | 191 assertTrue("Missing second download", |
| 198 hasDownload("superbo (1).txt", SUPERBO_CONTENTS)); | 192 hasDownload("superbo (1).txt", SUPERBO_CONTENTS)); |
| 199 } | 193 } |
| 200 | 194 |
| 201 /* | |
| 202 Bug http://crbug/415711 | |
| 203 */ | |
| 204 @MediumTest | 195 @MediumTest |
| 205 @Feature({"Downloads"}) | 196 @Feature({"Downloads"}) |
| 206 @FlakyTest | 197 @FlakyTest(message = "crbug.com/415711") |
| 207 public void testDuplicateHttpPostDownload_Dismiss() throws Exception { | 198 public void testDuplicateHttpPostDownload_Dismiss() throws Exception { |
| 208 // Download a file. | 199 // Download a file. |
| 209 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); | 200 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); |
| 210 waitForFocus(); | 201 waitForFocus(); |
| 211 View currentView = getActivity().getActivityTab().getView(); | 202 View currentView = getActivity().getActivityTab().getView(); |
| 212 int callCount = getChromeDownloadCallCount(); | 203 int callCount = getChromeDownloadCallCount(); |
| 213 singleClickView(currentView); | 204 singleClickView(currentView); |
| 214 assertTrue("Failed to finish downloading file for the first time.", | 205 assertTrue("Failed to finish downloading file for the first time.", |
| 215 waitForChromeDownloadToFinish(callCount)); | 206 waitForChromeDownloadToFinish(callCount)); |
| 216 | 207 |
| 217 // Download a file with the same name. | 208 // Download a file with the same name. |
| 218 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); | 209 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); |
| 219 waitForFocus(); | 210 waitForFocus(); |
| 220 currentView = getActivity().getActivityTab().getView(); | 211 currentView = getActivity().getActivityTab().getView(); |
| 221 callCount = getChromeDownloadCallCount(); | 212 callCount = getChromeDownloadCallCount(); |
| 222 singleClickView(currentView); | 213 singleClickView(currentView); |
| 223 assertPollForInfoBarSize(1); | 214 assertPollForInfoBarSize(1); |
| 224 assertTrue("Close button wasn't found", | 215 assertTrue("Close button wasn't found", |
| 225 InfoBarUtil.clickCloseButton(getInfoBars().get(0))); | 216 InfoBarUtil.clickCloseButton(getInfoBars().get(0))); |
| 226 assertFalse("Download should not happen when closing infobar", | 217 assertFalse("Download should not happen when closing infobar", |
| 227 waitForChromeDownloadToFinish(callCount)); | 218 waitForChromeDownloadToFinish(callCount)); |
| 228 | 219 |
| 229 assertTrue("Missing first download", hasDownload("superbo.txt", SUPERBO_
CONTENTS)); | 220 assertTrue("Missing first download", hasDownload("superbo.txt", SUPERBO_
CONTENTS)); |
| 230 assertFalse("Should not have second download", | 221 assertFalse("Should not have second download", |
| 231 hasDownload("superbo (1).txt", SUPERBO_CONTENTS)); | 222 hasDownload("superbo (1).txt", SUPERBO_CONTENTS)); |
| 232 } | 223 } |
| 233 | 224 |
| 234 /** | 225 @MediumTest |
| 235 * Bug http://crbug/597230 | 226 @Feature({"Downloads"}) |
| 236 * @MediumTest | 227 @DisabledTest(message = "crbug.com/597230") |
| 237 * @Feature({"Downloads"}) | |
| 238 */ | |
| 239 @DisabledTest | |
| 240 public void testDuplicateHttpPostDownload_AllowMultipleInfoBars() throws Exc
eption { | 228 public void testDuplicateHttpPostDownload_AllowMultipleInfoBars() throws Exc
eption { |
| 241 assertFalse(hasDownload("superbo.txt", SUPERBO_CONTENTS)); | 229 assertFalse(hasDownload("superbo.txt", SUPERBO_CONTENTS)); |
| 242 // Download a file. | 230 // Download a file. |
| 243 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); | 231 loadUrl(mTestServer.getURL("/chrome/test/data/android/download/post.html
")); |
| 244 waitForFocus(); | 232 waitForFocus(); |
| 245 View currentView = getActivity().getActivityTab().getView(); | 233 View currentView = getActivity().getActivityTab().getView(); |
| 246 int callCount = getChromeDownloadCallCount(); | 234 int callCount = getChromeDownloadCallCount(); |
| 247 singleClickView(currentView); | 235 singleClickView(currentView); |
| 248 assertTrue("Failed to finish downloading file for the first time.", | 236 assertTrue("Failed to finish downloading file for the first time.", |
| 249 waitForChromeDownloadToFinish(callCount)); | 237 waitForChromeDownloadToFinish(callCount)); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 (CompositorViewHolder) getActivity().findViewById( | 311 (CompositorViewHolder) getActivity().findViewById( |
| 324 R.id.compositor_view_holder); | 312 R.id.compositor_view_holder); |
| 325 LayoutManager layoutManager = compositorViewHolder.getLayoutMana
ger(); | 313 LayoutManager layoutManager = compositorViewHolder.getLayoutMana
ger(); |
| 326 | 314 |
| 327 return layoutManager.getActiveLayout() instanceof StaticLayout; | 315 return layoutManager.getActiveLayout() instanceof StaticLayout; |
| 328 } | 316 } |
| 329 }); | 317 }); |
| 330 } | 318 } |
| 331 | 319 |
| 332 @CommandLineFlags.Add(ChromeSwitches.DISABLE_DOCUMENT_MODE) | 320 @CommandLineFlags.Add(ChromeSwitches.DISABLE_DOCUMENT_MODE) |
| 321 @DisabledTest(message = "crbug.com/606798") |
| 333 @MediumTest | 322 @MediumTest |
| 334 @Feature({"Downloads"}) | 323 @Feature({"Downloads"}) |
| 335 public void testDuplicateHttpPostDownload_OpenNewTabAndReplace() throws Exce
ption { | 324 public void testDuplicateHttpPostDownload_OpenNewTabAndReplace() throws Exce
ption { |
| 336 final String url = | 325 final String url = |
| 337 mTestServer.getURL("/chrome/test/data/android/download/get.html"
); | 326 mTestServer.getURL("/chrome/test/data/android/download/get.html"
); |
| 338 | 327 |
| 339 // Create the file in advance so that duplicate download infobar can sho
w up. | 328 // Create the file in advance so that duplicate download infobar can sho
w up. |
| 340 File dir = Environment.getExternalStoragePublicDirectory(Environment.DIR
ECTORY_DOWNLOADS); | 329 File dir = Environment.getExternalStoragePublicDirectory(Environment.DIR
ECTORY_DOWNLOADS); |
| 341 assertTrue(dir.isDirectory()); | 330 assertTrue(dir.isDirectory()); |
| 342 final File file = new File(dir, "test.gzip"); | 331 final File file = new File(dir, "test.gzip"); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 CriteriaHelper.pollUiThread(new Criteria() { | 391 CriteriaHelper.pollUiThread(new Criteria() { |
| 403 @Override | 392 @Override |
| 404 public boolean isSatisfied() { | 393 public boolean isSatisfied() { |
| 405 updateFailureReason("There should be " + size + " infobar but th
ere are " | 394 updateFailureReason("There should be " + size + " infobar but th
ere are " |
| 406 + getInfoBars().size() + " infobars."); | 395 + getInfoBars().size() + " infobars."); |
| 407 return getInfoBars().size() == size && !container.isAnimating(); | 396 return getInfoBars().size() == size && !container.isAnimating(); |
| 408 } | 397 } |
| 409 }); | 398 }); |
| 410 } | 399 } |
| 411 } | 400 } |
| OLD | NEW |