134 lines
5.4 KiB
JavaScript
134 lines
5.4 KiB
JavaScript
/* 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));
|
|
|
|
// 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));
|
|
}
|