Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: test/GlobalJsObject.cpp

Issue 10085006: Implement setTimeout (Closed)
Patch Set: Created April 8, 2013, 1:07 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« src/GlobalJsObject.cpp ('K') | « src/JsEngine.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #include <AdblockPlus.h>
2 #include <gtest/gtest.h>
3
4 #include "../src/Thread.h"
5
6 TEST(GlobalJsObjectTest, SetTimeout)
7 {
8 AdblockPlus::JsEngine jsEngine(0, 0);
9 jsEngine.Evaluate("setTimeout(function() {foo = 'bar';}, 100)");
10 ASSERT_EQ("", jsEngine.GetVariable("foo"));
11 AdblockPlus::Sleep(200);
12 ASSERT_EQ("bar", jsEngine.GetVariable("foo"));
13 }
14
15 TEST(GlobalJsObjectTest, SetTimeoutWithArgs)
16 {
17 AdblockPlus::JsEngine jsEngine(0, 0);
18 jsEngine.Evaluate("setTimeout(function(s) {foo = s;}, 100, 'foobar')");
19 ASSERT_EQ("", jsEngine.GetVariable("foo"));
20 AdblockPlus::Sleep(200);
21 ASSERT_EQ("foobar", jsEngine.GetVariable("foo"));
22 }
23
24 TEST(GlobalJsObjectTest, SetTimeoutWithInvalidArgs)
25 {
26 AdblockPlus::JsEngine jsEngine(0, 0);
27 ASSERT_ANY_THROW(jsEngine.Evaluate("setTimeout()"));
28 ASSERT_ANY_THROW(jsEngine.Evaluate("setTimeout('', 1)"));
29 ASSERT_ANY_THROW(jsEngine.Evaluate("setTimeout(function(){}, '')"));
30 }
31
32 TEST(GlobalJsObjectTest, SetMultipleTimeouts)
33 {
34 AdblockPlus::JsEngine jsEngine(0, 0);
35 jsEngine.Evaluate("foo = []");
36 jsEngine.Evaluate("setTimeout(function(s) {foo.push('1');}, 100)");
37 jsEngine.Evaluate("setTimeout(function(s) {foo.push('2');}, 150)");
38 AdblockPlus::Sleep(200);
39 ASSERT_EQ("1,2", jsEngine.GetVariable("foo"));
40 }
OLDNEW
« src/GlobalJsObject.cpp ('K') | « src/JsEngine.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld