context 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. data/Rakefile.rb +107 -0
  2. data/coverage/-usr-local-lib-site_ruby-1_8-atk_rb.html +612 -0
  3. data/coverage/-usr-local-lib-site_ruby-1_8-gdk_pixbuf2_rb.html +637 -0
  4. data/coverage/-usr-local-lib-site_ruby-1_8-glib2_rb.html +829 -0
  5. data/coverage/-usr-local-lib-site_ruby-1_8-gtk2-base_rb.html +709 -0
  6. data/coverage/-usr-local-lib-site_ruby-1_8-gtk2_rb.html +623 -0
  7. data/coverage/-usr-local-lib-site_ruby-1_8-pango_rb.html +665 -0
  8. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-color_rb.html +865 -0
  9. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-colors_rb.html +1266 -0
  10. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-constants_rb.html +632 -0
  11. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-context-blur_rb.html +655 -0
  12. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-context-circle_rb.html +619 -0
  13. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-context-color_rb.html +621 -0
  14. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-context-path_rb.html +726 -0
  15. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-context-rectangle_rb.html +643 -0
  16. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-context-triangle_rb.html +622 -0
  17. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-context_rb.html +639 -0
  18. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-paper_rb.html +793 -0
  19. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-papers_rb.html +651 -0
  20. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-path_rb.html +625 -0
  21. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo-point_rb.html +617 -0
  22. data/coverage/-var-lib-gems-1_8-gems-cairo-1_7_0-src-lib-cairo_rb.html +756 -0
  23. data/coverage/index.html +1170 -0
  24. data/coverage/lib-Context-Bridge_rb.html +673 -0
  25. data/coverage/lib-Context-Context_rb.html +756 -0
  26. data/coverage/lib-Context-EnumeratedType_rb.html +661 -0
  27. data/coverage/lib-Context-ExecutionProxy_rb.html +671 -0
  28. data/coverage/lib-Context-Gtk-App_rb.html +638 -0
  29. data/coverage/lib-Context-Gtk-Key_rb.html +664 -0
  30. data/coverage/lib-Context-Gtk-Widget_rb.html +667 -0
  31. data/coverage/lib-Context-KeyAssignment_rb.html +641 -0
  32. data/coverage/lib-Context-KeyMap_rb.html +653 -0
  33. data/coverage/lib-Context-Key_rb.html +667 -0
  34. data/coverage/lib-Context-View_rb.html +659 -0
  35. data/coverage/lib-Context-Views-Gtk-PageView_rb.html +660 -0
  36. data/coverage/lib-Context-Views-PageView_rb.html +627 -0
  37. data/coverage/lib-Context-Widget_rb.html +650 -0
  38. data/coverage/lib-Context-require_all_rb.html +623 -0
  39. data/doc/classes/Context.html +174 -0
  40. data/doc/classes/Context/Bridge.html +296 -0
  41. data/doc/classes/Context/Context.html +564 -0
  42. data/doc/classes/Context/EnumeratedType.html +283 -0
  43. data/doc/classes/Context/ExecutionProxy.html +228 -0
  44. data/doc/classes/Context/Gtk.html +126 -0
  45. data/doc/classes/Context/Gtk/App.html +217 -0
  46. data/doc/classes/Context/Gtk/Key.html +292 -0
  47. data/doc/classes/Context/Gtk/PageView.html +245 -0
  48. data/doc/classes/Context/Gtk/PageView/MainWindow.html +200 -0
  49. data/doc/classes/Context/Gtk/Widget.html +311 -0
  50. data/doc/classes/Context/Key.html +305 -0
  51. data/doc/classes/Context/Key/Modifier.html +117 -0
  52. data/doc/classes/Context/KeyAssignment.html +234 -0
  53. data/doc/classes/Context/KeyMap.html +273 -0
  54. data/doc/classes/Context/PageView.html +180 -0
  55. data/doc/classes/Context/View.html +334 -0
  56. data/doc/classes/Context/Widget.html +298 -0
  57. data/doc/classes/Kernel.html +148 -0
  58. data/doc/classes/Object.html +196 -0
  59. data/doc/created.rid +1 -0
  60. data/doc/files/lib/Context/Bridge_rb.html +108 -0
  61. data/doc/files/lib/Context/Context_rb.html +109 -0
  62. data/doc/files/lib/Context/EnumeratedType_rb.html +101 -0
  63. data/doc/files/lib/Context/ExecutionProxy_rb.html +101 -0
  64. data/doc/files/lib/Context/Gtk/App_rb.html +110 -0
  65. data/doc/files/lib/Context/Gtk/Key_rb.html +109 -0
  66. data/doc/files/lib/Context/Gtk/Widget_rb.html +109 -0
  67. data/doc/files/lib/Context/KeyAssignment_rb.html +108 -0
  68. data/doc/files/lib/Context/KeyMap_rb.html +109 -0
  69. data/doc/files/lib/Context/Key_rb.html +108 -0
  70. data/doc/files/lib/Context/Version_rb.html +101 -0
  71. data/doc/files/lib/Context/View_rb.html +101 -0
  72. data/doc/files/lib/Context/Views/Gtk/PageView_rb.html +111 -0
  73. data/doc/files/lib/Context/Views/PageView_rb.html +108 -0
  74. data/doc/files/lib/Context/Widget_rb.html +101 -0
  75. data/doc/files/lib/Context/require_all_rb.html +101 -0
  76. data/doc/fr_class_index.html +46 -0
  77. data/doc/fr_file_index.html +42 -0
  78. data/doc/fr_method_index.html +103 -0
  79. data/doc/index.html +24 -0
  80. data/doc/rdoc-style.css +208 -0
  81. data/lib/Context/Bridge.rb +63 -0
  82. data/lib/Context/Context.rb +146 -0
  83. data/lib/Context/EnumeratedType.rb +51 -0
  84. data/lib/Context/ExecutionProxy.rb +61 -0
  85. data/lib/Context/Gtk/App.rb +28 -0
  86. data/lib/Context/Gtk/Key.rb +54 -0
  87. data/lib/Context/Gtk/Widget.rb +57 -0
  88. data/lib/Context/Key.rb +57 -0
  89. data/lib/Context/KeyAssignment.rb +31 -0
  90. data/lib/Context/KeyMap.rb +43 -0
  91. data/lib/Context/Version.rb +5 -0
  92. data/lib/Context/View.rb +49 -0
  93. data/lib/Context/Views/Gtk/PageView.rb +50 -0
  94. data/lib/Context/Views/PageView.rb +17 -0
  95. data/lib/Context/Widget.rb +40 -0
  96. data/lib/Context/require_all.rb +13 -0
  97. data/spec/Context/Bridge_spec.rb +40 -0
  98. data/spec/Context/Context_spec.rb +102 -0
  99. data/spec/Context/EnumeratedType_spec.rb +51 -0
  100. data/spec/Context/ExecutionProxy_spec.rb +28 -0
  101. data/spec/Context/Gtk/App_spec.rb +24 -0
  102. data/spec/Context/Gtk/Key_spec.rb +45 -0
  103. data/spec/Context/Gtk/Widget_spec.rb +44 -0
  104. data/spec/Context/KeyAssignment_spec.rb +26 -0
  105. data/spec/Context/KeyMap_spec.rb +64 -0
  106. data/spec/Context/Key_spec.rb +22 -0
  107. data/spec/Context/View_spec.rb +62 -0
  108. data/spec/Context/Views/Gtk/PageView_spec.rb +44 -0
  109. data/spec/Context/Views/PageView_spec.rb +20 -0
  110. data/spec/Context/Widget_spec.rb +15 -0
  111. data/spec/Context/require_all_spec.rb +13 -0
  112. data/test_results.html +343 -0
  113. metadata +179 -0
