lebowski 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. data/History.md +3 -0
  2. data/License.txt +20 -0
  3. data/Manifest.txt +84 -0
  4. data/README.md +146 -0
  5. data/Rakefile +42 -0
  6. data/bin/lebowski +26 -0
  7. data/bin/lebowski-spec +29 -0
  8. data/bin/lebowski-start-server +24 -0
  9. data/lib/lebowski.rb +15 -0
  10. data/lib/lebowski/core.rb +35 -0
  11. data/lib/lebowski/foundation.rb +52 -0
  12. data/lib/lebowski/foundation/application.rb +315 -0
  13. data/lib/lebowski/foundation/core.rb +61 -0
  14. data/lib/lebowski/foundation/core_query.rb +231 -0
  15. data/lib/lebowski/foundation/dom_element.rb +114 -0
  16. data/lib/lebowski/foundation/errors/argument_invalid_type.rb +31 -0
  17. data/lib/lebowski/foundation/errors/unexpected_type.rb +30 -0
  18. data/lib/lebowski/foundation/mixins/collection_item_view_support.rb +87 -0
  19. data/lib/lebowski/foundation/mixins/delegate_support.rb +22 -0
  20. data/lib/lebowski/foundation/mixins/inline_text_field_support.rb +29 -0
  21. data/lib/lebowski/foundation/mixins/key_check.rb +35 -0
  22. data/lib/lebowski/foundation/mixins/list_item_view_support.rb +36 -0
  23. data/lib/lebowski/foundation/mixins/positioned_element.rb +20 -0
  24. data/lib/lebowski/foundation/mixins/stall_support.rb +79 -0
  25. data/lib/lebowski/foundation/mixins/user_actions.rb +302 -0
  26. data/lib/lebowski/foundation/mixins/wait_actions.rb +44 -0
  27. data/lib/lebowski/foundation/object_array.rb +305 -0
  28. data/lib/lebowski/foundation/panes/alert.rb +117 -0
  29. data/lib/lebowski/foundation/panes/main.rb +20 -0
  30. data/lib/lebowski/foundation/panes/menu.rb +100 -0
  31. data/lib/lebowski/foundation/panes/modal.rb +21 -0
  32. data/lib/lebowski/foundation/panes/palette.rb +21 -0
  33. data/lib/lebowski/foundation/panes/pane.rb +24 -0
  34. data/lib/lebowski/foundation/panes/panel.rb +25 -0
  35. data/lib/lebowski/foundation/panes/picker.rb +43 -0
  36. data/lib/lebowski/foundation/panes/sheet.rb +21 -0
  37. data/lib/lebowski/foundation/proxy_factory.rb +87 -0
  38. data/lib/lebowski/foundation/proxy_object.rb +670 -0
  39. data/lib/lebowski/foundation/sc_object.rb +38 -0
  40. data/lib/lebowski/foundation/views/button.rb +20 -0
  41. data/lib/lebowski/foundation/views/checkbox.rb +63 -0
  42. data/lib/lebowski/foundation/views/collection.rb +304 -0
  43. data/lib/lebowski/foundation/views/container.rb +32 -0
  44. data/lib/lebowski/foundation/views/disclosure.rb +59 -0
  45. data/lib/lebowski/foundation/views/grid.rb +21 -0
  46. data/lib/lebowski/foundation/views/label.rb +30 -0
  47. data/lib/lebowski/foundation/views/list.rb +67 -0
  48. data/lib/lebowski/foundation/views/list_item.rb +280 -0
  49. data/lib/lebowski/foundation/views/menu_item.rb +27 -0
  50. data/lib/lebowski/foundation/views/radio.rb +32 -0
  51. data/lib/lebowski/foundation/views/segmented.rb +97 -0
  52. data/lib/lebowski/foundation/views/select_field.rb +139 -0
  53. data/lib/lebowski/foundation/views/support/simple_item_array.rb +249 -0
  54. data/lib/lebowski/foundation/views/text_field.rb +108 -0
  55. data/lib/lebowski/foundation/views/view.rb +108 -0
  56. data/lib/lebowski/runtime.rb +7 -0
  57. data/lib/lebowski/runtime/errors/remote_control_command_execution_error.rb +9 -0
  58. data/lib/lebowski/runtime/errors/remote_control_command_timeout_error.rb +9 -0
  59. data/lib/lebowski/runtime/errors/remote_control_error.rb +9 -0
  60. data/lib/lebowski/runtime/errors/selenium_server_error.rb +9 -0
  61. data/lib/lebowski/runtime/object_encoder.rb +123 -0
  62. data/lib/lebowski/runtime/sprout_core_driver.rb +14 -0
  63. data/lib/lebowski/runtime/sprout_core_extensions.rb +600 -0
  64. data/lib/lebowski/scui.rb +18 -0
  65. data/lib/lebowski/scui/mixins/node_item_view_support.rb +136 -0
  66. data/lib/lebowski/scui/mixins/terminal_view_support.rb +25 -0
  67. data/lib/lebowski/scui/views/combo_box.rb +119 -0
  68. data/lib/lebowski/scui/views/date_picker.rb +148 -0
  69. data/lib/lebowski/scui/views/linkit.rb +36 -0
  70. data/lib/lebowski/spec.rb +17 -0
  71. data/lib/lebowski/spec/core.rb +21 -0
  72. data/lib/lebowski/spec/matchers/be.rb +63 -0
  73. data/lib/lebowski/spec/matchers/has.rb +40 -0
  74. data/lib/lebowski/spec/matchers/match_supporters/has_object_function.rb +67 -0
  75. data/lib/lebowski/spec/matchers/match_supporters/has_predicate_with_no_prefix.rb +50 -0
  76. data/lib/lebowski/spec/matchers/match_supporters/has_predicate_with_prefix_has.rb +50 -0
  77. data/lib/lebowski/spec/matchers/match_supporters/match_supporter.rb +29 -0
  78. data/lib/lebowski/spec/matchers/method_missing.rb +24 -0
  79. data/lib/lebowski/spec/operators/operator.rb +20 -0
  80. data/lib/lebowski/spec/operators/that.rb +116 -0
  81. data/lib/lebowski/spec/util.rb +26 -0
  82. data/lib/lebowski/version.rb +17 -0
  83. data/resources/selenium-server.jar +0 -0
  84. data/resources/user-extensions.js +1421 -0
  85. metadata +198 -0
