selenium-core-runner 0.0.3
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.
- data/Gemfile +9 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +30 -0
- data/app/controllers/selenium_core_runner/suites_controller.rb +19 -0
- data/app/views/selenium_core_runner/suites/index.html.erb +177 -0
- data/app/views/selenium_core_runner/suites/show.html.erb +0 -0
- data/config/routes.rb +6 -0
- data/lib/selenium-core-runner/engine.rb +19 -0
- data/lib/selenium-core-runner.rb +3 -0
- data/public/selenium-core-runner/Blank.html +7 -0
- data/public/selenium-core-runner/InjectedRemoteRunner.html +8 -0
- data/public/selenium-core-runner/RemoteRunner.html +101 -0
- data/public/selenium-core-runner/SeleniumLog.html +109 -0
- data/public/selenium-core-runner/TestPrompt.html +145 -0
- data/public/selenium-core-runner/TestRunner-splash.html +55 -0
- data/public/selenium-core-runner/TestRunner.hta +177 -0
- data/public/selenium-core-runner/TestRunner.html +177 -0
- data/public/selenium-core-runner/icons/all.png +0 -0
- data/public/selenium-core-runner/icons/continue.png +0 -0
- data/public/selenium-core-runner/icons/continue_disabled.png +0 -0
- data/public/selenium-core-runner/icons/pause.png +0 -0
- data/public/selenium-core-runner/icons/pause_disabled.png +0 -0
- data/public/selenium-core-runner/icons/selected.png +0 -0
- data/public/selenium-core-runner/icons/step.png +0 -0
- data/public/selenium-core-runner/icons/step_disabled.png +0 -0
- data/public/selenium-core-runner/iedoc-core.xml +1789 -0
- data/public/selenium-core-runner/iedoc.xml +1830 -0
- data/public/selenium-core-runner/lib/cssQuery/cssQuery-p.js +6 -0
- data/public/selenium-core-runner/lib/cssQuery/src/cssQuery-level2.js +142 -0
- data/public/selenium-core-runner/lib/cssQuery/src/cssQuery-level3.js +150 -0
- data/public/selenium-core-runner/lib/cssQuery/src/cssQuery-standard.js +53 -0
- data/public/selenium-core-runner/lib/cssQuery/src/cssQuery.js +356 -0
- data/public/selenium-core-runner/lib/prototype.js +2006 -0
- data/public/selenium-core-runner/lib/scriptaculous/builder.js +101 -0
- data/public/selenium-core-runner/lib/scriptaculous/controls.js +815 -0
- data/public/selenium-core-runner/lib/scriptaculous/dragdrop.js +915 -0
- data/public/selenium-core-runner/lib/scriptaculous/effects.js +958 -0
- data/public/selenium-core-runner/lib/scriptaculous/scriptaculous.js +47 -0
- data/public/selenium-core-runner/lib/scriptaculous/slider.js +283 -0
- data/public/selenium-core-runner/lib/scriptaculous/unittest.js +383 -0
- data/public/selenium-core-runner/lib/snapsie.js +91 -0
- data/public/selenium-core-runner/scripts/find_matching_child.js +69 -0
- data/public/selenium-core-runner/scripts/htmlutils.js +1623 -0
- data/public/selenium-core-runner/scripts/injection.html +72 -0
- data/public/selenium-core-runner/scripts/selenium-api.js +3240 -0
- data/public/selenium-core-runner/scripts/selenium-browserbot.js +2333 -0
- data/public/selenium-core-runner/scripts/selenium-browserdetect.js +153 -0
- data/public/selenium-core-runner/scripts/selenium-commandhandlers.js +379 -0
- data/public/selenium-core-runner/scripts/selenium-executionloop.js +175 -0
- data/public/selenium-core-runner/scripts/selenium-logging.js +148 -0
- data/public/selenium-core-runner/scripts/selenium-remoterunner.js +695 -0
- data/public/selenium-core-runner/scripts/selenium-testrunner.js +1362 -0
- data/public/selenium-core-runner/scripts/selenium-version.js +5 -0
- data/public/selenium-core-runner/scripts/ui-doc.html +803 -0
- data/public/selenium-core-runner/scripts/ui-element.js +1627 -0
- data/public/selenium-core-runner/scripts/ui-map-sample.js +979 -0
- data/public/selenium-core-runner/scripts/user-extensions.js +3 -0
- data/public/selenium-core-runner/scripts/user-extensions.js.sample +75 -0
- data/public/selenium-core-runner/scripts/xmlextras.js +153 -0
- data/public/selenium-core-runner/selenium-logo.png +0 -0
- data/public/selenium-core-runner/selenium-test.css +43 -0
- data/public/selenium-core-runner/selenium.css +316 -0
- data/public/selenium-core-runner/xpath/dom.js +566 -0
- data/public/selenium-core-runner/xpath/javascript-xpath-0.1.11.js +2816 -0
- data/public/selenium-core-runner/xpath/util.js +549 -0
- data/public/selenium-core-runner/xpath/xmltoken.js +149 -0
- data/public/selenium-core-runner/xpath/xpath.js +2481 -0
- metadata +121 -0
data/Gemfile
ADDED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2011 YOURNAME
|
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
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'rubygems'
|
3
|
+
begin
|
4
|
+
require 'bundler/setup'
|
5
|
+
rescue LoadError
|
6
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
7
|
+
end
|
8
|
+
|
9
|
+
require 'rake'
|
10
|
+
require 'rake/rdoctask'
|
11
|
+
|
12
|
+
require 'rake/testtask'
|
13
|
+
|
14
|
+
Rake::TestTask.new(:test) do |t|
|
15
|
+
t.libs << 'lib'
|
16
|
+
t.libs << 'test'
|
17
|
+
t.pattern = 'test/**/*_test.rb'
|
18
|
+
t.verbose = false
|
19
|
+
end
|
20
|
+
|
21
|
+
task :default => :test
|
22
|
+
|
23
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
24
|
+
rdoc.rdoc_dir = 'rdoc'
|
25
|
+
rdoc.title = 'SeleniumWebRunner'
|
26
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
27
|
+
rdoc.rdoc_files.include('README.rdoc')
|
28
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module SeleniumCoreRunner
|
2
|
+
class SuitesController < ApplicationController
|
3
|
+
def index
|
4
|
+
end
|
5
|
+
|
6
|
+
def show
|
7
|
+
path = params[:suite]
|
8
|
+
if params[:case].blank?
|
9
|
+
path = params[:suite]+".html"
|
10
|
+
else
|
11
|
+
path = params[:suite]+"/"+params[:case]
|
12
|
+
end
|
13
|
+
open(Rails.root.to_s+"/test/selenium/#{path}") {|f|
|
14
|
+
render :text=>f.read , :layout=>false
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,177 @@
|
|
1
|
+
<html>
|
2
|
+
|
3
|
+
<head>
|
4
|
+
<HTA:APPLICATION ID="SeleniumHTARunner" APPLICATIONNAME="Selenium">
|
5
|
+
<!-- the previous line is only relevant if you rename this
|
6
|
+
file to "TestRunner.hta" -->
|
7
|
+
|
8
|
+
<!-- The copyright notice and other comments have been moved to after the HTA declaration,
|
9
|
+
to work-around a bug in IE on Win2K whereby the HTA application doesn't function correctly -->
|
10
|
+
<!--
|
11
|
+
Copyright 2004 ThoughtWorks, Inc
|
12
|
+
|
13
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
14
|
+
you may not use this file except in compliance with the License.
|
15
|
+
You may obtain a copy of the License at
|
16
|
+
|
17
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
18
|
+
|
19
|
+
Unless required by applicable law or agreed to in writing, software
|
20
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
21
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
22
|
+
See the License for the specific language governing permissions and
|
23
|
+
limitations under the License.
|
24
|
+
-->
|
25
|
+
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"/>
|
26
|
+
|
27
|
+
<title>Selenium Functional Test Runner</title>
|
28
|
+
<link rel="stylesheet" type="text/css" href="selenium.css"/>
|
29
|
+
<script type="text/javascript" src="scripts/xmlextras.js"></script>
|
30
|
+
<script language="JavaScript" type="text/javascript" src="lib/prototype.js"></script>
|
31
|
+
<script language="JavaScript" type="text/javascript" src="lib/cssQuery/cssQuery-p.js"></script>
|
32
|
+
<script language="JavaScript" type="text/javascript" src="lib/snapsie.js"></script>
|
33
|
+
<script language="JavaScript" type="text/javascript" src="scripts/htmlutils.js"></script>
|
34
|
+
<script language="JavaScript" type="text/javascript" src="scripts/ui-element.js"></script>
|
35
|
+
<script language="JavaScript" type="text/javascript" src="lib/scriptaculous/scriptaculous.js"></script>
|
36
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-browserdetect.js"></script>
|
37
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-browserbot.js"></script>
|
38
|
+
<script language="JavaScript" type="text/javascript" src="scripts/find_matching_child.js"></script>
|
39
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-api.js"></script>
|
40
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-commandhandlers.js"></script>
|
41
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-executionloop.js"></script>
|
42
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-testrunner.js"></script>
|
43
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-logging.js"></script>
|
44
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-version.js"></script>
|
45
|
+
<script language="JavaScript" type="text/javascript" src="xpath/util.js"></script>
|
46
|
+
<script language="JavaScript" type="text/javascript" src="xpath/xmltoken.js"></script>
|
47
|
+
<script language="JavaScript" type="text/javascript" src="xpath/dom.js"></script>
|
48
|
+
<script language="JavaScript" type="text/javascript" src="xpath/xpath.js"></script>
|
49
|
+
<script language="JavaScript" type="text/javascript" src="xpath/javascript-xpath-0.1.11.js"></script>
|
50
|
+
<script language="JavaScript" type="text/javascript" src="scripts/user-extensions.js"></script>
|
51
|
+
<script language="JavaScript" type="text/javascript">
|
52
|
+
function openDomViewer() {
|
53
|
+
var autFrame = document.getElementById('selenium_myiframe');
|
54
|
+
var autFrameDocument = new SeleniumFrame(autFrame).getDocument();
|
55
|
+
this.rootDocument = autFrameDocument;
|
56
|
+
var domViewer = window.open(getDocumentBase(document) + 'domviewer/domviewer.html');
|
57
|
+
return false;
|
58
|
+
}
|
59
|
+
</script>
|
60
|
+
</head>
|
61
|
+
|
62
|
+
<body onLoad="onSeleniumLoad();">
|
63
|
+
<table class="layout">
|
64
|
+
<form action="" name="controlPanel">
|
65
|
+
|
66
|
+
<!-- Suite, Test, Control Panel -->
|
67
|
+
|
68
|
+
<tr class="selenium">
|
69
|
+
<td width="25%" height="30%">
|
70
|
+
<iframe name="testSuiteFrame" id="testSuiteFrame" src="./TestPrompt.html" application="yes"></iframe>
|
71
|
+
</td>
|
72
|
+
<td width="50%" height="30%">
|
73
|
+
<iframe name="testFrame" id="testFrame" application="yes" src="Blank.html"></iframe>
|
74
|
+
</td>
|
75
|
+
|
76
|
+
<td width="25%">
|
77
|
+
<table class="layout">
|
78
|
+
<tr class="selenium">
|
79
|
+
<th width="25%" height="1" class="header">
|
80
|
+
<h1><a href="http://selenium.openqa.org" title="The Selenium Project">Selenium</a> TestRunner
|
81
|
+
</h1>
|
82
|
+
</th>
|
83
|
+
</tr>
|
84
|
+
<tr>
|
85
|
+
<td width="25%" height="30%" id="controlPanel">
|
86
|
+
<fieldset>
|
87
|
+
<legend>Execute Tests</legend>
|
88
|
+
|
89
|
+
<div id="imageButtonPanel">
|
90
|
+
<button type="button" id="runSuite" onClick="htmlTestRunner.startTestSuite();"
|
91
|
+
title="Run All tests" accesskey="a">
|
92
|
+
</button>
|
93
|
+
<button type="button" id="runSeleniumTest" onClick="htmlTestRunner.runSingleTest();"
|
94
|
+
title="Run the Selected test" accesskey="r">
|
95
|
+
</button>
|
96
|
+
<button type="button" id="pauseTest" disabled="disabled"
|
97
|
+
title="Pause/Continue" accesskey="p" class="cssPauseTest">
|
98
|
+
</button>
|
99
|
+
<button type="button" id="stepTest" disabled="disabled"
|
100
|
+
title="Step" accesskey="s">
|
101
|
+
</button>
|
102
|
+
</div>
|
103
|
+
|
104
|
+
<div style="float:left">Fast</div>
|
105
|
+
<div style="float:right">Slow</div>
|
106
|
+
<br/>
|
107
|
+
<div id="speedSlider">
|
108
|
+
<div id="speedTrack"> </div>
|
109
|
+
<div id="speedHandle"> </div>
|
110
|
+
</div>
|
111
|
+
|
112
|
+
<div class="executionOptions">
|
113
|
+
<input id="highlightOption" type="checkbox" name="highlightOption" value="0"/>
|
114
|
+
<label for="highlightOption">Highlight elements</label>
|
115
|
+
</div>
|
116
|
+
|
117
|
+
</fieldset>
|
118
|
+
|
119
|
+
<table id="stats" align="center">
|
120
|
+
<tr>
|
121
|
+
<td colspan="2" align="right">Elapsed:</td>
|
122
|
+
<td id="elapsedTime" colspan="2">00.00</td>
|
123
|
+
</tr>
|
124
|
+
<tr>
|
125
|
+
<th colspan="2">Tests</th>
|
126
|
+
<th colspan="2">Commands</th>
|
127
|
+
</tr>
|
128
|
+
<tr>
|
129
|
+
<td class="count" id="testRuns">0</td>
|
130
|
+
<td>run</td>
|
131
|
+
<td class="count" id="commandPasses">0</td>
|
132
|
+
<td>passed</td>
|
133
|
+
</tr>
|
134
|
+
<tr>
|
135
|
+
<td class="count" id="testFailures">0</td>
|
136
|
+
<td>failed</td>
|
137
|
+
<td class="count" id="commandFailures">0</td>
|
138
|
+
<td>failed</td>
|
139
|
+
</tr>
|
140
|
+
<tr>
|
141
|
+
<td colspan="2"></td>
|
142
|
+
<td class="count" id="commandErrors">0</td>
|
143
|
+
<td>incomplete</td>
|
144
|
+
</tr>
|
145
|
+
</table>
|
146
|
+
|
147
|
+
<fieldset>
|
148
|
+
<legend>Tools</legend>
|
149
|
+
|
150
|
+
<button type="button" id="domViewer1" onClick="openDomViewer();">
|
151
|
+
View DOM
|
152
|
+
</button>
|
153
|
+
<button type="button" onClick="LOG.show();">
|
154
|
+
Show Log
|
155
|
+
</button>
|
156
|
+
|
157
|
+
</fieldset>
|
158
|
+
|
159
|
+
</td>
|
160
|
+
</tr>
|
161
|
+
</table>
|
162
|
+
</td>
|
163
|
+
</tr>
|
164
|
+
|
165
|
+
<!-- AUT -->
|
166
|
+
|
167
|
+
<tr>
|
168
|
+
<td colspan="3" height="70%">
|
169
|
+
<iframe name="selenium_myiframe" id="selenium_myiframe" src="TestRunner-splash.html"></iframe>
|
170
|
+
</td>
|
171
|
+
</tr>
|
172
|
+
|
173
|
+
</form>
|
174
|
+
</table>
|
175
|
+
|
176
|
+
</body>
|
177
|
+
</html>
|
File without changes
|
data/config/routes.rb
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
Rails.application.routes.draw do |map|
|
2
|
+
match 'selenium-core-runner', :to => redirect("/selenium-core-runner/index")
|
3
|
+
match 'selenium-core-runner/index' => 'selenium_core_runner/suites#index', :as => :selenium_core_runner
|
4
|
+
match 'selenium-core-runner/:suite' => 'selenium_core_runner/suites#show', :as => 'selenium_core_runner_suite'
|
5
|
+
match 'selenium-core-runner/:suite/:case' => 'selenium_core_runner/suites#show', :as => 'selenium_core_runner_suite'
|
6
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#lib/authr/engine.rb
|
2
|
+
require "selenium-core-runner"
|
3
|
+
require "rails"
|
4
|
+
|
5
|
+
module SeleniumWebRunner
|
6
|
+
class Engine < Rails::Engine
|
7
|
+
initializer "static assets" do |app|
|
8
|
+
app.middleware.use ::ActionDispatch::Static, "#{root}/public"
|
9
|
+
end
|
10
|
+
# paths.app << 'lib/app'
|
11
|
+
# paths.app.views << 'lib/app/views'
|
12
|
+
# paths.config.routes << "lib/config/routes.rb"
|
13
|
+
# paths.config.locales << 'lib/config/locales'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|
@@ -0,0 +1,101 @@
|
|
1
|
+
<html>
|
2
|
+
|
3
|
+
<!--
|
4
|
+
Copyright 2004 ThoughtWorks, Inc
|
5
|
+
|
6
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
you may not use this file except in compliance with the License.
|
8
|
+
You may obtain a copy of the License at
|
9
|
+
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
See the License for the specific language governing permissions and
|
16
|
+
limitations under the License.
|
17
|
+
-->
|
18
|
+
<HTA:APPLICATION ID="SeleniumHTARunner" APPLICATIONNAME="Selenium" >
|
19
|
+
<head>
|
20
|
+
<meta content="text/html; charset=ISO-8859-1"
|
21
|
+
http-equiv="content-type">
|
22
|
+
<title>Selenium Remote Control</title>
|
23
|
+
<link rel="stylesheet" type="text/css" href="selenium.css" />
|
24
|
+
<script type="text/javascript" src="scripts/xmlextras.js"></script>
|
25
|
+
<script language="JavaScript" type="text/javascript" src="lib/prototype.js"></script>
|
26
|
+
<script language="JavaScript" type="text/javascript" src="lib/cssQuery/cssQuery-p.js"></script>
|
27
|
+
<script language="JavaScript" type="text/javascript" src="lib/snapsie.js"></script>
|
28
|
+
<script language="JavaScript" type="text/javascript" src="scripts/htmlutils.js"></script>
|
29
|
+
<script language="JavaScript" type="text/javascript" src="scripts/ui-element.js"></script>
|
30
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-browserdetect.js"></script>
|
31
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-browserbot.js"></script>
|
32
|
+
<script language="JavaScript" type="text/javascript" src="scripts/find_matching_child.js"></script>
|
33
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-api.js"></script>
|
34
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-commandhandlers.js"></script>
|
35
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-executionloop.js"></script>
|
36
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-remoterunner.js"></script>
|
37
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-logging.js"></script>
|
38
|
+
<script language="JavaScript" type="text/javascript" src="scripts/selenium-version.js"></script>
|
39
|
+
<script language="JavaScript" type="text/javascript" src="xpath/util.js"></script>
|
40
|
+
<script language="JavaScript" type="text/javascript" src="xpath/xmltoken.js"></script>
|
41
|
+
<script language="JavaScript" type="text/javascript" src="xpath/dom.js"></script>
|
42
|
+
<script language="JavaScript" type="text/javascript" src="xpath/xpath.js"></script>
|
43
|
+
<script language="JavaScript" type="text/javascript" src="xpath/javascript-xpath-0.1.11.js"></script>
|
44
|
+
<script language="JavaScript" type="text/javascript" src="scripts/user-extensions.js"></script>
|
45
|
+
<script language="JavaScript" type="text/javascript">
|
46
|
+
|
47
|
+
function cleanUp() {
|
48
|
+
if (LOG != null) {
|
49
|
+
LOG.close();
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
</script>
|
54
|
+
</head>
|
55
|
+
|
56
|
+
<body onLoad="setTimeout(function(){runSeleniumTest();},1000)" onUnload="cleanUp()">
|
57
|
+
|
58
|
+
<table border="1" style="height: 100%; width: 100%;">
|
59
|
+
<tr>
|
60
|
+
<td width="50%">
|
61
|
+
<table>
|
62
|
+
<tr>
|
63
|
+
<td class="remoterunner">
|
64
|
+
<h4><a href="http://selenium.openqa.org">Selenium</a> Functional Testing for Web Apps</h4>
|
65
|
+
Open Source From <a href="http://selenium.openqa.org/thoughtworks-and-friends.html">ThoughtWorks and Friends</a>
|
66
|
+
<form action="">
|
67
|
+
<br/>
|
68
|
+
<iframe id="seleniumLoggingFrame" name="seleniumLoggingFrame" src="Blank.html" style="border: 0; height: 0; width: 0; "></iframe>
|
69
|
+
<fieldset>
|
70
|
+
<button type="button" onclick="LOG.show();">
|
71
|
+
Show Log
|
72
|
+
</button>
|
73
|
+
<label><INPUT TYPE="CHECKBOX" NAME="FASTMODE" VALUE="YES" onmouseup="slowClicked()"> Slow Mode</label>
|
74
|
+
</fieldset>
|
75
|
+
|
76
|
+
</form>
|
77
|
+
|
78
|
+
</td>
|
79
|
+
</tr>
|
80
|
+
</table>
|
81
|
+
<form action="">
|
82
|
+
<label id="context" name="context"></label>
|
83
|
+
</form>
|
84
|
+
</td>
|
85
|
+
<td width="50%" class="remoterunner">
|
86
|
+
<h4>Command History:</h4>
|
87
|
+
<form name="commands">
|
88
|
+
<textarea style="overflow:auto; height:8em; width:100%" wrap="off" id="commandList"></textarea>
|
89
|
+
</form>
|
90
|
+
</td>
|
91
|
+
</tr>
|
92
|
+
<tr>
|
93
|
+
<td colspan="2" height="100%">
|
94
|
+
<iframe name="selenium_myiframe" id="selenium_myiframe" src="Blank.html" height="100%" width="100%"></iframe>
|
95
|
+
</td>
|
96
|
+
</tr>
|
97
|
+
</table>
|
98
|
+
|
99
|
+
</body>
|
100
|
+
</html>
|
101
|
+
|
@@ -0,0 +1,109 @@
|
|
1
|
+
<html>
|
2
|
+
|
3
|
+
<head>
|
4
|
+
<title>Selenium Log Console</title>
|
5
|
+
<link id="cssLink" rel="stylesheet" href="selenium.css" />
|
6
|
+
<script src="scripts/htmlutils.js"></script>
|
7
|
+
<script language="JavaScript">
|
8
|
+
|
9
|
+
var disabled = true;
|
10
|
+
|
11
|
+
function logOnLoad() {
|
12
|
+
var urlConfig = new URLConfiguration();
|
13
|
+
urlConfig.queryString = window.location.search.substr(1);
|
14
|
+
var startingThreshold = urlConfig._getQueryParameter("startingThreshold");
|
15
|
+
setThresholdLevel(startingThreshold);
|
16
|
+
var buttons = document.getElementsByTagName("input");
|
17
|
+
for (var i = 0; i < buttons.length; i++) {
|
18
|
+
addChangeListener(buttons[i]);
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
function enableButtons() {
|
23
|
+
var buttons = document.getElementsByTagName("input");
|
24
|
+
for (var i = 0; i < buttons.length; i++) {
|
25
|
+
buttons[i].disabled = false;
|
26
|
+
disabled = false;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
function callBack() {}
|
31
|
+
|
32
|
+
function changeHandler() {
|
33
|
+
callBack(getThresholdLevel());
|
34
|
+
}
|
35
|
+
|
36
|
+
function addChangeListener(element) {
|
37
|
+
if (window.addEventListener && !window.opera)
|
38
|
+
element.addEventListener("click", changeHandler, true);
|
39
|
+
else if (window.attachEvent)
|
40
|
+
element.attachEvent("onclick", changeHandler);
|
41
|
+
}
|
42
|
+
|
43
|
+
var logLevels = {
|
44
|
+
debug: 0,
|
45
|
+
info: 1,
|
46
|
+
warn: 2,
|
47
|
+
error: 3
|
48
|
+
};
|
49
|
+
|
50
|
+
function getThresholdLevel() {
|
51
|
+
var buttons = document.getElementById('logLevelChooser').level;
|
52
|
+
for (var i = 0; i < buttons.length; i++) {
|
53
|
+
if (buttons[i].checked) {
|
54
|
+
return buttons[i].value;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
function setThresholdLevel(logLevel) {
|
60
|
+
var buttons = document.getElementById('logLevelChooser').level;
|
61
|
+
for (var i = 0; i < buttons.length; i++) {
|
62
|
+
if (buttons[i].value==logLevel) {
|
63
|
+
buttons[i].checked = true;
|
64
|
+
}
|
65
|
+
else {
|
66
|
+
buttons[i].checked = false;
|
67
|
+
}
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
function append(message, logLevel) {
|
72
|
+
var logLevelThreshold = getThresholdLevel();
|
73
|
+
if (logLevels[logLevel] < logLevels[logLevelThreshold]) {
|
74
|
+
return;
|
75
|
+
}
|
76
|
+
var log = document.getElementById('log');
|
77
|
+
var newEntry = document.createElement('li');
|
78
|
+
newEntry.className = logLevel;
|
79
|
+
newEntry.appendChild(document.createTextNode(message));
|
80
|
+
log.appendChild(newEntry);
|
81
|
+
if (newEntry.scrollIntoView) {
|
82
|
+
newEntry.scrollIntoView();
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
</script>
|
87
|
+
</head>
|
88
|
+
<body id="logging-console" onload="logOnLoad();">
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
<div id="banner">
|
93
|
+
<form id="logLevelChooser">
|
94
|
+
<input id="level-error" type="radio" name="level" disabled='true'
|
95
|
+
value="error" /><label for="level-error">Error</label>
|
96
|
+
<input id="level-warn" type="radio" name="level" disabled='true'
|
97
|
+
value="warn" /><label for="level-warn">Warn</label>
|
98
|
+
<input id="level-info" type="radio" name="level" disabled='true'
|
99
|
+
value="info" /><label for="level-info">Info</label>
|
100
|
+
<input id="level-debug" type="radio" name="level" checked="yes" disabled='true'
|
101
|
+
value="debug" /><label for="level-debug">Debug</label>
|
102
|
+
</form>
|
103
|
+
<h1>Selenium Log Console</h1>
|
104
|
+
</div>
|
105
|
+
|
106
|
+
<ul id="log"></ul>
|
107
|
+
|
108
|
+
</body>
|
109
|
+
</html>
|