Home | History | Annotate | Download | only in media_security
      1 // Copyright 2014 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 #include "ash/system/tray/media_security/multi_profile_media_tray_item.h"
      6 
      7 #include "ash/ash_view_ids.h"
      8 #include "ash/shell.h"
      9 #include "ash/system/status_area_widget.h"
     10 #include "ash/system/tray/system_tray.h"
     11 #include "ash/system/tray/system_tray_bubble.h"
     12 #include "ash/system/tray/tray_item_view.h"
     13 #include "ash/test/ash_test_base.h"
     14 #include "ash/test/test_session_state_delegate.h"
     15 #include "ash/test/test_shell_delegate.h"
     16 #include "ui/views/bubble/tray_bubble_view.h"
     17 
     18 namespace ash {
     19 
     20 typedef test::AshTestBase MultiProfileMediaTrayItemTest;
     21 
     22 TEST_F(MultiProfileMediaTrayItemTest, NotifyMediaCaptureChange) {
     23   TrayItemView::DisableAnimationsForTest();
     24   test::TestShellDelegate* shell_delegate =
     25       static_cast<test::TestShellDelegate*>(Shell::GetInstance()->delegate());
     26   test::TestSessionStateDelegate* session_state_delegate =
     27       static_cast<test::TestSessionStateDelegate*>(
     28           Shell::GetInstance()->session_state_delegate());
     29   session_state_delegate->set_logged_in_users(2);
     30 
     31   SystemTray* system_tray = Shell::GetInstance()->GetPrimarySystemTray();
     32   system_tray->ShowDefaultView(BUBBLE_CREATE_NEW);
     33   views::View* in_user_view =
     34       system_tray->GetSystemBubble()->bubble_view()->GetViewByID(
     35           VIEW_ID_USER_VIEW_MEDIA_INDICATOR);
     36 
     37   StatusAreaWidget* widget = system_tray->status_area_widget();
     38   EXPECT_TRUE(widget->GetRootView()->visible());
     39   views::View* tray_view =
     40       widget->GetRootView()->GetViewByID(VIEW_ID_MEDIA_TRAY_VIEW);
     41 
     42   EXPECT_FALSE(tray_view->visible());
     43   EXPECT_FALSE(in_user_view->visible());
     44 
     45   shell_delegate->SetMediaCaptureState(MEDIA_CAPTURE_AUDIO);
     46   EXPECT_TRUE(tray_view->visible());
     47   EXPECT_TRUE(in_user_view->visible());
     48 
     49   shell_delegate->SetMediaCaptureState(MEDIA_CAPTURE_AUDIO_VIDEO);
     50   EXPECT_TRUE(tray_view->visible());
     51   EXPECT_TRUE(in_user_view->visible());
     52 
     53   shell_delegate->SetMediaCaptureState(MEDIA_CAPTURE_NONE);
     54   EXPECT_FALSE(tray_view->visible());
     55   EXPECT_FALSE(in_user_view->visible());
     56 }
     57 
     58 }  // namespace ash
     59