mechanical-cuke 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -46,6 +46,10 @@ begin
46
46
  Cucumber::Rake::Task.new(:cucumber)
47
47
 
48
48
  task :cucumber => :check_dependencies
49
+
50
+ Cucumber::Rake::Task.new(:wip, 'Run features that are in progress') do |t|
51
+ t.cucumber_opts = "--tags @wip:3 --wip features"
52
+ end
49
53
  rescue LoadError
50
54
  task :cucumber do
51
55
  abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -0,0 +1,5 @@
1
+ require 'cucumber/web/tableish'
2
+
3
+ Then /^I should see the following table:$/ do |expected_layouts_table|
4
+ expected_layouts_table.diff!(tableish("table#table tr", 'td,th'))
5
+ end
@@ -1,6 +1,7 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
2
2
 
3
3
  require 'mechanical-cuke'
4
+ require 'cucumber/web/tableish'
4
5
 
5
6
  require 'test/unit/assertions'
6
7
 
@@ -9,6 +9,10 @@ module NavigationHelpers
9
9
  '/'
10
10
  when /the form page/
11
11
  '/form'
12
+ when /the table page/
13
+ '/table'
14
+ when /the upload page/
15
+ '/upload'
12
16
  else
13
17
  raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
14
18
  "Now, go and add a mapping in #{__FILE__}"
@@ -0,0 +1,12 @@
1
+ Feature: Table Steps
2
+ Even though tableish is part of Cucumber
3
+ I need to make sure it works with Mechanize
4
+ (because it depends on body_respose being defined).
5
+
6
+ Scenario: I should see the following table
7
+ Given I am on the table page
8
+ Then I should see the following table:
9
+ | Column One | Column Two |
10
+ | One | Two |
11
+ | Three | Four |
12
+
@@ -48,7 +48,14 @@ Feature: Using Mechanize
48
48
  And I should see "ID-ed"
49
49
 
50
50
  @mock_launchy
51
- Scenario: Navigation Steps
51
+ Scenario: Save and Open Step
52
52
  Given I am on the index page
53
53
  Then show me the page
54
54
 
55
+ Scenario: Attach File Step
56
+ Given I am on the upload page
57
+ When I attach the file "test/fixtures/hello.txt" to "upload"
58
+ And I press "Submit"
59
+ Then I should see "File hello.txt uploaded"
60
+
61
+
@@ -18,6 +18,10 @@ end
18
18
 
19
19
  private
20
20
 
21
+ def response_body
22
+ current_page.body
23
+ end
24
+
21
25
  def form
22
26
  current_page.forms.first
23
27
  end
@@ -45,6 +45,10 @@ When /^(?:|I )choose "([^\"]*)"$/ do |field|
45
45
  r.check
46
46
  end
47
47
 
48
+ When /^(?:|I )attach the file "([^\"]*)" to "([^\"]*)"$/ do |path, field|
49
+ form.file_upload_with(:name => field).file_name = path
50
+ end
51
+
48
52
  Then /^(?:|I )should see "([^\"]*)"$/ do |text|
49
53
  if defined?(Spec::Rails::Matchers)
50
54
  response.should contain(text)
@@ -0,0 +1 @@
1
+ Hello World
@@ -18,3 +18,21 @@ end
18
18
  post '/form' do
19
19
  erb :form_output
20
20
  end
21
+
22
+ get '/table' do
23
+ erb :table
24
+ end
25
+
26
+ get '/upload' do
27
+ erb :upload_form
28
+ end
29
+
30
+ post '/upload' do
31
+ unless params[:upload] &&
32
+ (tmpfile = params[:upload][:tempfile]) &&
33
+ (name = params[:upload][:filename])
34
+ "No file selected"
35
+ else
36
+ "File #{name} uploaded"
37
+ end
38
+ end
@@ -0,0 +1,23 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ </head>
5
+ <title></title>
6
+ </head>
7
+ <body>
8
+ <table id="table">
9
+ <tr>
10
+ <th>Column One</th>
11
+ <th>Column Two</th>
12
+ </tr>
13
+ <tr>
14
+ <td>One</td>
15
+ <td>Two</td>
16
+ </tr>
17
+ <tr>
18
+ <td>Three</td>
19
+ <td>Four</td>
20
+ </tr>
21
+ </body>
22
+ </html>
23
+
@@ -0,0 +1,18 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Form</title>
5
+ </head>
6
+ <body>
7
+ <form id="form_id" name="form_name" action="" method="POST"
8
+ enctype="multipart/form-data">
9
+ <p>
10
+ <label for="upload_id">File</label>
11
+ <input type="file" id="upload_id" name="upload">
12
+ </p>
13
+ <p>
14
+ <input type="submit" value="Submit">
15
+ </p>
16
+ </form>
17
+ </body>
18
+ </html>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mechanical-cuke
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spike Ilacqua
@@ -59,17 +59,22 @@ files:
59
59
  - Rakefile
60
60
  - VERSION
61
61
  - features/step_definitions/mechanical-cuke_steps.rb
62
+ - features/step_definitions/table_steps.rb
62
63
  - features/support/env.rb
63
64
  - features/support/mocha.rb
64
65
  - features/support/paths.rb
66
+ - features/table_steps.feature
65
67
  - features/web_steps.feature
66
68
  - lib/mechanical-cuke.rb
67
69
  - lib/mechanical-cuke/save_and_open.rb
68
70
  - lib/mechanical-cuke/web_steps.rb
71
+ - test/fixtures/hello.txt
69
72
  - test/fixtures/server/server.rb
70
73
  - test/fixtures/server/views/form.erb
71
74
  - test/fixtures/server/views/form_output.erb
72
75
  - test/fixtures/server/views/index.erb
76
+ - test/fixtures/server/views/table.erb
77
+ - test/fixtures/server/views/upload_form.erb
73
78
  has_rdoc: true
74
79
  homepage: http://github.com/spikex/mechanical-cuke
75
80
  licenses: []