[macruby-changes] [1537] MacRuby/branches/experimental/spec/macruby

source_changes at macosforge.org source_changes at macosforge.org
Tue May 5 15:50:53 PDT 2009


Revision: 1537
          http://trac.macosforge.org/projects/ruby/changeset/1537
Author:   lsansonetti at apple.com
Date:     2009-05-05 15:50:52 -0700 (Tue, 05 May 2009)
Log Message:
-----------
added preliminary specs for the MacRuby class

Added Paths:
-----------
    MacRuby/branches/experimental/spec/macruby/fixtures/test_objc1.rb
    MacRuby/branches/experimental/spec/macruby/fixtures/test_objc2.rb
    MacRuby/branches/experimental/spec/macruby/objc_spec.rb

Added: MacRuby/branches/experimental/spec/macruby/fixtures/test_objc1.rb
===================================================================
--- MacRuby/branches/experimental/spec/macruby/fixtures/test_objc1.rb	                        (rev 0)
+++ MacRuby/branches/experimental/spec/macruby/fixtures/test_objc1.rb	2009-05-05 22:50:52 UTC (rev 1537)
@@ -0,0 +1 @@
+1+2

Added: MacRuby/branches/experimental/spec/macruby/fixtures/test_objc2.rb
===================================================================
--- MacRuby/branches/experimental/spec/macruby/fixtures/test_objc2.rb	                        (rev 0)
+++ MacRuby/branches/experimental/spec/macruby/fixtures/test_objc2.rb	2009-05-05 22:50:52 UTC (rev 1537)
@@ -0,0 +1 @@
+foo

Added: MacRuby/branches/experimental/spec/macruby/objc_spec.rb
===================================================================
--- MacRuby/branches/experimental/spec/macruby/objc_spec.rb	                        (rev 0)
+++ MacRuby/branches/experimental/spec/macruby/objc_spec.rb	2009-05-05 22:50:52 UTC (rev 1537)
@@ -0,0 +1,46 @@
+require File.dirname(__FILE__) + "/spec_helper"
+# TODO: the MacRuby class should also be tested from Objective-C.
+#FixtureCompiler.require! "objc"
+
+describe "-[MacRuby sharedRuntime]" do
+  before :each do
+    @r = MacRuby.sharedRuntime
+  end
+
+  it "initializes and return a singleton instance representing the runtime" do
+    @r.class.should == MacRuby
+    @r.should == MacRuby.sharedRuntime
+  end
+
+  it "can evaluate a given Ruby expression" do
+    o = @r.evaluateString('1+2')
+    o.class.should == Fixnum
+    o.should == 3
+
+    lambda { @r.evaluateString('1+') }.should raise_error(SyntaxError)
+    lambda { @r.evaluateString('foo') }.should raise_error(NameError)
+  end
+
+  it "can evaluate a given Ruby file using a path or an URL" do
+    p1 = File.dirname(__FILE__) + '/fixtures/test_objc1.rb'
+    p2 = File.dirname(__FILE__) + '/fixtures/test_objc2.rb'
+
+    o = @r.evaluateFileAtPath(p1)
+    o.class.should == Fixnum
+    o.should == 3
+
+    o = @r.evaluateFileAtURL(NSURL.fileURLWithPath(p1))
+    o.class.should == Fixnum
+    o.should == 3
+
+    lambda { @r.evaluateFileAtPath(p2) }.should raise_error(NameError)
+    lambda { @r.evaluateFileAtURL(NSURL.fileURLWithPath(p2)) }.should raise_error(NameError)
+
+    # TODO: add tests that should raise_error for the following cases:
+    # - given path is nil
+    # - given path does not exist
+    # - given URL is nil
+    # - given file:// URL does not exist
+    # - given URL is not file://
+  end
+end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090505/8f6cbbc8/attachment.html>


More information about the macruby-changes mailing list