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 #include <algorithm> | 5 #include <algorithm> |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
161 switch (type) { | 161 switch (type) { |
162 case chrome::NOTIFICATION_EXTENSION_DOWNLOADS_EVENT: | 162 case chrome::NOTIFICATION_EXTENSION_DOWNLOADS_EVENT: |
163 { | 163 { |
164 DownloadsNotificationSource* dns = | 164 DownloadsNotificationSource* dns = |
165 content::Source<DownloadsNotificationSource>(source).ptr(); | 165 content::Source<DownloadsNotificationSource>(source).ptr(); |
166 Event* new_event = new Event( | 166 Event* new_event = new Event( |
167 dns->profile, | 167 dns->profile, |
168 dns->event_name, | 168 dns->event_name, |
169 *content::Details<std::string>(details).ptr(), base::Time::Now()); | 169 *content::Details<std::string>(details).ptr(), base::Time::Now()); |
170 events_.push_back(new_event); | 170 events_.push_back(new_event); |
171 LOG(INFO) << "occam caught " << new_event->Debug(); | |
Randy Smith (Not in Mondays)
2012/07/23 18:40:50
Was this intended to be in the CL proposed for lan
benjhayden
2012/07/23 18:54:22
Sorry, was having trouble repro-ing trybot failure
| |
171 if (waiting_ && | 172 if (waiting_ && |
172 waiting_for_.get() && | 173 waiting_for_.get() && |
173 waiting_for_->Equals(*new_event)) { | 174 waiting_for_->Equals(*new_event)) { |
174 waiting_ = false; | 175 waiting_ = false; |
175 MessageLoopForUI::current()->Quit(); | 176 MessageLoopForUI::current()->Quit(); |
176 } | 177 } |
177 break; | 178 break; |
178 } | 179 } |
179 default: | 180 default: |
180 NOTREACHED(); | 181 NOTREACHED(); |
181 } | 182 } |
182 } | 183 } |
183 | 184 |
184 bool WaitFor(Profile* profile, | 185 bool WaitFor(Profile* profile, |
185 const std::string& event_name, | 186 const std::string& event_name, |
186 const std::string& json_args) { | 187 const std::string& json_args) { |
187 waiting_for_.reset(new Event(profile, event_name, json_args, base::Time())); | 188 waiting_for_.reset(new Event(profile, event_name, json_args, base::Time())); |
188 for (std::deque<Event*>::const_iterator iter = events_.begin(); | 189 for (std::deque<Event*>::const_iterator iter = events_.begin(); |
189 iter != events_.end(); ++iter) { | 190 iter != events_.end(); ++iter) { |
190 if ((*iter)->Equals(*waiting_for_.get())) | 191 if ((*iter)->Equals(*waiting_for_.get())) |
191 return true; | 192 return true; |
192 } | 193 } |
194 LOG(INFO) << "occam waiting " << waiting_for_->Debug(); | |
Randy Smith (Not in Mondays)
2012/07/23 18:40:50
Ditto.
benjhayden
2012/07/23 18:54:22
Done.
| |
193 waiting_ = true; | 195 waiting_ = true; |
194 ui_test_utils::RunMessageLoop(); | 196 ui_test_utils::RunMessageLoop(); |
195 bool success = !waiting_; | 197 bool success = !waiting_; |
196 if (waiting_) { | 198 if (waiting_) { |
197 // Print the events that were caught since the last WaitFor() call to help | 199 // Print the events that were caught since the last WaitFor() call to help |
198 // find the erroneous event. | 200 // find the erroneous event. |
199 // TODO(benjhayden) Fuzzy-match and highlight the erroneous event. | 201 // TODO(benjhayden) Fuzzy-match and highlight the erroneous event. |
200 for (std::deque<Event*>::const_iterator iter = events_.begin(); | 202 for (std::deque<Event*>::const_iterator iter = events_.begin(); |
201 iter != events_.end(); ++iter) { | 203 iter != events_.end(); ++iter) { |
202 if ((*iter)->caught() > last_wait_) { | 204 if ((*iter)->caught() > last_wait_) { |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
289 | 291 |
290 bool WaitFor(const std::string& event_name, const std::string& json_args) { | 292 bool WaitFor(const std::string& event_name, const std::string& json_args) { |
291 return events_listener_->WaitFor( | 293 return events_listener_->WaitFor( |
292 current_browser()->profile(), event_name, json_args); | 294 current_browser()->profile(), event_name, json_args); |
293 } | 295 } |
294 | 296 |
295 bool WaitForInterruption(DownloadItem* item, int expected_error, | 297 bool WaitForInterruption(DownloadItem* item, int expected_error, |
296 const std::string& on_created_event) { | 298 const std::string& on_created_event) { |
297 if (!WaitFor(extension_event_names::kOnDownloadCreated, on_created_event)) | 299 if (!WaitFor(extension_event_names::kOnDownloadCreated, on_created_event)) |
298 return false; | 300 return false; |
299 // The item may or may not be interrupted before the onCreated event fires. | 301 // Now, onCreated is always fired before interruption. |
300 if (item->IsInterrupted()) { | 302 return WaitFor(extension_event_names::kOnDownloadChanged, |
301 scoped_ptr<base::Value> args(base::JSONReader::Read(on_created_event)); | 303 base::StringPrintf("[{\"id\": %d," |
302 base::ListValue* args_list = NULL; | 304 " \"error\": {\"current\": %d}," |
303 base::DictionaryValue* args_dict = NULL; | 305 " \"state\": {" |
304 if (!args->GetAsList(&args_list) || | 306 " \"previous\": \"in_progress\"," |
305 !args_list->GetDictionary(0, &args_dict)) | 307 " \"current\": \"interrupted\"}}]", |
306 return false; | 308 item->GetId(), |
307 args_dict->SetString("state", "interrupted"); | 309 expected_error)); |
308 args_dict->SetInteger("error", expected_error); | |
309 std::string created_error; | |
310 base::JSONWriter::Write(args_list, &created_error); | |
311 // This is not waiting for a different event, it's refining the | |
312 // expectations on the onCreated event that was just caught. Specifically, | |
313 // if a DownloadItem is already interrupted by the time the onCreated | |
314 // event fires, then the onCreated event should already describe the | |
315 // error. | |
316 return WaitFor(extension_event_names::kOnDownloadCreated, created_error); | |
317 } else { | |
318 return WaitFor(extension_event_names::kOnDownloadChanged, | |
319 base::StringPrintf("[{\"id\": %d," | |
320 " \"error\": {\"current\": %d}," | |
321 " \"state\": {" | |
322 " \"previous\": \"in_progress\"," | |
323 " \"current\": \"interrupted\"}}]", | |
324 item->GetId(), | |
325 expected_error)); | |
326 } | |
327 } | 310 } |
328 | 311 |
329 std::string GetExtensionURL() { | 312 std::string GetExtensionURL() { |
330 return extension_->url().spec(); | 313 return extension_->url().spec(); |
331 } | 314 } |
332 | 315 |
333 std::string GetFilename(const char* path) { | 316 std::string GetFilename(const char* path) { |
334 std::string result = | 317 std::string result = |
335 downloads_directory_.path().AppendASCII(path).AsUTF8Unsafe(); | 318 downloads_directory_.path().AppendASCII(path).AsUTF8Unsafe(); |
336 #if defined(OS_WIN) | 319 #if defined(OS_WIN) |
(...skipping 1158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1495 int result_id = -1; | 1478 int result_id = -1; |
1496 ASSERT_TRUE(result->GetAsInteger(&result_id)); | 1479 ASSERT_TRUE(result->GetAsInteger(&result_id)); |
1497 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); | 1480 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); |
1498 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); | 1481 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); |
1499 ASSERT_TRUE(item); | 1482 ASSERT_TRUE(item); |
1500 ScopedCancellingItem canceller(item); | 1483 ScopedCancellingItem canceller(item); |
1501 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); | 1484 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); |
1502 | 1485 |
1503 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, | 1486 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, |
1504 base::StringPrintf("[{\"danger\": \"safe\"," | 1487 base::StringPrintf("[{\"danger\": \"safe\"," |
1505 " \"filename\": \"%s\"," | |
1506 " \"incognito\": false," | 1488 " \"incognito\": false," |
1507 " \"mime\": \"text/plain\"," | 1489 " \"mime\": \"text/plain\"," |
1508 " \"paused\": false," | 1490 " \"paused\": false," |
1509 " \"url\": \"%s\"}]", | 1491 " \"url\": \"%s\"}]", |
1510 GetFilename("slow.txt.crdownload").c_str(), | |
1511 download_url.c_str()))); | 1492 download_url.c_str()))); |
1512 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, | 1493 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, |
1513 base::StringPrintf("[{\"id\": %d," | 1494 base::StringPrintf("[{\"id\": %d," |
1514 " \"filename\": {" | 1495 " \"filename\": {" |
1515 " \"previous\": \"%s\"," | 1496 " \"previous\": \"%s\"," |
1516 " \"current\": \"%s\"}," | 1497 " \"current\": \"%s\"}," |
1517 " \"state\": {" | 1498 " \"state\": {" |
1518 " \"previous\": \"in_progress\"," | 1499 " \"previous\": \"in_progress\"," |
1519 " \"current\": \"complete\"}}]", | 1500 " \"current\": \"complete\"}}]", |
1520 result_id, | 1501 result_id, |
(...skipping 17 matching lines...) Expand all Loading... | |
1538 int result_id = -1; | 1519 int result_id = -1; |
1539 ASSERT_TRUE(result->GetAsInteger(&result_id)); | 1520 ASSERT_TRUE(result->GetAsInteger(&result_id)); |
1540 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); | 1521 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); |
1541 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); | 1522 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); |
1542 ASSERT_TRUE(item); | 1523 ASSERT_TRUE(item); |
1543 ScopedCancellingItem canceller(item); | 1524 ScopedCancellingItem canceller(item); |
1544 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); | 1525 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); |
1545 | 1526 |
1546 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, | 1527 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, |
1547 base::StringPrintf("[{\"danger\": \"safe\"," | 1528 base::StringPrintf("[{\"danger\": \"safe\"," |
1548 " \"filename\": \"%s\"," | |
1549 " \"incognito\": true," | 1529 " \"incognito\": true," |
1550 " \"mime\": \"text/plain\"," | 1530 " \"mime\": \"text/plain\"," |
1551 " \"paused\": false," | 1531 " \"paused\": false," |
1552 " \"url\": \"%s\"}]", | 1532 " \"url\": \"%s\"}]", |
1553 GetFilename("slow.txt.crdownload").c_str(), | |
1554 download_url.c_str()))); | 1533 download_url.c_str()))); |
1555 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, | 1534 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, |
1556 base::StringPrintf("[{\"id\":%d," | 1535 base::StringPrintf("[{\"id\":%d," |
1557 " \"filename\": {" | 1536 " \"filename\": {" |
1558 " \"previous\": \"%s\"," | 1537 " \"previous\": \"%s\"," |
1559 " \"current\": \"%s\"}," | 1538 " \"current\": \"%s\"}," |
1560 " \"state\": {" | 1539 " \"state\": {" |
1561 " \"current\": \"complete\"," | 1540 " \"current\": \"complete\"," |
1562 " \"previous\": \"in_progress\"}}]", | 1541 " \"previous\": \"in_progress\"}}]", |
1563 result_id, | 1542 result_id, |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1694 int result_id = -1; | 1673 int result_id = -1; |
1695 ASSERT_TRUE(result->GetAsInteger(&result_id)); | 1674 ASSERT_TRUE(result->GetAsInteger(&result_id)); |
1696 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); | 1675 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); |
1697 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); | 1676 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); |
1698 ASSERT_TRUE(item); | 1677 ASSERT_TRUE(item); |
1699 ScopedCancellingItem canceller(item); | 1678 ScopedCancellingItem canceller(item); |
1700 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); | 1679 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); |
1701 | 1680 |
1702 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, | 1681 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, |
1703 base::StringPrintf("[{\"danger\": \"safe\"," | 1682 base::StringPrintf("[{\"danger\": \"safe\"," |
1704 " \"filename\": \"%s\"," | |
1705 " \"incognito\": false," | 1683 " \"incognito\": false," |
1706 " \"mime\": \"text/plain\"," | 1684 " \"mime\": \"text/plain\"," |
1707 " \"paused\": false," | 1685 " \"paused\": false," |
1708 " \"url\": \"%s\"}]", | 1686 " \"url\": \"%s\"}]", |
1709 GetFilename("slow.txt.crdownload").c_str(), | |
1710 download_url.c_str()))); | 1687 download_url.c_str()))); |
1711 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, | 1688 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, |
1712 base::StringPrintf("[{\"id\": %d," | 1689 base::StringPrintf("[{\"id\": %d," |
1713 " \"filename\": {" | 1690 " \"filename\": {" |
1714 " \"previous\": \"%s\"," | 1691 " \"previous\": \"%s\"," |
1715 " \"current\": \"%s\"}," | 1692 " \"current\": \"%s\"}," |
1716 " \"state\": {" | 1693 " \"state\": {" |
1717 " \"previous\": \"in_progress\"," | 1694 " \"previous\": \"in_progress\"," |
1718 " \"current\": \"complete\"}}]", | 1695 " \"current\": \"complete\"}}]", |
1719 result_id, | 1696 result_id, |
(...skipping 17 matching lines...) Expand all Loading... | |
1737 int result_id = -1; | 1714 int result_id = -1; |
1738 ASSERT_TRUE(result->GetAsInteger(&result_id)); | 1715 ASSERT_TRUE(result->GetAsInteger(&result_id)); |
1739 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); | 1716 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); |
1740 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); | 1717 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); |
1741 ASSERT_TRUE(item); | 1718 ASSERT_TRUE(item); |
1742 ScopedCancellingItem canceller(item); | 1719 ScopedCancellingItem canceller(item); |
1743 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); | 1720 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); |
1744 | 1721 |
1745 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, | 1722 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, |
1746 base::StringPrintf("[{\"danger\": \"safe\"," | 1723 base::StringPrintf("[{\"danger\": \"safe\"," |
1747 " \"filename\": \"%s\"," | |
1748 " \"incognito\": false," | 1724 " \"incognito\": false," |
1749 " \"mime\": \"text/plain\"," | 1725 " \"mime\": \"text/plain\"," |
1750 " \"paused\": false," | 1726 " \"paused\": false," |
1751 " \"url\": \"%s\"}]", | 1727 " \"url\": \"%s\"}]", |
1752 GetFilename("data.txt.crdownload").c_str(), | |
1753 download_url.c_str()))); | 1728 download_url.c_str()))); |
1754 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, | 1729 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, |
1755 base::StringPrintf("[{\"id\": %d," | 1730 base::StringPrintf("[{\"id\": %d," |
1756 " \"filename\": {" | 1731 " \"filename\": {" |
1757 " \"previous\": \"%s\"," | 1732 " \"previous\": \"%s\"," |
1758 " \"current\": \"%s\"}," | 1733 " \"current\": \"%s\"}," |
1759 " \"state\": {" | 1734 " \"state\": {" |
1760 " \"previous\": \"in_progress\"," | 1735 " \"previous\": \"in_progress\"," |
1761 " \"current\": \"complete\"}}]", | 1736 " \"current\": \"complete\"}}]", |
1762 result_id, | 1737 result_id, |
(...skipping 20 matching lines...) Expand all Loading... | |
1783 int result_id = -1; | 1758 int result_id = -1; |
1784 ASSERT_TRUE(result->GetAsInteger(&result_id)); | 1759 ASSERT_TRUE(result->GetAsInteger(&result_id)); |
1785 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); | 1760 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); |
1786 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); | 1761 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); |
1787 ASSERT_TRUE(item); | 1762 ASSERT_TRUE(item); |
1788 ScopedCancellingItem canceller(item); | 1763 ScopedCancellingItem canceller(item); |
1789 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); | 1764 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); |
1790 | 1765 |
1791 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, | 1766 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, |
1792 base::StringPrintf("[{\"danger\": \"safe\"," | 1767 base::StringPrintf("[{\"danger\": \"safe\"," |
1793 " \"filename\": \"%s\"," | |
1794 " \"incognito\": false," | 1768 " \"incognito\": false," |
1795 " \"mime\": \"text/html\"," | 1769 " \"mime\": \"text/html\"," |
1796 " \"paused\": false," | 1770 " \"paused\": false," |
1797 " \"url\": \"%s\"}]", | 1771 " \"url\": \"%s\"}]", |
1798 GetFilename("file.txt.crdownload").c_str(), | |
1799 download_url.c_str()))); | 1772 download_url.c_str()))); |
1800 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, | 1773 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, |
1801 base::StringPrintf("[{\"id\": %d," | 1774 base::StringPrintf("[{\"id\": %d," |
1802 " \"filename\": {" | 1775 " \"filename\": {" |
1803 " \"previous\": \"%s\"," | 1776 " \"previous\": \"%s\"," |
1804 " \"current\": \"%s\"}," | 1777 " \"current\": \"%s\"}," |
1805 " \"state\": {" | 1778 " \"state\": {" |
1806 " \"previous\": \"in_progress\"," | 1779 " \"previous\": \"in_progress\"," |
1807 " \"current\": \"complete\"}}]", | 1780 " \"current\": \"complete\"}}]", |
1808 result_id, | 1781 result_id, |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1990 int result_id = -1; | 1963 int result_id = -1; |
1991 ASSERT_TRUE(result->GetAsInteger(&result_id)); | 1964 ASSERT_TRUE(result->GetAsInteger(&result_id)); |
1992 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); | 1965 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); |
1993 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); | 1966 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); |
1994 ASSERT_TRUE(item); | 1967 ASSERT_TRUE(item); |
1995 ScopedCancellingItem canceller(item); | 1968 ScopedCancellingItem canceller(item); |
1996 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); | 1969 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); |
1997 | 1970 |
1998 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, | 1971 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, |
1999 base::StringPrintf("[{\"danger\": \"safe\"," | 1972 base::StringPrintf("[{\"danger\": \"safe\"," |
2000 " \"incognito\": false," | 1973 " \"incognito\": false," |
2001 " \"mime\": \"application/octet-stream\"," | 1974 " \"mime\": \"application/octet-stream\"," |
2002 " \"paused\": false," | 1975 " \"paused\": false," |
2003 " \"bytesReceived\": 164," | 1976 " \"url\": \"%s\"}]", download_url.c_str()))); |
2004 " \"url\": \"%s\"}]", download_url.c_str()))); | |
2005 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, | 1977 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, |
2006 base::StringPrintf("[{\"id\": %d," | 1978 base::StringPrintf("[{\"id\": %d," |
2007 " \"state\": {" | 1979 " \"state\": {" |
2008 " \"previous\": \"in_progress\"," | 1980 " \"previous\": \"in_progress\"," |
2009 " \"current\": \"complete\"}}]", result_id))); | 1981 " \"current\": \"complete\"}," |
1982 " \"filename\": {" | |
1983 " \"previous\": \"%s\"," | |
1984 " \"current\": \"%s\"}}]", | |
1985 result_id, | |
1986 GetFilename("post-succeed.txt.crdownload").c_str(), | |
1987 GetFilename("post-succeed.txt").c_str()))); | |
2010 } | 1988 } |
2011 | 1989 |
2012 // Test that downloadPostSuccess would fail if the resource requires the POST | 1990 // Test that downloadPostSuccess would fail if the resource requires the POST |
2013 // method, and chrome fails to propagate the |method| parameter back to the | 1991 // method, and chrome fails to propagate the |method| parameter back to the |
2014 // server. This tests both that testserver.py does not succeed when it should | 1992 // server. This tests both that testserver.py does not succeed when it should |
2015 // fail, and this tests how the downloads extension api exposes the failure to | 1993 // fail, and this tests how the downloads extension api exposes the failure to |
2016 // extensions. | 1994 // extensions. |
2017 IN_PROC_BROWSER_TEST_F(DownloadExtensionTest, | 1995 IN_PROC_BROWSER_TEST_F(DownloadExtensionTest, |
2018 DownloadExtensionTest_Download_Post_Get) { | 1996 DownloadExtensionTest_Download_Post_Get) { |
2019 LoadExtension("downloads_split"); | 1997 LoadExtension("downloads_split"); |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2155 ASSERT_TRUE(result->GetAsInteger(&result_id)); | 2133 ASSERT_TRUE(result->GetAsInteger(&result_id)); |
2156 | 2134 |
2157 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); | 2135 DownloadItem* item = GetCurrentManager()->GetActiveDownloadItem(result_id); |
2158 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); | 2136 if (!item) item = GetCurrentManager()->GetDownloadItem(result_id); |
2159 ASSERT_TRUE(item); | 2137 ASSERT_TRUE(item); |
2160 ScopedCancellingItem canceller(item); | 2138 ScopedCancellingItem canceller(item); |
2161 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); | 2139 ASSERT_EQ(download_url, item->GetOriginalUrl().spec()); |
2162 | 2140 |
2163 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, | 2141 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadCreated, |
2164 base::StringPrintf("[{\"danger\": \"safe\"," | 2142 base::StringPrintf("[{\"danger\": \"safe\"," |
2165 " \"filename\": \"%s\"," | |
2166 " \"incognito\": false," | 2143 " \"incognito\": false," |
2167 " \"mime\": \"text/plain\"," | 2144 " \"mime\": \"text/plain\"," |
2168 " \"paused\": false," | 2145 " \"paused\": false," |
2169 " \"url\": \"%s\"}]", | 2146 " \"url\": \"%s\"}]", |
2170 GetFilename("on_record.txt.crdownload").c_str(), | |
2171 download_url.c_str()))); | 2147 download_url.c_str()))); |
2172 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, | 2148 ASSERT_TRUE(WaitFor(extension_event_names::kOnDownloadChanged, |
2173 base::StringPrintf("[{\"id\": %d," | 2149 base::StringPrintf("[{\"id\": %d," |
2174 " \"filename\": {" | 2150 " \"filename\": {" |
2175 " \"previous\": \"%s\"," | 2151 " \"previous\": \"%s\"," |
2176 " \"current\": \"%s\"}," | 2152 " \"current\": \"%s\"}," |
2177 " \"state\": {" | 2153 " \"state\": {" |
2178 " \"previous\": \"in_progress\"," | 2154 " \"previous\": \"in_progress\"," |
2179 " \"current\": \"complete\"}}]", | 2155 " \"current\": \"complete\"}}]", |
2180 result_id, | 2156 result_id, |
2181 GetFilename("on_record.txt.crdownload").c_str(), | 2157 GetFilename("on_record.txt.crdownload").c_str(), |
2182 GetFilename("on_record.txt").c_str()))); | 2158 GetFilename("on_record.txt").c_str()))); |
2183 std::string disk_data; | 2159 std::string disk_data; |
2184 EXPECT_TRUE(file_util::ReadFileToString(item->GetFullPath(), &disk_data)); | 2160 EXPECT_TRUE(file_util::ReadFileToString(item->GetFullPath(), &disk_data)); |
2185 EXPECT_STREQ(kPayloadData, disk_data.c_str()); | 2161 EXPECT_STREQ(kPayloadData, disk_data.c_str()); |
2186 } | 2162 } |
OLD | NEW |