|
1 // -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; js2-basic-offset: 2; js2-skip-preprocessor-directives: t; -*- |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 "use strict"; |
|
7 |
|
8 const snappedSize = 330; |
|
9 const portraitSize = 900; |
|
10 const maxPortraitHeight = 900; |
|
11 |
|
12 function setSnappedViewstate() { |
|
13 ok(isLandscapeMode(), "setSnappedViewstate expects landscape mode to work."); |
|
14 |
|
15 let browser = Browser.selectedBrowser; |
|
16 |
|
17 // Reduce browser width to simulate small screen size. |
|
18 let fullWidth = browser.clientWidth; |
|
19 let padding = fullWidth - snappedSize; |
|
20 |
|
21 browser.style.borderRight = padding + "px solid gray"; |
|
22 |
|
23 // Communicate viewstate change |
|
24 ContentAreaObserver._updateViewState("snapped"); |
|
25 ContentAreaObserver._dispatchBrowserEvent("SizeChanged"); |
|
26 yield waitForMessage("Content:SetWindowSize:Complete", browser.messageManager); |
|
27 |
|
28 // Make sure it renders the new mode properly |
|
29 yield waitForMs(0); |
|
30 } |
|
31 |
|
32 function setPortraitViewstate() { |
|
33 ok(isLandscapeMode(), "setPortraitViewstate expects landscape mode to work."); |
|
34 |
|
35 let browser = Browser.selectedBrowser; |
|
36 |
|
37 let fullWidth = browser.clientWidth; |
|
38 let fullHeight = browser.clientHeight; |
|
39 let padding = fullWidth - portraitSize; |
|
40 |
|
41 browser.style.borderRight = padding + "px solid gray"; |
|
42 |
|
43 // cap the height to create more even surface for testing on |
|
44 if (fullHeight > maxPortraitHeight) |
|
45 browser.style.borderBottom = (fullHeight - maxPortraitHeight) + "px solid gray"; |
|
46 |
|
47 ContentAreaObserver._updateViewState("portrait"); |
|
48 ContentAreaObserver._dispatchBrowserEvent("SizeChanged"); |
|
49 yield waitForMessage("Content:SetWindowSize:Complete", browser.messageManager); |
|
50 |
|
51 // Make sure it renders the new mode properly |
|
52 yield waitForMs(0); |
|
53 } |
|
54 |
|
55 function restoreViewstate() { |
|
56 ContentAreaObserver._updateViewState("landscape"); |
|
57 ContentAreaObserver._dispatchBrowserEvent("SizeChanged"); |
|
58 yield waitForMessage("Content:SetWindowSize:Complete", Browser.selectedBrowser.messageManager); |
|
59 |
|
60 ok(isLandscapeMode(), "restoreViewstate should restore landscape mode."); |
|
61 |
|
62 Browser.selectedBrowser.style.removeProperty("border-right"); |
|
63 Browser.selectedBrowser.style.removeProperty("border-bottom"); |
|
64 |
|
65 yield waitForMs(0); |
|
66 } |