1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/status/power_menu_button.h" 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/cros/cros_in_process_browser_test.h" 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/cros/mock_power_library.h" 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/frame/browser_view.h" 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/status/status_area_view.h" 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/view_ids.h" 124a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "chrome/browser/ui/browser.h" 134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "chrome/browser/ui/browser_window.h" 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "grit/theme_resources.h" 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace chromeos { 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing ::testing::AnyNumber; 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing ::testing::InvokeWithoutArgs; 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing ::testing::Return; 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing ::testing::ReturnRef; 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochusing ::testing::_; 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass PowerMenuButtonTest : public CrosInProcessBrowserTest { 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch protected: 253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick MockPowerLibrary *mock_power_library_; 263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick PowerMenuButtonTest() : CrosInProcessBrowserTest(), 283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick mock_power_library_(NULL) { 293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick } 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void SetUpInProcessBrowserTestFixture() { 323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick cros_mock_->InitStatusAreaMocks(); 333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick cros_mock_->SetStatusAreaMocksExpectations(); 343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick mock_power_library_ = cros_mock_->mock_power_library(); 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch PowerMenuButton* GetPowerMenuButton() { 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch BrowserView* view = static_cast<BrowserView*>(browser()->window()); 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch PowerMenuButton* power = static_cast<StatusAreaView*>(view-> 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch GetViewByID(VIEW_ID_STATUS_AREA))->power_view(); 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return power; 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch int CallPowerChangedAndGetIconId() { 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch PowerMenuButton* power = GetPowerMenuButton(); 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch power->PowerChanged(mock_power_library_); 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return power->icon_id(); 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochIN_PROC_BROWSER_TEST_F(PowerMenuButtonTest, BatteryMissingTest) { 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, battery_is_present()) 533345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(false))) // no battery 543345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 553345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, battery_percentage()) 563345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(42.0))) 573345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 583345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, battery_fully_charged()) 593345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(false))) 603345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 613345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, line_power_on()) 623345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(false))) 633345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 643345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, battery_time_to_empty()) 653345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(base::TimeDelta::FromMinutes(42)))) 663345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 673345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, battery_time_to_full()) 683345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(base::TimeDelta::FromMinutes(24)))) 693345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(IDR_STATUSBAR_BATTERY_MISSING, CallPowerChangedAndGetIconId()); 71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 72c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 73c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochIN_PROC_BROWSER_TEST_F(PowerMenuButtonTest, BatteryChargedTest) { 74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, battery_is_present()) 753345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(true))) 763345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 773345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, battery_percentage()) 783345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(42.0))) 793345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 80c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, battery_fully_charged()) 813345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(true))) // fully charged 823345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 83c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, line_power_on()) 843345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(true))) // plugged in 853345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 863345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, battery_time_to_empty()) 873345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(base::TimeDelta::FromMinutes(42)))) 883345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 893345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, battery_time_to_full()) 903345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(base::TimeDelta::FromMinutes(0)))) 913345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 92c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(IDR_STATUSBAR_BATTERY_CHARGED, CallPowerChangedAndGetIconId()); 93c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 94c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 95c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochIN_PROC_BROWSER_TEST_F(PowerMenuButtonTest, BatteryChargingTest) { 96ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const int NUM_TIMES = 19; 97c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, battery_is_present()) 983345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .Times(NUM_TIMES) 993345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillRepeatedly((Return(true))) 1003345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 101c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, battery_fully_charged()) 1023345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .Times(NUM_TIMES) 1033345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillRepeatedly((Return(false))) 1043345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 105c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, line_power_on()) 1063345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .Times(NUM_TIMES) 1073345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillRepeatedly((Return(true))) // plugged in 1083345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 1093345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, battery_time_to_empty()) 1103345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .Times(NUM_TIMES) 1113345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillRepeatedly((Return(base::TimeDelta::FromMinutes(42)))) 1123345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 1133345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, battery_time_to_full()) 1143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .Times(NUM_TIMES) 1153345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillRepeatedly((Return(base::TimeDelta::FromMinutes(24)))) 1163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 117c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 118513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch // Test the 16 battery charging states. 119c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // NOTE: Use an array rather than just calculating a resource number to avoid 120c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // creating implicit ordering dependencies on the resource values. 121c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch static const int kChargingImages[] = { 122c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_1, 123c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_2, 124c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_3, 125c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_4, 126c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_5, 127c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_6, 128c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_7, 129c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_8, 130c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_9, 131c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_10, 132c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_11, 133c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_CHARGING_12, 134513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch IDR_STATUSBAR_BATTERY_CHARGING_13, 135513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch IDR_STATUSBAR_BATTERY_CHARGING_14, 136513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch IDR_STATUSBAR_BATTERY_CHARGING_15, 137513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch IDR_STATUSBAR_BATTERY_CHARGING_16, 138ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen IDR_STATUSBAR_BATTERY_CHARGING_17, 139ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen IDR_STATUSBAR_BATTERY_CHARGING_18, 140ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen IDR_STATUSBAR_BATTERY_CHARGING_19, 141c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 142c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch size_t id = 0; 143ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen for (float percent = 5.0; percent < 100.0; percent += 5.0) { 144c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, battery_percentage()) 1453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(percent))) 1463345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 147c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_LT(id, arraysize(kChargingImages)); 148c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(kChargingImages[id], CallPowerChangedAndGetIconId()); 149c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch id++; 150c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 151c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 152c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 153c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochIN_PROC_BROWSER_TEST_F(PowerMenuButtonTest, BatteryDischargingTest) { 154ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const int NUM_TIMES = 19; 155c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, battery_is_present()) 1563345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .Times(NUM_TIMES) 1573345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillRepeatedly((Return(true))) 1583345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 159c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, battery_fully_charged()) 1603345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .Times(NUM_TIMES) 1613345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillRepeatedly((Return(false))) 1623345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 163c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, line_power_on()) 1643345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .Times(NUM_TIMES) 1653345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillRepeatedly((Return(false))) 1663345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 1673345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, battery_time_to_empty()) 1683345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .Times(NUM_TIMES) 1693345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillRepeatedly((Return(base::TimeDelta::FromMinutes(42)))) 1703345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 1713345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_CALL(*mock_power_library_, battery_time_to_full()) 1723345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .Times(NUM_TIMES) 1733345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillRepeatedly((Return(base::TimeDelta::FromMinutes(24)))) 1743345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 175c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 176513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch // Test the 16 battery discharing states. 177c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // NOTE: Use an array rather than just calculating a resource number to avoid 178c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // creating implicit ordering dependencies on the resource values. 179c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch static const int kDischargingImages[] = { 180c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_1, 181c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_2, 182c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_3, 183c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_4, 184c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_5, 185c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_6, 186c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_7, 187c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_8, 188c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_9, 189c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_10, 190c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_11, 191c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_12, 192513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_13, 193513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_14, 194513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_15, 195513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch IDR_STATUSBAR_BATTERY_DISCHARGING_16, 196ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen IDR_STATUSBAR_BATTERY_DISCHARGING_17, 197ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen IDR_STATUSBAR_BATTERY_DISCHARGING_18, 198ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen IDR_STATUSBAR_BATTERY_DISCHARGING_19, 199c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch }; 200c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch size_t id = 0; 201ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen for (float percent = 5.0; percent < 100.0; percent += 5.0) { 202c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_CALL(*mock_power_library_, battery_percentage()) 2033345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .WillOnce((Return(percent))) 2043345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick .RetiresOnSaturation(); 205c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_LT(id, arraysize(kDischargingImages)); 206c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(kDischargingImages[id], CallPowerChangedAndGetIconId()); 207c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch id++; 208c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 209c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 210c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 211c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace chromeos 212