@@ -0,0 +1,3 @@
1
+ # lebowski 0.1.0 2010-06-07
2
+
3
+ * Open source beta release
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 Michael Cohen <http://frozencanuck.wordpress.com>
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,84 @@
1
+ License.txt
2
+ History.md
3
+ Manifest.txt
4
+ README.md
5
+ Rakefile
6
+ lib/lebowski.rb
7
+ lib/lebowski/version.rb
8
+ lib/lebowski/core.rb
9
+ lib/lebowski/runtime.rb
10
+ lib/lebowski/runtime/errors/remote_control_error.rb
11
+ lib/lebowski/runtime/errors/remote_control_command_execution_error.rb
12
+ lib/lebowski/runtime/errors/remote_control_command_timeout_error.rb
13
+ lib/lebowski/runtime/errors/selenium_server_error.rb
14
+ lib/lebowski/runtime/sprout_core_extensions.rb
15
+ lib/lebowski/runtime/sprout_core_driver.rb
16
+ lib/lebowski/runtime/object_encoder.rb
17
+ lib/lebowski/foundation.rb
18
+ lib/lebowski/foundation/core.rb
19
+ lib/lebowski/foundation/errors/unexpected_type.rb
20
+ lib/lebowski/foundation/errors/argument_invalid_type.rb
21
+ lib/lebowski/foundation/mixins/key_check.rb
22
+ lib/lebowski/foundation/mixins/positioned_element.rb
23
+ lib/lebowski/foundation/mixins/user_actions.rb
24
+ lib/lebowski/foundation/mixins/wait_actions.rb
25
+ lib/lebowski/foundation/mixins/delegate_support.rb
26
+ lib/lebowski/foundation/mixins/collection_item_view_support.rb
27
+ lib/lebowski/foundation/mixins/list_item_view_support.rb
28
+ lib/lebowski/foundation/mixins/inline_text_field_support.rb
29
+ lib/lebowski/foundation/mixins/stall_support.rb
30
+ lib/lebowski/foundation/proxy_object.rb
31
+ lib/lebowski/foundation/sc_object.rb
32
+ lib/lebowski/foundation/object_array.rb
33
+ lib/lebowski/foundation/core_query.rb
34
+ lib/lebowski/foundation/dom_element.rb
35
+ lib/lebowski/foundation/views/view.rb
36
+ lib/lebowski/foundation/views/label.rb
37
+ lib/lebowski/foundation/views/button.rb
38
+ lib/lebowski/foundation/views/container.rb
39
+ lib/lebowski/foundation/views/segmented.rb
40
+ lib/lebowski/foundation/views/radio.rb
41
+ lib/lebowski/foundation/views/checkbox.rb
42
+ lib/lebowski/foundation/views/disclosure.rb
43
+ lib/lebowski/foundation/views/text_field.rb
44
+ lib/lebowski/foundation/views/select_field.rb
45
+ lib/lebowski/foundation/views/menu_item.rb
46
+ lib/lebowski/foundation/views/collection.rb
47
+ lib/lebowski/foundation/views/list.rb
48
+ lib/lebowski/foundation/views/list_item.rb
49
+ lib/lebowski/foundation/views/grid.rb
50
+ lib/lebowski/foundation/views/support/simple_item_array.rb
51
+ lib/lebowski/foundation/panes/pane.rb
52
+ lib/lebowski/foundation/panes/main.rb
53
+ lib/lebowski/foundation/panes/modal.rb
54
+ lib/lebowski/foundation/panes/panel.rb
55
+ lib/lebowski/foundation/panes/alert.rb
56
+ lib/lebowski/foundation/panes/palette.rb
57
+ lib/lebowski/foundation/panes/picker.rb
58
+ lib/lebowski/foundation/panes/sheet.rb
59
+ lib/lebowski/foundation/panes/menu.rb
60
+ lib/lebowski/foundation/application.rb
61
+ lib/lebowski/foundation/proxy_factory.rb
62
+ lib/lebowski/scui.rb
63
+ lib/lebowski/scui/views/combo_box.rb
64
+ lib/lebowski/scui/views/date_picker.rb
65
+ lib/lebowski/scui/views/linkit.rb
66
+ lib/lebowski/scui/mixins/node_item_view_support.rb
67
+ lib/lebowski/scui/mixins/terminal_view_support.rb
68
+ lib/lebowski/spec.rb
69
+ lib/lebowski/spec/core.rb
70
+ lib/lebowski/spec/util.rb
71
+ lib/lebowski/spec/operators/operator.rb
72
+ lib/lebowski/spec/operators/that.rb
73
+ lib/lebowski/spec/matchers/match_supporters/match_supporter.rb
74
+ lib/lebowski/spec/matchers/match_supporters/has_object_function.rb
75
+ lib/lebowski/spec/matchers/match_supporters/has_predicate_with_no_prefix.rb
76
+ lib/lebowski/spec/matchers/match_supporters/has_predicate_with_prefix_has.rb
77
+ lib/lebowski/spec/matchers/be.rb
78
+ lib/lebowski/spec/matchers/has.rb
79
+ lib/lebowski/spec/matchers/method_missing.rb
80
+ bin/lebowski
81
+ bin/lebowski-spec
82
+ bin/lebowski-start-server
83
+ resources/selenium-server.jar
84
+ resources/user-extensions.js
@@ -0,0 +1,146 @@
1
+ Lebowski Framework
2
+
3
+ -- the SproutCore feature and integration test automation framework
4
+
5
+ #Overview
6
+
7
+ The Lebowski framework is a test automation framework for applications built on the
8
+ [SproutCore](http://www.sproutcore.com/) framework.
9
+
10
+ Compared to unit testing frameworks that are perfect for testing individual objects
11
+ and functions, Lebowski is an automated test framework designed for full
12
+ feature, integration, and regression testing of an application.
13
+
14
+ The framework was created with the following in mind:
15
+
16
+ * Provide a way for those who write feature and integration tests to build scripts
17
+ that reflect how the application was build using the SproutCore framework and
18
+ abstract away from all the low-level HTML and JavaScript.
19
+
20
+ * Allow you to easily access any SproutCore objects that make up your application
21
+
22
+ * Allow you to perform all the common user actions and will address all the subtle
23
+ ways to correctly interact with the views that make up your application
24
+
25
+ * Make it easy to add extensions so that you can work with custom views you've
26
+ built for your application.
27
+
28
+ The Lebowski framework was built using the [Ruby](http://www.ruby-lang.org/en/) programming language.
29
+ Therefore, to use this framework you will have to know some basic Ruby in order to get started.
30
+ In addition, the framework also make use of [Selenium](http://seleniumhq.org/) remote control server
31
+ in order to open up a browser, load your SproutCore application, and communicate with the application.
32
+ Knowledge of selenium server is not required to use the framework. (Note that the selenium server is
33
+ dependent on your system having the latest Java runtime installed).
34
+
35
+ The framework also comes with extensions to [RSpec](http://rspec.info/) that you can optionally use to
36
+ write your scripts, but RSpec is not required to use the Lebowski framework.
37
+
38
+ #Installing Lebowski
39
+
40
+ Installing the Lebowski framework is simple. First, make sure that you have the latest Ruby installed
41
+ on your machine (version 1.9+). Once you have Ruby installed, you can get the Lebowski framework
42
+ by invoking the following from your terminal:
43
+
44
+ $ gem install lebowski
45
+
46
+ Depending on the setup of your system you may have to call `gem1.9` and use the `sudo` command.
47
+
48
+ If everything worked out you should have the lebowski gem installed on your computer. The framework is
49
+ dependent on two gems:
50
+
51
+ * selenium-client 1.2.18
52
+ * rspec 1.3.0
53
+
54
+ For RSpec, it is only required if you plan on using the Lebowski's RSpec extensions.
55
+
56
+ Once installed you will have three executables installed that you can use to run your
57
+ Lebowski scripts:
58
+
59
+ * `lebowski-start-server` - Starts the selenium server
60
+ * `lebowski` - Can be used to run your Ruby scripts that use Lebowski
61
+ * `lebowski-spec` - Can be used to run your spec tests that use Lebowski
62
+
63
+ Of the three listed above, the one that must always be executed before executing a script
64
+ using Lebowski is the `lebowski-start-server`.
65
+
66
+ It is assumed that you have the SproutCore framework installed on your machine, but if not,
67
+ you can grab the framework by doing the following:
68
+
69
+ $ gem install sproutcore
70
+
71
+ At this time, the Lebowski framework works with SproutCore v1.0.1046.
72
+
73
+ In addition to SproutCore, it is also advised that you, at minimum, have [Firefox](http://www.mozilla.com/en-US/firefox/personal.html)
74
+ installed on your system since that is the default browser used to run your SproutCore application using
75
+ Lebowski.
76
+
77
+ #Getting Started With Lebowski
78
+
79
+ If you're new to the Lebowski framework then the best place to get started is to try
80
+ and run the Hello World example that you can find in the `examples/hello_world` directory when
81
+ you clone the Lebowski framework from github. In the directory you'll see two sub-directories:
82
+ app and spec. The app directory contains the Hello World SproutCore application. The spec folder
83
+ contains three files that will test the application using the Lebowski framework.
84
+
85
+ To get started, you'll first need to start the selenium server using `lebowski-start-server`.
86
+ Next, you will need to start up the hello world example app using `sc-server` within the app
87
+ directory. Check that you can see the application by opening a browser and going to the
88
+ following URL:
89
+
90
+ http://localhost:4020/hello_world
91
+
92
+ If the app started correctly you should see a label with the text "Click a button", and
93
+ two buttons below the label with titles "Hello" and "World". If you click the two buttons
94
+ you should see the label's caption change between "Hello" and "World".
95
+
96
+ You can see how the views were added to the application by looking at the `main_page.js` file
97
+ in the `app/apps/hello_world/resources` folder.
98
+
99
+ With the application started, you can start by running the first hello world spec file
100
+ like so:
101
+
102
+ $ cd examples/hello_world/spec
103
+ $ lebowski-spec -f n hello_world_spec.rb
104
+
105
+ If everything worked you should see the following outputted your terminal:
106
+
107
+ Hello World Test
108
+ will check that label has an initial value 'click a button'
109
+ will check that hello button has title 'hello'
110
+ will check that world button has title 'world'
111
+ will click hello button and then confirm label has value 'hello'
112
+ will click world button and then confirm label has value 'world'
113
+
114
+ Finished in 1.810166 seconds
115
+
116
+ 5 examples, 0 failures
117
+
118
+ If you got output that looks like the output above then congratulations, you've just run
119
+ your first Lebowski script. For a slightly more complicated script, try running the
120
+ `hello_world_2_spec.rb` file.
121
+
122
+ If you examine the hello world spec files, you'll see that they introduce to
123
+ some of the main concepts of using the Lebowski framework, namely:
124
+
125
+ * Starting up the application
126
+ * Defining paths
127
+ * Accessing views by relative property paths and identifiers
128
+ * Accessing a view's properties
129
+ * Using the Lebowski RSpec extensions
130
+ * Creating a custom path proxy
131
+
132
+ After you get yourself familiar with the hello world example app, you can move on and learn
133
+ how to make a custom type proxy by going to the `custom_view` example app.
134
+
135
+ If you like to know what proxies the Lebowski framework comes with and know how to use them,
136
+ be sure to check out the `sc_controls` example app.
137
+
138
+ #Why the name "Lebowski"?
139
+
140
+ > sometimes there's a man... I won't say a hero, 'cause, what's a hero? But sometimes,
141
+ > there's a man. And I'm talkin' about the [Dude](http://www.imdb.com/title/tt0118715/) here.
142
+ > Sometimes, there's a man, well, he's the man for his time and place. He fits right in there.
143
+ > And that's the Dude, in Los Angeles. And even if he's a lazy man - and the Dude was most certainly
144
+ > that. Quite possibly the laziest in Los Angeles County, which would place him high in the runnin'
145
+ > for laziest worldwide. But sometimes there's a man, sometimes, there's a man.
146
+
@@ -0,0 +1,42 @@
1
+ require 'rubygems'
2
+ gem 'hoe', '>= 2.1.0'
3
+ require 'hoe'
4
+ require 'fileutils'
5
+ require './lib/lebowski'
6
+
7
+ Hoe.plugin :newgem
8
+
9
+ $hoe = Hoe.spec 'lebowski' do
10
+ self.version = Lebowski::VERSION::STRING
11
+ self.summary = "A feature and integration test automation framework for SproutCore applications"
12
+ self.description = <<-DESCRIPTION
13
+
14
+ Compared to unit testing framework that are perfect for testing individual
15
+ objects and functions, Lebowski is an automated test framework
16
+ designed for full feature, integration, and regression testing of a
17
+ SproutCore application.
18
+
19
+ DESCRIPTION
20
+
21
+ self.developer 'Michael Cohen', 'michael.lee.cohen@gmail.com'
22
+ self.rubyforge_name = 'lebowski'
23
+ self.extra_deps << ['selenium-client', ">= 1.2.18"]
24
+ self.extra_deps << ['rspec', ">= 1.3.0"]
25
+ self.post_install_message = <<-POST_INSTALL_MESSAGE
26
+ #{'*'*50}
27
+
28
+ Thank you for installing lebowski-#{Lebowski::VERSION::STRING}
29
+
30
+ Please be sure to read the README.md and History.md
31
+ for useful information on how to use this framework
32
+ and about this release.
33
+
34
+ For more information go to the following web sites:
35
+
36
+ http://github.com/FrozenCanuck/Lebowski
37
+ http://frozencanuck.wordpress.com
38
+ http://www.sproutcore.com
39
+
40
+ #{'*'*50}
41
+ POST_INSTALL_MESSAGE
42
+ end
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #
4
+ # Executable used to run a script that uses the Lebowski framework. Using
5
+ # this instead of ruby directly will automtically require and include all
6
+ # the nessary files, gems and modules to get you running with the framework
7
+ #
8
+ # E.g. lebowski my_lebowski_script.rb
9
+ #
10
+
11
+ if ARGV.length == 0
12
+ puts "Error: Unable to run lebowski. A ruby file is required"
13
+ exit
14
+ end
15
+
16
+ require 'rubygems'
17
+ gem 'lebowski'
18
+ require 'lebowski'
19
+
20
+ include Lebowski::Foundation
21
+ include Lebowski::Foundation::Views
22
+ include Lebowski::Foundation::Panes
23
+ include Lebowski::SCUI::Views
24
+
25
+ load ARGV[0]
26
+
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #
4
+ # Executable used to run an RSpec script that makes use of the Lebowski framework.
5
+ # Using this instead of spec directly will automtically require and include all
6
+ # the nessary files, gems and modules to get you running with the framework.
7
+ # Special spec extension will also be included.
8
+ #
9
+ # E.g. lebowski-spec my_lebowski_spec.rb
10
+ #
11
+
12
+ if ARGV.length == 0
13
+ puts "Error: Unable to run lebowski-spec. A ruby file is required"
14
+ exit
15
+ end
16
+
17
+ require 'rubygems'
18
+ gem 'rspec', '>=1.3.0'
19
+ require 'spec'
20
+ require 'spec/autorun'
21
+ gem 'lebowski'
22
+ require 'lebowski/spec'
23
+
24
+ include Lebowski::Foundation
25
+ include Lebowski::Foundation::Views
26
+ include Lebowski::Foundation::Panes
27
+ include Lebowski::SCUI::Views
28
+
29
+ exit ::Spec::Runner::CommandLine.run
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #
4
+ # Executable to start the selenium server that will automically include
5
+ # the required extension file
6
+ #
7
+
8
+ DEFAULT_SELENIUM_SERVER_PORT = 4444
9
+
10
+ port = DEFAULT_SELENIUM_SERVER_PORT
11
+
12
+ ARGV.each_with_index do |arg, index|
13
+ port = ARGV[index + 1] if arg == '-port' and (index + 1) < ARGV.count
14
+ end
15
+
16
+ puts "Running Selenium Server for Lebowski"
17
+ puts "Starting server on http://localhost:#{port}"
18
+ puts "To quit server, press Control-C"
19
+
20
+ resources_dir = File.expand_path(File.join(File.dirname(__FILE__), %w[.. resources]))
21
+ selenium_server = File.join(resources_dir, 'selenium-server.jar')
22
+ user_extensions = File.join(resources_dir, 'user-extensions.js')
23
+
24
+ exec 'java', '-jar', selenium_server, '-userExtensions', user_extensions, *ARGV
@@ -0,0 +1,15 @@
1
+ # ==========================================================================
2
+ # Project: Lebowski Framework - The SproutCore Test Automation Framework
3
+ # License: Licensed under MIT license (see License.txt)
4
+ # ==========================================================================
5
+
6
+ require "rubygems"
7
+ gem "selenium-client", ">=1.2.16"
8
+ require "selenium/client"
9
+
10
+ require File.expand_path(File.dirname(__FILE__) + '/lebowski/version')
11
+ require File.expand_path(File.dirname(__FILE__) + '/lebowski/core')
12
+
13
+ require File.expand_path(File.dirname(__FILE__) + '/lebowski/runtime')
14
+ require File.expand_path(File.dirname(__FILE__) + '/lebowski/foundation')
15
+ require File.expand_path(File.dirname(__FILE__) + '/lebowski/scui')
@@ -0,0 +1,35 @@
1
+ module Lebowski
2
+
3
+ class Rect
4
+
5
+ attr_accessor :width, :height, :x, :y
6
+
7
+ def initialize(width, height, x, y)
8
+ @width = width
9
+ @height = height
10
+ @x = x
11
+ @y = y
12
+ end
13
+
14
+ def to_s()
15
+ return "Rect<width: #{width}, height: #{height}, x: #{x}, y: #{y}>"
16
+ end
17
+
18
+ end
19
+
20
+ class Coords
21
+
22
+ attr_accessor :x, :y
23
+
24
+ def initialize(x, y)
25
+ @x = x
26
+ @y = y
27
+ end
28
+
29
+ def to_s()
30
+ return "Coords<x: #{x}, y: #{y}>"
31
+ end
32
+
33
+ end
34
+
35
+ end
@@ -0,0 +1,52 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/core')
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/errors/unexpected_type')
4
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/errors/argument_invalid_type')
5
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/errors/timeout')
6
+
7
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/stall_support')
8
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/key_check')
9
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/positioned_element')
10
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/user_actions')
11
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/wait_actions')
12
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/inline_text_field_support')
13
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/delegate_support')
14
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/collection_item_view_support')
15
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/mixins/list_item_view_support')
16
+
17
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/proxy_object')
18
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/sc_object')
19
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/object_array')
20
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/core_query')
21
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/dom_element')
22
+
23
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/support/simple_item_array')
24
+
25
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/view')
26
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/label')
27
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/button')
28
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/container')
29
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/segmented')
30
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/radio')
31
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/checkbox')
32
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/disclosure')
33
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/text_field')
34
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/select_field')
35
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/menu_item')
36
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/collection')
37
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/list')
38
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/list_item')
39
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/views/grid')
40
+
41
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/pane')
42
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/main')
43
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/modal')
44
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/panel')
45
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/alert')
46
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/palette')
47
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/picker')
48
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/sheet')
49
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/panes/menu')
50
+
51
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/application')
52
+ require File.expand_path(File.dirname(__FILE__) + '/foundation/proxy_factory')