Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Side by Side Diff: content/browser/download/download_browsertest.cc

Issue 18286004: Move PathExists to base namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 // This file contains download browser tests that are known to be runnable 5 // This file contains download browser tests that are known to be runnable
6 // in a pure content context. Over time tests should be migrated here. 6 // in a pure content context. Over time tests should be migrated here.
7 7
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 int received_bytes, int total_bytes, 657 int received_bytes, int total_bytes,
658 const base::FilePath& expected_filename) { 658 const base::FilePath& expected_filename) {
659 // expected_filename is only known if the file exists. 659 // expected_filename is only known if the file exists.
660 ASSERT_EQ(file_exists, !expected_filename.empty()); 660 ASSERT_EQ(file_exists, !expected_filename.empty());
661 EXPECT_EQ(received_bytes, download->GetReceivedBytes()); 661 EXPECT_EQ(received_bytes, download->GetReceivedBytes());
662 EXPECT_EQ(total_bytes, download->GetTotalBytes()); 662 EXPECT_EQ(total_bytes, download->GetTotalBytes());
663 EXPECT_EQ(expected_filename.value(), 663 EXPECT_EQ(expected_filename.value(),
664 download->GetFullPath().BaseName().value()); 664 download->GetFullPath().BaseName().value());
665 EXPECT_EQ(file_exists, 665 EXPECT_EQ(file_exists,
666 (!download->GetFullPath().empty() && 666 (!download->GetFullPath().empty() &&
667 file_util::PathExists(download->GetFullPath()))); 667 base::PathExists(download->GetFullPath())));
668 668
669 if (file_exists) { 669 if (file_exists) {
670 std::string file_contents; 670 std::string file_contents;
671 EXPECT_TRUE(file_util::ReadFileToString( 671 EXPECT_TRUE(file_util::ReadFileToString(
672 download->GetFullPath(), &file_contents)); 672 download->GetFullPath(), &file_contents));
673 673
674 ASSERT_EQ(static_cast<size_t>(received_bytes), file_contents.size()); 674 ASSERT_EQ(static_cast<size_t>(received_bytes), file_contents.size());
675 for (int i = 0; i < received_bytes; ++i) { 675 for (int i = 0; i < received_bytes; ++i) {
676 EXPECT_EQ(static_cast<char>((i * 2 + 15) % 256), file_contents[i]) 676 EXPECT_EQ(static_cast<char>((i * 2 + 15) % 256), file_contents[i])
677 << "File contents diverged at position " << i 677 << "File contents diverged at position " << i
(...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after
1405 DownloadItem* download(StartDownloadAndReturnItem(url1)); 1405 DownloadItem* download(StartDownloadAndReturnItem(url1));
1406 WaitForData(download, GetSafeBufferChunk()); 1406 WaitForData(download, GetSafeBufferChunk());
1407 1407
1408 ReleaseRSTAndConfirmInterruptForResume(download); 1408 ReleaseRSTAndConfirmInterruptForResume(download);
1409 ConfirmFileStatusForResume( 1409 ConfirmFileStatusForResume(
1410 download, true, GetSafeBufferChunk(), GetSafeBufferChunk() * 3, 1410 download, true, GetSafeBufferChunk(), GetSafeBufferChunk() * 3,
1411 base::FilePath(FILE_PATH_LITERAL("rangereset.crdownload"))); 1411 base::FilePath(FILE_PATH_LITERAL("rangereset.crdownload")));
1412 1412
1413 base::FilePath intermediate_path(download->GetFullPath()); 1413 base::FilePath intermediate_path(download->GetFullPath());
1414 ASSERT_FALSE(intermediate_path.empty()); 1414 ASSERT_FALSE(intermediate_path.empty());
1415 EXPECT_TRUE(file_util::PathExists(intermediate_path)); 1415 EXPECT_TRUE(base::PathExists(intermediate_path));
1416 1416
1417 download->Cancel(true /* user_cancel */); 1417 download->Cancel(true /* user_cancel */);
1418 RunAllPendingInMessageLoop(BrowserThread::FILE); 1418 RunAllPendingInMessageLoop(BrowserThread::FILE);
1419 RunAllPendingInMessageLoop(); 1419 RunAllPendingInMessageLoop();
1420 1420
1421 // The intermediate file should now be gone. 1421 // The intermediate file should now be gone.
1422 EXPECT_FALSE(file_util::PathExists(intermediate_path)); 1422 EXPECT_FALSE(base::PathExists(intermediate_path));
1423 EXPECT_TRUE(download->GetFullPath().empty()); 1423 EXPECT_TRUE(download->GetFullPath().empty());
1424 } 1424 }
1425 1425
1426 IN_PROC_BROWSER_TEST_F(DownloadContentTest, RemoveDownload) { 1426 IN_PROC_BROWSER_TEST_F(DownloadContentTest, RemoveDownload) {
1427 CommandLine::ForCurrentProcess()->AppendSwitch( 1427 CommandLine::ForCurrentProcess()->AppendSwitch(
1428 switches::kEnableDownloadResumption); 1428 switches::kEnableDownloadResumption);
1429 ASSERT_TRUE(test_server()->Start()); 1429 ASSERT_TRUE(test_server()->Start());
1430 1430
1431 // An interrupted download should remove the intermediate file when it is 1431 // An interrupted download should remove the intermediate file when it is
1432 // removed. 1432 // removed.
1433 { 1433 {
1434 GURL url1 = test_server()->GetURL( 1434 GURL url1 = test_server()->GetURL(
1435 base::StringPrintf("rangereset?size=%d&rst_boundary=%d", 1435 base::StringPrintf("rangereset?size=%d&rst_boundary=%d",
1436 GetSafeBufferChunk() * 3, GetSafeBufferChunk())); 1436 GetSafeBufferChunk() * 3, GetSafeBufferChunk()));
1437 1437
1438 DownloadItem* download(StartDownloadAndReturnItem(url1)); 1438 DownloadItem* download(StartDownloadAndReturnItem(url1));
1439 WaitForData(download, GetSafeBufferChunk()); 1439 WaitForData(download, GetSafeBufferChunk());
1440 ReleaseRSTAndConfirmInterruptForResume(download); 1440 ReleaseRSTAndConfirmInterruptForResume(download);
1441 ConfirmFileStatusForResume( 1441 ConfirmFileStatusForResume(
1442 download, true, GetSafeBufferChunk(), GetSafeBufferChunk() * 3, 1442 download, true, GetSafeBufferChunk(), GetSafeBufferChunk() * 3,
1443 base::FilePath(FILE_PATH_LITERAL("rangereset.crdownload"))); 1443 base::FilePath(FILE_PATH_LITERAL("rangereset.crdownload")));
1444 1444
1445 base::FilePath intermediate_path(download->GetFullPath()); 1445 base::FilePath intermediate_path(download->GetFullPath());
1446 ASSERT_FALSE(intermediate_path.empty()); 1446 ASSERT_FALSE(intermediate_path.empty());
1447 EXPECT_TRUE(file_util::PathExists(intermediate_path)); 1447 EXPECT_TRUE(base::PathExists(intermediate_path));
1448 1448
1449 download->Remove(); 1449 download->Remove();
1450 RunAllPendingInMessageLoop(BrowserThread::FILE); 1450 RunAllPendingInMessageLoop(BrowserThread::FILE);
1451 RunAllPendingInMessageLoop(); 1451 RunAllPendingInMessageLoop();
1452 1452
1453 // The intermediate file should now be gone. 1453 // The intermediate file should now be gone.
1454 EXPECT_FALSE(file_util::PathExists(intermediate_path)); 1454 EXPECT_FALSE(base::PathExists(intermediate_path));
1455 } 1455 }
1456 1456
1457 // A completed download shouldn't delete the downloaded file when it is 1457 // A completed download shouldn't delete the downloaded file when it is
1458 // removed. 1458 // removed.
1459 { 1459 {
1460 // Start the second download and wait until it's done. 1460 // Start the second download and wait until it's done.
1461 base::FilePath file2(FILE_PATH_LITERAL("download-test.lib")); 1461 base::FilePath file2(FILE_PATH_LITERAL("download-test.lib"));
1462 GURL url2(URLRequestMockHTTPJob::GetMockUrl(file2)); 1462 GURL url2(URLRequestMockHTTPJob::GetMockUrl(file2));
1463 scoped_ptr<DownloadTestObserver> completion_observer( 1463 scoped_ptr<DownloadTestObserver> completion_observer(
1464 CreateWaiter(shell(), 1)); 1464 CreateWaiter(shell(), 1));
1465 DownloadItem* download(StartDownloadAndReturnItem(url2)); 1465 DownloadItem* download(StartDownloadAndReturnItem(url2));
1466 completion_observer->WaitForFinished(); 1466 completion_observer->WaitForFinished();
1467 1467
1468 // The target path should exist. 1468 // The target path should exist.
1469 base::FilePath target_path(download->GetTargetFilePath()); 1469 base::FilePath target_path(download->GetTargetFilePath());
1470 EXPECT_TRUE(file_util::PathExists(target_path)); 1470 EXPECT_TRUE(base::PathExists(target_path));
1471 download->Remove(); 1471 download->Remove();
1472 RunAllPendingInMessageLoop(BrowserThread::FILE); 1472 RunAllPendingInMessageLoop(BrowserThread::FILE);
1473 RunAllPendingInMessageLoop(); 1473 RunAllPendingInMessageLoop();
1474 1474
1475 // The file should still exist. 1475 // The file should still exist.
1476 EXPECT_TRUE(file_util::PathExists(target_path)); 1476 EXPECT_TRUE(base::PathExists(target_path));
1477 } 1477 }
1478 } 1478 }
1479 1479
1480 IN_PROC_BROWSER_TEST_F(DownloadContentTest, RemoveResumingDownload) { 1480 IN_PROC_BROWSER_TEST_F(DownloadContentTest, RemoveResumingDownload) {
1481 SetupEnsureNoPendingDownloads(); 1481 SetupEnsureNoPendingDownloads();
1482 CommandLine::ForCurrentProcess()->AppendSwitch( 1482 CommandLine::ForCurrentProcess()->AppendSwitch(
1483 switches::kEnableDownloadResumption); 1483 switches::kEnableDownloadResumption);
1484 ASSERT_TRUE(test_server()->Start()); 1484 ASSERT_TRUE(test_server()->Start());
1485 1485
1486 GURL url = test_server()->GetURL( 1486 GURL url = test_server()->GetURL(
1487 base::StringPrintf("rangereset?size=%d&rst_boundary=%d", 1487 base::StringPrintf("rangereset?size=%d&rst_boundary=%d",
1488 GetSafeBufferChunk() * 3, GetSafeBufferChunk())); 1488 GetSafeBufferChunk() * 3, GetSafeBufferChunk()));
1489 1489
1490 MockDownloadManagerObserver dm_observer(DownloadManagerForShell(shell())); 1490 MockDownloadManagerObserver dm_observer(DownloadManagerForShell(shell()));
1491 EXPECT_CALL(dm_observer, OnDownloadCreated(_,_)).Times(1); 1491 EXPECT_CALL(dm_observer, OnDownloadCreated(_,_)).Times(1);
1492 1492
1493 DownloadItem* download(StartDownloadAndReturnItem(url)); 1493 DownloadItem* download(StartDownloadAndReturnItem(url));
1494 WaitForData(download, GetSafeBufferChunk()); 1494 WaitForData(download, GetSafeBufferChunk());
1495 ::testing::Mock::VerifyAndClearExpectations(&dm_observer); 1495 ::testing::Mock::VerifyAndClearExpectations(&dm_observer);
1496 1496
1497 // Tell the server to send the RST and confirm the interrupt happens. 1497 // Tell the server to send the RST and confirm the interrupt happens.
1498 ReleaseRSTAndConfirmInterruptForResume(download); 1498 ReleaseRSTAndConfirmInterruptForResume(download);
1499 ConfirmFileStatusForResume( 1499 ConfirmFileStatusForResume(
1500 download, true, GetSafeBufferChunk(), GetSafeBufferChunk() * 3, 1500 download, true, GetSafeBufferChunk(), GetSafeBufferChunk() * 3,
1501 base::FilePath(FILE_PATH_LITERAL("rangereset.crdownload"))); 1501 base::FilePath(FILE_PATH_LITERAL("rangereset.crdownload")));
1502 1502
1503 base::FilePath intermediate_path(download->GetFullPath()); 1503 base::FilePath intermediate_path(download->GetFullPath());
1504 ASSERT_FALSE(intermediate_path.empty()); 1504 ASSERT_FALSE(intermediate_path.empty());
1505 EXPECT_TRUE(file_util::PathExists(intermediate_path)); 1505 EXPECT_TRUE(base::PathExists(intermediate_path));
1506 1506
1507 // Resume and remove download. We expect only a single OnDownloadCreated() 1507 // Resume and remove download. We expect only a single OnDownloadCreated()
1508 // call, and that's for the second download created below. 1508 // call, and that's for the second download created below.
1509 EXPECT_CALL(dm_observer, OnDownloadCreated(_,_)).Times(1); 1509 EXPECT_CALL(dm_observer, OnDownloadCreated(_,_)).Times(1);
1510 download->Resume(); 1510 download->Resume();
1511 download->Remove(); 1511 download->Remove();
1512 1512
1513 // The intermediate file should now be gone. 1513 // The intermediate file should now be gone.
1514 RunAllPendingInMessageLoop(BrowserThread::FILE); 1514 RunAllPendingInMessageLoop(BrowserThread::FILE);
1515 RunAllPendingInMessageLoop(); 1515 RunAllPendingInMessageLoop();
1516 EXPECT_FALSE(file_util::PathExists(intermediate_path)); 1516 EXPECT_FALSE(base::PathExists(intermediate_path));
1517 1517
1518 // Start the second download and wait until it's done. The test server is 1518 // Start the second download and wait until it's done. The test server is
1519 // single threaded. The response to this download request should follow the 1519 // single threaded. The response to this download request should follow the
1520 // response to the previous resumption request. 1520 // response to the previous resumption request.
1521 GURL url2(test_server()->GetURL("rangereset?size=100&rst_limit=0&token=x")); 1521 GURL url2(test_server()->GetURL("rangereset?size=100&rst_limit=0&token=x"));
1522 DownloadAndWait(shell(), url2, DownloadItem::COMPLETE); 1522 DownloadAndWait(shell(), url2, DownloadItem::COMPLETE);
1523 1523
1524 EXPECT_TRUE(EnsureNoPendingDownloads()); 1524 EXPECT_TRUE(EnsureNoPendingDownloads());
1525 } 1525 }
1526 1526
(...skipping 15 matching lines...) Expand all
1542 ::testing::Mock::VerifyAndClearExpectations(&dm_observer); 1542 ::testing::Mock::VerifyAndClearExpectations(&dm_observer);
1543 1543
1544 // Tell the server to send the RST and confirm the interrupt happens. 1544 // Tell the server to send the RST and confirm the interrupt happens.
1545 ReleaseRSTAndConfirmInterruptForResume(download); 1545 ReleaseRSTAndConfirmInterruptForResume(download);
1546 ConfirmFileStatusForResume( 1546 ConfirmFileStatusForResume(
1547 download, true, GetSafeBufferChunk(), GetSafeBufferChunk() * 3, 1547 download, true, GetSafeBufferChunk(), GetSafeBufferChunk() * 3,
1548 base::FilePath(FILE_PATH_LITERAL("rangereset.crdownload"))); 1548 base::FilePath(FILE_PATH_LITERAL("rangereset.crdownload")));
1549 1549
1550 base::FilePath intermediate_path(download->GetFullPath()); 1550 base::FilePath intermediate_path(download->GetFullPath());
1551 ASSERT_FALSE(intermediate_path.empty()); 1551 ASSERT_FALSE(intermediate_path.empty());
1552 EXPECT_TRUE(file_util::PathExists(intermediate_path)); 1552 EXPECT_TRUE(base::PathExists(intermediate_path));
1553 1553
1554 // Resume and cancel download. We expect only a single OnDownloadCreated() 1554 // Resume and cancel download. We expect only a single OnDownloadCreated()
1555 // call, and that's for the second download created below. 1555 // call, and that's for the second download created below.
1556 EXPECT_CALL(dm_observer, OnDownloadCreated(_,_)).Times(1); 1556 EXPECT_CALL(dm_observer, OnDownloadCreated(_,_)).Times(1);
1557 download->Resume(); 1557 download->Resume();
1558 download->Cancel(true); 1558 download->Cancel(true);
1559 1559
1560 // The intermediate file should now be gone. 1560 // The intermediate file should now be gone.
1561 RunAllPendingInMessageLoop(BrowserThread::FILE); 1561 RunAllPendingInMessageLoop(BrowserThread::FILE);
1562 RunAllPendingInMessageLoop(); 1562 RunAllPendingInMessageLoop();
1563 EXPECT_FALSE(file_util::PathExists(intermediate_path)); 1563 EXPECT_FALSE(base::PathExists(intermediate_path));
1564 EXPECT_TRUE(download->GetFullPath().empty()); 1564 EXPECT_TRUE(download->GetFullPath().empty());
1565 1565
1566 // Start the second download and wait until it's done. The test server is 1566 // Start the second download and wait until it's done. The test server is
1567 // single threaded. The response to this download request should follow the 1567 // single threaded. The response to this download request should follow the
1568 // response to the previous resumption request. 1568 // response to the previous resumption request.
1569 GURL url2(test_server()->GetURL("rangereset?size=100&rst_limit=0&token=x")); 1569 GURL url2(test_server()->GetURL("rangereset?size=100&rst_limit=0&token=x"));
1570 DownloadAndWait(shell(), url2, DownloadItem::COMPLETE); 1570 DownloadAndWait(shell(), url2, DownloadItem::COMPLETE);
1571 1571
1572 EXPECT_TRUE(EnsureNoPendingDownloads()); 1572 EXPECT_TRUE(EnsureNoPendingDownloads());
1573 } 1573 }
1574 1574
1575 } // namespace content 1575 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/download/base_file_win.cc ('k') | content/browser/download/download_file_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698