1# Copyright 2018 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import("//third_party/closure_compiler/compile_js.gni") 6import("//third_party/closure_compiler/js_unit_tests.gni") 7import("//ui/file_manager/base/gn/js_test_gen_html.gni") 8 9visibility = [ 10 "//ui/file_manager/file_manager/foreground/*", 11 "//ui/file_manager/file_manager/test/*", 12] 13 14group("closure_compile") { 15 testonly = true 16 visibility += [ "//ui/file_manager:closure_compile" ] 17 deps = [ 18 ":closure_compile_module", 19 ":js_test_gen_html_type_check_auto", 20 ":test_support_type_check", 21 ] 22} 23 24js_type_check("closure_compile_module") { 25 deps = [ 26 ":actions_controller", 27 ":actions_model", 28 ":android_app_list_model", 29 ":app_state_controller", 30 ":closure_compile_externs", 31 ":column_visibility_controller", 32 ":constants", 33 ":dialog_action_controller", 34 ":dialog_type", 35 ":directory_contents", 36 ":directory_model", 37 ":directory_tree_naming_controller", 38 ":drop_effect_and_label", 39 ":elements_importer", 40 ":empty_folder_controller", 41 ":file_list_model", 42 ":file_manager", 43 ":file_manager_commands", 44 ":file_selection", 45 ":file_tasks", 46 ":file_transfer_controller", 47 ":file_watcher", 48 ":folder_shortcuts_data_model", 49 ":gear_menu_controller", 50 ":import_controller", 51 ":last_modified_controller", 52 ":launch_param", 53 ":list_thumbnail_loader", 54 ":main", 55 ":main_window_component", 56 ":metadata_box_controller", 57 ":metadata_update_controller", 58 ":metrics_start", 59 ":naming_controller", 60 ":navigation_list_model", 61 ":navigation_uma", 62 ":progress_center_item_group", 63 ":providers_model", 64 ":quick_view_controller", 65 ":quick_view_model", 66 ":quick_view_uma", 67 ":scan_controller", 68 ":search_controller", 69 ":selection_menu_controller", 70 ":sort_menu_controller", 71 ":spinner_controller", 72 ":task_controller", 73 ":task_history", 74 ":thumbnail_loader", 75 ":toolbar_controller", 76 ":web_store_utils", 77 ":webui_command_extender", 78 ] 79} 80 81js_library("closure_compile_externs") { 82 sources = [] 83 externs_list = [ 84 "$externs_path/command_line_private.js", 85 "$externs_path/metrics_private.js", 86 "//ui/file_manager/externs/background/crostini.js", 87 "//ui/file_manager/externs/background/drive_sync_handler.js", 88 "//ui/file_manager/externs/background/file_browser_background.js", 89 "//ui/file_manager/externs/background/file_browser_background_full.js", 90 "//ui/file_manager/externs/background/file_operation_manager.js", 91 "//ui/file_manager/externs/background/import_runner.js", 92 "//ui/file_manager/externs/background/media_import_handler.js", 93 "//ui/file_manager/externs/background/task_queue.js", 94 "//ui/file_manager/externs/background/duplicate_finder.js", 95 "//ui/file_manager/externs/background/media_scanner.js", 96 "//ui/file_manager/externs/background/progress_center.js", 97 "//ui/file_manager/externs/background_window.js", 98 "//ui/file_manager/externs/chrome_echo_private.js", 99 "//ui/file_manager/externs/chrome_webstore_widget_private.js", 100 "//ui/file_manager/externs/command_handler_deps.js", 101 "//ui/file_manager/externs/css_rule.js", 102 "//ui/file_manager/externs/directory_change_event.js", 103 "//ui/file_manager/externs/entries_changed_event.js", 104 "//ui/file_manager/externs/gallery_foreground.js", 105 "//ui/file_manager/externs/menu_item_update_event.js", 106 "//ui/file_manager/externs/paper_elements.js", 107 "//ui/file_manager/externs/platform.js", 108 "//ui/file_manager/externs/search_item.js", 109 ] 110} 111 112js_type_check("test_support_type_check") { 113 testonly = true 114 deps = [ 115 ":fake_android_app_list_model", 116 ":mock_actions_model", 117 ":mock_directory_model", 118 ":mock_folder_shortcut_data_model", 119 ":mock_navigation_list_model", 120 ":mock_thumbnail_loader", 121 ] 122} 123 124js_library("actions_controller") { 125 deps = [ 126 ":actions_model", 127 ":file_selection", 128 "ui:file_manager_ui", 129 "//ui/webui/resources/js:assert", 130 "//ui/webui/resources/js:cr", 131 "//ui/webui/resources/js/cr:ui", 132 "//ui/webui/resources/js/cr/ui:context_menu_handler", 133 ] 134} 135 136js_library("actions_model") { 137 deps = [ 138 ":folder_shortcuts_data_model", 139 "metadata:metadata_model", 140 "ui:files_alert_dialog", 141 "ui:list_container", 142 "//ui/file_manager/file_manager/common/js:util", 143 "//ui/file_manager/file_manager/foreground/js/ui:action_model_ui", 144 "//ui/webui/resources/js:cr", 145 ] 146 externs_list = 147 [ "//ui/file_manager/externs/background/drive_sync_handler.js" ] 148} 149 150js_library("mock_actions_model") { 151 testonly = true 152 deps = [ 153 "//ui/webui/resources/js:cr", 154 "//ui/webui/resources/js/cr:event_target", 155 ] 156} 157 158js_library("fake_file_selection_handler") { 159 testonly = true 160 deps = [ 161 "//ui/webui/resources/js:cr", 162 "//ui/webui/resources/js/cr:event_target", 163 ] 164} 165 166js_unittest("actions_model_unittest") { 167 deps = [ 168 ":actions_model", 169 "metadata:mock_metadata", 170 "//ui/file_manager/base/js:mock_chrome", 171 "//ui/file_manager/base/js:test_error_reporting", 172 "//ui/file_manager/file_manager/background/js:mock_drive_sync_handler", 173 "//ui/file_manager/file_manager/background/js:mock_volume_manager", 174 "//ui/file_manager/file_manager/foreground/js/ui:action_model_ui", 175 ] 176} 177 178js_library("fake_android_app_list_model") { 179 testonly = true 180 deps = [ ":android_app_list_model" ] 181} 182 183js_library("mock_directory_model") { 184 testonly = true 185 deps = [ 186 ":directory_contents", 187 ":directory_model", 188 "//ui/file_manager/file_manager/common/js:mock_entry", 189 "//ui/file_manager/file_manager/common/js:util", 190 ] 191} 192 193js_library("mock_folder_shortcut_data_model") { 194 testonly = true 195 deps = [ 196 ":folder_shortcuts_data_model", 197 "//ui/file_manager/file_manager/common/js:mock_entry", 198 "//ui/webui/resources/js/cr/ui:array_data_model", 199 ] 200} 201 202js_library("mock_navigation_list_model") { 203 testonly = true 204 deps = [ ":navigation_list_model" ] 205} 206 207js_library("mock_thumbnail_loader") { 208 testonly = true 209 deps = [ ":thumbnail_loader" ] 210} 211 212js_library("android_app_list_model") { 213 deps = [ "//ui/webui/resources/js/cr:event_target" ] 214} 215 216js_library("app_state_controller") { 217 deps = [ 218 ":dialog_type", 219 ":directory_model", 220 "ui:file_manager_ui", 221 ] 222} 223 224js_library("column_visibility_controller") { 225 deps = [ 226 ":directory_model", 227 "ui:file_manager_ui", 228 "//ui/file_manager/base/js:volume_manager_types", 229 ] 230} 231 232js_library("constants") { 233} 234 235js_library("dialog_action_controller") { 236 deps = [ 237 ":dialog_type", 238 ":directory_contents", 239 ":directory_model", 240 ":file_selection", 241 ":launch_param", 242 ":naming_controller", 243 "metadata:metadata_model", 244 "ui:dialog_footer", 245 "//ui/file_manager/file_manager/common/js:metrics", 246 "//ui/webui/resources/js/cr/ui:command", 247 ] 248} 249 250js_library("dialog_type") { 251} 252 253js_library("directory_contents") { 254 deps = [ 255 ":constants", 256 ":file_list_model", 257 "metadata:metadata_model", 258 "//ui/file_manager/base/js:volume_manager_types", 259 "//ui/file_manager/file_manager/common/js:async_util", 260 "//ui/file_manager/file_manager/common/js:metrics", 261 "//ui/file_manager/file_manager/common/js:util", 262 "//ui/webui/resources/js:cr", 263 "//ui/webui/resources/js/cr/ui:array_data_model", 264 ] 265} 266 267js_library("directory_model") { 268 deps = [ 269 ":directory_contents", 270 ":file_watcher", 271 "ui:file_list_selection_model", 272 "//ui/file_manager/file_manager/common/js:importer_common", 273 ] 274 externs_list = [ 275 "//ui/file_manager/externs/background/file_operation_manager.js", 276 "//ui/file_manager/externs/entries_changed_event.js", 277 ] 278} 279 280js_library("navigation_uma") { 281 deps = [ 282 ":dialog_type", 283 "//ui/file_manager/file_manager/common/js:metrics", 284 ] 285} 286 287js_library("directory_tree_naming_controller") { 288 deps = [ 289 ":directory_model", 290 "ui:directory_tree", 291 "//ui/file_manager/file_manager/common/js:util", 292 "//ui/webui/resources/js/cr/ui:dialogs", 293 ] 294} 295 296js_library("drop_effect_and_label") { 297} 298 299js_library("elements_importer") { 300} 301 302js_library("empty_folder_controller") { 303 deps = [ 304 ":directory_model", 305 ":file_list_model", 306 "ui:empty_folder", 307 ] 308} 309 310js_library("file_list_model") { 311 deps = [ 312 "metadata:metadata_model", 313 "//ui/file_manager/file_manager/common/js:file_type", 314 "//ui/file_manager/file_manager/common/js:util", 315 "//ui/webui/resources/js/cr/ui:array_data_model", 316 ] 317} 318 319js_unittest("file_list_model_unittest") { 320 deps = [ 321 ":file_list_model", 322 "//ui/webui/resources/js:webui_resource_test", 323 ] 324} 325 326js_library("file_manager") { 327 deps = [ 328 ":android_app_list_model", 329 ":app_state_controller", 330 ":column_visibility_controller", 331 ":dialog_action_controller", 332 ":dialog_type", 333 ":directory_model", 334 ":elements_importer", 335 ":empty_folder_controller", 336 ":file_selection", 337 ":file_transfer_controller", 338 ":folder_shortcuts_data_model", 339 ":gear_menu_controller", 340 ":import_controller", 341 ":last_modified_controller", 342 ":launch_param", 343 ":main_window_component", 344 ":metadata_update_controller", 345 ":naming_controller", 346 ":navigation_uma", 347 ":providers_model", 348 ":quick_view_controller", 349 ":quick_view_model", 350 ":quick_view_uma", 351 ":scan_controller", 352 ":search_controller", 353 ":selection_menu_controller", 354 ":sort_menu_controller", 355 ":spinner_controller", 356 ":task_controller", 357 ":toolbar_controller", 358 "ui:commandbutton", 359 "ui:directory_tree", 360 "ui:file_manager_ui", 361 "//ui/file_manager/base/js:filtered_volume_manager", 362 "//ui/webui/resources/js/cr/ui:list_selection_model", 363 ] 364} 365 366js_library("file_manager_commands") { 367 deps = [ 368 ":actions_controller", 369 ":dialog_type", 370 ":directory_contents", 371 ":directory_model", 372 ":directory_tree_naming_controller", 373 ":file_selection", 374 ":file_transfer_controller", 375 ":naming_controller", 376 ":providers_model", 377 ":spinner_controller", 378 ":task_controller", 379 "ui:directory_tree", 380 "ui:file_manager_ui", 381 "//ui/webui/resources/cr_elements/cr_input:cr_input", 382 ] 383 externs_list = [ "//ui/file_manager/externs/command_handler_deps.js" ] 384} 385 386js_library("file_selection") { 387 deps = [ 388 ":constants", 389 ":directory_model", 390 "metadata:metadata_model", 391 "ui:list_container", 392 "//ui/file_manager/base/js:volume_manager_types", 393 "//ui/file_manager/file_manager/common/js:file_type", 394 "//ui/file_manager/file_manager/common/js:util", 395 "//ui/webui/resources/js:assert", 396 "//ui/webui/resources/js:cr", 397 ] 398} 399 400js_library("file_tasks") { 401 deps = [ 402 ":directory_model", 403 ":naming_controller", 404 ":task_history", 405 "metadata:metadata_model", 406 "ui:file_manager_ui", 407 ] 408 externs_list = [ "//ui/file_manager/externs/background/crostini.js" ] 409} 410 411js_unittest("file_tasks_unittest") { 412 deps = [ 413 ":file_tasks", 414 "metadata:mock_metadata", 415 "//ui/file_manager/base/js:mock_chrome", 416 "//ui/file_manager/base/js:test_error_reporting", 417 "//ui/file_manager/file_manager/background/js:mock_crostini", 418 "//ui/file_manager/file_manager/common/js:mock_entry", 419 ] 420} 421 422js_library("file_transfer_controller") { 423 deps = [ 424 ":directory_model", 425 ":drop_effect_and_label", 426 ":file_selection", 427 ":webui_command_extender", 428 "metadata:metadata_model", 429 "metadata:thumbnail_model", 430 "ui:directory_tree", 431 "ui:file_manager_ui", 432 "ui:list_container", 433 "ui:progress_center_panel", 434 "//ui/file_manager/file_manager/common/js:progress_center_common", 435 ] 436 externs_list = [ "//ui/file_manager/externs/background/progress_center.js" ] 437} 438 439js_unittest("file_transfer_controller_unittest") { 440 deps = [ 441 ":fake_file_selection_handler", 442 ":file_transfer_controller", 443 "//ui/file_manager/base/js:mock_chrome", 444 "//ui/file_manager/file_manager/background/js:mock_volume_manager", 445 "//ui/file_manager/file_manager/foreground/js:mock_directory_model", 446 "//ui/file_manager/file_manager/foreground/js/metadata:mock_metadata", 447 "//ui/webui/resources/js:webui_resource_test", 448 ] 449} 450 451js_library("file_watcher") { 452 deps = [ 453 "//ui/file_manager/base/js:volume_manager_types", 454 "//ui/file_manager/file_manager/common/js:async_util", 455 "//ui/file_manager/file_manager/common/js:util", 456 "//ui/webui/resources/js:assert", 457 ] 458} 459 460js_library("folder_shortcuts_data_model") { 461 deps = [ 462 "//ui/file_manager/base/js:filtered_volume_manager", 463 "//ui/file_manager/base/js:volume_manager_types", 464 "//ui/file_manager/file_manager/common/js:async_util", 465 "//ui/file_manager/file_manager/common/js:metrics", 466 "//ui/file_manager/file_manager/common/js:util", 467 "//ui/webui/resources/js/cr:event_target", 468 ] 469} 470 471js_library("gear_menu_controller") { 472 deps = [ 473 ":directory_model", 474 ":file_manager_commands", 475 "ui:gear_menu", 476 "//ui/file_manager/file_manager/foreground/elements:files_toggle_ripple", 477 ] 478} 479 480js_library("import_controller") { 481 deps = [ 482 ":actions_controller", 483 ":dialog_type", 484 ":directory_tree_naming_controller", 485 ":file_selection", 486 ":file_transfer_controller", 487 ":naming_controller", 488 ":providers_model", 489 ":spinner_controller", 490 ":task_controller", 491 "ui:directory_tree", 492 "ui:file_manager_ui", 493 "//ui/file_manager/file_manager/common/js:importer_common", 494 ] 495 externs_list = [ 496 "//ui/file_manager/externs/background/import_runner.js", 497 "//ui/file_manager/externs/background/media_import_handler.js", 498 "//ui/file_manager/externs/background/duplicate_finder.js", 499 "//ui/file_manager/externs/background/task_queue.js", 500 "//ui/file_manager/externs/command_handler_deps.js", 501 ] 502} 503 504js_unittest("import_controller_unittest") { 505 deps = [ 506 ":import_controller", 507 "//ui/file_manager/base/js:mock_chrome", 508 "//ui/file_manager/base/js:test_error_reporting", 509 "//ui/file_manager/file_manager/background/js:mock_media_scanner", 510 "//ui/file_manager/file_manager/background/js:mock_volume_manager", 511 "//ui/file_manager/file_manager/common/js:test_importer_common", 512 ] 513} 514 515js_library("last_modified_controller") { 516 deps = [ 517 ":directory_model", 518 "ui:file_table", 519 ] 520} 521 522js_library("launch_param") { 523 deps = [ 524 ":dialog_type", 525 "//ui/file_manager/base/js:volume_manager_types", 526 ] 527} 528 529js_library("list_thumbnail_loader") { 530 deps = [ 531 ":directory_model", 532 ":file_list_model", 533 ":thumbnail_loader", 534 "metadata:thumbnail_model", 535 "//ui/file_manager/base/js:volume_manager_types", 536 ] 537} 538 539js_unittest("list_thumbnail_loader_unittest") { 540 deps = [ 541 ":list_thumbnail_loader", 542 ":mock_thumbnail_loader", 543 "//ui/file_manager/base/js:test_error_reporting", 544 "//ui/file_manager/file_manager/common/js:mock_entry", 545 ] 546} 547 548js_library("main") { 549 deps = [ 550 ":file_manager", 551 "//ui/file_manager/file_manager/common/js:files_app_entry_types", 552 "//ui/file_manager/file_manager/common/js:metrics", 553 "//ui/file_manager/file_manager/common/js:util", 554 ] 555} 556 557js_library("main_window_component") { 558 deps = [ 559 ":app_state_controller", 560 ":dialog_type", 561 ":directory_contents", 562 ":directory_model", 563 ":file_selection", 564 ":naming_controller", 565 ":task_controller", 566 "ui:file_manager_ui", 567 ] 568} 569 570js_library("metadata_box_controller") { 571 deps = [ 572 ":quick_view_model", 573 "metadata:metadata_model", 574 "ui:file_metadata_formatter", 575 "//ui/file_manager/file_manager/common/js:file_type", 576 "//ui/file_manager/file_manager/foreground/elements:files_metadata_box", 577 "//ui/file_manager/file_manager/foreground/elements:files_quick_view", 578 ] 579} 580 581js_library("metadata_update_controller") { 582 deps = [ 583 ":directory_model", 584 "metadata:metadata_model", 585 "ui:file_metadata_formatter", 586 "ui:list_container", 587 ] 588} 589 590js_library("metrics_start") { 591 deps = [ "//ui/file_manager/file_manager/common/js:metrics" ] 592} 593 594js_library("naming_controller") { 595 deps = [ 596 ":directory_contents", 597 ":directory_model", 598 ":file_selection", 599 "ui:list_container", 600 "//ui/webui/resources/js/cr/ui:dialogs", 601 ] 602} 603 604js_library("navigation_list_model") { 605 deps = [ 606 ":android_app_list_model", 607 ":folder_shortcuts_data_model", 608 "//ui/webui/resources/js/cr:event_target", 609 "//ui/webui/resources/js/cr/ui:array_data_model", 610 ] 611} 612 613js_unittest("navigation_list_model_unittest") { 614 deps = [ 615 ":fake_android_app_list_model", 616 ":mock_directory_model", 617 ":mock_folder_shortcut_data_model", 618 ":navigation_list_model", 619 "//ui/file_manager/base/js:mock_chrome", 620 "//ui/file_manager/base/js:test_error_reporting", 621 "//ui/file_manager/file_manager/background/js:mock_volume_manager", 622 ] 623} 624 625js_library("progress_center_item_group") { 626 deps = [ 627 "//ui/file_manager/file_manager/common/js:progress_center_common", 628 "//ui/file_manager/file_manager/common/js:util", 629 ] 630} 631 632js_unittest("progress_center_item_group_unittest") { 633 deps = [ 634 ":progress_center_item_group", 635 "//ui/file_manager/base/js:test_error_reporting", 636 ] 637} 638 639js_library("providers_model") { 640 deps = [ "//ui/webui/resources/js:assert" ] 641} 642 643js_unittest("providers_model_unittest") { 644 deps = [ 645 ":providers_model", 646 "//ui/file_manager/base/js:mock_chrome", 647 "//ui/file_manager/base/js:test_error_reporting", 648 "//ui/file_manager/file_manager/background/js:mock_volume_manager", 649 "//ui/webui/resources/js:load_time_data", 650 ] 651} 652 653js_library("quick_view_controller") { 654 deps = [ 655 ":dialog_type", 656 ":file_selection", 657 ":metadata_box_controller", 658 ":quick_view_model", 659 ":quick_view_uma", 660 ":task_controller", 661 "metadata:metadata_model", 662 "ui:list_container", 663 "//ui/webui/resources/js/cr/ui:list_selection_model", 664 ] 665} 666 667js_library("quick_view_model") { 668 deps = [ 669 "//ui/webui/resources/js:cr", 670 "//ui/webui/resources/js/cr:event_target", 671 ] 672} 673 674js_library("quick_view_uma") { 675 deps = [ 676 ":dialog_type", 677 ":file_tasks", 678 "//ui/file_manager/file_manager/common/js:file_type", 679 ] 680} 681 682js_library("scan_controller") { 683 deps = [ 684 ":directory_model", 685 ":file_manager_commands", 686 ":file_selection", 687 ":spinner_controller", 688 "ui:list_container", 689 ] 690} 691 692js_library("search_controller") { 693 deps = [ 694 ":directory_model", 695 ":task_controller", 696 "ui:location_line", 697 "ui:search_box", 698 ] 699} 700 701js_library("selection_menu_controller") { 702 deps = [ 703 ":directory_model", 704 ":file_manager_commands", 705 "//ui/file_manager/file_manager/foreground/elements:files_toggle_ripple", 706 ] 707} 708 709js_library("sort_menu_controller") { 710 deps = [ 711 ":file_list_model", 712 "//ui/file_manager/file_manager/foreground/elements:files_toggle_ripple", 713 ] 714} 715 716js_library("spinner_controller") { 717} 718 719js_unittest("spinner_controller_unittest") { 720 deps = [ 721 ":spinner_controller", 722 "//ui/file_manager/base/js:test_error_reporting", 723 "//ui/webui/resources/js:assert", 724 "//ui/webui/resources/js:util", 725 ] 726} 727 728js_library("task_controller") { 729 deps = [ 730 ":dialog_type", 731 ":directory_model", 732 ":file_selection", 733 ":file_tasks", 734 ":metadata_update_controller", 735 ":task_history", 736 "metadata:metadata_model", 737 "ui:file_manager_ui", 738 ] 739} 740 741js_unittest("task_controller_unittest") { 742 deps = [ 743 ":fake_file_selection_handler", 744 ":task_controller", 745 "metadata:mock_metadata", 746 "//ui/file_manager/base/js:mock_chrome", 747 "//ui/file_manager/base/js:test_error_reporting", 748 "//ui/file_manager/file_manager/background/js:mock_crostini", 749 "//ui/file_manager/file_manager/common/js:mock_entry", 750 ] 751} 752 753js_library("task_history") { 754 deps = [ "//ui/webui/resources/js/cr:event_target" ] 755} 756 757# TODO(tapted): Move this into //ui/file_manager/base. 758js_library("thumbnail_loader") { 759 visibility += [ "//ui/file_manager/gallery/*" ] 760 deps = [ 761 "//ui/file_manager/file_manager/common/js:file_type", 762 "//ui/file_manager/file_manager/common/js:util", 763 "//ui/file_manager/image_loader:image_loader_client", 764 "//ui/webui/resources/js:assert", 765 ] 766} 767 768js_unittest("thumbnail_loader_unittest") { 769 deps = [ 770 ":thumbnail_loader", 771 "//ui/file_manager/base/js:test_error_reporting", 772 "//ui/file_manager/file_manager/common/js:mock_entry", 773 ] 774} 775 776js_library("toolbar_controller") { 777 deps = [ 778 ":file_selection", 779 "ui:list_container", 780 "ui:location_line", 781 "//ui/file_manager/file_manager/common/js:util", 782 "//ui/webui/resources/js/cr/ui:command", 783 ] 784} 785 786js_library("web_store_utils") { 787 deps = [ ":constants" ] 788} 789 790js_library("webui_command_extender") { 791 deps = [ 792 "//ui/webui/resources/js:cr", 793 "//ui/webui/resources/js/cr/ui:command", 794 ] 795} 796 797js_test_gen_html("js_test_gen_html") { 798 deps = [ 799 ":actions_model_unittest", 800 ":file_list_model_unittest", 801 ":file_tasks_unittest", 802 ":file_transfer_controller_unittest", 803 ":import_controller_unittest", 804 ":list_thumbnail_loader_unittest", 805 ":navigation_list_model_unittest", 806 ":progress_center_item_group_unittest", 807 ":providers_model_unittest", 808 ":spinner_controller_unittest", 809 ":task_controller_unittest", 810 ":thumbnail_loader_unittest", 811 ] 812} 813