-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathxrandrSettingsHandlerTests.js
More file actions
140 lines (120 loc) · 5.38 KB
/
xrandrSettingsHandlerTests.js
File metadata and controls
140 lines (120 loc) · 5.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
* GPII Xrandr Settings Handler Tests
*
* Copyright 2013 Emergya
* Copyright 2016 OCAD University
*
* Licensed under the New BSD license. You may not use this file except in
* compliance with this License.
*
* You may obtain a copy of the License at
* https://github.com/GPII/linux/blob/master/LICENSE.txt
*
* The research leading to these results has received funding from the European Union's
* Seventh Framework Programme (FP7/2007-2013)
* under grant agreement no. 289016.
*/
"use strict";
var fluid = require("gpii-universal"),
jqUnit = fluid.require("node-jqunit");
require("xrandr");
var gpii = fluid.registerNamespace("gpii");
var xrandr = fluid.registerNamespace("gpii.xrandr");
var xrandrTests = fluid.registerNamespace("gpii.xrandr.tests");
// Mock settings payload
xrandrTests.payload = {
"org.freedesktop.xrandr": [{
settings: {
"screen-resolution": {"width": 800, "height": 600}
}
}]
};
xrandrTests.getImplTestData = {
"screen-resolution": {
get: "gpii.xrandr.tests.getScreenResolution",
}
};
gpii.xrandr.tests.getScreenResolution = function () {
var anXRandR = xrandr();
return anXRandR.getScreenResolution();
};
var XRandR = xrandr();
jqUnit.module("GPII XRandR Module");
jqUnit.test("XRandR Bridge: Get connected display", function () {
var connectedDisplay = XRandR.getConnectedDisplay();
jqUnit.assertNotNull("Getting connected display", connectedDisplay);
jqUnit.assertEquals("Connected display", "connected", connectedDisplay.status);
});
jqUnit.test("XRandR Bridge: Get screen resolution", function () {
var screenResolution = XRandR.getScreenResolution();
jqUnit.assertNotNull("Getting current screen resolution", screenResolution);
jqUnit.assertNotEquals("Current screen width", 0, screenResolution.width);
jqUnit.assertNotEquals("Current screen height", 0, screenResolution.height);
});
jqUnit.test("XRandR Bridge: Available screen resolutions", function () {
var availableReesolutions = XRandR.getAvailableResolutions();
jqUnit.assertNotNull("Available resoiultions array", availableReesolutions);
jqUnit.assertNotEquals("Number of availableReesolutions",
0, availableReesolutions.length);
});
jqUnit.test("XRandR Bridge: All screen resolutions", function () {
var current = XRandR.getScreenResolution();
var available = XRandR.getAvailableResolutions();
var all = XRandR.getAllScreenResolutions();
jqUnit.assertDeepEq("All screen resolutions contains current resolution",
current, all["screen-resolution"]);
jqUnit.assertDeepEq("All screen resolutions contains available resolution",
available, all["available-resolutions"]);
});
jqUnit.test("XRandR Bridge: Set screen resolution", function () {
var currentRez = XRandR.getScreenResolution();
var availableRez = XRandR.getAvailableResolutions();
var newRez = fluid.copy(currentRez);
if (availableRez.length > 1) {
newRez = availableRez[1];
}
XRandR.setScreenResolution(newRez);
var sctualRez = XRandR.getScreenResolution();
jqUnit.assertDeepEq("Set to new resolution", newRez, sctualRez);
XRandR.setScreenResolution(currentRez);
var sctualRez = XRandR.getScreenResolution();
jqUnit.assertDeepEq("Reset to original resolution", currentRez, sctualRez);
});
jqUnit.test("XRandR Bridge: getImpl()", function () {
// Call without passing a settingsRequest. The current screen resolution
// is expected.
var actualSettings = XRandR.getImpl();
var expectedSettings = XRandR.getAllScreenResolutions();
jqUnit.assertDeepEq("Return value of getImpl() with no input",
expectedSettings["screen-resolution"],
actualSettings["screen-resolution"]);
// Call with a test settingsRequest.
var actualSettings = XRandR.getImpl(xrandrTests.getImplTestData);
jqUnit.assertDeepEq("Return value of getImpl() with an input",
expectedSettings["screen-resolution"],
actualSettings["screen-resolution"]);
});
jqUnit.test("XRandR Bridge: get() with mock settings payload", function () {
var actual = XRandR.get(xrandrTests.payload);
var screenResolution = {};
fluid.set(screenResolution, "screen-resolution", XRandR.getScreenResolution());
var expected = {
"org.freedesktop.xrandr": [{
"settings": screenResolution
}]
};
jqUnit.assertDeepEq("Return value of get", expected, actual);
});
jqUnit.test("XRandR Bridge: set() with mock settings payload", function () {
var returnPayload = XRandR.set(xrandrTests.payload);
jqUnit.assertDeepEq("The resolution is being setted well",
returnPayload["org.freedesktop.xrandr"][0].settings["screen-resolution"].newValue,
xrandrTests.payload["org.freedesktop.xrandr"][0].settings["screen-resolution"]);
var newPayload = fluid.copy(xrandrTests.payload);
newPayload["org.freedesktop.xrandr"][0].settings["screen-resolution"] =
returnPayload["org.freedesktop.xrandr"][0].settings["screen-resolution"].oldValue;
var lastPayload = XRandR.set(newPayload);
jqUnit.assertDeepEq("The resolution is being restored well",
returnPayload["org.freedesktop.xrandr"][0].settings["screen-resolution"].oldValue,
lastPayload["org.freedesktop.xrandr"][0].settings["screen-resolution"].newValue);
});