| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/views/corewm/tooltip_controller.h" | 5 #include "ui/views/corewm/tooltip_controller.h" |
| 6 | 6 |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "ui/aura/client/cursor_client.h" | 8 #include "ui/aura/client/cursor_client.h" |
| 9 #include "ui/aura/client/screen_position_client.h" | 9 #include "ui/aura/client/screen_position_client.h" |
| 10 #include "ui/aura/client/tooltip_client.h" | 10 #include "ui/aura/client/tooltip_client.h" |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 scoped_ptr<TooltipController> controller_; | 128 scoped_ptr<TooltipController> controller_; |
| 129 #if defined(OS_WIN) | 129 #if defined(OS_WIN) |
| 130 ui::ScopedOleInitializer ole_initializer_; | 130 ui::ScopedOleInitializer ole_initializer_; |
| 131 #endif | 131 #endif |
| 132 | 132 |
| 133 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest); | 133 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest); |
| 134 }; | 134 }; |
| 135 | 135 |
| 136 TEST_F(TooltipControllerTest, ViewTooltip) { | 136 TEST_F(TooltipControllerTest, ViewTooltip) { |
| 137 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 137 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 138 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 138 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 139 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 139 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 140 generator_->MoveMouseToCenterOf(GetWindow()); | 140 generator_->MoveMouseToCenterOf(GetWindow()); |
| 141 | 141 |
| 142 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( | 142 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( |
| 143 generator_->current_location())); | 143 generator_->current_location())); |
| 144 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 144 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 145 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 145 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 146 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 146 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 147 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 147 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 148 | 148 |
| 149 // Fire tooltip timer so tooltip becomes visible. | 149 // Fire tooltip timer so tooltip becomes visible. |
| 150 helper_->FireTooltipTimer(); | 150 helper_->FireTooltipTimer(); |
| 151 | 151 |
| 152 EXPECT_TRUE(helper_->IsTooltipVisible()); | 152 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 153 generator_->MoveMouseBy(1, 0); | 153 generator_->MoveMouseBy(1, 0); |
| 154 | 154 |
| 155 EXPECT_TRUE(helper_->IsTooltipVisible()); | 155 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 156 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 156 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 157 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 157 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 158 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 158 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 159 } | 159 } |
| 160 | 160 |
| 161 TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { | 161 TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { |
| 162 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 162 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 163 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 163 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 164 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 164 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 165 | 165 |
| 166 PrepareSecondView(); | 166 PrepareSecondView(); |
| 167 aura::Window* window = GetWindow(); | 167 aura::Window* window = GetWindow(); |
| 168 aura::Window* root_window = GetRootWindow(); | 168 aura::Window* root_window = GetRootWindow(); |
| 169 | 169 |
| 170 // Fire tooltip timer so tooltip becomes visible. | 170 // Fire tooltip timer so tooltip becomes visible. |
| 171 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 171 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
| 172 helper_->FireTooltipTimer(); | 172 helper_->FireTooltipTimer(); |
| 173 EXPECT_TRUE(helper_->IsTooltipVisible()); | 173 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 174 for (int i = 0; i < 49; ++i) { | 174 for (int i = 0; i < 49; ++i) { |
| 175 generator_->MoveMouseBy(1, 0); | 175 generator_->MoveMouseBy(1, 0); |
| 176 EXPECT_TRUE(helper_->IsTooltipVisible()); | 176 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 177 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( | 177 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( |
| 178 generator_->current_location())); | 178 generator_->current_location())); |
| 179 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 179 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 180 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 180 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 181 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 181 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 182 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 182 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 183 } | 183 } |
| 184 for (int i = 0; i < 49; ++i) { | 184 for (int i = 0; i < 49; ++i) { |
| 185 generator_->MoveMouseBy(1, 0); | 185 generator_->MoveMouseBy(1, 0); |
| 186 EXPECT_FALSE(helper_->IsTooltipVisible()); | 186 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 187 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( | 187 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( |
| 188 generator_->current_location())); | 188 generator_->current_location())); |
| 189 string16 expected_tooltip; // = "" | 189 base::string16 expected_tooltip; // = "" |
| 190 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 190 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 191 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 191 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 192 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 192 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 193 } | 193 } |
| 194 } | 194 } |
| 195 | 195 |
| 196 TEST_F(TooltipControllerTest, EnableOrDisableTooltips) { | 196 TEST_F(TooltipControllerTest, EnableOrDisableTooltips) { |
| 197 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 197 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 198 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 198 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 199 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 199 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 200 | 200 |
| 201 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); | 201 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); |
| 202 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 202 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 203 | 203 |
| 204 // Fire tooltip timer so tooltip becomes visible. | 204 // Fire tooltip timer so tooltip becomes visible. |
| 205 helper_->FireTooltipTimer(); | 205 helper_->FireTooltipTimer(); |
| 206 EXPECT_TRUE(helper_->IsTooltipVisible()); | 206 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 207 | 207 |
| 208 // Disable tooltips and check again. | 208 // Disable tooltips and check again. |
| 209 helper_->controller()->SetTooltipsEnabled(false); | 209 helper_->controller()->SetTooltipsEnabled(false); |
| 210 EXPECT_FALSE(helper_->IsTooltipVisible()); | 210 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 211 helper_->FireTooltipTimer(); | 211 helper_->FireTooltipTimer(); |
| 212 EXPECT_FALSE(helper_->IsTooltipVisible()); | 212 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 213 | 213 |
| 214 // Enable tooltips back and check again. | 214 // Enable tooltips back and check again. |
| 215 helper_->controller()->SetTooltipsEnabled(true); | 215 helper_->controller()->SetTooltipsEnabled(true); |
| 216 EXPECT_FALSE(helper_->IsTooltipVisible()); | 216 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 217 helper_->FireTooltipTimer(); | 217 helper_->FireTooltipTimer(); |
| 218 EXPECT_TRUE(helper_->IsTooltipVisible()); | 218 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 219 } | 219 } |
| 220 | 220 |
| 221 // Verifies tooltip isn't shown if tooltip text consists entirely of whitespace. | 221 // Verifies tooltip isn't shown if tooltip text consists entirely of whitespace. |
| 222 TEST_F(TooltipControllerTest, DontShowEmptyTooltips) { | 222 TEST_F(TooltipControllerTest, DontShowEmptyTooltips) { |
| 223 view_->set_tooltip_text(ASCIIToUTF16(" ")); | 223 view_->set_tooltip_text(ASCIIToUTF16(" ")); |
| 224 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 224 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 225 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 225 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 226 | 226 |
| 227 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); | 227 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); |
| 228 | 228 |
| 229 helper_->FireTooltipTimer(); | 229 helper_->FireTooltipTimer(); |
| 230 EXPECT_FALSE(helper_->IsTooltipVisible()); | 230 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 231 } | 231 } |
| 232 | 232 |
| 233 TEST_F(TooltipControllerTest, TooltipHidesOnKeyPressAndStaysHiddenUntilChange) { | 233 TEST_F(TooltipControllerTest, TooltipHidesOnKeyPressAndStaysHiddenUntilChange) { |
| 234 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); | 234 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); |
| 235 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 235 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 236 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 236 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 237 | 237 |
| 238 TooltipTestView* view2 = PrepareSecondView(); | 238 TooltipTestView* view2 = PrepareSecondView(); |
| 239 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); | 239 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); |
| 240 | 240 |
| 241 aura::Window* window = GetWindow(); | 241 aura::Window* window = GetWindow(); |
| 242 | 242 |
| 243 // Fire tooltip timer so tooltip becomes visible. | 243 // Fire tooltip timer so tooltip becomes visible. |
| 244 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 244 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
| 245 helper_->FireTooltipTimer(); | 245 helper_->FireTooltipTimer(); |
| 246 EXPECT_TRUE(helper_->IsTooltipVisible()); | 246 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 247 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 247 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
| 248 | 248 |
| 249 generator_->PressKey(ui::VKEY_1, 0); | 249 generator_->PressKey(ui::VKEY_1, 0); |
| 250 EXPECT_FALSE(helper_->IsTooltipVisible()); | 250 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 251 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | 251 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); |
| 252 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 252 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
| 253 | 253 |
| 254 // Moving the mouse inside |view1| should not change the state of the tooltip | 254 // Moving the mouse inside |view1| should not change the state of the tooltip |
| 255 // or the timers. | 255 // or the timers. |
| 256 for (int i = 0; i < 49; i++) { | 256 for (int i = 0; i < 49; i++) { |
| 257 generator_->MoveMouseBy(1, 0); | 257 generator_->MoveMouseBy(1, 0); |
| 258 EXPECT_FALSE(helper_->IsTooltipVisible()); | 258 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 259 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | 259 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); |
| 260 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 260 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
| 261 EXPECT_EQ(window, | 261 EXPECT_EQ(window, |
| 262 GetRootWindow()->GetEventHandlerForPoint( | 262 GetRootWindow()->GetEventHandlerForPoint( |
| 263 generator_->current_location())); | 263 generator_->current_location())); |
| 264 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); | 264 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); |
| 265 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 265 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 266 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 266 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 267 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 267 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 268 } | 268 } |
| 269 | 269 |
| 270 // Now we move the mouse on to |view2|. It should re-start the tooltip timer. | 270 // Now we move the mouse on to |view2|. It should re-start the tooltip timer. |
| 271 generator_->MoveMouseBy(1, 0); | 271 generator_->MoveMouseBy(1, 0); |
| 272 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); | 272 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); |
| 273 helper_->FireTooltipTimer(); | 273 helper_->FireTooltipTimer(); |
| 274 EXPECT_TRUE(helper_->IsTooltipVisible()); | 274 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 275 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 275 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
| 276 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); | 276 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); |
| 277 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 277 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 278 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 278 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 279 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 279 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 280 } | 280 } |
| 281 | 281 |
| 282 TEST_F(TooltipControllerTest, TooltipHidesOnTimeoutAndStaysHiddenUntilChange) { | 282 TEST_F(TooltipControllerTest, TooltipHidesOnTimeoutAndStaysHiddenUntilChange) { |
| 283 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); | 283 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); |
| 284 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 284 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 285 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 285 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 286 | 286 |
| 287 TooltipTestView* view2 = PrepareSecondView(); | 287 TooltipTestView* view2 = PrepareSecondView(); |
| 288 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); | 288 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); |
| 289 | 289 |
| 290 aura::Window* window = GetWindow(); | 290 aura::Window* window = GetWindow(); |
| 291 | 291 |
| 292 // Fire tooltip timer so tooltip becomes visible. | 292 // Fire tooltip timer so tooltip becomes visible. |
| 293 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 293 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
| 294 helper_->FireTooltipTimer(); | 294 helper_->FireTooltipTimer(); |
| 295 EXPECT_TRUE(helper_->IsTooltipVisible()); | 295 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 296 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 296 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
| 297 | 297 |
| 298 helper_->FireTooltipShownTimer(); | 298 helper_->FireTooltipShownTimer(); |
| 299 EXPECT_FALSE(helper_->IsTooltipVisible()); | 299 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 300 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | 300 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); |
| 301 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 301 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
| 302 | 302 |
| 303 // Moving the mouse inside |view1| should not change the state of the tooltip | 303 // Moving the mouse inside |view1| should not change the state of the tooltip |
| 304 // or the timers. | 304 // or the timers. |
| 305 for (int i = 0; i < 49; ++i) { | 305 for (int i = 0; i < 49; ++i) { |
| 306 generator_->MoveMouseBy(1, 0); | 306 generator_->MoveMouseBy(1, 0); |
| 307 EXPECT_FALSE(helper_->IsTooltipVisible()); | 307 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 308 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | 308 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); |
| 309 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 309 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
| 310 EXPECT_EQ(window, GetRootWindow()->GetEventHandlerForPoint( | 310 EXPECT_EQ(window, GetRootWindow()->GetEventHandlerForPoint( |
| 311 generator_->current_location())); | 311 generator_->current_location())); |
| 312 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); | 312 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); |
| 313 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 313 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 314 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 314 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 315 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 315 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 316 } | 316 } |
| 317 | 317 |
| 318 // Now we move the mouse on to |view2|. It should re-start the tooltip timer. | 318 // Now we move the mouse on to |view2|. It should re-start the tooltip timer. |
| 319 generator_->MoveMouseBy(1, 0); | 319 generator_->MoveMouseBy(1, 0); |
| 320 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); | 320 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); |
| 321 helper_->FireTooltipTimer(); | 321 helper_->FireTooltipTimer(); |
| 322 EXPECT_TRUE(helper_->IsTooltipVisible()); | 322 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 323 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 323 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
| 324 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); | 324 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); |
| 325 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 325 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 326 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 326 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 327 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 327 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 328 } | 328 } |
| 329 | 329 |
| 330 // Verifies a mouse exit event hides the tooltips. | 330 // Verifies a mouse exit event hides the tooltips. |
| 331 TEST_F(TooltipControllerTest, HideOnExit) { | 331 TEST_F(TooltipControllerTest, HideOnExit) { |
| 332 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 332 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 333 generator_->MoveMouseToCenterOf(GetWindow()); | 333 generator_->MoveMouseToCenterOf(GetWindow()); |
| 334 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 334 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 335 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 335 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 336 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 336 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 337 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 337 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 338 | 338 |
| 339 // Fire tooltip timer so tooltip becomes visible. | 339 // Fire tooltip timer so tooltip becomes visible. |
| 340 helper_->FireTooltipTimer(); | 340 helper_->FireTooltipTimer(); |
| 341 | 341 |
| 342 EXPECT_TRUE(helper_->IsTooltipVisible()); | 342 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 343 generator_->SendMouseExit(); | 343 generator_->SendMouseExit(); |
| 344 EXPECT_FALSE(helper_->IsTooltipVisible()); | 344 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 345 } | 345 } |
| 346 | 346 |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 452 scoped_ptr<gfx::Screen> desktop_screen_; | 452 scoped_ptr<gfx::Screen> desktop_screen_; |
| 453 | 453 |
| 454 DISALLOW_COPY_AND_ASSIGN(TooltipControllerCaptureTest); | 454 DISALLOW_COPY_AND_ASSIGN(TooltipControllerCaptureTest); |
| 455 }; | 455 }; |
| 456 | 456 |
| 457 // Verifies when capture is released the TooltipController resets state. | 457 // Verifies when capture is released the TooltipController resets state. |
| 458 TEST_F(TooltipControllerCaptureTest, CloseOnCaptureLost) { | 458 TEST_F(TooltipControllerCaptureTest, CloseOnCaptureLost) { |
| 459 view_->GetWidget()->SetCapture(view_); | 459 view_->GetWidget()->SetCapture(view_); |
| 460 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 460 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 461 generator_->MoveMouseToCenterOf(GetWindow()); | 461 generator_->MoveMouseToCenterOf(GetWindow()); |
| 462 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 462 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 463 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 463 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 464 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 464 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 465 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 465 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 466 | 466 |
| 467 // Fire tooltip timer so tooltip becomes visible. | 467 // Fire tooltip timer so tooltip becomes visible. |
| 468 helper_->FireTooltipTimer(); | 468 helper_->FireTooltipTimer(); |
| 469 | 469 |
| 470 EXPECT_TRUE(helper_->IsTooltipVisible()); | 470 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 471 view_->GetWidget()->ReleaseCapture(); | 471 view_->GetWidget()->ReleaseCapture(); |
| 472 EXPECT_FALSE(helper_->IsTooltipVisible()); | 472 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 473 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL); | 473 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL); |
| 474 } | 474 } |
| 475 | 475 |
| 476 // Disabled on linux as DesktopScreenX11::GetWindowAtScreenPoint() doesn't | 476 // Disabled on linux as DesktopScreenX11::GetWindowAtScreenPoint() doesn't |
| 477 // consider z-order. | 477 // consider z-order. |
| 478 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 478 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| 479 #define MAYBE_Capture DISABLED_Capture | 479 #define MAYBE_Capture DISABLED_Capture |
| 480 #else | 480 #else |
| 481 #define MAYBE_Capture Capture | 481 #define MAYBE_Capture Capture |
| 482 #endif | 482 #endif |
| 483 // Verifies the correct window is found for tooltips when there is a capture. | 483 // Verifies the correct window is found for tooltips when there is a capture. |
| 484 TEST_F(TooltipControllerCaptureTest, MAYBE_Capture) { | 484 TEST_F(TooltipControllerCaptureTest, MAYBE_Capture) { |
| 485 const string16 tooltip_text(ASCIIToUTF16("1")); | 485 const base::string16 tooltip_text(ASCIIToUTF16("1")); |
| 486 const string16 tooltip_text2(ASCIIToUTF16("2")); | 486 const base::string16 tooltip_text2(ASCIIToUTF16("2")); |
| 487 | 487 |
| 488 widget_->SetBounds(gfx::Rect(0, 0, 200, 200)); | 488 widget_->SetBounds(gfx::Rect(0, 0, 200, 200)); |
| 489 view_->set_tooltip_text(tooltip_text); | 489 view_->set_tooltip_text(tooltip_text); |
| 490 | 490 |
| 491 scoped_ptr<views::Widget> widget2(CreateWidget(root_window())); | 491 scoped_ptr<views::Widget> widget2(CreateWidget(root_window())); |
| 492 widget2->SetContentsView(new View); | 492 widget2->SetContentsView(new View); |
| 493 TooltipTestView* view2 = new TooltipTestView; | 493 TooltipTestView* view2 = new TooltipTestView; |
| 494 widget2->GetContentsView()->AddChildView(view2); | 494 widget2->GetContentsView()->AddChildView(view2); |
| 495 view2->set_tooltip_text(tooltip_text2); | 495 view2->set_tooltip_text(tooltip_text2); |
| 496 widget2->SetBounds(gfx::Rect(0, 0, 200, 200)); | 496 widget2->SetBounds(gfx::Rect(0, 0, 200, 200)); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 528 widget2.reset(); | 528 widget2.reset(); |
| 529 } | 529 } |
| 530 | 530 |
| 531 #if !defined(OS_CHROMEOS) | 531 #if !defined(OS_CHROMEOS) |
| 532 // This test creates two top level windows and verifies that the tooltip | 532 // This test creates two top level windows and verifies that the tooltip |
| 533 // displays correctly when mouse moves are dispatched to these windows. | 533 // displays correctly when mouse moves are dispatched to these windows. |
| 534 // Additionally it also verifies that the tooltip is reparented to the new | 534 // Additionally it also verifies that the tooltip is reparented to the new |
| 535 // window when mouse moves are dispatched to it. | 535 // window when mouse moves are dispatched to it. |
| 536 TEST_F(TooltipControllerTest, TooltipsInMultipleRootWindows) { | 536 TEST_F(TooltipControllerTest, TooltipsInMultipleRootWindows) { |
| 537 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text For RootWindow1")); | 537 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text For RootWindow1")); |
| 538 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 538 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 539 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 539 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 540 | 540 |
| 541 aura::Window* window = GetWindow(); | 541 aura::Window* window = GetWindow(); |
| 542 aura::Window* root_window = GetRootWindow(); | 542 aura::Window* root_window = GetRootWindow(); |
| 543 | 543 |
| 544 // Fire tooltip timer so tooltip becomes visible. | 544 // Fire tooltip timer so tooltip becomes visible. |
| 545 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 545 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
| 546 helper_->FireTooltipTimer(); | 546 helper_->FireTooltipTimer(); |
| 547 EXPECT_TRUE(helper_->IsTooltipVisible()); | 547 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 548 for (int i = 0; i < 49; ++i) { | 548 for (int i = 0; i < 49; ++i) { |
| 549 generator_->MoveMouseBy(1, 0); | 549 generator_->MoveMouseBy(1, 0); |
| 550 EXPECT_TRUE(helper_->IsTooltipVisible()); | 550 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 551 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( | 551 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( |
| 552 generator_->current_location())); | 552 generator_->current_location())); |
| 553 string16 expected_tooltip = | 553 base::string16 expected_tooltip = |
| 554 ASCIIToUTF16("Tooltip Text For RootWindow1"); | 554 ASCIIToUTF16("Tooltip Text For RootWindow1"); |
| 555 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 555 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 556 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 556 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 557 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 557 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 558 } | 558 } |
| 559 | 559 |
| 560 views::Widget* widget2 = CreateWidget(NULL); | 560 views::Widget* widget2 = CreateWidget(NULL); |
| 561 widget2->SetContentsView(new View); | 561 widget2->SetContentsView(new View); |
| 562 TooltipTestView* view2 = new TooltipTestView; | 562 TooltipTestView* view2 = new TooltipTestView; |
| 563 widget2->GetContentsView()->AddChildView(view2); | 563 widget2->GetContentsView()->AddChildView(view2); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 576 helper_->FireTooltipTimer(); | 576 helper_->FireTooltipTimer(); |
| 577 | 577 |
| 578 EXPECT_NE(root_window, root_window2); | 578 EXPECT_NE(root_window, root_window2); |
| 579 EXPECT_NE(window, window2); | 579 EXPECT_NE(window, window2); |
| 580 | 580 |
| 581 for (int i = 0; i < 49; ++i) { | 581 for (int i = 0; i < 49; ++i) { |
| 582 generator_->MoveMouseBy(1, 0); | 582 generator_->MoveMouseBy(1, 0); |
| 583 EXPECT_TRUE(helper_->IsTooltipVisible()); | 583 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 584 EXPECT_EQ(window2, root_window2->GetEventHandlerForPoint( | 584 EXPECT_EQ(window2, root_window2->GetEventHandlerForPoint( |
| 585 generator_->current_location())); | 585 generator_->current_location())); |
| 586 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text For RootWindow2"); | 586 base::string16 expected_tooltip = |
| 587 ASCIIToUTF16("Tooltip Text For RootWindow2"); |
| 587 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window2)); | 588 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window2)); |
| 588 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 589 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 589 EXPECT_EQ(window2, helper_->GetTooltipWindow()); | 590 EXPECT_EQ(window2, helper_->GetTooltipWindow()); |
| 590 } | 591 } |
| 591 | 592 |
| 592 bool tooltip_reparented = false; | 593 bool tooltip_reparented = false; |
| 593 for (size_t i = 0; i < root_window2->children().size(); ++i) { | 594 for (size_t i = 0; i < root_window2->children().size(); ++i) { |
| 594 if (root_window2->children()[i]->type() == | 595 if (root_window2->children()[i]->type() == |
| 595 aura::client::WINDOW_TYPE_TOOLTIP) { | 596 aura::client::WINDOW_TYPE_TOOLTIP) { |
| 596 tooltip_reparented = true; | 597 tooltip_reparented = true; |
| 597 break; | 598 break; |
| 598 } | 599 } |
| 599 } | 600 } |
| 600 EXPECT_TRUE(tooltip_reparented); | 601 EXPECT_TRUE(tooltip_reparented); |
| 601 widget2->Close(); | 602 widget2->Close(); |
| 602 } | 603 } |
| 603 | 604 |
| 604 // This test validates whether the tooltip after becoming visible stays at the | 605 // This test validates whether the tooltip after becoming visible stays at the |
| 605 // top of the ZOrder in its root window after activation changes. | 606 // top of the ZOrder in its root window after activation changes. |
| 606 TEST_F(TooltipControllerTest, TooltipAtTopOfZOrderAfterActivation) { | 607 TEST_F(TooltipControllerTest, TooltipAtTopOfZOrderAfterActivation) { |
| 607 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 608 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 608 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 609 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 609 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 610 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 610 generator_->MoveMouseToCenterOf(GetWindow()); | 611 generator_->MoveMouseToCenterOf(GetWindow()); |
| 611 | 612 |
| 612 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( | 613 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( |
| 613 generator_->current_location())); | 614 generator_->current_location())); |
| 614 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 615 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 615 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 616 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 616 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 617 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 617 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 618 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 618 | 619 |
| 619 // Fire tooltip timer so tooltip becomes visible. | 620 // Fire tooltip timer so tooltip becomes visible. |
| 620 helper_->FireTooltipTimer(); | 621 helper_->FireTooltipTimer(); |
| 621 | 622 |
| 622 EXPECT_TRUE(helper_->IsTooltipVisible()); | 623 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 623 generator_->MoveMouseBy(1, 0); | 624 generator_->MoveMouseBy(1, 0); |
| 624 | 625 |
| 625 EXPECT_TRUE(helper_->IsTooltipVisible()); | 626 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 626 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 627 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 639 EXPECT_EQ( | 640 EXPECT_EQ( |
| 640 widget_->GetNativeWindow()->GetRootWindow()->children().back()->type(), | 641 widget_->GetNativeWindow()->GetRootWindow()->children().back()->type(), |
| 641 aura::client::WINDOW_TYPE_TOOLTIP); | 642 aura::client::WINDOW_TYPE_TOOLTIP); |
| 642 } | 643 } |
| 643 | 644 |
| 644 #endif | 645 #endif |
| 645 | 646 |
| 646 } // namespace test | 647 } // namespace test |
| 647 } // namespace corewm | 648 } // namespace corewm |
| 648 } // namespace views | 649 } // namespace views |
| OLD | NEW |