Home | History | Annotate | Download | only in test
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef ASH_TEST_TEST_LAUNCHER_DELEGATE_H_
      6 #define ASH_TEST_TEST_LAUNCHER_DELEGATE_H_
      7 
      8 #include <map>
      9 #include <set>
     10 
     11 #include "ash/launcher/launcher_delegate.h"
     12 #include "base/compiler_specific.h"
     13 #include "ui/aura/window_observer.h"
     14 
     15 namespace ash {
     16 
     17 class LauncherModel;
     18 
     19 namespace test {
     20 
     21 // Test implementation of LauncherDelegate.
     22 // Tests may create icons for windows by calling AddLauncherItem
     23 class TestLauncherDelegate : public LauncherDelegate,
     24                              public aura::WindowObserver {
     25  public:
     26   explicit TestLauncherDelegate(LauncherModel* model);
     27   virtual ~TestLauncherDelegate();
     28 
     29   void AddLauncherItem(aura::Window* window);
     30   void AddLauncherItem(aura::Window* window, LauncherItemStatus status);
     31   void RemoveLauncherItemForWindow(aura::Window* window);
     32 
     33   static TestLauncherDelegate* instance() { return instance_; }
     34 
     35   // WindowObserver implementation
     36   virtual void OnWindowDestroying(aura::Window* window) OVERRIDE;
     37   virtual void OnWindowHierarchyChanging(
     38       const HierarchyChangeParams& params) OVERRIDE;
     39 
     40   // LauncherDelegate implementation.
     41   virtual void ItemSelected(const LauncherItem& item,
     42                            const ui::Event& event) OVERRIDE;
     43   virtual base::string16 GetTitle(const LauncherItem& item) OVERRIDE;
     44   virtual ui::MenuModel* CreateContextMenu(const LauncherItem& item,
     45                                            aura::RootWindow* root) OVERRIDE;
     46   virtual ash::LauncherMenuModel* CreateApplicationMenu(
     47       const LauncherItem& item,
     48       int event_flags) OVERRIDE;
     49   virtual ash::LauncherID GetIDByWindow(aura::Window* window) OVERRIDE;
     50   virtual bool IsDraggable(const ash::LauncherItem& item) OVERRIDE;
     51   virtual bool ShouldShowTooltip(const LauncherItem& item) OVERRIDE;
     52   virtual void OnLauncherCreated(Launcher* launcher) OVERRIDE;
     53   virtual void OnLauncherDestroyed(Launcher* launcher) OVERRIDE;
     54   virtual bool IsPerAppLauncher() OVERRIDE;
     55   virtual LauncherID GetLauncherIDForAppID(const std::string& app_id) OVERRIDE;
     56   virtual void PinAppWithID(const std::string& app_id) OVERRIDE;
     57   virtual bool IsAppPinned(const std::string& app_id) OVERRIDE;
     58   virtual void UnpinAppsWithID(const std::string& app_id) OVERRIDE;
     59 
     60  private:
     61   typedef std::map<aura::Window*, ash::LauncherID> WindowToID;
     62   typedef std::set<aura::Window*> ObservedWindows;
     63 
     64   static TestLauncherDelegate* instance_;
     65 
     66   aura::Window* GetWindowByID(ash::LauncherID id);
     67 
     68   LauncherModel* model_;
     69 
     70   // Maps from window to the id we gave it.
     71   WindowToID window_to_id_;
     72 
     73   DISALLOW_COPY_AND_ASSIGN(TestLauncherDelegate);
     74 };
     75 
     76 }  // namespace test
     77 }  // namespace ash
     78 
     79 #endif  // ASH_TEST_TEST_LAUNCHER_DELEGATE_H_
     80