Index: Source/modules/screen_orientation/testing/InternalsScreenOrientation.cpp |
diff --git a/Source/modules/screen_orientation/testing/InternalsScreenOrientation.cpp b/Source/modules/screen_orientation/testing/InternalsScreenOrientation.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c26555df1781476609448f7ed2200a6b55072c69 |
--- /dev/null |
+++ b/Source/modules/screen_orientation/testing/InternalsScreenOrientation.cpp |
@@ -0,0 +1,45 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "config.h" |
+#include "InternalsScreenOrientation.h" |
+ |
+#include "core/dom/Document.h" |
+#include "modules/screen_orientation/ScreenOrientation.h" |
+#include "modules/screen_orientation/ScreenOrientationController.h" |
+#include "modules/screen_orientation/testing/ScreenOrientationClientMock.h" |
+ |
+namespace WebCore { |
+ |
+void InternalsScreenOrientation::setScreenOrientationClientMock(Internals* internals, Document* document) |
+{ |
+ ASSERT(internals && document && document->page()); |
+ ScreenOrientationController* controller = ScreenOrientationController::from(document->page()); |
+ ScreenOrientationClientMock* client = new ScreenOrientationClientMock(); |
+ controller->setClientForTest(client); |
+ client->setController(controller); |
+} |
+ |
+void InternalsScreenOrientation::setScreenOrientation(Internals* internals, Document* document, const AtomicString& orientationString) |
+{ |
+ ASSERT(internals && document && document->page()); |
+ ScreenOrientationClientMock* client = screenOrientationClient(document); |
+ if (!client) |
+ return; |
+ |
+ ScreenOrientationValue orientation = static_cast<ScreenOrientationValue>(ScreenOrientation::stringToOrientationValues(orientationString)); |
+ if (orientation == OrientationInvalid) |
+ return; |
+ client->setScreenOrientation(orientation); |
+} |
+ |
+ScreenOrientationClientMock* InternalsScreenOrientation::screenOrientationClient(Document* document) |
+{ |
+ ScreenOrientationController* controller = ScreenOrientationController::from(document->page()); |
+ if (!controller->hasClientForTest()) |
+ return 0; |
+ return static_cast<ScreenOrientationClientMock*>(controller->client()); |
+} |
+ |
+} // namespace WebCore |