cucumber-in-the-yard 1.5.4 → 1.6.0

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 (29) hide show
  1. data/History.txt +6 -0
  2. data/README.md +18 -14
  3. data/city.gemspec +1 -1
  4. data/example/step_definitions/example.step.rb +4 -0
  5. data/example/sub_features/second_example.feature +51 -0
  6. data/lib/city.rb +1 -1
  7. data/lib/cucumber/city_builder.rb +3 -1
  8. data/lib/templates/default/feature/html/outline.erb +49 -17
  9. data/lib/templates/default/feature/html/scenario.erb +7 -9
  10. data/lib/templates/default/feature/html/steps.erb +17 -17
  11. data/lib/templates/default/feature/setup.rb +1 -1
  12. data/lib/templates/default/featuredirectory/html/directory.erb +76 -0
  13. data/lib/templates/default/featuredirectory/html/setup.rb +36 -0
  14. data/lib/templates/default/fulldoc/html/css/common.css +74 -60
  15. data/lib/templates/default/fulldoc/html/full_list_features.erb +3 -0
  16. data/lib/templates/default/fulldoc/html/full_list_tags.erb +4 -15
  17. data/lib/templates/default/fulldoc/html/js/cucumber.js +29 -7
  18. data/lib/templates/default/fulldoc/html/setup.rb +15 -11
  19. data/lib/templates/default/requirements/html/namespace.erb +76 -0
  20. data/lib/templates/default/requirements/html/setup.rb +35 -0
  21. data/lib/templates/default/scenario/html/scenario.erb +0 -3
  22. data/lib/templates/default/tag/html/feature.erb +28 -47
  23. data/lib/templates/default/tag/html/scenario.erb +28 -42
  24. data/lib/templates/default/tag/html/tag.erb +1 -0
  25. data/lib/templates/default/tag/setup.rb +15 -1
  26. data/lib/templates/default/tags/html/namespace.erb +39 -0
  27. data/lib/templates/default/tags/html/setup.rb +21 -0
  28. data/lib/yard/code_objects/cucumber/namespace_object.rb +16 -6
  29. metadata +16 -25
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ === 1.6.0 / 2010-11-02
2
+
3
+ * Feature directories, subdirectories, and Tags breadcrumb pages are present
4
+ * Scenario Outlines now display each example inline when the example is pressed
5
+ * 'All Features' and 'All Tags' link in the search fields
6
+
1
7
  === 1.5.4 / 2010-10-28
2
8
 
3
9
  * Optimization - Found that for a large test suite that the processing time was
data/README.md CHANGED
@@ -51,6 +51,11 @@ the step definition.
51
51
  Steps highlight the match groups in a different color to show which parts of the step are matched in the step
52
52
  definition.
53
53
 
54
+ **7. Represent instances of scenarios for scenario outlines.**
55
+
56
+ Display all the values that would normally be substituted into a scenario for the scenario outline. To
57
+ make it easier to represent them to product owners. As well as link the instance of the step definitions
58
+ for developers.
54
59
 
55
60
 
56
61
  Installation
@@ -127,26 +132,25 @@ Roadmap
127
132
 
128
133
  **Future Feature Ideas**
129
134
 
130
- **1. Represent instances of scenarios for scenario outlines.**
135
+ **1. Feature/Scenario Tag unions and intersections**
131
136
 
132
- Display all the values that would normally be substituted into a scenario for the scenario outline. To
133
- make it easier to represent them to product owners. As well as link the instance of the step definitions
134
- for developers.
137
+ Create an AJAX interface that would allow the user to specify tags to union, intersect, or exclude to
138
+ produce a list of features and scenarios that would execute. The output could also provide an example
139
+ command line parameter list to produce the feature/scenario execution results.
140
+
141
+ Visualization of this execution with some graphing library for some extra points.
135
142
 
136
- **2. Tag pages provide the ability to exclude other tags that intersect.**
143
+ **2. Performance enhancements**
137
144
 
138
- Adding a list of tags currently used by the features and scenarios in the below list (that are not the
139
- current tag). Allowing the visualization of what the execution of the requirements pass would look like.
140
- Output of a sample generated tag command-line would be displayed to assist with execution. On selection
141
- update of the total features and scenarios affected by the changes in the filtering.
145
+ The current rate of documentation is not dreadfully slow anymore but more performance enhancements could
146
+ always be performed to produce the documentation faster.
142
147
 
