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
|
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
const TEST_USER_INTERACTION_ID = "testing.interaction";
const TEST_VALUE_1 = "some value";
const TEST_VALUE_2 = "some other value";
const TEST_INVALID_VALUE =
"This is a value that is far too long - it has too many characters.";
const TEST_ADDITIONAL_TEXT_1 = "some additional text";
const TEST_ADDITIONAL_TEXT_2 = "some other additional text";
function run_test() {
let obj1 = {};
let obj2 = {};
Assert.ok(UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_1));
Assert.ok(
UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_1, obj1)
);
Assert.ok(
UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_1, obj2)
);
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID));
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID, obj1));
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID, obj2));
// Unlike TelemetryStopwatch, we can clobber UserInteractions.
Assert.ok(UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_1));
Assert.ok(
UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_1, obj1)
);
Assert.ok(
UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_1, obj2)
);
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID));
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID, obj1));
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID, obj2));
// Ensure that we can finish a UserInteraction that was accidentally started
// twice
Assert.ok(UserInteraction.finish(TEST_USER_INTERACTION_ID));
Assert.ok(UserInteraction.finish(TEST_USER_INTERACTION_ID, obj1));
Assert.ok(UserInteraction.finish(TEST_USER_INTERACTION_ID, obj2));
// Make sure we can't start or finish non-existent UserInteractions.
Assert.ok(!UserInteraction.start("non-existent.interaction", TEST_VALUE_1));
Assert.ok(
!UserInteraction.start("non-existent.interaction", TEST_VALUE_1, obj1)
);
Assert.ok(
!UserInteraction.start("non-existent.interaction", TEST_VALUE_1, obj2)
);
Assert.ok(!UserInteraction.running("non-existent.interaction"));
Assert.ok(!UserInteraction.running("non-existent.interaction", obj1));
Assert.ok(!UserInteraction.running("non-existent.interaction", obj2));
Assert.ok(!UserInteraction.finish("non-existent.interaction"));
Assert.ok(!UserInteraction.finish("non-existent.interaction", obj1));
Assert.ok(!UserInteraction.finish("non-existent.interaction", obj2));
// Ensure that we enforce the character limit on value strings.
Assert.ok(
!UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_INVALID_VALUE)
);
Assert.ok(
!UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_INVALID_VALUE, obj1)
);
Assert.ok(
!UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_INVALID_VALUE, obj2)
);
Assert.ok(!UserInteraction.running(TEST_USER_INTERACTION_ID));
Assert.ok(!UserInteraction.running(TEST_USER_INTERACTION_ID, obj1));
Assert.ok(!UserInteraction.running(TEST_USER_INTERACTION_ID, obj2));
// Verify that they can be used again
Assert.ok(UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_2));
Assert.ok(
UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_2, obj1)
);
Assert.ok(
UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_2, obj2)
);
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID));
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID, obj1));
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID, obj2));
Assert.ok(UserInteraction.finish(TEST_USER_INTERACTION_ID));
Assert.ok(UserInteraction.finish(TEST_USER_INTERACTION_ID, obj1));
Assert.ok(UserInteraction.finish(TEST_USER_INTERACTION_ID, obj2));
Assert.ok(!UserInteraction.finish(TEST_USER_INTERACTION_ID));
Assert.ok(!UserInteraction.finish(TEST_USER_INTERACTION_ID, obj1));
Assert.ok(!UserInteraction.finish(TEST_USER_INTERACTION_ID, obj2));
Assert.ok(!UserInteraction.running(TEST_USER_INTERACTION_ID));
Assert.ok(!UserInteraction.running(TEST_USER_INTERACTION_ID, obj1));
Assert.ok(!UserInteraction.running(TEST_USER_INTERACTION_ID, obj2));
// Verify that they can be used again with different values.
Assert.ok(UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_1));
Assert.ok(
UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_2, obj1)
);
Assert.ok(
UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_1, obj2)
);
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID));
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID, obj1));
Assert.ok(UserInteraction.running(TEST_USER_INTERACTION_ID, obj2));
Assert.ok(UserInteraction.finish(TEST_USER_INTERACTION_ID));
Assert.ok(
UserInteraction.finish(
TEST_USER_INTERACTION_ID,
obj1,
TEST_ADDITIONAL_TEXT_1
)
);
Assert.ok(
UserInteraction.finish(
TEST_USER_INTERACTION_ID,
obj2,
TEST_ADDITIONAL_TEXT_2
)
);
// Test that they can be cancelled
Assert.ok(UserInteraction.start(TEST_USER_INTERACTION_ID, TEST_VALUE_1));
Assert.ok(UserInteraction.cancel(TEST_USER_INTERACTION_ID));
Assert.ok(!UserInteraction.running(TEST_USER_INTERACTION_ID));
Assert.ok(!UserInteraction.finish(TEST_USER_INTERACTION_ID));
// Test that they cannot be cancelled twice
Assert.ok(!UserInteraction.cancel(TEST_USER_INTERACTION_ID));
Assert.ok(!UserInteraction.cancel(TEST_USER_INTERACTION_ID));
}
|