#include <string>
#include "base/basictypes.h"
+#include "base/gtest_prod_util.h"
namespace base {
class DictionaryValue;
}
+namespace login {
+class ScreenContext;
+}
+
namespace chromeos {
-class ScreenContext;
+class BaseScreenDelegate;
// Base class for the all OOBE/login/before-session screens.
// Screens are identified by ID, screen and it's JS counterpart must have same
// Initialize() method calls.
class BaseScreen {
public:
- BaseScreen();
+ explicit BaseScreen(BaseScreenDelegate* base_screen_delegate);
virtual ~BaseScreen();
// ---- Old implementation ----
// at this point. Screen can alter context, resulting context will be passed
// to JS. This method will be called once per instance of the Screen object,
// unless |IsPermanent()| returns |true|.
- virtual void Initialize(ScreenContext* context);
+ virtual void Initialize(::login::ScreenContext* context);
// Called when screen appears.
virtual void OnShow();
// counterpart.
virtual void OnContextChanged(const base::DictionaryValue* diff);
+ BaseScreenDelegate* get_base_screen_delegate() const {
+ return base_screen_delegate_;
+ }
+
private:
+ FRIEND_TEST_ALL_PREFIXES(EnrollmentScreenTest, TestCancel);
+ FRIEND_TEST_ALL_PREFIXES(EnrollmentScreenTest, TestSuccess);
+ FRIEND_TEST_ALL_PREFIXES(ProvisionedEnrollmentScreenTest, TestBackButton);
+
+ friend class NetworkScreenTest;
friend class ScreenManager;
- void SetContext(ScreenContext* context);
+ friend class UpdateScreenTest;
+
+ void SetContext(::login::ScreenContext* context);
+
+ BaseScreenDelegate* base_screen_delegate_;
DISALLOW_COPY_AND_ASSIGN(BaseScreen);
};