143
- I would like to also address some layout and formatting on the page. Scenarios will also link to the scenarios
144
- feature page, show their descriptions, and of course all their other tags.
148
+ **3. Requirements Only Docuementation**
145
149
 
146
- **3. Performance enhancements**
150
+ 'fulldoc' is the default documentation generated but I have this thought that a requirements-only document
151
+ may be useful. Essentially the first draft would be the current documentation minus the class and method
152
+ links/searches and replacing the index.html.
147
153
 
148
- At the current rate the documentation generation is dreadfully slow for the project. After implementing a few
149
- more of these features I will look at addressing the performance to see where this can be optimized.
150
154
 
151
155
  LICENSE
152
156
  -------
data/city.gemspec CHANGED
@@ -7,7 +7,7 @@ def self.show_version_changes(version)
7
7
  changes = []
8
8
  grab_changes = false
9
9
 
10
- File.open("#{File.dirname(__FILE__)}/History.txt",'r') do |file|
10
+ File.open('History.txt','r') do |file|
11
11
  while (line = file.gets) do
12
12
 
13
13
  if line =~ /^===\s*#{version.gsub('.','\.')}\s*\/\s*(.+)\s*$/
@@ -52,6 +52,10 @@ And /^edits their the (biography) to state:$/ do |section,text|
52
52
  pending "text_field not present for #{section} #{bio} for this release"
53
53
  end
54
54
 
