daddy 0.1.6 → 0.1.7
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.
- checksums.yaml +8 -8
- data/lib/daddy/cucumber/assert.rb +2 -11
- data/lib/daddy/cucumber/capture.rb +4 -4
- data/lib/daddy/formatter/daddy.js +9 -0
- data/lib/daddy/formatter/daddy_html.rb +25 -0
- data/lib/daddy/formatter/html.rb +41 -53
- data/lib/tasks/phantomjs.rake +1 -1
- data/lib/tasks/publish.rake +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MjljYjA5YjlmM2NiMWY0MmE1YjYxOWQ5MTU1OGE4MmM4ZjVkMzI5NA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MTlkNmZiNDBjNjNmMDJmYjg5NDFmYTYxMTkzODRhMjhiMGE5MWY3Mg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YWE0YzE5OGY3ODYxYzZjMDgyNDE3ZDc1MGE2MGMyMDk5NTYwYTk5NTViYzk2
|
10
|
+
NjY3YTg1NjcwNmE4MmYxMGIxMDQxYThlY2U1MDhjOGRkMTgzZGQ5YmJjMjIy
|
11
|
+
YTdlZGRkMWVkOTBmZGVkMDUwNmVlMzJhMzJjMDQzYjMzYzA3OTI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MTFlZDc4ZTJmMzljYjNiOTE5NjU1ZjJhOTQwNGY0YTI2Njc5YjZmOTcwMjBh
|
14
|
+
ZDVmYjZmOGI4MTIzNTU3MjY4YTIxMGZiZWRkZjllMjFmNzQ1NzljMTM3MDk1
|
15
|
+
MTdhMmUzM2U5ZThiNDkzOTJhOGI0Y2JhZmY4YTE4NzdkMWY0NDg=
|
@@ -5,13 +5,7 @@ module Daddy
|
|
5
5
|
module Assert
|
6
6
|
def assert_url(path, params = {})
|
7
7
|
# スクリーンショットの保存
|
8
|
-
|
9
|
-
|
10
|
-
begin
|
11
|
-
capture url_without_domain
|
12
|
-
rescue
|
13
|
-
puts "URL: #{url_without_domain}"
|
14
|
-
end
|
8
|
+
capture
|
15
9
|
|
16
10
|
# パスのチェック
|
17
11
|
re = path.gsub(/\//, '\/')
|
@@ -112,10 +106,7 @@ module Daddy
|
|
112
106
|
end
|
113
107
|
ret
|
114
108
|
end
|
115
|
-
|
116
|
-
def remove_domain(url)
|
117
|
-
url.sub(/http:\/\/([^\/:]+)(:[0-9]+)?\/(.+)/) { "/#{$3}" }
|
118
|
-
end
|
109
|
+
|
119
110
|
end
|
120
111
|
end
|
121
112
|
end
|
@@ -10,10 +10,10 @@ module Daddy
|
|
10
10
|
@@_screen_count = 0
|
11
11
|
@@_browser_resized = false
|
12
12
|
|
13
|
-
def capture
|
13
|
+
def capture
|
14
14
|
pause
|
15
|
-
|
16
|
-
url
|
15
|
+
|
16
|
+
url = Rack::Utils.unescape(current_url)
|
17
17
|
|
18
18
|
@@_screen_count += 1
|
19
19
|
|
@@ -30,7 +30,7 @@ module Daddy
|
|
30
30
|
unless @@_browser_resized
|
31
31
|
case Capybara.current_driver
|
32
32
|
when :poltergeist
|
33
|
-
|
33
|
+
Capybara.current_session.driver.resize(width, height)
|
34
34
|
when :selenium
|
35
35
|
Capybara.current_session.driver.browser.manage.window.resize_to(width, height)
|
36
36
|
when :webkit
|
@@ -4,6 +4,31 @@ module Daddy
|
|
4
4
|
module Formatter
|
5
5
|
module DaddyHtml
|
6
6
|
|
7
|
+
def before_menu
|
8
|
+
if ENV['PUBLISH']
|
9
|
+
@builder << "<div>"
|
10
|
+
|
11
|
+
@builder.div(:id => 'menu') do
|
12
|
+
@builder << make_menu_for_publish
|
13
|
+
end
|
14
|
+
|
15
|
+
@builder << "<div class='contents'>"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def after_menu
|
20
|
+
if ENV['PUBLISH']
|
21
|
+
@builder << '</div>'
|
22
|
+
@builder << '</div>'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def make_menu_for_publish
|
27
|
+
menu = Rails.root + '/tmp/menu.html'
|
28
|
+
system("erb -T - #{File.dirname(__FILE__)}/menu.html.erb > #{menu}")
|
29
|
+
File.readlines(menu).join
|
30
|
+
end
|
31
|
+
|
7
32
|
def feature_dir(feature, short = false)
|
8
33
|
ret = ''
|
9
34
|
|
data/lib/daddy/formatter/html.rb
CHANGED
@@ -26,6 +26,7 @@ module Daddy
|
|
26
26
|
@header_red = nil
|
27
27
|
@delayed_messages = []
|
28
28
|
@img_id = 0
|
29
|
+
@inside_outline = false
|
29
30
|
end
|
30
31
|
|
31
32
|
def embed(src, mime_type, label)
|
@@ -44,17 +45,26 @@ module Daddy
|
|
44
45
|
end
|
45
46
|
end
|
46
47
|
|
48
|
+
|
47
49
|
def before_features(features)
|
48
50
|
@step_count = features.step_count
|
49
51
|
|
50
|
-
|
52
|
+
# <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
53
|
+
@builder.declare!(
|
54
|
+
:DOCTYPE,
|
55
|
+
:html,
|
56
|
+
:PUBLIC,
|
57
|
+
'-//W3C//DTD XHTML 1.0 Strict//EN',
|
58
|
+
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'
|
59
|
+
)
|
60
|
+
|
51
61
|
@builder << '<html>'
|
52
|
-
|
62
|
+
@builder.head do
|
53
63
|
@builder.meta('http-equiv' => 'Content-Type', :content => 'text/html;charset=utf-8')
|
54
|
-
@builder.title '
|
64
|
+
@builder.title 'Cucumber'
|
55
65
|
inline_css
|
56
66
|
inline_js
|
57
|
-
|
67
|
+
end
|
58
68
|
@builder << '<body>'
|
59
69
|
@builder << "<!-- Step count #{@step_count}-->"
|
60
70
|
@builder << '<div class="cucumber">'
|
@@ -75,31 +85,6 @@ module Daddy
|
|
75
85
|
before_menu
|
76
86
|
end
|
77
87
|
|
78
|
-
def before_menu
|
79
|
-
if ENV['PUBLISH']
|
80
|
-
@builder << "<div>"
|
81
|
-
|
82
|
-
@builder.div(:id => 'menu') do
|
83
|
-
@builder << make_menu_for_publish
|
84
|
-
end
|
85
|
-
|
86
|
-
@builder << "<div class='contents'>"
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
def after_menu
|
91
|
-
if ENV['PUBLISH']
|
92
|
-
@builder << '</div>'
|
93
|
-
@builder << '</div>'
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
def make_menu_for_publish
|
98
|
-
menu = Rails.root + '/tmp/menu.html'
|
99
|
-
system("erb -T - #{File.dirname(__FILE__)}/menu.html.erb > #{menu}")
|
100
|
-
File.readlines(menu).join
|
101
|
-
end
|
102
|
-
|
103
88
|
def after_features(features)
|
104
89
|
after_menu
|
105
90
|
print_stats(features)
|
@@ -110,13 +95,16 @@ module Daddy
|
|
110
95
|
|
111
96
|
def before_feature(feature)
|
112
97
|
dir = feature_dir(feature)
|
113
|
-
if
|
114
|
-
@
|
115
|
-
|
116
|
-
|
117
|
-
|
98
|
+
if dir.present?
|
99
|
+
if @feature_dir != dir
|
100
|
+
@builder << '<div class="feature_dir"><span class="val" onclick="toggle_feature_dir(this);">'
|
101
|
+
@builder << dir
|
102
|
+
@builder << '</span></div>'
|
103
|
+
end
|
104
|
+
|
105
|
+
@feature_dir = dir
|
106
|
+
end
|
118
107
|
|
119
|
-
@feature_dir = dir
|
120
108
|
@feature = feature
|
121
109
|
@exceptions = []
|
122
110
|
@builder << '<div class="feature">'
|
@@ -233,6 +221,7 @@ module Daddy
|
|
233
221
|
end
|
234
222
|
|
235
223
|
def before_outline_table(outline_table)
|
224
|
+
@inside_outline = true
|
236
225
|
@outline_row = 0
|
237
226
|
@builder << '<table>'
|
238
227
|
end
|
@@ -240,6 +229,7 @@ module Daddy
|
|
240
229
|
def after_outline_table(outline_table)
|
241
230
|
@builder << '</table>'
|
242
231
|
@outline_row = nil
|
232
|
+
@inside_outline = false
|
243
233
|
end
|
244
234
|
|
245
235
|
def before_examples(examples)
|
@@ -259,7 +249,7 @@ module Daddy
|
|
259
249
|
end
|
260
250
|
|
261
251
|
def before_steps(steps)
|
262
|
-
@builder << '<ol
|
252
|
+
@builder << '<ol>'
|
263
253
|
end
|
264
254
|
|
265
255
|
def after_steps(steps)
|
@@ -293,7 +283,7 @@ module Daddy
|
|
293
283
|
@status = status
|
294
284
|
return if @hide_this_step
|
295
285
|
set_scenario_color(status)
|
296
|
-
|
286
|
+
|
297
287
|
if ! @delayed_messages.empty? and status == :passed
|
298
288
|
@builder << "<li id='#{@step_id}' class='step #{status} expand'>"
|
299
289
|
else
|
@@ -415,7 +405,7 @@ module Daddy
|
|
415
405
|
attributes = {:id => "#{@row_id}_#{@col_index}", :class => 'step'}
|
416
406
|
attributes[:class] += " #{status}" if status
|
417
407
|
build_cell(@cell_type, value, attributes)
|
418
|
-
set_scenario_color(status)
|
408
|
+
set_scenario_color(status) if @inside_outline
|
419
409
|
@col_index += 1
|
420
410
|
end
|
421
411
|
|
@@ -429,7 +419,7 @@ module Daddy
|
|
429
419
|
|
430
420
|
#@builder.ol do
|
431
421
|
@delayed_messages.each_with_index do |ann, i|
|
432
|
-
@builder.li(:id => "#{@step_number}_#{i}", :class => 'step message') do
|
422
|
+
@builder.li(:id => "#{@step_number}_#{i}", :class => 'step message', :style => 'display: none;') do
|
433
423
|
@builder << ann
|
434
424
|
end
|
435
425
|
end
|
@@ -577,20 +567,15 @@ module Daddy
|
|
577
567
|
end
|
578
568
|
|
579
569
|
def inline_js
|
580
|
-
@builder.script do
|
570
|
+
@builder.script(:type => 'text/javascript') do
|
581
571
|
@builder << inline_jquery
|
572
|
+
@builder << inline_daddy
|
582
573
|
@builder << inline_js_content
|
574
|
+
|
583
575
|
if should_expand
|
584
576
|
@builder << %w{
|
585
577
|
$(document).ready(function() {
|
586
|
-
$(
|
587
|
-
$('li.message').hide();
|
588
|
-
});
|
589
|
-
}.join
|
590
|
-
else
|
591
|
-
@builder << %w{
|
592
|
-
$(document).ready(function() {
|
593
|
-
$('li.message').hide();
|
578
|
+
$('#expander').click();
|
594
579
|
});
|
595
580
|
}.join
|
596
581
|
end
|
@@ -601,6 +586,10 @@ module Daddy
|
|
601
586
|
File.read(File.dirname(__FILE__) + '/jquery-min.js')
|
602
587
|
end
|
603
588
|
|
589
|
+
def inline_daddy
|
590
|
+
File.read(File.dirname(__FILE__) + '/daddy.js')
|
591
|
+
end
|
592
|
+
|
604
593
|
def inline_js_content
|
605
594
|
<<-EOF
|
606
595
|
|
@@ -615,7 +604,6 @@ module Daddy
|
|
615
604
|
$("#collapser").css('cursor', 'pointer');
|
616
605
|
$("#collapser").click(function() {
|
617
606
|
$(SCENARIOS).siblings().hide();
|
618
|
-
$('li.message').hide();
|
619
607
|
});
|
620
608
|
|
621
609
|
$("#expander").css('cursor', 'pointer');
|
@@ -646,7 +634,7 @@ module Daddy
|
|
646
634
|
end
|
647
635
|
|
648
636
|
def move_progress
|
649
|
-
@builder << " <script>moveProgressBar('#{percent_done}');</script>"
|
637
|
+
@builder << " <script type=\"text/javascript\">moveProgressBar('#{percent_done}');</script>"
|
650
638
|
end
|
651
639
|
|
652
640
|
def percent_done
|
@@ -672,8 +660,8 @@ module Daddy
|
|
672
660
|
end
|
673
661
|
|
674
662
|
def print_stats(features)
|
675
|
-
@builder << "<script>document.getElementById('duration').innerHTML = \"Finished in <strong>#{format_duration(features.duration)} seconds</strong>\";</script>"
|
676
|
-
@builder << "<script>document.getElementById('totals').innerHTML = \"#{print_stat_string(features)}\";</script>"
|
663
|
+
@builder << "<script type=\"text/javascript\">document.getElementById('duration').innerHTML = \"Finished in <strong>#{format_duration(features.duration)} seconds</strong>\";</script>"
|
664
|
+
@builder << "<script type=\"text/javascript\">document.getElementById('totals').innerHTML = \"#{print_stat_string(features)}\";</script>"
|
677
665
|
end
|
678
666
|
|
679
667
|
def print_stat_string(features)
|
@@ -750,4 +738,4 @@ module Daddy
|
|
750
738
|
end
|
751
739
|
end
|
752
740
|
end
|
753
|
-
end
|
741
|
+
end
|
data/lib/tasks/phantomjs.rake
CHANGED
@@ -7,7 +7,7 @@ namespace :dad do
|
|
7
7
|
|
8
8
|
desc "PhantomJSをインストールします。"
|
9
9
|
task :install do
|
10
|
-
name = 'phantomjs-1.9.
|
10
|
+
name = 'phantomjs-1.9.1-linux-x86_64'
|
11
11
|
file = "#{name}.tar.bz2"
|
12
12
|
unless File.exist?("tmp/#{file}")
|
13
13
|
system("wget https://phantomjs.googlecode.com/files/#{file} -O tmp/#{file}")
|
data/lib/tasks/publish.rake
CHANGED
@@ -11,7 +11,7 @@ namespace :dad do
|
|
11
11
|
system("mkdir -p features/reports")
|
12
12
|
system("rm -Rf features/reports/*")
|
13
13
|
|
14
|
-
fail unless system("bundle exec rake dad:cucumber PUBLISH=true
|
14
|
+
fail unless system("bundle exec rake dad:cucumber PUBLISH=true features/開発日記")
|
15
15
|
system("mkdir -p features/reports/diary")
|
16
16
|
system("mv features/reports/index.html features/reports/diary")
|
17
17
|
system("mv features/reports/images features/reports/diary")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: daddy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ichy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
@@ -232,6 +232,7 @@ files:
|
|
232
232
|
- lib/daddy/formatter/daddy_html.rb
|
233
233
|
- lib/daddy/formatter/daddy.css
|
234
234
|
- lib/daddy/formatter/cucumber.css
|
235
|
+
- lib/daddy/formatter/daddy.js
|
235
236
|
- lib/daddy/formatter/jquery-min.js
|
236
237
|
- lib/daddy/railtie.rb
|
237
238
|
- lib/daddy/models/acts_as_like.rb
|