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

Unified Diff: third_party/WebKit/LayoutTests/vr/getFrameData_samewithinframe.html

Issue 2659853006: Add getFrameData and getPose layout tests (Closed)
Patch Set: Add more tests Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/vr/getFrameData_samewithinframe.html
diff --git a/third_party/WebKit/LayoutTests/vr/getFrameData_samewithinframe.html b/third_party/WebKit/LayoutTests/vr/getFrameData_samewithinframe.html
new file mode 100644
index 0000000000000000000000000000000000000000..fc79de0d006580c47de05339e7fb7fded58a8aa2
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/vr/getFrameData_samewithinframe.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
+<script src="../resources/mojo-helpers.js"></script>
+<script src="resources/fake-vr-displays.js"></script>
+<script src="resources/mock-vr-service.js"></script>
+<script src="resources/test-constants.js"></script>
+<script>
+let fakeDisplays = fakeVRDisplays();
+
+vr_test( (t, mock_service) => {
+ return navigator.getVRDisplays().then( (displays) => {
+ var display = displays[0];
+ var expected_pose = VALID_POSE;
+ var fd1 = new VRFrameData();
+ var fd2 = new VRFrameData();
+ mock_service.mockVRDisplays_[0].setPose(expected_pose);
+ var counter = 0;
+
+ function onFrame() {
+ display.requestAnimationFrame(onFrame);
+ t.step( () => {
+ assert_true(display.getFrameData(fd1));
+ assert_true(display.getFrameData(fd2));
+ }, "getFrameData successfully updated object");
+ t.step( () => {
+ // Use assert_equals instead of assert_approx_equals since they should
+ // be completely identical
+ assert_equals(fd1.timestamp, fd2.timestamp);
+ for (let i = 0; i < 16; i++) {
+ assert_equals(fd1.leftProjectionMatrix[i],
+ fd2.leftProjectionMatrix[i]);
+ assert_equals(fd1.leftViewMatrix[i], fd2.leftViewMatrix[i]);
+ assert_equals(fd1.rightProjectionMatrix[i],
+ fd2.rightProjectionMatrix[i]);
+ assert_equals(fd1.rightViewMatrix[i], fd2.rightViewMatrix[i]);
+ }
+ let counter = 0;
+ for (let field in fd1.pose) {
+ counter++;
+ assert_equals(fd1.pose[field].length, fd2.pose[field].length);
+ assert_greater_than(fd1.pose[field].length, 0);
+ for (let i = 0; i < fd1.pose[field].length; i++) {
+ assert_equals(fd1.pose[field][i], fd2.pose[field][i]);
+ }
+ }
+ assert_equals(counter, 6);
+ }, "frame data matches within the same frame");
+ t.done();
+ }
+
+ display.requestAnimationFrame(onFrame);
+ }, (err) => {
+ t.step( () => {
+ assert_unreached("getVRDisplays rejected");
+ });
+ });
+}, [fakeDisplays["Pixel"]],
+"getFrameData returns the same data within a single frame");
+
+</script>

Powered by Google App Engine
This is Rietveld 408576698