55
+ Then /I expect (#{CUSTOMER}) to be a member of the '([^']+)' group/ do |customer,product|
56
+ pending "Customer #{customer} with product #{product}"
57
+ end
58
+
55
59
  #
56
60
  # Complicated step definition with optional parameters
57
61
  #
@@ -0,0 +1,51 @@
1
+ @customer
2
+ Feature: Customer Logout Feature
3
+ As a customer of the product I am able to logout
4
+
5
+ Background:
6
+ Given this undefined step definition
7
+
8
+ @bvt @param2 @param3
9
+ Scenario: Customer that is logged in is able to log out
10
+ Given that a customer is a valid customer
11
+ And a customer logs in as username 'frank' with password 'default'
12
+ And I expect them to have logged in successfully
13
+ When the customer logs out
14
+ Then I expect the customer to be shown the logout page
15
+
16
+ Scenario: Customers with a complete profile are allowed to post
17
+ Given that a customer is a valid customer
18
+ And the customer has the following details:
19
+ | Name | Email | Age |
20
+ | Roger | r@email.com | 22 |
21
+ And the customer has the following details:
22
+ | Name | Email | Age |
23
+ | Roger | r@email.com | 22 |
24
+ When a customer logs in as username 'frank' with password 'default'
25
+ And visits the customer update page
26
+ Then I expect the customer is able able to post to their profile
27
+
28
+ @optional_parameters
29
+ Scenario: Optional Parameter Step Definition
30
+ # This step definition has some optional parameters
31
+ Given a project
32
+ And an inactive project
33
+ And a project with the name 'optional', start date 10/26/2010, nicknamed 'norman'
34
+
35
+ @highlighting
36
+ Scenario: Highlighting
37
+ Given a duck that has a bill
38
+ Then I expect the duck to quack
39
+
40
+ @product
41
+ Scenario Outline: Customers that bought a product are included in their product groups
42
+ Given that <Customer> is a valid customer
43
+ And that the product, named '<Product>', is a valid product
44
+ When the customer has purchased the product
45
+ Then I expect the customer to be a member of the '<Product>' group
46
+
47
+ Examples:
48
+ | Customer | Product |
49
+ | Customer A | Product A |
50
+ | Customer A | Product B |
51
+ | Customer A | Product C |
data/lib/city.rb CHANGED
@@ -6,7 +6,7 @@ require 'gherkin/formatter/tag_count_formatter'
6
6
  require 'yard'
7
7
 
8
8
  module CucumberInTheYARD
9
- VERSION = '1.5.4' unless defined?(CucumberInTheYARD::VERSION)
9
+ VERSION = '1.6.0' unless defined?(CucumberInTheYARD::VERSION)
10
10
  end
11
11
 
12
12
 
@@ -15,8 +15,10 @@ module Cucumber
15
15
  end
16
16
 
17
17
  def find_or_create_namespace(file)
18
+ # TODO: The directory that is added should have the full path
18
19
  file.split('/')[0..-2].each do |directory|
19
- @namespace = @namespace.children.find {|child| child.name == directory } || YARD::CodeObjects::Cucumber::NamespaceObject.new(@namespace,directory)
20
+ @namespace = @namespace.children.find {|child| child.name == directory } ||
21
+ YARD::CodeObjects::Cucumber::FeatureDirectory.new(@namespace,directory) {|dir| dir.add_file(directory)}
20
22
  end
21
23
  end
22
24
 
@@ -1,19 +1,51 @@
1
+ <% @scenario.scenarios.each_with_index do |scenario,example_index| %>
2
+ <div id="<%= "#{@id}Example#{example_index + 1}Steps" %>" style="display: none;" class="steps">
3
+ <% scenario.steps.each_with_index do |step,index| %>
4
+ <% @step = step %>
5
+
6
+
7
+ <div <%= "id='#{@id}Example#{example_index + 1}Step#{index}'" %> class="step <%= (index + 1) % 2 == 0 ? 'even' : 'odd' %>">
8
+ <span class="predicate"><%= step.keyword %></span>
9
+
10
+ <% if step.definition %>
11
+ <span class="defined">
12
+ <%= highlight_matches(step) %>
13
+ <div class="details">
14
+ <a href="<%= url_for step.definition %>">?</a>
15
+ </div>
16
+ </span>
17
+ <% else %>
18
+ <span class="undefined"><%= h step.value %></span>
19
+ <% end %>
20
+
21
+ </div>
22
+
23
+ <%= erb(:table) if step.has_table? %>
24
+ <%= erb(:pystring) if step.has_text? %>
25
+
26
+
27
+ <% end %>
28
+ </div>
29
+ <% end %>
30
+
31
+
1
32
  <div class="outline">
2
- <div class="keyword"> <%= h @scenario.example_keyword %> </div>
3
- <table>
4
- <thead>
5
- <tr>
6
- <% @scenario.example_headers.each_with_index do |header,header_index| %>
7
- <th><%= h(header) %></th>
8
- <% end %>
9
- </tr>
10
- </thead>
11
- <% @scenario.example_data.each_with_index do |row,row_index| %>
12
- <tr class="<%= (row_index + 1) % 2 == 0 ? 'even' : 'odd' %>" >
13
- <% row.each_with_index do |column,column_index| %>
14
- <td><%= h(column.to_s.strip) %></td>
15
- <% end %>
16
- </tr>
17
- <% end %>
18
- </table>
33
+ <div class="keyword"> <%= h @scenario.example_keyword %> </div>
34
+ <table>
35
+ <thead>
36
+ <tr>
37
+ <% @scenario.example_headers.each_with_index do |header,header_index| %>
38
+ <th><%= h(header) %></th>
39
+ <% end %>
40
+ </tr>
41
+ </thead>
42
+ <% @scenario.example_data.each_with_index do |row,row_index| %>
43
+ <tr class="<%= (row_index + 1) % 2 == 0 ? 'even' : 'odd' %>"
44
+ onclick="<%= "toggleScenarioExample('#{@id}',#{row_index + 1});" %>">
45
+ <% row.each_with_index do |column,column_index| %>
46
+ <td><%= h(column.to_s.strip) %></td>
47
+ <% end %>
48
+ </tr>
49
+ <% end %>
50
+ </table>
19
51
  </div>
@@ -29,15 +29,13 @@ $(function() {
29
29
  </div>
30
30
  <% unless @scenario.description.empty? %>
31
31
  <div class="description">
32
- <%= h @scenario.description %>
32
+ <%= h @scenario.description %>
33
33
  </div>
34
34
  <% end %>
35
35
 
36
- <div id="<%= @id %>Steps" class="steps">
37
- <%= @scenario.steps ? erb(:steps) : erb(:no_steps_defined) %>
38
-
39
- </div>
40
-
41
- <%= erb(:outline) if @scenario.outline? %>
42
-
43
- </div>
36
+ <div id="<%= @id %>Steps" class="steps">
37
+ <%= @scenario.steps ? erb(:steps) : erb(:no_steps_defined) %>
38
+ </div>
39
+
40
+ <%= erb(:outline) if @scenario.outline? %>
41
+ </div>
@@ -1,25 +1,25 @@
1
1
  <% @scenario.steps.each_with_index do |step,index| %>
2
- <% @step = step %>
2
+ <% @step = step %>
3
3
 
4
4
 
5
- <div <%= "id='#{@id}Step#{index}'" %> class="step <%= (index + 1) % 2 == 0 ? 'even' : 'odd' %>">
6
- <span class="predicate"><%= step.keyword %></span>
5
+ <div <%= "id='#{@id}Step#{index}'" %> class="step <%= (index + 1) % 2 == 0 ? 'even' : 'odd' %>">
6
+ <span class="predicate"><%= step.keyword %></span>
7
7
 
8
- <% if step.definition %>
9
- <span class="defined">
10
- <%= highlight_matches(step) %>
11
- <div class="details">
12
- <a href="<%= url_for step.definition %>">?</a>
13
- </div>
14
- </span>
15
- <% else %>
16
- <span class="undefined"><%= h step.value %></span>
17
- <% end %>
8
+ <% if step.definition %>
9
+ <span class="defined">
10
+ <%= highlight_matches(step) %>
11
+ <div class="details">
12
+ <a href="<%= url_for step.definition %>">?</a>
13
+ </div>
14
+ </span>
15
+ <% else %>
16
+ <span class="undefined"><%= h step.value %></span>
17
+ <% end %>
18
18
 
19
- </div>
19
+ </div>
20
20
 
21
- <%= erb(:table) if step.has_table? %>
22
- <%= erb(:pystring) if step.has_text? %>
21
+ <%= erb(:table) if step.has_table? %>
22
+ <%= erb(:pystring) if step.has_text? %>
23
23
 
24
24
 
25
- <% end %>
25
+ <% end %>
@@ -5,7 +5,7 @@ def init
5
5
  sections.push :feature
6
6
 
7
7
  sections.push :background if object.background
8
- sections.push :scenarios if object.scenarios
8
+ sections.push :scenarios if object.scenarios
9
9
 
10
10
  end
11
11
 
@@ -0,0 +1,76 @@
1
+ <% if @directory %>
2
+ <div class="requirements">
3
+ <div class="title">
4
+ <span class="pre">Directory:</span>
5
+ <span class="name"><%= h @directory.name.to_s.capitalize %></span>
6
+ </div>
7
+ <div class="meta">
8
+ <div class="file"><%= h(@directory.file) %></div>
9
+ </div>
10
+ <div class="summary">
11
+ <span class="name">Features:</span><span class="value"><%= features.size %></span>
12
+ <span class="name">Scenarios:</span><span class="value"><%= scenarios.size %></span>
13
+ </div>
14
+ <div class="tags"><span class="name">Tags:</span>
15
+ <%= tags.collect {|tag| linkify(tag,tag.value) }.join(",\n") %>
16
+ </div>
17
+
18
+
19
+ <% if @directories_by_letter && !@directories_by_letter.empty? %>
20
+ <div id="directory">
21
+ <div class="title"><span class="name">Subdirectories</span></div>
22
+ </div>
23
+ <% i = 0 %>
24
+ <table>
25
+ <tr>
26
+ <td valign='top' width="33%">
27
+ <% @directories_by_letter.each do |directory| %>
28
+ <% if (i += 1) % 8 == 0 %>
29
+ </td><td valign='top' width="33%">
30
+ <% i = 0 %>
31
+ <% end %>
32
+ <ul>
33
+ <%= linkify directory, directory.name %>
34
+ </ul>
35
+ <% end %>
36
+ </td>
37
+ </tr>
38
+ </table>
39
+
40
+ <% end %>
41
+
42
+ <% if @objects_by_letter && !@objects_by_letter.empty? %>
43
+ <div id="features">
44
+ <div class="title"><span class="name">Features</span></div>
45
+ </div>
46
+ <% i = 0 %>
47
+ <table>
48
+ <tr>
49
+ <td valign='top' width="33%">
50
+ <% @objects_by_letter.sort_by {|l,o| l.to_s }.each do |letter, objects| %>
51
+ <% if (i += 1) % 8 == 0 %>
52
+ </td><td valign='top' width="33%">
53
+ <% i = 0 %>
54
+ <% end %>
55
+ <ul id="alpha_<%= letter %>" class="alpha">
56
+ <li class="letter"><%= letter %></li>
57
+ <ul>
58
+ <% objects.each do |obj| %>
59
+ <li>
60
+ <%= linkify obj, obj.value %>
61
+ <% if !obj.namespace.root? %>
62
+ <small>(<%= obj.namespace.file %>)</small>
63
+ <% end %>
64
+ </li>
65
+ <% end %>
66
+ </ul>
67
+ </ul>
68
+ <% end %>
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ <% end %>
73
+ <% end %>
74
+
75
+ </div>
76
+
@@ -0,0 +1,36 @@
1
+ def init
2
+ super
3
+ sections.push :directory
4
+ @directory = object
5
+ end
6
+
7
+ def directory
8
+ @objects_by_letter = all_types_by_letter(YARD::CodeObjects::Cucumber::Feature)
9
+ @directories_by_letter = @directory.children.find_all {|child| child.is_a?(YARD::CodeObjects::Cucumber::FeatureDirectory) }.sort_by {|dir| dir.name }
10
+ erb(:directory)
11
+ end
12
+
13
+ def all_types_by_letter(type)
14
+ hash = {}
15
+ objects = @directory.children.find_all {|child| child.is_a?(type) }
16
+ objects = run_verifier(objects)
17
+ objects.each {|o| (hash[o.value.to_s[0,1].upcase] ||= []) << o }
18
+ hash
19
+ end
20
+
21
+ def features
22
+ @directory.children.find_all{|child| child.is_a?(YARD::CodeObjects::Cucumber::Feature)}
23
+ end
24
+
25
+ def scenarios
26
+ features.collect {|feature| feature.scenarios }.flatten
27
+ end
28
+
29
+ def steps
30
+ scenarios.collect {|scenario| scenario.steps }.flatten
31
+ end
32
+
33
+ def tags
34
+ (features.collect{|feature| feature.tags } + scenarios.collect {|scenario| scenario.tags }).flatten.uniq
35
+ end
36
+
@@ -1,58 +1,67 @@
1
+ .summary { margin: 20px 20px 10px 20px; padding-left: 0px; }
2
+ .summary * { padding: 5px 0px 5px 10px; }
1
3
  .feature {}
2
4
  .tags { font-family: monospace; font-size: 14px; }
3
- * .title { padding: 10px; font-size: 24px; }
5
+ .title { padding: 10px; font-size: 24px; }
4
6
 
5
- .feature > .title, .tag > .title { margin: 20px 20px 10px 20px; padding-left: 0px; border-bottom: 1px solid #E3E3E3; }
6
- .meta .file { float: right; margin-right: 20px; }
7
- * .title .pre { color: #696969; }
8
- * .title .name { font-weight: bold; color: #3F3F3F; }
7
+ .feature > .title, .tag > .title, .requirements > .title { margin: 20px 20px 10px 20px; padding-left: 0px; border-bottom: 1px solid #E3E3E3; }
8
+ .meta .file { float: right; margin-right: 20px; }
9
+ .title .pre { color: #696969; }
10
+ .title .name { font-weight: bold; color: #3F3F3F; }
9
11
 
10
12
  .meta { margin-left: 30px; color: gray; }
11
13
  .scenario .meta .tags { margin-left: 0px; }
12
14
 
13
- .feature .description {
14
- margin: 10px 20px 0px 30px;
15
- padding: 10px 20px 20px 10px;
16
- color: #343332;
17
- font-family: 'Trebuchet MS', Arial, Helvetica;
15
+ .feature .description, .requirements .summary {
16
+ margin: 10px 20px 0px 30px;
17
+ padding: 10px 20px 20px 10px;
18
+ color: #343332;
19
+ font-family: 'Trebuchet MS', Arial, Helvetica;
18
20
  }
19
21
 
22
+ .summary .name, .tags .name { color: gray; }
23
+ .summary .tags {}
24
+
20
25
  .odd { background-color: #F0F6F9; }
21
26
  .even { background-color: #FFFFFF; }
22
27
 
23
- #background {
24
- margin-top: 10px;
25
- margin-left: 20px;
26
- }
27
-
28
- .scenario {
29
- margin-top: 40px;
30
- margin-left: 20px;
31
- }
28
+ #background, #features { margin-top: 10px; margin-left: 20px; }
32
29
 
30
+ #directory { margin-top: 20px; margin-left: 20px; }
33
31
 
32
+ .scenario { margin-top: 40px; margin-left: 20px; }
34
33
  .scenario .title, #background .title {
35
- font-size: 16px;
36
- padding-left: 0px;
37
- margin: 0px 20px 0px 10px;
38
- border-bottom: 1px solid #E3E3E3;
34
+ font-size: 16px;
35
+ padding-left: 0px;
36
+ margin: 0px 20px 0px 10px;
37
+ border-bottom: 1px solid #E3E3E3;
39
38
  }
40
39
 
41
- #background .title .pre {
42
- color: #346F97;
43
- }
40
+ #directory .title, #features .title { padding-left: 0px; margin-left: 10px; border-bottom: 1px solid #E3E3E3; }
41
+ #directory .title .name, #features .title .name { font-weight: normal; }
42
+
43
+
44
+
45
+ #background .title .pre { color: #346F97; }
46
+ .requirements .tags { margin-left: 50px; margin-right: 30px; }
47
+
48
+ * ul.alpha { font-size: 1.1em; }
49
+ * ul.alpha { padding-bottom: 10px; list-style: none; }
50
+ * ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; }
51
+ * ul.alpha ul { padding-left: 15px; }
52
+ * ul small { color: #666; font-size: 0.7em; }
44
53
 
45
54
 
46
55
  .scenario .steps, #background .steps {
47
- margin: 20px 20px 0px 30px;
48
- font-size: 12px;
56
+ margin: 20px 20px 0px 30px;
57
+ font-size: 12px;
49
58
  }
50
59
 
51
60
  .scenario .step, #background .step {
52
- margin-top: 4px;
53
- padding: 4px;
54
- font-size: 14px;
55
- font-weight: bold;
61
+ margin-top: 4px;
62
+ padding: 4px;
63
+ font-size: 14px;
64
+ font-weight: bold;
56
65
  }
57
66
 
58
67
  #background .title .name {}
@@ -61,14 +70,8 @@
61
70
  .scenario .title .name {}
62
71
  .scenario .description {}
63
72
 
64
- .scenario .title .pre {
65
- color: #00AAD2;
66
- }
67
-
68
- .scenario .tags {
69
- margin-left: 30px;
70
- margin-top: 10px;
71
- }
73
+ .scenario .title .pre { color: #00AAD2; }
74
+ .scenario .tags { margin-left: 30px; margin-top: 10px; }
72
75
 
73
76
  .step .predicate { color: #5D5C5B; }
74
77
  .step .undefined { border-bottom: 1px dashed #E99494; }
@@ -80,34 +83,34 @@
80
83
 
81
84
  .multiline, .text { margin-top: 10px; margin-left: 20px; }
82
85
  .text {
83
- padding: 20px;
84
- background-color: #F8F8FF;
85
- color: #444444;
86
- border: 1px solid #DEDEDE;
86
+ padding: 20px;
87
+ background-color: #F8F8FF;
88
+ color: #444444;
89
+ border: 1px solid #DEDEDE;
87
90
  }
88
91
 
89
92
 
90
93
  .outline {
91
- margin-top: 20px;
92
- margin-left: 40px;
94
+ margin-top: 20px;
95
+ margin-left: 40px;
93
96
  }
94
97
  .outline .keyword {
95
- padding: 4px;
96
- font-weight: bold;
97
- font-size: 16px;
98
+ padding: 4px;
99
+ font-weight: bold;
100
+ font-size: 16px;
98
101
  }
99
102
 
100
103
  .multiline table tr, .outline table tr {
101
- padding: 4px;
104
+ padding: 4px;
102
105
  }
103
106
  .multiline table thead tr th, .outline table thead tr th {
104
- text-align: left;
105
- padding: 4px;
106
- background-color: #A8C0A8;
107
+ text-align: left;
108
+ padding: 4px;
109
+ background-color: #A8C0A8;
107
110
  }
108
111
  .multiline table tr td, .outline table tr td {
109
- min-width: 100px;
110
- padding: 4px 10px 4px 10px;
112
+ min-width: 100px;
113
+ padding: 4px 10px 4px 10px;
111
114
  }
112
115
 
113
116
 
@@ -121,15 +124,26 @@
121
124
 
122
125
 
123
126
  .stepdef .title {
124
- font-size: 14px;
125
- margin-top: 30px;
126
- border-bottom: 1px solid #E3E3E3;
127
+ font-size: 14px;
128
+ margin-top: 30px;
129
+ border-bottom: 1px solid #E3E3E3;
127
130
  }
128
131
 
129
132
  .stepdef .steps, .stepdef .method_details_list {
130
- margin: 10px 0px 0px 30px;
133
+ margin: 10px 0px 0px 30px;
131
134
  }
132
135
  .stepdef .steps .step {
133
- padding: 4px;
136
+ padding: 4px;
134
137
  }
135
138
 
139
+ #cukes_links { margin: 10px auto 10px auto;
140
+ border-bottom: 1px solid #E3E3E3;
141
+ width: 762px; text-align: center;
142
+ padding: 10px;
143
+ }
144
+ #cukes_logo {
145
+ margin: 0px auto 10px auto;
146
+ width: 762px;
147
+ height: 190px;
148
+ background: url(data:image/png;base64,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%3D) no-repeat center left;
149
+ }