michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: /** michael@0: * Tests if draw calls inside a single animation frame generate and retrieve michael@0: * the correct thumbnails. michael@0: */ michael@0: michael@0: function ifTestingSupported() { michael@0: let [target, debuggee, front] = yield initCanavsDebuggerBackend(SIMPLE_CANVAS_URL); michael@0: michael@0: let navigated = once(target, "navigate"); michael@0: michael@0: yield front.setup({ reload: true }); michael@0: ok(true, "The front was setup up successfully."); michael@0: michael@0: yield navigated; michael@0: ok(true, "Target automatically navigated when the front was set up."); michael@0: michael@0: let snapshotActor = yield front.recordAnimationFrame(); michael@0: ok(snapshotActor, michael@0: "A snapshot actor was sent after recording."); michael@0: michael@0: let animationOverview = yield snapshotActor.getOverview(); michael@0: ok(snapshotActor, michael@0: "An animation overview could be retrieved after recording."); michael@0: michael@0: let thumbnails = animationOverview.thumbnails; michael@0: ok(thumbnails, michael@0: "An array of thumbnails was sent after recording."); michael@0: is(thumbnails.length, 4, michael@0: "The number of thumbnails is correct."); michael@0: michael@0: is(thumbnails[0].index, 0, michael@0: "The first thumbnail's index is correct."); michael@0: is(thumbnails[0].width, 50, michael@0: "The first thumbnail's width is correct."); michael@0: is(thumbnails[0].height, 50, michael@0: "The first thumbnail's height is correct."); michael@0: is(thumbnails[0].flipped, false, michael@0: "The first thumbnail's flipped flag is correct."); michael@0: is([].find.call(thumbnails[0].pixels, e => e > 0), undefined, michael@0: "The first thumbnail's pixels seem to be completely transparent."); michael@0: michael@0: is(thumbnails[1].index, 2, michael@0: "The second thumbnail's index is correct."); michael@0: is(thumbnails[1].width, 50, michael@0: "The second thumbnail's width is correct."); michael@0: is(thumbnails[1].height, 50, michael@0: "The second thumbnail's height is correct."); michael@0: is(thumbnails[1].flipped, false, michael@0: "The second thumbnail's flipped flag is correct."); michael@0: is([].find.call(thumbnails[1].pixels, e => e > 0), 4290822336, michael@0: "The second thumbnail's pixels seem to not be completely transparent."); michael@0: michael@0: is(thumbnails[2].index, 4, michael@0: "The third thumbnail's index is correct."); michael@0: is(thumbnails[2].width, 50, michael@0: "The third thumbnail's width is correct."); michael@0: is(thumbnails[2].height, 50, michael@0: "The third thumbnail's height is correct."); michael@0: is(thumbnails[2].flipped, false, michael@0: "The third thumbnail's flipped flag is correct."); michael@0: is([].find.call(thumbnails[2].pixels, e => e > 0), 4290822336, michael@0: "The third thumbnail's pixels seem to not be completely transparent."); michael@0: michael@0: is(thumbnails[3].index, 6, michael@0: "The fourth thumbnail's index is correct."); michael@0: is(thumbnails[3].width, 50, michael@0: "The fourth thumbnail's width is correct."); michael@0: is(thumbnails[3].height, 50, michael@0: "The fourth thumbnail's height is correct."); michael@0: is(thumbnails[3].flipped, false, michael@0: "The fourth thumbnail's flipped flag is correct."); michael@0: is([].find.call(thumbnails[3].pixels, e => e > 0), 4290822336, michael@0: "The fourth thumbnail's pixels seem to not be completely transparent."); michael@0: michael@0: yield removeTab(target.tab); michael@0: finish(); michael@0: }