Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(774)

Side by Side Diff: chrome/browser/chromeos/login/screenshot_test.h

Issue 441263002: Generalizing architecture for screenshot testing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: commented line removed Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENSHOT_TEST_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENSHOT_TEST_H_
7
8 #include <string>
9
10 #include "base/command_line.h"
11 #include "base/timer/timer.h"
12 #include "chrome/browser/chromeos/login/login_manager_test.h"
13 #include "chrome/browser/chromeos/login/screenshot_tester.h"
14 #include "content/public/browser/notification_observer.h"
15 #include "content/public/browser/notification_registrar.h"
16
17 namespace chromeos {
18
19 // Base class for tests which support testing with screenshots.
20 // Sets up everything required for taking screenshots.
21 // Provides functionality to deal with animation load: screenshots
22 // should be taken only when all the animation is loaded.
23 class ScreenshotTest : public LoginManagerTest,
dzhioev (left Google) 2014/08/07 11:23:55 Can't we derieve LoginManagerTest from ScreenshotT
24 public content::NotificationObserver {
25 public:
26 ScreenshotTest();
27 virtual ~ScreenshotTest();
28
29 // Override from LoginManagerTest.
30 virtual void SetUpOnMainThread() OVERRIDE;
31
32 // Override from LoginManagerTest.
33 virtual void SetUpCommandLine(base::CommandLine* command_line) OVERRIDE;
34
35 // Override from content::NotificationObserver.
36 virtual void Observe(int type,
37 const content::NotificationSource& source,
38 const content::NotificationDetails& details) OVERRIDE;
39
40 // This method checks if animation is loaded, and, if not,
41 // waits until it is loaded and properly shown on the screen.
42 void WaitUntilAnimationLoads();
43
44 protected:
45 // Does all the required initializations for properly handling
46 // animation-connected issues.
47 // Should be overriden for each test according to which exactly animation
48 // exists in it.
49 virtual void InitializeAnimationHandler();
50
51 // Runs screenshot testing if it is turned on by command line switches.
52 void RunScreenshotTesting(const std::string& test_name);
53
54 // Returns true if, according to the notificatons received, animation has
55 // finished loading by now.
56 // Should be overriden for each test according to which exactly animation
57 // exists in it.
58 virtual bool IsAnimationLoaded();
59
60 bool waiter_loop_is_on_;
61 base::Closure animation_waiter_quitter_;
62 content::NotificationRegistrar registrar_;
63
64 private:
65 // Does all the required initializations before waiting for animation.
66 void PrepareForAnimationWaiting(const base::Closure& quitter);
67
68 // It turns out that it takes some more time for the animation
69 // to finish loading even after all the notifications have been sent.
70 // That happens due to some properties of compositor.
71 // This method should be used after getting all the necessary notifications
72 // to wait for the actual load of animation.
73 void SynchronizeAnimationLoadWithCompositor();
74
75 // This method exists only because of the current implementation of
76 // SynchronizeAnimationLoadWithCompositor.
77 void HandleAnimationLoad();
78
79 base::OneShotTimer<ScreenshotTest> timer_;
80
81 // Is true if testing with screenshots is turned on with all proper switches.
82 bool enable_test_screenshots_;
83
84 ScreenshotTester screenshot_tester;
dzhioev (left Google) 2014/08/07 11:23:55 screenshot_tester_
85 };
86
87 } // namespace chromeos
88
89 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENSHOT_TEST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698