[seed] clutter-pad: test and fix duplicate context creation on execute



commit 9af1a888692f65ba110638ec60b859db6cf3cfba
Author: Johan Euphrosine <proppy aminche com>
Date:   Thu May 14 14:19:31 2009 +0000

    clutter-pad: test and fix duplicate context creation on execute
---
 examples/clutter-pad/main.js |    9 ++++-----
 examples/clutter-pad/test.js |   27 +++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/examples/clutter-pad/main.js b/examples/clutter-pad/main.js
index 8c6dfaf..2b49f64 100755
--- a/examples/clutter-pad/main.js
+++ b/examples/clutter-pad/main.js
@@ -18,9 +18,6 @@ var context;
 
 function reset_stage()
 {
-	context = new sandbox.Context();
-	context.add_globals();
-
 	stage.remove_all();
 	
 	stage.color = {alpha: 255};
@@ -130,18 +127,20 @@ function execute_file(button)
 		if (slice == '')
 		{
 			reset_stage();
-			context.destroy();
+			if (context)
+				context.destroy();
 			context = new sandbox.Context();
 			context.add_globals();
 			context.eval(source_buf.text)
 		}
 		else
 		{
-			context.eval(slice)
+			context.eval(slice);
 		}
     }
     catch (e)
     {
+		Seed.print(e.message);
 		error_buf.text = e.message;
     }
 };
diff --git a/examples/clutter-pad/test.js b/examples/clutter-pad/test.js
new file mode 100644
index 0000000..25c392f
--- /dev/null
+++ b/examples/clutter-pad/test.js
@@ -0,0 +1,27 @@
+Gtk = imports.gi.Gtk;
+
+var gtkMain = Gtk.main;
+Gtk.main = function() {};
+function assertEquals(expected, value, message) {
+    if (expected != value) {
+	throw new Error('FAILED: ' + message + ', expected: ' + expected + ' got: ' + value);
+    } else {
+	Seed.print('PASS: ' + message);
+    }
+}
+
+pad = imports.main;
+
+var contexts = [];
+var sandboxContext = pad.sandbox.Context;
+pad.sandbox.Context = function() {
+    contexts.push(this);   
+};
+pad.sandbox.Context.prototype = {
+    add_globals: function() {},
+    destroy: function() {},
+    eval: function() {}
+};
+
+pad.execute_file();
+assertEquals(1, contexts.length, 'execute file should create only one context');



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]