1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file.
4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include <vector>
6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/ui/browser.h"
8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/ui/tabs/tab_strip_model.h"
9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/test/base/in_process_browser_test.h"
10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/test/base/ui_test_utils.h"
11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "content/public/browser/web_contents.h"
12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "content/public/test/browser_test_utils.h"
13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class FileManagerJsTest : public InProcessBrowserTest {
15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public:
16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  // Runs all test functions in |file|, waiting for them to complete.
17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  void RunTest(const base::FilePath& file) {
18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    GURL url = ui_test_utils::GetTestUrl(
19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        base::FilePath(FILE_PATH_LITERAL("file_manager/unit_tests")), file);
20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    ui_test_utils::NavigateToURL(browser(), url);
21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    content::WebContents* web_contents =
23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        browser()->tab_strip_model()->GetActiveWebContents();
24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    ASSERT_TRUE(web_contents);
25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    const std::vector<int> empty_libraries;
27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    EXPECT_TRUE(ExecuteWebUIResourceTest(web_contents, empty_libraries));
28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  }
29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)};
30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(
32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    FileManagerJsTest, NavigationListModelTest) {
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  RunTest(base::FilePath(
34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      FILE_PATH_LITERAL("navigation_list_model_unittest.html")));
35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}
36a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
37a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(
38a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    FileManagerJsTest, FileOperationHandlerTest) {
39a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  RunTest(base::FilePath(
40a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      FILE_PATH_LITERAL("file_operation_handler_unittest.html")));
41a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    FileManagerJsTest, ProgressCenterItemGroupTest) {
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  RunTest(base::FilePath(
465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      FILE_PATH_LITERAL("progress_center_item_group_unittest.html")));
475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(
505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    FileManagerJsTest, DeviceHandlerTest) {
516d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  RunTest(base::FilePath(FILE_PATH_LITERAL("device_handler_unittest.html")));
526d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)}
536d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
546d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(
556d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    FileManagerJsTest, MetadataCacheTest) {
566d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  RunTest(base::FilePath(FILE_PATH_LITERAL("metadata_cache_unittest.html")));
575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)IN_PROC_BROWSER_TEST_F(FileManagerJsTest, FileOperationManagerTest) {
605f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  RunTest(base::FilePath(
615f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      FILE_PATH_LITERAL("file_operation_manager_unittest.html")));
625f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
63