@@ -0,0 +1,28 @@
1
+ require 'Context/ExecutionProxy'
2
+
3
+ module Context
4
+
5
+ describe ExecutionProxy do
6
+
7
+ it "should execute methods" do
8
+ a = nil
9
+ a.unless_nil.fake.should be(nil)
10
+
11
+ a = 5
12
+ a.unless_nil.self.should be(5)
13
+ end
14
+
15
+ it "should execute code blocks" do
16
+ a = nil
17
+ a.unless_nil do
18
+ fake
19
+ end.should be(nil)
20
+
21
+ a = 5
22
+ a.unless_nil do
23
+ self
24
+ end.should be(5)
25
+ end
26
+ end
27
+ end
28
+
@@ -0,0 +1,24 @@
1
+ require 'Context/Gtk/App'
2
+ require 'gtk2'
3
+
4
+ module Context::Gtk
5
+
6
+ describe App do
7
+
8
+ before(:each) do
9
+ Gtk.should_receive(:init)
10
+ @app = App.new(Context::Gtk, Context::Context)
11
+ end
12
+
13
+ it "should start the Gtk main loop when run" do
14
+ Gtk.should_receive(:main)
15
+ @app.mainContext.should_receive(:enter)
16
+ @app.enter
17
+ end
18
+
19
+ it "should quit the Gtk main loop when quit" do
20
+ Gtk.should_receive(:main_quit)
21
+ @app.exit
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,45 @@
1
+ require 'Context/Gtk/Key'
2
+
3
+ module Context::Gtk
4
+
5
+ describe Key do
6
+
7
+ it "should have a factory method to convert from a GTK KeyPressEvent and back" do
8
+ event = Gdk::EventKey.new(Gdk::Event::KEY_PRESS)
9
+ event.set_state(Gdk::Window::CONTROL_MASK)
10
+ event.set_keyval(Gdk::Keyval::GDK_o)
11
+
12
+ key = Key.createFromGtkEvent(event)
13
+ key.should_not be_nil
14
+ key.should eql(Key.new(Context::Key::Modifier::CONTROL, 'o'))
15
+ key.getGtkState.should be_eql(Gdk::Window::CONTROL_MASK)
16
+ key.getGtkKeyval.should be_eql(Gdk::Keyval::GDK_o)
17
+ e = key.createGtkEvent
18
+ e.state.should be_eql(Gdk::Window::CONTROL_MASK)
19
+ e.keyval.should be_eql(Gdk::Keyval::GDK_o)
20
+ end
21
+
22
+ it "should convert characters with no modifier and back" do
23
+ event = Gdk::EventKey.new(Gdk::Event::KEY_PRESS)
24
+ event.set_state(0)
25
+ event.set_keyval(Gdk::Keyval::GDK_Tab)
26
+
27
+ key = Key.createFromGtkEvent(event)
28
+ key.should_not be_nil
29
+ key.should eql(Key.new(Context::Key::Modifier::NONE, 'Tab'))
30
+ e = key.createGtkEvent
31
+ e.state.should be_eql(0)
32
+ e.keyval.should be_eql(Gdk::Keyval::GDK_Tab)
33
+ end
34
+
35
+ it "should create a null character if it doesn't know how to make it" do
36
+ event = Gdk::EventKey.new(Gdk::Event::KEY_PRESS)
37
+ event.set_state(Gdk::Window::META_MASK)
38
+ event.set_keyval(Gdk::Keyval::GDK_q)
39
+
40
+ key = Key.createFromGtkEvent(event)
41
+ key.should_not be_nil
42
+ key.should be_null
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,44 @@
1
+ require 'Context/Gtk/Widget.rb'
2
+
3
+ module Context::Gtk
4
+
5
+ describe Widget do
6
+
7
+ before(:each) do
8
+ @widget = Context::Gtk::Widget.new(mock("Gtk::Widget"))
9
+ @newWidget = Context::Gtk::Widget.new(mock("Gtk::Widget"))
10
+ @oldWidget = Context::Gtk::Widget.new(mock("Gtk::Widget"))
11
+ end
12
+
13
+ it "should add and show the widget when add is called." do
14
+ @widget.delegate.should_receive(:add).with(@newWidget.delegate)
15
+ @widget.delegate.should_receive(:show_all)
16
+ @widget.add(@newWidget)
17
+ end
18
+
19
+ it "should remove the widget, reshow the container and grab focus when removed is called." do
20
+ @widget.delegate.should_receive(:remove).with(@oldWidget.delegate)
21
+ @widget.delegate.should_receive(:show_all)
22
+ @widget.delegate.should_receive(:grab_focus)
23
+ @widget.remove(@oldWidget)
24
+ end
25
+
26
+ it "should keep track of the main Window" do
27
+ @widget.mainWindow.should be_nil
28
+ @widget.isAMainWindow
29
+ @widget.mainWindow.should be_eql(@widget.delegate)
30
+
31
+ @widget.delegate.should_receive(:add).with(@newWidget.delegate)
32
+ @widget.delegate.should_receive(:show_all).exactly(2).times
33
+ @widget.add(@newWidget)
34
+ @newWidget.mainWindow.should be_eql(@widget.delegate)
35
+
36
+ @widget.delegate.should_receive(:remove).with(@newWidget.delegate)
37
+ @widget.delegate.should_receive(:grab_focus)
38
+ @widget.remove(@newWidget)
39
+ @newWidget.mainWindow.should be_nil
40
+ end
41
+
42
+
43
+ end
44
+ end
@@ -0,0 +1,26 @@
1
+ require 'Context/Key'
2
+ require 'Context/KeyAssignment'
3
+
4
+ module Context
5
+
6
+ describe KeyAssignment do
7
+
8
+ it "should have a key and a proc" do
9
+ run = false
10
+ ctlD = Key.new(Key::Modifier.CONTROL, 'd')
11
+ d = Key.new(Key::Modifier.NONE, 'd')
12
+ ka = KeyAssignment.new(ctlD) do
13
+ run = true
14
+ end
15
+ newCtlD = Key.new(Key::Modifier.CONTROL, 'd')
16
+ newD = Key.new(Key::Modifier.NONE, 'd')
17
+ ka.handles?(newD).should be(false)
18
+ ka.handles?(newCtlD).should be(true)
19
+ ka.try(newD).should be(false)
20
+ run.should be(false)
21
+ ka.try(newCtlD).should be(true)
22
+ run.should be(true)
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,64 @@
1
+ require 'Context/Key'
2
+ require 'Context/KeyAssignment'
3
+ require 'Context/KeyMap'
4
+
5
+ module Context
6
+
7
+ describe KeyMap do
8
+
9
+ before(:each) do
10
+ @map = KeyMap.new
11
+ @ctlD = Key.new(Key::Modifier.CONTROL, 'd')
12
+ @ctlDPressed = false
13
+ @ctlDAssignment = KeyAssignment.new(@ctlD) do
14
+ @ctlDPressed = true
15
+ end
16
+ @d = Key.new(Key::Modifier.NONE, 'd')
17
+ @dPressed = false
18
+ @dAssignment = KeyAssignment.new(@ctlD) do
19
+ @dPressed = true
20
+ end
21
+ @newCtlD = Key.new(Key::Modifier.CONTROL, 'd')
22
+ @newD = Key.new(Key::Modifier.NONE, 'd')
23
+ end
24
+
25
+ it "should be able to contain a KeyAssignment" do
26
+ @map.handles?(@newCtlD).should be(false)
27
+ @map.handles?(@newD).should be(false)
28
+ @map.add(@ctlDAssignment)
29
+ @map.handles?(@newCtlD).should be(true)
30
+ @map.handles?(@newD).should be(false)
31
+ end
32
+
33
+ it "should be able to contain many KeyAssignments" do
34
+ @map.handles?(@newCtlD).should be(false)
35
+ @map.handles?(@newD).should be(false)
36
+ @map.add(@ctlDAssignment)
37
+ @map.handles?(@newCtlD).should be(true)
38
+ @map.handles?(@newD).should be(false)
39
+ @map.add(@dAssignment)
40
+ @map.handles?(@newD).should be(false)
41
+ end
42
+
43
+ it "should be able to press a key" do
44
+ @map.add(@ctlDAssignment)
45
+ @map.add(@dAssignment)
46
+ @ctlDPressed.should be(false)
47
+ @dPressed.should be(false)
48
+ @map.press(@newCtlD).should be(true)
49
+ @ctlDPressed.should be(true)
50
+ @dPressed.should be(false)
51
+ end
52
+
53
+ it "should return false if a non-handled key is pressed" do
54
+ @map.add(@ctlDAssignment)
55
+ @ctlDPressed.should be(false)
56
+ @dPressed.should be(false)
57
+ @map.handles?(@d).should be(false)
58
+ @map.press(@d).should be(false)
59
+ @dPressed.should be(false)
60
+ @ctlDPressed.should be(false)
61
+ end
62
+
63
+ end
64
+ end
@@ -0,0 +1,22 @@
1
+ require 'Context/Key'
2
+
3
+ module Context
4
+
5
+ describe Key do
6
+
7
+ it "should have unique hash values" do
8
+ key1 = Key.new(Key::Modifier.NONE, 'o')
9
+ key2 = Key.new(Key::Modifier.CONTROL, 'o')
10
+ key1.hash.should_not eql(key2.hash)
11
+ key3 = Key.new(Key::Modifier.CONTROL, 'n')
12
+ key2.hash.should_not eql(key3.hash)
13
+ end
14
+
15
+ it "should produce the same hash for equivalent values" do
16
+ key1 = Key.new(Key::Modifier.CONTROL, 'o')
17
+ key2 = Key.new(Key::Modifier.CONTROL, 'o')
18
+ key1.hash.should eql(key2.hash)
19
+ end
20
+ end
21
+
22
+ end
@@ -0,0 +1,62 @@
1
+ require 'Context/View'
2
+
3
+ module Context
4
+
5
+ describe View do
6
+
7
+ # Since this is an abstract class, we need to override getWidget with
8
+ # something that does something
9
+ def overrideGetWidget(view)
10
+ def view.getWidget
11
+ @widget
12
+ end
13
+ def view.setWidget(widget)
14
+ @widget = widget
15
+ end
16
+ end
17
+
18
+ before(:each) do
19
+ @context = mock("Context")
20
+ @view = View.new(@context)
21
+ @widget = mock("Widget")
22
+
23
+ # Override the getWidget method
24
+ @view.getWidget.should be_nil
25
+ overrideGetWidget(@view)
26
+ @view.setWidget(@widget)
27
+ @view.getWidget.should be(@widget)
28
+ end
29
+
30
+ it "should set the context on creation" do
31
+ @view.context.should be(@context)
32
+ end
33
+
34
+ it "should use the widgets to add a view" do
35
+ newView = View.new(@context)
36
+ overrideGetWidget(newView)
37
+ newWidget = mock("Widget")
38
+ newView.setWidget(newWidget)
39
+
40
+ @widget.should_receive(:add).with(newWidget)
41
+ newWidget.should_receive(:addedTo).with(@widget)
42
+ @view.addView(newView)
43
+ end
44
+
45
+ it "should use the widgets to remove a view" do
46
+ oldView = View.new(@context)
47
+ overrideGetWidget(oldView)
48
+ oldWidget = mock("Widget")
49
+ oldView.setWidget(oldWidget)
50
+
51
+ @widget.should_receive(:remove).with(oldWidget)
52
+ oldWidget.should_receive(:removedFrom).with(@widget)
53
+ @view.removeView(oldView)
54
+ end
55
+
56
+ it "should pass key notifications on to the context" do
57
+ key = mock("Key")
58
+ @context.should_receive(:notifyKey).with(@view, key)
59
+ @view.notifyKey(mock("Widget"), key)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,44 @@
1
+ require 'Context/Bridge'
2
+ require 'Context/Context'
3
+ require 'Context/Views/Gtk/PageView'
4
+
5
+ module Context::Gtk
6
+
7
+ describe PageView do
8
+
9
+ before(:each) do
10
+ @bridge = Context::Bridge.new(Context::Gtk)
11
+ @context = Context::Context.new(@bridge)
12
+ @view = @bridge.PageView.new(@context)
13
+ end
14
+
15
+ it "should have a widget when initialized" do
16
+ @view.getWidget.should_not be_nil
17
+ end
18
+
19
+ it "should show the widgets when opened" do
20
+ @view.mainWindow.should_receive(:show_all)
21
+ @view.open
22
+ end
23
+
24
+ it "should add widgets from another view when added" do
25
+ newContext = mock("Context::Context")
26
+ newView = @bridge.PageView.new(newContext)
27
+ @view.getWidget().should_receive(:add).with(newView.getWidget)
28
+ @view.addView(newView)
29
+ end
30
+
31
+ it "should remove widgets from another view when removed" do
32
+ oldContext = mock("Context::MainContext")
33
+ oldView = @bridge.PageView.new(oldContext)
34
+ @view.getWidget().should_receive(:remove).with(oldView.getWidget)
35
+ @view.removeView(oldView)
36
+ end
37
+
38
+ it "should react to destroy signals" do
39
+ @view.should_receive(:close)
40
+ @view.emitDestroyEvent
41
+ end
42
+ end
43
+ end
44
+
@@ -0,0 +1,20 @@
1
+ require 'Context/Bridge'
2
+ require 'Context/Context'
3
+ require 'Context/Views/PageView'
4
+
5
+ module Context
6
+
7
+ describe PageView do
8
+
9
+ before(:each) do
10
+ @bridge = Bridge.new(Context)
11
+ @context = Context.new(@bridge)
12
+ @view = @bridge.PageView.new(@context)
13
+ end
14
+
15
+ it "should close the context when the view is closed" do
16
+ @context.should_receive(:close)
17
+ @view.close
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ require 'Context/Widget'
2
+
3
+ module Context
4
+
5
+ describe Widget do
6
+
7
+ it "should do equivalence based on the delagate in the widget" do
8
+ widget1 = Widget.new("Hello")
9
+ widget2 = Widget.new("Hello")
10
+ widget1.should eql(widget2)
11
+ widget3 = Widget.new("Goodbye")
12
+ widget3.should_not eql(widget2)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ require 'Context/require_all'
2
+ require 'Context/Context'
3
+
4
+ describe Kernel do
5
+
6
+ it "should have a unit test for require_all" do
7
+ require_all 'Context/Gtk/*'
8
+ Context::Gtk::App.new(Context, Context::Context).should_not be_nil
9
+ Context::Gtk::Key.new(mock("Modifier"), mock("Character")).should_not be_nil
10
+ Context::Gtk::Widget.new(mock("Delegate")).should_not be_nil
11
+ end
12
+ end
13
+
data/test_results.html ADDED
@@ -0,0 +1,343 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title>RSpec results</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
+ <meta http-equiv="Expires" content="-1" />
10
+ <meta http-equiv="Pragma" content="no-cache" />
11
+ <style type="text/css">
12
+ body {
13
+ margin: 0;
14
+ padding: 0;
15
+ background: #fff;
16
+ font-size: 80%;
17
+ }
18
+ </style>
19
+ </head>
20
+ <body>
21
+ <div class="rspec-report">
22
+ <script type="text/javascript">
23
+ // <![CDATA[
24
+ function moveProgressBar(percentDone) {
25
+ document.getElementById("rspec-header").style.width = percentDone +"%";
26
+ }
27
+ function makeRed(element_id) {
28
+ document.getElementById(element_id).style.background = '#C40D0D';
29
+ document.getElementById(element_id).style.color = '#FFFFFF';
30
+ }
31
+
32
+ function makeYellow(element_id) {
33
+ if (element_id == "rspec-header" && document.getElementById(element_id).style.background != '#C40D0D')
34
+ {
35
+ document.getElementById(element_id).style.background = '#FAF834';
36
+ document.getElementById(element_id).style.color = '#000000';
37
+ }
38
+ else
39
+ {
40
+ document.getElementById(element_id).style.background = '#FAF834';
41
+ document.getElementById(element_id).style.color = '#000000';
42
+ }
43
+ }
44
+
45
+ // ]]>
46
+ </script>
47
+ <style type="text/css">
48
+ #rspec-header {
49
+ background: #65C400; color: #fff;
50
+ }
51
+
52
+ .rspec-report h1 {
53
+ margin: 0px 10px 0px 10px;
54
+ padding: 10px;
55
+ font-family: "Lucida Grande", Helvetica, sans-serif;
56
+ font-size: 1.8em;
57
+ }
58
+
59
+ #summary {
60
+ margin: 0; padding: 5px 10px;
61
+ font-family: "Lucida Grande", Helvetica, sans-serif;
62
+ text-align: right;
63
+ position: absolute;
64
+ top: 0px;
65
+ right: 0px;
66
+ }
67
+
68
+ #summary p {
69
+ margin: 0 0 0 2px;
70
+ }
71
+
72
+ #summary #totals {
73
+ font-size: 1.2em;
74
+ }
75
+
76
+ .example_group {
77
+ margin: 0 10px 5px;
78
+ background: #fff;
79
+ }
80
+
81
+ dl {
82
+ margin: 0; padding: 0 0 5px;
83
+ font: normal 11px "Lucida Grande", Helvetica, sans-serif;
84
+ }
85
+
86
+ dt {
87
+ padding: 3px;
88
+ background: #65C400;
89
+ color: #fff;
90
+ font-weight: bold;
91
+ }
92
+
93
+ dd {
94
+ margin: 5px 0 5px 5px;
95
+ padding: 3px 3px 3px 18px;
96
+ }
97
+
98
+ dd.spec.passed {
99
+ border-left: 5px solid #65C400;
100
+ border-bottom: 1px solid #65C400;
101
+ background: #DBFFB4; color: #3D7700;
102
+ }
103
+
104
+ dd.spec.failed {
105
+ border-left: 5px solid #C20000;
106
+ border-bottom: 1px solid #C20000;
107
+ color: #C20000; background: #FFFBD3;
108
+ }
109
+
110
+ dd.spec.not_implemented {
111
+ border-left: 5px solid #FAF834;
112
+ border-bottom: 1px solid #FAF834;
113
+ background: #FCFB98; color: #131313;
114
+ }
115
+
116
+ dd.spec.pending_fixed {
117
+ border-left: 5px solid #0000C2;
118
+ border-bottom: 1px solid #0000C2;
119
+ color: #0000C2; background: #D3FBFF;
120
+ }
121
+
122
+ .backtrace {
123
+ color: #000;
124
+ font-size: 12px;
125
+ }
126
+
127
+ a {
128
+ color: #BE5C00;
129
+ }
130
+
131
+ /* Ruby code, style similar to vibrant ink */
132
+ .ruby {
133
+ font-size: 12px;
134
+ font-family: monospace;
135
+ color: white;
136
+ background-color: black;
137
+ padding: 0.1em 0 0.2em 0;
138
+ }
139
+
140
+ .ruby .keyword { color: #FF6600; }
141
+ .ruby .constant { color: #339999; }
142
+ .ruby .attribute { color: white; }
143
+ .ruby .global { color: white; }
144
+ .ruby .module { color: white; }
145
+ .ruby .class { color: white; }
146
+ .ruby .string { color: #66FF00; }
147
+ .ruby .ident { color: white; }
148
+ .ruby .method { color: #FFCC00; }
149
+ .ruby .number { color: white; }
150
+ .ruby .char { color: white; }
151
+ .ruby .comment { color: #9933CC; }
152
+ .ruby .symbol { color: white; }
153
+ .ruby .regex { color: #44B4CC; }
154
+ .ruby .punct { color: white; }
155
+ .ruby .escape { color: white; }
156
+ .ruby .interp { color: white; }
157
+ .ruby .expr { color: white; }
158
+
159
+ .ruby .offending { background-color: gray; }
160
+ .ruby .linenum {
161
+ width: 75px;
162
+ padding: 0.1em 1em 0.2em 0;
163
+ color: #000000;
164
+ background-color: #FFFBD3;
165
+ }
166
+
167
+ </style>
168
+
169
+ <div id="rspec-header">
170
+ <h1>RSpec Results</h1>
171
+
172
+ <div id="summary">
173
+ <p id="totals">&nbsp;</p>
174
+ <p id="duration">&nbsp;</p>
175
+ </div>
176
+ </div>
177
+
178
+ <div class="results">
179
+ <div class="example_group">
180
+ <dl>
181
+ <dt id="example_group_1">Context::Context</dt>
182
+ <script type="text/javascript">moveProgressBar('2.3');</script>
183
+ <dd class="spec passed"><span class="passed_spec_name">should not have a parent set on creation</span></dd>
184
+ <script type="text/javascript">moveProgressBar('4.7');</script>
185
+ <dd class="spec passed"><span class="passed_spec_name">should set the parent on entry</span></dd>
186
+ <script type="text/javascript">moveProgressBar('7.1');</script>
187
+ <dd class="spec passed"><span class="passed_spec_name">should add new views to the main view</span></dd>
188
+ <script type="text/javascript">moveProgressBar('9.5');</script>
189
+ <dd class="spec passed"><span class="passed_spec_name">should remove views on exit</span></dd>
190
+ <script type="text/javascript">moveProgressBar('11.9');</script>
191
+ <dd class="spec passed"><span class="passed_spec_name">should be able to set key bindings</span></dd>
192
+ <script type="text/javascript">moveProgressBar('14.2');</script>
193
+ <dd class="spec passed"><span class="passed_spec_name">should create the views on entry</span></dd>
194
+ <script type="text/javascript">moveProgressBar('16.6');</script>
195
+ <dd class="spec passed"><span class="passed_spec_name">should destroy the views on exit</span></dd>
196
+ <script type="text/javascript">moveProgressBar('19.0');</script>
197
+ <dd class="spec passed"><span class="passed_spec_name">should keep track if the context has been entered or not</span></dd>
198
+ </dl>
199
+ </div>
200
+ <div class="example_group">
201
+ <dl>
202
+ <dt id="example_group_2">Context::EnumeratedType</dt>
203
+ <script type="text/javascript">moveProgressBar('21.4');</script>
204
+ <dd class="spec passed"><span class="passed_spec_name">should start at 0 by default</span></dd>
205
+ <script type="text/javascript">moveProgressBar('23.8');</script>
206
+ <dd class="spec passed"><span class="passed_spec_name">should increment by one for each value</span></dd>
207
+ <script type="text/javascript">moveProgressBar('26.1');</script>
208
+ <dd class="spec passed"><span class="passed_spec_name">should start at the number specified</span></dd>
209
+ <script type="text/javascript">moveProgressBar('28.5');</script>
210
+ <dd class="spec passed"><span class="passed_spec_name">should only respond to the names of the defined symbols</span></dd>
211
+ </dl>
212
+ </div>
213
+ <div class="example_group">
214
+ <dl>
215
+ <dt id="example_group_3">Context::Gtk::App</dt>
216
+ <script type="text/javascript">moveProgressBar('30.9');</script>
217
+ <dd class="spec passed"><span class="passed_spec_name">should start the Gtk main loop when run</span></dd>
218
+ <script type="text/javascript">moveProgressBar('33.3');</script>
219
+ <dd class="spec passed"><span class="passed_spec_name">should quit the Gtk main loop when quit</span></dd>
220
+ </dl>
221
+ </div>
222
+ <div class="example_group">
223
+ <dl>
224
+ <dt id="example_group_4">Context::Gtk::Key</dt>
225
+ <script type="text/javascript">moveProgressBar('35.7');</script>
226
+ <dd class="spec passed"><span class="passed_spec_name">should have a factory method to convert from a GTK KeyPressEvent and back</span></dd>
227
+ <script type="text/javascript">moveProgressBar('38.0');</script>
228
+ <dd class="spec passed"><span class="passed_spec_name">should convert characters with no modifier and back</span></dd>
229
+ <script type="text/javascript">moveProgressBar('40.4');</script>
230
+ <dd class="spec passed"><span class="passed_spec_name">should create a null character if it doesn't know how to make it</span></dd>
231
+ </dl>
232
+ </div>
233
+ <div class="example_group">
234
+ <dl>
235
+ <dt id="example_group_5">Context::Gtk::Widget</dt>
236
+ <script type="text/javascript">moveProgressBar('42.8');</script>
237
+ <dd class="spec passed"><span class="passed_spec_name">should add and show the widget when add is called.</span></dd>
238
+ <script type="text/javascript">moveProgressBar('45.2');</script>
239
+ <dd class="spec passed"><span class="passed_spec_name">should remove the widget, reshow the container and grab focus when removed is called.</span></dd>
240
+ <script type="text/javascript">moveProgressBar('47.6');</script>
241
+ <dd class="spec passed"><span class="passed_spec_name">should keep track of the main Window</span></dd>
242
+ </dl>
243
+ </div>
244
+ <div class="example_group">
245
+ <dl>
246
+ <dt id="example_group_6">Context::Key</dt>
247
+ <script type="text/javascript">moveProgressBar('50.0');</script>
248
+ <dd class="spec passed"><span class="passed_spec_name">should have unique hash values</span></dd>
249
+ <script type="text/javascript">moveProgressBar('52.3');</script>
250
+ <dd class="spec passed"><span class="passed_spec_name">should produce the same hash for equivalent values</span></dd>
251
+ </dl>
252
+ </div>
253
+ <div class="example_group">
254
+ <dl>
255
+ <dt id="example_group_7">Kernel</dt>
256
+ <script type="text/javascript">moveProgressBar('54.7');</script>
257
+ <dd class="spec passed"><span class="passed_spec_name">should have a unit test for require_all</span></dd>
258
+ </dl>
259
+ </div>
260
+ <div class="example_group">
261
+ <dl>
262
+ <dt id="example_group_8">Context::Widget</dt>
263
+ <script type="text/javascript">moveProgressBar('57.1');</script>
264
+ <dd class="spec passed"><span class="passed_spec_name">should do equivalence based on the delagate in the widget</span></dd>
265
+ </dl>
266
+ </div>
267
+ <div class="example_group">
268
+ <dl>
269
+ <dt id="example_group_9">Context::View</dt>
270
+ <script type="text/javascript">moveProgressBar('59.5');</script>
271
+ <dd class="spec passed"><span class="passed_spec_name">should set the context on creation</span></dd>
272
+ <script type="text/javascript">moveProgressBar('61.9');</script>
273
+ <dd class="spec passed"><span class="passed_spec_name">should use the widgets to add a view</span></dd>
274
+ <script type="text/javascript">moveProgressBar('64.2');</script>
275
+ <dd class="spec passed"><span class="passed_spec_name">should use the widgets to remove a view</span></dd>
276
+ <script type="text/javascript">moveProgressBar('66.6');</script>
277
+ <dd class="spec passed"><span class="passed_spec_name">should pass key notifications on to the context</span></dd>
278
+ </dl>
279
+ </div>
280
+ <div class="example_group">
281
+ <dl>
282
+ <dt id="example_group_10">Context::KeyAssignment</dt>
283
+ <script type="text/javascript">moveProgressBar('69.0');</script>
284
+ <dd class="spec passed"><span class="passed_spec_name">should have a key and a proc</span></dd>
285
+ </dl>
286
+ </div>
287
+ <div class="example_group">
288
+ <dl>
289
+ <dt id="example_group_11">Context::KeyMap</dt>
290
+ <script type="text/javascript">moveProgressBar('71.4');</script>
291
+ <dd class="spec passed"><span class="passed_spec_name">should be able to contain a KeyAssignment</span></dd>
292
+ <script type="text/javascript">moveProgressBar('73.8');</script>
293
+ <dd class="spec passed"><span class="passed_spec_name">should be able to contain many KeyAssignments</span></dd>
294
+ <script type="text/javascript">moveProgressBar('76.1');</script>
295
+ <dd class="spec passed"><span class="passed_spec_name">should be able to press a key</span></dd>
296
+ <script type="text/javascript">moveProgressBar('78.5');</script>
297
+ <dd class="spec passed"><span class="passed_spec_name">should return false if a non-handled key is pressed</span></dd>
298
+ </dl>
299
+ </div>
300
+ <div class="example_group">
301
+ <dl>
302
+ <dt id="example_group_12">Context::Gtk::PageView</dt>
303
+ <script type="text/javascript">moveProgressBar('80.9');</script>
304
+ <dd class="spec passed"><span class="passed_spec_name">should have a widget when initialized</span></dd>
305
+ <script type="text/javascript">moveProgressBar('83.3');</script>
306
+ <dd class="spec passed"><span class="passed_spec_name">should show the widgets when opened</span></dd>
307
+ <script type="text/javascript">moveProgressBar('85.7');</script>
308
+ <dd class="spec passed"><span class="passed_spec_name">should add widgets from another view when added</span></dd>
309
+ <script type="text/javascript">moveProgressBar('88.0');</script>
310
+ <dd class="spec passed"><span class="passed_spec_name">should remove widgets from another view when removed</span></dd>
311
+ <script type="text/javascript">moveProgressBar('90.4');</script>
312
+ <dd class="spec passed"><span class="passed_spec_name">should react to destroy signals</span></dd>
313
+ </dl>
314
+ </div>
315
+ <div class="example_group">
316
+ <dl>
317
+ <dt id="example_group_13">Context::PageView</dt>
318
+ <script type="text/javascript">moveProgressBar('92.8');</script>
319
+ <dd class="spec passed"><span class="passed_spec_name">should close the context when the view is closed</span></dd>
320
+ </dl>
321
+ </div>
322
+ <div class="example_group">
323
+ <dl>
324
+ <dt id="example_group_14">Context::ExecutionProxy</dt>
325
+ <script type="text/javascript">moveProgressBar('95.2');</script>
326
+ <dd class="spec passed"><span class="passed_spec_name">should execute methods</span></dd>
327
+ <script type="text/javascript">moveProgressBar('97.6');</script>
328
+ <dd class="spec passed"><span class="passed_spec_name">should execute code blocks</span></dd>
329
+ </dl>
330
+ </div>
331
+ <div class="example_group">
332
+ <dl>
333
+ <dt id="example_group_15">Context::Bridge</dt>
334
+ <script type="text/javascript">moveProgressBar('100.0');</script>
335
+ <dd class="spec passed"><span class="passed_spec_name">should reference classes in the namespace provided</span></dd>
336
+ </dl>
337
+ </div>
338
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>0.086622 seconds</strong>";</script>
339
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "42 examples, 0 failures";</script>
340
+ </div>
341
+ </div>
342
+ </body>
343
+ </html>