friendly-cukes 0.0.1
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 +7 -0
- data/.gitignore +14 -0
- data/DETAILED_DESCRIPTION.md +235 -0
- data/Gemfile +17 -0
- data/LICENSE.txt +22 -0
- data/README.md +108 -0
- data/Rakefile +2 -0
- data/bin/build-extractor +69 -0
- data/bin/friendly-cukes +48 -0
- data/friendly-cukes.gemspec +41 -0
- data/lib/friendly/build_extractor.rb +647 -0
- data/lib/friendly/cukes.rb +29 -0
- data/lib/friendly/cukes/framework/Gemfile +16 -0
- data/lib/friendly/cukes/framework/Gemfile.lock +113 -0
- data/lib/friendly/cukes/framework/Rakefile.rb +19 -0
- data/lib/friendly/cukes/framework/config/config.yml +87 -0
- data/lib/friendly/cukes/framework/config/cucumber.yml +49 -0
- data/lib/friendly/cukes/framework/coverage/.last_run.json +5 -0
- data/lib/friendly/cukes/framework/coverage/.resultset.json +3519 -0
- data/lib/friendly/cukes/framework/coverage/.resultset.json.lock +0 -0
- data/lib/friendly/cukes/framework/coverage/rcov/assets/0.2.3/jquery-1.3.2.min.js +19 -0
- data/lib/friendly/cukes/framework/coverage/rcov/assets/0.2.3/jquery.tablesorter.min.js +15 -0
- data/lib/friendly/cukes/framework/coverage/rcov/assets/0.2.3/print.css +12 -0
- data/lib/friendly/cukes/framework/coverage/rcov/assets/0.2.3/rcov.js +42 -0
- data/lib/friendly/cukes/framework/coverage/rcov/assets/0.2.3/screen.css +270 -0
- data/lib/friendly/cukes/framework/coverage/rcov/index.html +392 -0
- data/lib/friendly/cukes/framework/coverage/rcov/library-app_init-app_driver_rb.html +98 -0
- data/lib/friendly/cukes/framework/coverage/rcov/library-app_utils-data_file_names_rb.html +65 -0
- data/lib/friendly/cukes/framework/coverage/rcov/library-app_utils-page_utils_rb.html +533 -0
- data/lib/friendly/cukes/framework/coverage/rcov/library-generic-create_log_rb.html +521 -0
- data/lib/friendly/cukes/framework/coverage/rcov/library-generic-custom_html_report_rb.html +2522 -0
- data/lib/friendly/cukes/framework/coverage/rcov/library-generic-datetime_library_rb.html +296 -0
- data/lib/friendly/cukes/framework/coverage/rcov/library-generic-file_library_rb.html +995 -0
- data/lib/friendly/cukes/framework/coverage/rcov/library-generic-performance_report_rb.html +1613 -0
- data/lib/friendly/cukes/framework/coverage/rcov/library-generic-read_from_yml_rb.html +944 -0
- data/lib/friendly/cukes/framework/coverage/rcov/object_repository-desktop-gem_search_rb.html +773 -0
- data/lib/friendly/cukes/framework/coverage/rcov/object_repository-desktop-google_search_rb.html +230 -0
- data/lib/friendly/cukes/framework/coverage/rcov/object_repository-mobile-mobile_google_search_rb.html +230 -0
- data/lib/friendly/cukes/framework/coverage/rcov/step_definitions-desktop-gem_search_rb.html +188 -0
- data/lib/friendly/cukes/framework/coverage/rcov/step_definitions-desktop-google_search_steps_rb.html +167 -0
- data/lib/friendly/cukes/framework/coverage/rcov/step_definitions-mobile-mobile_google_search_steps_rb.html +167 -0
- data/lib/friendly/cukes/framework/coverage/rcov/support-browser_settings_rb.html +851 -0
- data/lib/friendly/cukes/framework/coverage/rcov/support-env_rb.html +242 -0
- data/lib/friendly/cukes/framework/coverage/rcov/support-hooks_rb.html +878 -0
- data/lib/friendly/cukes/framework/coverage/rcov/support-html_formatter_rb.html +230 -0
- data/lib/friendly/cukes/framework/features/desktop/google_search/google_search.feature +19 -0
- data/lib/friendly/cukes/framework/features/desktop/rubygems_search/gem_name_tc_04.yml +2 -0
- data/lib/friendly/cukes/framework/features/desktop/rubygems_search/gem_search.feature +37 -0
- data/lib/friendly/cukes/framework/features/desktop/test_data/gem_name.yml +2 -0
- data/lib/friendly/cukes/framework/features/mobile/google_search/mobile_google_search.feature +19 -0
- data/lib/friendly/cukes/framework/library/app_init/app_init.rb +13 -0
- data/lib/friendly/cukes/framework/library/app_utils/data_file_names.rb +2 -0
- data/lib/friendly/cukes/framework/library/app_utils/page_utils.rb +157 -0
- data/lib/friendly/cukes/framework/library/generic/app_logo_1.png +0 -0
- data/lib/friendly/cukes/framework/library/generic/create_log.rb +154 -0
- data/lib/friendly/cukes/framework/library/generic/custom_html_report.rb +852 -0
- data/lib/friendly/cukes/framework/library/generic/datetime_library.rb +79 -0
- data/lib/friendly/cukes/framework/library/generic/file_library.rb +311 -0
- data/lib/friendly/cukes/framework/library/generic/performance_report.rb +518 -0
- data/lib/friendly/cukes/framework/library/generic/read_from_yml.rb +294 -0
- data/lib/friendly/cukes/framework/object_repository/desktop/desktop_web_object_repo.rb +50 -0
- data/lib/friendly/cukes/framework/object_repository/mobile/mobile_web_object_repo.rb +22 -0
- data/lib/friendly/cukes/framework/page_objects/desktop/gem_search.rb +213 -0
- data/lib/friendly/cukes/framework/page_objects/desktop/google_search.rb +53 -0
- data/lib/friendly/cukes/framework/page_objects/mobile/mobile_google_search.rb +53 -0
- data/lib/friendly/cukes/framework/step_definitions/desktop/gem_search.rb +43 -0
- data/lib/friendly/cukes/framework/step_definitions/desktop/google_search_steps.rb +36 -0
- data/lib/friendly/cukes/framework/step_definitions/mobile/mobile_google_search_steps.rb +36 -0
- data/lib/friendly/cukes/framework/support/browser_settings.rb +264 -0
- data/lib/friendly/cukes/framework/support/env.rb +65 -0
- data/lib/friendly/cukes/framework/support/hooks.rb +274 -0
- data/lib/friendly/cukes/framework/support/html_formatter.rb +57 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_33/app_env.log +15 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_33/custom_report/detailed_report/app_logo_1.png +0 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_33/custom_report/detailed_report/desktop_gem_search.html +647 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_33/custom_report/detailed_report/desktop_google_search.html +590 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_33/custom_report/report_home.html +593 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_33/desktop_rubygems_search.log +84 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_33/report_21_05_2015-11_04_54.html +472 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_33/report_21_05_2015-11_04_54.json +299 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_37/app_env.log +15 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_37/desktop_google_search.log +22 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_37/report_21_05_2015-11_03_49.html +472 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-11_03_37/report_21_05_2015-11_03_49.json +155 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-17_28_10/app_env.log +15 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-17_28_10/mobile_google_search.log +22 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-17_28_10/report_21_05_2015-17_29_26.html +472 -0
- data/lib/friendly/cukes/framework/test_result/test_report_21_05_2015-17_28_10/report_21_05_2015-17_29_26.json +143 -0
- data/lib/friendly/cukes/version.rb +61 -0
- metadata +309 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
2
|
+
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
|
|
3
|
+
<head>
|
|
4
|
+
<title>support/html_formatter.rb</title>
|
|
5
|
+
<link href="./assets/0.2.3/screen.css" media="all" rel="stylesheet" type="text/css" />
|
|
6
|
+
<link href="./assets/0.2.3/print.css" media="print" rel="stylesheet" type="text/css" />
|
|
7
|
+
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
|
8
|
+
<script type="text/javascript" src="./assets/0.2.3/rcov.js"></script>
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<h1>Cukes C0 Coverage Information - Simploco - RCov</h1>
|
|
12
|
+
<h2>support/html_formatter.rb</h2>
|
|
13
|
+
|
|
14
|
+
<div class="report_table_wrapper">
|
|
15
|
+
<table class='report' id='report_table'>
|
|
16
|
+
<thead>
|
|
17
|
+
<tr>
|
|
18
|
+
<th class="left_align">Name</th>
|
|
19
|
+
<th class="right_align">Total Lines</th>
|
|
20
|
+
<th class="right_align">Lines of Code</th>
|
|
21
|
+
<th class="left_align">Total Coverage</th>
|
|
22
|
+
<th class="left_align">Code Coverage</th>
|
|
23
|
+
</tr>
|
|
24
|
+
</thead>
|
|
25
|
+
<tbody>
|
|
26
|
+
<tr>
|
|
27
|
+
<td class="left_align"><a href="support-html_formatter_rb.html">support/html_formatter.rb</a></td>
|
|
28
|
+
<td class='right_align'><tt>57</tt></td>
|
|
29
|
+
<td class='right_align'><tt>14</tt></td>
|
|
30
|
+
<td class="left_align"><div class="percent_graph_legend"><tt class=''>85.96%</tt></div>
|
|
31
|
+
<div class="percent_graph">
|
|
32
|
+
<div class="covered" style="width:86px"></div>
|
|
33
|
+
<div class="uncovered" style="width:14px"></div>
|
|
34
|
+
</div></td>
|
|
35
|
+
<td class="left_align"><div class="percent_graph_legend"><tt class=''>42.86%</tt></div>
|
|
36
|
+
<div class="percent_graph">
|
|
37
|
+
<div class="covered" style="width:43px"></div>
|
|
38
|
+
<div class="uncovered" style="width:57px"></div>
|
|
39
|
+
</div></td>
|
|
40
|
+
</tr>
|
|
41
|
+
</tbody>
|
|
42
|
+
</table>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<h3>Key</h3>
|
|
46
|
+
|
|
47
|
+
<div class="key"><pre><span class='marked'>Code reported as executed by Ruby looks like this...</span><span class='marked1'>and this: this line is also marked as covered.</span><span class='inferred'>Lines considered as run by rcov, but not reported by Ruby, look like this,</span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).</span><span class='uncovered'>Finally, here's a line marked as not executed.</span></pre></div>
|
|
48
|
+
|
|
49
|
+
<h3>Coverage Details</h3>
|
|
50
|
+
|
|
51
|
+
<table class="details">
|
|
52
|
+
<tbody>
|
|
53
|
+
<tr class="inferred">
|
|
54
|
+
<td><pre><a name="line2">2</a> =begin</pre></td>
|
|
55
|
+
</tr>
|
|
56
|
+
<tr class="inferred">
|
|
57
|
+
<td><pre><a name="line3">3</a> *Name : HtmlFormatter</pre></td>
|
|
58
|
+
</tr>
|
|
59
|
+
<tr class="inferred">
|
|
60
|
+
<td><pre><a name="line4">4</a> *Description : class that defines wrapper methods for Cucumber generated report</pre></td>
|
|
61
|
+
</tr>
|
|
62
|
+
<tr class="inferred">
|
|
63
|
+
<td><pre><a name="line5">5</a> *Author : Chandra sekaran</pre></td>
|
|
64
|
+
</tr>
|
|
65
|
+
<tr class="inferred">
|
|
66
|
+
<td><pre><a name="line6">6</a> *Creation Date : 24/04/2015</pre></td>
|
|
67
|
+
</tr>
|
|
68
|
+
<tr class="inferred">
|
|
69
|
+
<td><pre><a name="line7">7</a> *Updation Date :</pre></td>
|
|
70
|
+
</tr>
|
|
71
|
+
<tr class="inferred">
|
|
72
|
+
<td><pre><a name="line8">8</a> =end</pre></td>
|
|
73
|
+
</tr>
|
|
74
|
+
<tr class="inferred">
|
|
75
|
+
<td><pre><a name="line9">9</a> </pre></td>
|
|
76
|
+
</tr>
|
|
77
|
+
<tr class="marked">
|
|
78
|
+
<td><pre><a name="line10">10</a> require 'cucumber/formatter/html'</pre></td>
|
|
79
|
+
</tr>
|
|
80
|
+
<tr class="inferred">
|
|
81
|
+
<td><pre><a name="line11">11</a> </pre></td>
|
|
82
|
+
</tr>
|
|
83
|
+
<tr class="marked">
|
|
84
|
+
<td><pre><a name="line12">12</a> module Formatter</pre></td>
|
|
85
|
+
</tr>
|
|
86
|
+
<tr class="marked">
|
|
87
|
+
<td><pre><a name="line13">13</a> class HtmlFormatter < Cucumber::Formatter::Html # for uaing @builder object</pre></td>
|
|
88
|
+
</tr>
|
|
89
|
+
<tr class="inferred">
|
|
90
|
+
<td><pre><a name="line14">14</a> </pre></td>
|
|
91
|
+
</tr>
|
|
92
|
+
<tr class="inferred">
|
|
93
|
+
<td><pre><a name="line15">15</a> # Description : embeds the given input file type to cucumber report</pre></td>
|
|
94
|
+
</tr>
|
|
95
|
+
<tr class="inferred">
|
|
96
|
+
<td><pre><a name="line16">16</a> # Author : Chandra sekaran</pre></td>
|
|
97
|
+
</tr>
|
|
98
|
+
<tr class="inferred">
|
|
99
|
+
<td><pre><a name="line17">17</a> # Arguments :</pre></td>
|
|
100
|
+
</tr>
|
|
101
|
+
<tr class="inferred">
|
|
102
|
+
<td><pre><a name="line18">18</a> # str_src : relative path of the file</pre></td>
|
|
103
|
+
</tr>
|
|
104
|
+
<tr class="inferred">
|
|
105
|
+
<td><pre><a name="line19">19</a> # str_mime_type : type of file</pre></td>
|
|
106
|
+
</tr>
|
|
107
|
+
<tr class="inferred">
|
|
108
|
+
<td><pre><a name="line20">20</a> # str_label : link text on click of click of which shows the embedded file</pre></td>
|
|
109
|
+
</tr>
|
|
110
|
+
<tr class="inferred">
|
|
111
|
+
<td><pre><a name="line21">21</a> #</pre></td>
|
|
112
|
+
</tr>
|
|
113
|
+
<tr class="marked">
|
|
114
|
+
<td><pre><a name="line22">22</a> def embed(str_src, str_mime_type, str_label)</pre></td>
|
|
115
|
+
</tr>
|
|
116
|
+
<tr class="uncovered">
|
|
117
|
+
<td><pre><a name="line23">23</a> case str_mime_type</pre></td>
|
|
118
|
+
</tr>
|
|
119
|
+
<tr class="inferred">
|
|
120
|
+
<td><pre><a name="line24">24</a> when /^image\/(png|gif|jpg|jpeg)/</pre></td>
|
|
121
|
+
</tr>
|
|
122
|
+
<tr class="uncovered">
|
|
123
|
+
<td><pre><a name="line25">25</a> embed_image(str_src, str_label)</pre></td>
|
|
124
|
+
</tr>
|
|
125
|
+
<tr class="inferred">
|
|
126
|
+
<td><pre><a name="line26">26</a> when /^text\/plain/</pre></td>
|
|
127
|
+
</tr>
|
|
128
|
+
<tr class="uncovered">
|
|
129
|
+
<td><pre><a name="line27">27</a> embed_file(str_src, str_label)</pre></td>
|
|
130
|
+
</tr>
|
|
131
|
+
<tr class="inferred">
|
|
132
|
+
<td><pre><a name="line28">28</a> end</pre></td>
|
|
133
|
+
</tr>
|
|
134
|
+
<tr class="inferred">
|
|
135
|
+
<td><pre><a name="line29">29</a> end</pre></td>
|
|
136
|
+
</tr>
|
|
137
|
+
<tr class="inferred">
|
|
138
|
+
<td><pre><a name="line30">30</a> </pre></td>
|
|
139
|
+
</tr>
|
|
140
|
+
<tr class="inferred">
|
|
141
|
+
<td><pre><a name="line31">31</a> # Description : embeds a link with the given input string</pre></td>
|
|
142
|
+
</tr>
|
|
143
|
+
<tr class="inferred">
|
|
144
|
+
<td><pre><a name="line32">32</a> # Author : Chandra sekaran</pre></td>
|
|
145
|
+
</tr>
|
|
146
|
+
<tr class="inferred">
|
|
147
|
+
<td><pre><a name="line33">33</a> # Arguments :</pre></td>
|
|
148
|
+
</tr>
|
|
149
|
+
<tr class="inferred">
|
|
150
|
+
<td><pre><a name="line34">34</a> # str_src : relative path of the file</pre></td>
|
|
151
|
+
</tr>
|
|
152
|
+
<tr class="inferred">
|
|
153
|
+
<td><pre><a name="line35">35</a> # str_label : link text</pre></td>
|
|
154
|
+
</tr>
|
|
155
|
+
<tr class="inferred">
|
|
156
|
+
<td><pre><a name="line36">36</a> #</pre></td>
|
|
157
|
+
</tr>
|
|
158
|
+
<tr class="marked">
|
|
159
|
+
<td><pre><a name="line37">37</a> def embed_link(str_src, str_label)</pre></td>
|
|
160
|
+
</tr>
|
|
161
|
+
<tr class="uncovered">
|
|
162
|
+
<td><pre><a name="line38">38</a> @builder.span(:class => 'embed') do |pre|</pre></td>
|
|
163
|
+
</tr>
|
|
164
|
+
<tr class="uncovered">
|
|
165
|
+
<td><pre><a name="line39">39</a> pre << %{<a href="#{str_src}" target="_blank">"#{str_label}"</a> }</pre></td>
|
|
166
|
+
</tr>
|
|
167
|
+
<tr class="inferred">
|
|
168
|
+
<td><pre><a name="line40">40</a> end</pre></td>
|
|
169
|
+
</tr>
|
|
170
|
+
<tr class="inferred">
|
|
171
|
+
<td><pre><a name="line41">41</a> end</pre></td>
|
|
172
|
+
</tr>
|
|
173
|
+
<tr class="inferred">
|
|
174
|
+
<td><pre><a name="line42">42</a> </pre></td>
|
|
175
|
+
</tr>
|
|
176
|
+
<tr class="inferred">
|
|
177
|
+
<td><pre><a name="line43">43</a> # Description : embeds the given input file type to cucumber report</pre></td>
|
|
178
|
+
</tr>
|
|
179
|
+
<tr class="inferred">
|
|
180
|
+
<td><pre><a name="line44">44</a> # Author : Chandra sekaran</pre></td>
|
|
181
|
+
</tr>
|
|
182
|
+
<tr class="inferred">
|
|
183
|
+
<td><pre><a name="line45">45</a> # Arguments :</pre></td>
|
|
184
|
+
</tr>
|
|
185
|
+
<tr class="inferred">
|
|
186
|
+
<td><pre><a name="line46">46</a> # str_src : relative path of the file</pre></td>
|
|
187
|
+
</tr>
|
|
188
|
+
<tr class="inferred">
|
|
189
|
+
<td><pre><a name="line47">47</a> # str_label : link text on click of click of which shows the embedded file</pre></td>
|
|
190
|
+
</tr>
|
|
191
|
+
<tr class="inferred">
|
|
192
|
+
<td><pre><a name="line48">48</a> #</pre></td>
|
|
193
|
+
</tr>
|
|
194
|
+
<tr class="marked">
|
|
195
|
+
<td><pre><a name="line49">49</a> def embed_file(str_src, str_label = "Click to view embedded file")</pre></td>
|
|
196
|
+
</tr>
|
|
197
|
+
<tr class="uncovered">
|
|
198
|
+
<td><pre><a name="line50">50</a> id = "object_#{Time.now.strftime("%y%m%d%H%M%S")}"</pre></td>
|
|
199
|
+
</tr>
|
|
200
|
+
<tr class="uncovered">
|
|
201
|
+
<td><pre><a name="line51">51</a> @builder.span(:class => 'embed') do |pre|</pre></td>
|
|
202
|
+
</tr>
|
|
203
|
+
<tr class="inferred">
|
|
204
|
+
<td><pre><a name="line52">52</a> pre << %{<a href="" onclick="o=document.getElementById('#{id}'); o.style.display = (o.style.display == 'none' ? 'block' : 'none');return false">#{str_label}</a><br>&nbsp;</pre></td>
|
|
205
|
+
</tr>
|
|
206
|
+
<tr class="uncovered">
|
|
207
|
+
<td><pre><a name="line53">53</a> <object id="#{id}" data="#{str_src}" type="text/plain" width="100%" style="height: 10em;display: none"></object>}</pre></td>
|
|
208
|
+
</tr>
|
|
209
|
+
<tr class="inferred">
|
|
210
|
+
<td><pre><a name="line54">54</a> end</pre></td>
|
|
211
|
+
</tr>
|
|
212
|
+
<tr class="inferred">
|
|
213
|
+
<td><pre><a name="line55">55</a> end</pre></td>
|
|
214
|
+
</tr>
|
|
215
|
+
<tr class="inferred">
|
|
216
|
+
<td><pre><a name="line56">56</a> </pre></td>
|
|
217
|
+
</tr>
|
|
218
|
+
<tr class="inferred">
|
|
219
|
+
<td><pre><a name="line57">57</a> end</pre></td>
|
|
220
|
+
</tr>
|
|
221
|
+
<tr class="inferred">
|
|
222
|
+
<td><pre><a name="line58">58</a> end</pre></td>
|
|
223
|
+
</tr>
|
|
224
|
+
</tbody>
|
|
225
|
+
</table>
|
|
226
|
+
|
|
227
|
+
<p>Generated on 2015-05-08 10:40:30 +0530 with <a href="https://github.com/fguillen/simplecov-rcov">SimpleCov-RCov 0.2.3</a></p>
|
|
228
|
+
|
|
229
|
+
</body>
|
|
230
|
+
</html>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Name : Google Search
|
|
2
|
+
# Description : covers scenarios under Google search
|
|
3
|
+
# Author : Chandra sekaran
|
|
4
|
+
|
|
5
|
+
# Important Note : To run this feature add APP=GOOGLE in cucumber run command
|
|
6
|
+
# Cucumber run cmd : cucumber -p desktop_dev_chrome -t @rq_desktop_google APP=GOOGLE
|
|
7
|
+
# : you can use any desktop browser profile in -p
|
|
8
|
+
# Rake run cmd : rake desktop_google_search
|
|
9
|
+
|
|
10
|
+
@rq_desktop_google
|
|
11
|
+
Feature: Google for a given input string
|
|
12
|
+
|
|
13
|
+
@tc_01
|
|
14
|
+
Scenario: Search for "bet365" in google and open "bet365.com" website
|
|
15
|
+
Given the user is on the Google home page
|
|
16
|
+
When the user enters "bet365" in the search textbox and clicks the search button
|
|
17
|
+
Then the user should be shown the search results
|
|
18
|
+
When the user clicks the link for bet365
|
|
19
|
+
Then the user should be redirected to the bet365.com website
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Name : Gem Search
|
|
2
|
+
# Description : covers scenarios under RubyGem search
|
|
3
|
+
# Author : Chandra sekaran
|
|
4
|
+
|
|
5
|
+
# Important Note : To run this feature add APP=RUBYGEMS in cucumber run command
|
|
6
|
+
# Cucumber run cmd : cucumber -p desktop_dev_chrome -t @rq_rubygems APP=RUBYGEMS
|
|
7
|
+
# : you can use any desktop browser profile in -p
|
|
8
|
+
# Rake run cmd : rake desktop_rubygems_search
|
|
9
|
+
|
|
10
|
+
@rq_rubygems
|
|
11
|
+
Feature: Fetch the details of a gem from rubygems.org having the maximum downloads
|
|
12
|
+
|
|
13
|
+
Background: Login to rubygems.org website
|
|
14
|
+
Given the user is on the rubygems.org home page
|
|
15
|
+
And the user is signed in
|
|
16
|
+
|
|
17
|
+
@tc_02
|
|
18
|
+
Scenario: Find a given static gem name in rubygems.org web site
|
|
19
|
+
When the user enters "watir" in search textbox and press enter
|
|
20
|
+
Then the user should be redirected to gem list page of "watir" gem
|
|
21
|
+
When the user selects the gem having the maximum downloads
|
|
22
|
+
Then the user should be shown the gem description page
|
|
23
|
+
And the user is signed out
|
|
24
|
+
|
|
25
|
+
@tc_03
|
|
26
|
+
Scenario: Find a given gem from global test data file in rubygems.org web site
|
|
27
|
+
When the user searches for a gem name from test data
|
|
28
|
+
And the user selects the gem having the maximum downloads
|
|
29
|
+
Then the user should be shown the gem description page
|
|
30
|
+
And the user is signed out
|
|
31
|
+
|
|
32
|
+
@tc_04
|
|
33
|
+
Scenario: Find a given gem from local test data file in rubygems.org web site
|
|
34
|
+
When the user searches for a gem name from test data
|
|
35
|
+
And the user selects the gem having the maximum downloads
|
|
36
|
+
Then the user should be shown the gem description page
|
|
37
|
+
And the user is signed out
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Name : Google Search
|
|
2
|
+
# Description : covers scenarios under Google search on mobile
|
|
3
|
+
# Author : Chandra sekaran
|
|
4
|
+
|
|
5
|
+
# Important Note : To run this feature add APP=GOOGLE in cucumber run command
|
|
6
|
+
# Cucumber run cmd : cucumber -p mobile_dev_chrome_device -t @rq_mobile_google APP=GOOGLE
|
|
7
|
+
# : you can use any mobile browser profile in -p
|
|
8
|
+
# Rake run cmd : rake mobile_google_search
|
|
9
|
+
|
|
10
|
+
@rq_mobile_google
|
|
11
|
+
Feature: Google for a given input string
|
|
12
|
+
|
|
13
|
+
@tc_05
|
|
14
|
+
Scenario: Search for "rubygems" in google and open "rubygems.org" website
|
|
15
|
+
Given the user is on the mobile Google home page
|
|
16
|
+
When the user searches for "rubygems"
|
|
17
|
+
Then the user should be shown search results
|
|
18
|
+
When the user clicks the link for mobile rubygems
|
|
19
|
+
Then the user should be redirected to the mobile rubygems.org website
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
*Name : app_driver
|
|
3
|
+
*Description : module to set env global to files under library directory
|
|
4
|
+
*Author : Chandra sekaran
|
|
5
|
+
*Creation Date : 28/08/2014
|
|
6
|
+
*Updation Date :
|
|
7
|
+
=end
|
|
8
|
+
|
|
9
|
+
require './support/env'
|
|
10
|
+
|
|
11
|
+
module CUKES
|
|
12
|
+
include PageObject
|
|
13
|
+
end
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
*Name : PageUtils
|
|
3
|
+
*Description : module that define methods for commonly used page-object related manipulations
|
|
4
|
+
*Author : Chandra sekaran
|
|
5
|
+
*Creation Date : 24/04/2015
|
|
6
|
+
*Updation Date :
|
|
7
|
+
=end
|
|
8
|
+
|
|
9
|
+
module CUKES
|
|
10
|
+
module PageUtils
|
|
11
|
+
include PageObject
|
|
12
|
+
|
|
13
|
+
# Description : waits until the web element is visible
|
|
14
|
+
# Author : Chandra sekaran
|
|
15
|
+
# Arguments :
|
|
16
|
+
# element : page object element
|
|
17
|
+
# str_error_message : error message to be displayed if web element is not visible within the timeout
|
|
18
|
+
# num_wait_time : number of seconds to wait
|
|
19
|
+
#
|
|
20
|
+
def wait_for_object(element, str_error_message = "Failure in finding the element", num_wait_time = PageObject.default_element_wait)
|
|
21
|
+
wait_until(num_wait_time, str_error_message) { element.visible? }
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Description : waits until the web page title is visible
|
|
25
|
+
# Author : Chandra sekaran
|
|
26
|
+
# Arguments :
|
|
27
|
+
# str_error_message : error message to be displayed if web page title is not within the timeout
|
|
28
|
+
# num_wait_time : number of seconds to wait
|
|
29
|
+
#
|
|
30
|
+
def wait_for_page_load(str_error_message = "Failure in page load", num_wait_time = PageObject.default_page_wait)
|
|
31
|
+
wait_until(num_wait_time, str_error_message) { title != '' }
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Description : compares two strings and throws error if the strings are unequal
|
|
35
|
+
# Author : Chandra sekaran
|
|
36
|
+
# Arguments :
|
|
37
|
+
# str_actual : actual string value
|
|
38
|
+
# str_expected : expected string value
|
|
39
|
+
#
|
|
40
|
+
def compare_string(str_actual, str_expected)
|
|
41
|
+
raise "The expected string is '#{str_expected}' but the actual string value is '#{str_actual}'" if str_actual != str_expected
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Description : waits until the web page is loading and ajax requests are completed
|
|
45
|
+
# Author : Gomathi
|
|
46
|
+
#
|
|
47
|
+
def wait_ajax_for_loading
|
|
48
|
+
wait_for_ajax(PageObject.default_element_wait) # waits until ajax request is complete
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Description : clicks on the given web element
|
|
52
|
+
# Author : Chandra sekaran
|
|
53
|
+
# Arguments :
|
|
54
|
+
# clickable_element: element object
|
|
55
|
+
# Return argument : a boolean value
|
|
56
|
+
#
|
|
57
|
+
def click_on(clickable_element)
|
|
58
|
+
wait_until(PageObject.default_element_wait) { element.visible? } rescue Exception
|
|
59
|
+
clickable_element.scroll_into_view rescue Exception
|
|
60
|
+
#if clickable_element.enabled?
|
|
61
|
+
clickable_element.focus rescue Exception
|
|
62
|
+
clickable_element.click
|
|
63
|
+
wait_for_page_load
|
|
64
|
+
#end
|
|
65
|
+
return true
|
|
66
|
+
rescue Exception => ex
|
|
67
|
+
clickable_element.fire_event("click") rescue Exception
|
|
68
|
+
$log.error("Error in clicking web element : #{ex}")
|
|
69
|
+
return false
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Description : checks if the given text is present in the current page or iframe
|
|
73
|
+
# Author : Chandra sekaran
|
|
74
|
+
# Arguments :
|
|
75
|
+
# page_object : page object
|
|
76
|
+
# str_text : string text
|
|
77
|
+
# num_wait : time out value
|
|
78
|
+
# Return argument : a boolean value
|
|
79
|
+
#
|
|
80
|
+
def is_text_present(page_object, str_text, num_wait = PageObject.default_element_wait)
|
|
81
|
+
wait_for_loading
|
|
82
|
+
page_object.wait_until(num_wait, "Failure in finding text '#{str_text}' in the page #{page_object}") do
|
|
83
|
+
page_object.text.include? str_text
|
|
84
|
+
end
|
|
85
|
+
return true
|
|
86
|
+
rescue Exception => ex
|
|
87
|
+
return false
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# Description : refresh the current web page
|
|
91
|
+
# Author : Chandra sekaran
|
|
92
|
+
# Arguments :
|
|
93
|
+
# page_object : page object
|
|
94
|
+
#
|
|
95
|
+
def refresh_page(page_object)
|
|
96
|
+
page_object.refresh
|
|
97
|
+
wait_for_page_load
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Description : function for moving to newly opened browser window
|
|
101
|
+
# Author : Chandra sekaran
|
|
102
|
+
#
|
|
103
|
+
def switch_to_next_window
|
|
104
|
+
raise "Number of windows should be two" if @browser.window_handles.size != 2
|
|
105
|
+
window_to_switch = @browser.window_handles.find { |window| window != @browser.window_handle }
|
|
106
|
+
@browser.switch_to.window window_to_switch
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Description : closes other browser windows and switches to application main window
|
|
110
|
+
# Author : Chandra sekaran
|
|
111
|
+
#
|
|
112
|
+
def switch_to_application_window
|
|
113
|
+
if @browser.window_handles.size > 1
|
|
114
|
+
window_to_close = @browser.window_handle
|
|
115
|
+
parent_window = @browser.window_handles.find_all { |window| window != @browser.window_handle }
|
|
116
|
+
@browser.switch_to.window window_to_close
|
|
117
|
+
puts("Closing window " + @browser.title)
|
|
118
|
+
@browser.close
|
|
119
|
+
parent_window.each do |window|
|
|
120
|
+
@browser.switch_to.window window
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
# Description : function for getting all steps under the current running scenario
|
|
126
|
+
# Author : Chandra sekaran
|
|
127
|
+
# Argument :
|
|
128
|
+
# feature : feature object of current running feature file
|
|
129
|
+
# Return argument :
|
|
130
|
+
# arr_steps : array of steps
|
|
131
|
+
#
|
|
132
|
+
def get_steps(feature)
|
|
133
|
+
arr_steps = []
|
|
134
|
+
feature.feature_elements[$scenario_count].steps.each do |step|
|
|
135
|
+
arr_steps << step.name
|
|
136
|
+
end
|
|
137
|
+
arr_steps
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# Description : function for getting the delay (in seconds) between the parallel executions
|
|
141
|
+
# Author : Chandra sekaran
|
|
142
|
+
# Return argument : delay in seconds
|
|
143
|
+
#
|
|
144
|
+
def get_execution_delay_time
|
|
145
|
+
num_seconds = 0
|
|
146
|
+
if DELAY_BETWEEN_PARALLEL_THREADS.downcase.include? "second"
|
|
147
|
+
num_seconds = DELAY_BETWEEN_PARALLEL_THREADS.scan(/\d/).join('').to_i
|
|
148
|
+
elsif DELAY_BETWEEN_PARALLEL_THREADS.downcase.include? "minute"
|
|
149
|
+
num_seconds = DELAY_BETWEEN_PARALLEL_THREADS.scan(/\d/).join('').to_i * 60
|
|
150
|
+
elsif DELAY_BETWEEN_PARALLEL_THREADS.downcase.include? "hour"
|
|
151
|
+
num_seconds = DELAY_BETWEEN_PARALLEL_THREADS.scan(/\d/).join('').to_i * 60 * 60
|
|
152
|
+
end
|
|
153
|
+
[0, 1].include?(NO_OF_PARALLEL_THREADS.to_i) ? 0 : NO_OF_PARALLEL_THREADS.to_i * num_seconds
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
end
|
|
157
|
+
end
|