diff options
author | Matt A. Tobin <email@mattatobin.com> | 2018-02-03 06:25:10 -0500 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2018-02-03 06:25:10 -0500 |
commit | 8b8c65072aedef94610748ce92c2ed3a19fd5517 (patch) | |
tree | 8614d386acf5db7a77b08d19a5854a7d75dab015 /b2g/components/test/unit/test_logshake.js | |
parent | 8c3a46bd13a0660a3ff1e0379dbf515873a852d2 (diff) | |
download | UXP-8b8c65072aedef94610748ce92c2ed3a19fd5517.tar UXP-8b8c65072aedef94610748ce92c2ed3a19fd5517.tar.gz UXP-8b8c65072aedef94610748ce92c2ed3a19fd5517.tar.lz UXP-8b8c65072aedef94610748ce92c2ed3a19fd5517.tar.xz UXP-8b8c65072aedef94610748ce92c2ed3a19fd5517.zip |
Purge b2g/
Diffstat (limited to 'b2g/components/test/unit/test_logshake.js')
-rw-r--r-- | b2g/components/test/unit/test_logshake.js | 218 |
1 files changed, 0 insertions, 218 deletions
diff --git a/b2g/components/test/unit/test_logshake.js b/b2g/components/test/unit/test_logshake.js deleted file mode 100644 index cfb81b893..000000000 --- a/b2g/components/test/unit/test_logshake.js +++ /dev/null @@ -1,218 +0,0 @@ -/** - * Test the log capturing capabilities of LogShake.jsm - */ - -/* jshint moz: true */ -/* global Components, LogCapture, LogShake, ok, add_test, run_next_test, dump */ -/* exported run_test */ - -/* disable use strict warning */ -/* jshint -W097 */ -"use strict"; - -var Cu = Components.utils; - -Cu.import("resource://gre/modules/LogCapture.jsm"); -Cu.import("resource://gre/modules/LogShake.jsm"); - -const EVENTS_PER_SECOND = 6.25; -const GRAVITY = 9.8; - -/** - * Force logshake to handle a device motion event with given components. - * Does not use SystemAppProxy because event needs special - * accelerationIncludingGravity property. - */ -function sendDeviceMotionEvent(x, y, z) { - let event = { - type: "devicemotion", - accelerationIncludingGravity: { - x: x, - y: y, - z: z - } - }; - LogShake.handleEvent(event); -} - -/** - * Send a screen change event directly, does not use SystemAppProxy due to race - * conditions. - */ -function sendScreenChangeEvent(screenEnabled) { - let event = { - type: "screenchange", - detail: { - screenEnabled: screenEnabled - } - }; - LogShake.handleEvent(event); -} - -/** - * Mock the readLogFile function of LogCapture. - * Used to detect whether LogShake activates. - * @return {Array<String>} Locations that LogShake tries to read - */ -function mockReadLogFile() { - let readLocations = []; - - LogCapture.readLogFile = function(loc) { - readLocations.push(loc); - return null; // we don't want to provide invalid data to a parser - }; - - // Allow inspection of readLocations by caller - return readLocations; -} - -/** - * Send a series of events that corresponds to a shake - */ -function sendSustainedShake() { - // Fire a series of devicemotion events that are of shake magnitude - for (let i = 0; i < 2 * EVENTS_PER_SECOND; i++) { - sendDeviceMotionEvent(0, 2 * GRAVITY, 2 * GRAVITY); - } - -} - -add_test(function test_do_log_capture_after_shaking() { - // Enable LogShake - LogShake.init(); - - let readLocations = mockReadLogFile(); - - sendSustainedShake(); - - ok(readLocations.length > 0, - "LogShake should attempt to read at least one log"); - - LogShake.uninit(); - run_next_test(); -}); - -add_test(function test_do_nothing_when_resting() { - // Enable LogShake - LogShake.init(); - - let readLocations = mockReadLogFile(); - - // Fire several devicemotion events that are relatively tiny - for (let i = 0; i < 2 * EVENTS_PER_SECOND; i++) { - sendDeviceMotionEvent(0, GRAVITY, GRAVITY); - } - - ok(readLocations.length === 0, - "LogShake should not read any logs"); - - LogShake.uninit(); - run_next_test(); -}); - -add_test(function test_do_nothing_when_disabled() { - // Disable LogShake - LogShake.uninit(); - - let readLocations = mockReadLogFile(); - - // Fire a series of events that would normally be a shake - sendSustainedShake(); - - ok(readLocations.length === 0, - "LogShake should not read any logs"); - - run_next_test(); -}); - -add_test(function test_do_nothing_when_screen_off() { - // Enable LogShake - LogShake.init(); - - // Send an event as if the screen has been turned off - sendScreenChangeEvent(false); - - let readLocations = mockReadLogFile(); - - // Fire a series of events that would normally be a shake - sendSustainedShake(); - - ok(readLocations.length === 0, - "LogShake should not read any logs"); - - // Restore the screen - sendScreenChangeEvent(true); - - LogShake.uninit(); - run_next_test(); -}); - -add_test(function test_do_log_capture_resilient_readLogFile() { - // Enable LogShake - LogShake.init(); - - let readLocations = []; - LogCapture.readLogFile = function(loc) { - readLocations.push(loc); - throw new Error("Exception during readLogFile for: " + loc); - }; - - // Fire a series of events that would normally be a shake - sendSustainedShake(); - - ok(readLocations.length > 0, - "LogShake should attempt to read at least one log"); - - LogShake.uninit(); - run_next_test(); -}); - -add_test(function test_do_log_capture_resilient_parseLog() { - // Enable LogShake - LogShake.init(); - - let readLocations = []; - LogCapture.readLogFile = function(loc) { - readLocations.push(loc); - LogShake.LOGS_WITH_PARSERS[loc] = function() { - throw new Error("Exception during LogParser for: " + loc); - }; - return null; - }; - - // Fire a series of events that would normally be a shake - sendSustainedShake(); - - ok(readLocations.length > 0, - "LogShake should attempt to read at least one log"); - - LogShake.uninit(); - run_next_test(); -}); - -add_test(function test_do_nothing_when_dropped() { - // Enable LogShake - LogShake.init(); - - let readLocations = mockReadLogFile(); - - // We want a series of spikes to be ignored by LogShake. This roughly - // corresponds to the compare_stairs_sock graph on bug #1101994 - - for (let i = 0; i < 10 * EVENTS_PER_SECOND; i++) { - // Fire a devicemotion event that is at rest - sendDeviceMotionEvent(0, 0, GRAVITY); - // Fire a spike of motion - sendDeviceMotionEvent(0, 2 * GRAVITY, 2 * GRAVITY); - } - - ok(readLocations.length === 0, - "LogShake should not read any logs"); - - LogShake.uninit(); - run_next_test(); -}); - -function run_test() { - run_next_test(); -} |