1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2<html>
3<head>
4<script src="../fast/js/resources/js-test-pre.js"></script>
5</head>
6<body>
7<script type="text/javascript">
8 // TODO(gbillock): eliminate this zero-arg case.
9 var intent = new Intent();
10 shouldBeEqualToString('intent.action', '');
11
12 shouldThrow("new Intent('a')", "'TypeError: Intent constructor must have zero or two or three parameters'");
13 shouldThrow("new Intent('a','b','c','d')", "'TypeError: Intent constructor must have zero or two or three parameters'");
14 shouldThrow("new Intent('','','')", "'TypeError: Action cannot be empty'");
15 shouldThrow("new Intent('','b','c')", "'TypeError: Action cannot be empty'");
16 shouldThrow("new Intent('','','c')", "'TypeError: Action cannot be empty'");
17 shouldThrow("new Intent('a','','c')", "'TypeError: Type cannot be empty'");
18
19 var intent1 = new Intent('a', 'b');
20 shouldBeEqualToString("intent1.action", "a");
21 shouldBeEqualToString("intent1.type", "b");
22 shouldBeNull("intent1.data");
23 intent1.action = "abc";
24 shouldBeEqualToString("intent1.action", "a");
25
26 var intent2 = new Intent("a", "b", "c");
27 shouldBeEqualToString('intent2.action', "a");
28 shouldBeEqualToString('intent2.type', "b");
29 shouldBeEqualToString('intent2.data', "c");
30
31 var intent3 = new Intent("a", "b", {"c": "d"});
32 shouldBeEqualToString('intent3.action', "a");
33 shouldBeEqualToString('intent3.type', "b");
34 shouldBeEqualToString('intent3.data.c', "d");
35
36 var intent4 = new Intent("a", "b", ["c", "d"]);
37 shouldBeEqualToString('intent4.action', "a");
38 shouldBeEqualToString('intent4.type', "b");
39 shouldBeTrue('intent4.data instanceof Array');
40 shouldEvaluateTo('intent4.data.length', 2);
41 shouldBeEqualToString('intent4.data[0]', "c");
42 shouldBeEqualToString('intent4.data[1]', "d");
43
44 var intent5 = new Intent("a", "b", 4);
45 shouldEvaluateTo('intent5.data', 4);
46 var intent6 = new Intent('a', 'b', 4.5);
47 shouldEvaluateTo('intent6.data', 4.5);
48 var intent7 = new Intent('a', 'b', true);
49 shouldBeTrue('intent7.data');
50 var intent8 = new Intent('a', 'b', null);
51 shouldBeNull('intent8.data');
52 var intent9 = new Intent('a', 'b', {});
53 shouldEvaluateTo('intent9.data', {});
54</script>
55<script src="../fast/js/resources/js-test-post.js"></script>
56</body>
57</html>