frank-cucumber 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. data/frank-cucumber.gemspec +1 -1
  2. data/frank-skeleton/frank_static_resources.bundle/index.html +6 -16
  3. data/frank-skeleton/frank_static_resources.bundle/index.html.haml +12 -14
  4. data/frank-skeleton/frank_static_resources.bundle/js/controller.coffee +6 -1
  5. data/frank-skeleton/frank_static_resources.bundle/js/controller.js +8 -1
  6. data/frank-skeleton/frank_static_resources.bundle/stylesheets/css/symbiote.css +1 -0
  7. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_elements.scss +28 -0
  8. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_header.scss +61 -0
  9. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_inspect_tabs_list_tabs.scss +194 -0
  10. data/frank-skeleton/frank_static_resources.bundle/{jquery.treeview.css → stylesheets/sass/_jquery.treeview.scss} +18 -20
  11. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_jqui.scss +2 -0
  12. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_layout.scss +13 -0
  13. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_mixins.sass +137 -0
  14. data/frank-skeleton/frank_static_resources.bundle/{reset.css → stylesheets/sass/_reset.scss} +2 -2
  15. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_selector_test_toolbar.scss +81 -0
  16. data/frank-skeleton/frank_static_resources.bundle/{_solarized_colors.scss → stylesheets/sass/_solarized.scss} +0 -0
  17. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_typography.scss +11 -0
  18. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_unicode.scss +3 -0
  19. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_z_index.scss +2 -0
  20. data/frank-skeleton/frank_static_resources.bundle/stylesheets/sass/symbiote.scss +26 -0
  21. data/frank-skeleton/libCocoaHTTPServer.a +0 -0
  22. data/frank-skeleton/libFrank.a +0 -0
  23. data/frank-skeleton/libShelley.a +0 -0
  24. data/lib/frank-cucumber.rb +1 -0
  25. data/lib/frank-cucumber/cli.rb +14 -3
  26. data/lib/frank-cucumber/core_frank_steps.rb +53 -28
  27. data/lib/frank-cucumber/frank_helper.rb +32 -4
  28. data/lib/frank-cucumber/rect.rb +24 -0
  29. data/lib/frank-cucumber/version.rb +1 -1
  30. data/test/rect_test.rb +25 -0
  31. metadata +114 -35
  32. data/frank-skeleton/frank_static_resources.bundle/symbiote.css +0 -505
@@ -49,6 +49,15 @@ module FrankHelper
49
49
  raise 'could not detect running Frank server' unless @server_base_url
50
50
  end
51
51
  end
52
+
53
+ # Get the correct quote for the selector
54
+ def get_selector_quote(selector)
55
+ if selector.index("'") == nil
56
+ return "'"
57
+ else
58
+ return '"'
59
+ end
60
+ end
52
61
 
53
62
  #@api private
54
63
  #@return [:String] convient shorthand for {Frank::Cucumber::FrankHelper.selector_engine}, defaulting to 'uiquery'
@@ -107,7 +116,8 @@ module FrankHelper
107
116
  # @return [Boolean]
108
117
  # @see #check_view_with_mark_exists
109
118
  def view_with_mark_exists(expected_mark)
110
- element_exists( "view marked:'#{expected_mark}'" )
119
+ quote = get_selector_quote(expected_mark)
120
+ element_exists( "view marked:#{quote}#{expected_mark}#{quote}" )
111
121
  end
112
122
 
113
123
  # Assert whether there are any views in the current view heirarchy which contain the specified accessibility label.
@@ -115,7 +125,8 @@ module FrankHelper
115
125
  # @raise an rspec exception if the assertion fails
116
126
  # @see #view_with_mark_exists
117
127
  def check_view_with_mark_exists(expected_mark)
118
- check_element_exists( "view marked:'#{expected_mark}'" )
128
+ quote = get_selector_quote(expected_mark)
129
+ check_element_exists( "view marked:#{quote}#{expected_mark}#{quote}" )
119
130
  end
120
131
 
121
132
  # Assert whether there are no views in the current view heirarchy which contain the specified accessibility label.
@@ -123,7 +134,8 @@ module FrankHelper
123
134
  # @raise an rspec exception if the assertion fails
124
135
  # @see #view_with_mark_exists, #check_view_with_mark_exists
125
136
  def check_view_with_mark_does_not_exist(expected_mark)
126
- check_element_does_not_exist( "view marked:'#{expected_mark}'" )
137
+ quote = get_selector_quote(expected_mark)
138
+ check_element_does_not_exist( "view marked:#{quote}#{expected_mark}#{quote}" )
127
139
  end
128
140
 
129
141
 
@@ -194,6 +206,23 @@ module FrankHelper
194
206
  !matches.empty?
195
207
  end
196
208
 
209
+ def accessibility_frame(selector)
210
+ frames = frankly_map( selector, 'accessibilityFrame' )
211
+ raise "the supplied selector [#{selector}] did not match any views" if frames.empty?
212
+ raise "the supplied selector [#{selector}] matched more than one views (#{frames.count} views matched)" if frames.count > 1
213
+ Rect.from_api_repr( frames.first )
214
+ end
215
+
216
+ def drag_with_initial_delay(args)
217
+ from, to = args.values_at(:from,:to)
218
+ raise ArgumentError.new('must specify a :from parameter') if from.nil?
219
+ raise ArgumentError.new('must specify a :to parameter') if to.nil?
220
+
221
+ dest_frame = accessibility_frame(to)
222
+
223
+ frankly_map( from, 'FEX_dragWithInitialDelayToX:y:', dest_frame.center.x, dest_frame.center.y )
224
+ end
225
+
197
226
 
198
227
  # Ask Frank to invoke the specified method on the app delegate of the iOS application under automation.
199
228
  # @param method_sig [String] the method signature
@@ -222,7 +251,6 @@ module FrankHelper
222
251
  # @return [Array] an array with an element for each view matched by the selector, each element in the array gives the return value from invoking the specified method on that view.
223
252
  def frankly_map( selector, method_name, *method_args )
224
253
  operation_map = Gateway.build_operation_map(method_name.to_s, method_args)
225
-
226
254
  res = frank_server.send_post(
227
255
  'map',
228
256
  :query => selector,
@@ -0,0 +1,24 @@
1
+ module Frank module Cucumber
2
+
3
+ class Rect
4
+ attr_reader :x, :y, :width, :height
5
+
6
+ def self.from_api_repr( hash )
7
+ x,y = hash["origin"]["x"], hash["origin"]["y"]
8
+ width,height = hash["size"]["width"],hash["size"]["height"]
9
+ self.new( x, y, width, height )
10
+ end
11
+
12
+ def initialize(x,y,width,height)
13
+ @x,@y,@width,@height = x,y,width,height
14
+ end
15
+
16
+ def center
17
+ OpenStruct.new(
18
+ x: @x.to_f + (@width.to_f/2),
19
+ y: @y.to_f + (@height.to_f/2)
20
+ )
21
+ end
22
+ end
23
+
24
+ end end
@@ -1,5 +1,5 @@
1
1
  module Frank
2
2
  module Cucumber
3
- VERSION = "1.1.1"
3
+ VERSION = "1.1.2"
4
4
  end
5
5
  end
@@ -0,0 +1,25 @@
1
+ require_relative 'test_helper.rb'
2
+
3
+ require_relative '../lib/frank-cucumber/rect'
4
+
5
+ module Frank module Cucumber
6
+
7
+ describe Rect do
8
+ it 'parsing from the api hash representation correctly' do
9
+ api_repr = { "origin" => {"x" => 1.1, "y" => 2.2}, "size" => { "height" => 11.1, "width" => 22.2 } }
10
+ rect = Rect.from_api_repr( api_repr )
11
+
12
+ rect.x.must_equal 1.1
13
+ rect.y.must_equal 2.2
14
+ rect.width.must_equal 22.2
15
+ rect.height.must_equal 11.1
16
+ end
17
+
18
+ it 'calculates the center correctly' do
19
+ rect = Rect.new( 100, 200, 11, 21 )
20
+ rect.center.x.must_equal 105.5
21
+ rect.center.y.must_equal 210.5
22
+ end
23
+ end
24
+
25
+ end end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frank-cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-10-30 00:00:00.000000000 Z
13
+ date: 2012-11-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: cucumber
17
- requirement: &70212057627620 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,15 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70212057627620
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
26
31
  - !ruby/object:Gem::Dependency
27
32
  name: rspec
28
- requirement: &70212057626320 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
29
34
  none: false
30
35
  requirements:
31
36
  - - ! '>='
@@ -33,10 +38,15 @@ dependencies:
33
38
  version: '2.0'
34
39
  type: :runtime
35
40
  prerelease: false
36
- version_requirements: *70212057626320
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '2.0'
37
47
  - !ruby/object:Gem::Dependency
38
48
  name: sim_launcher
39
- requirement: &70212057625260 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
40
50
  none: false
41
51
  requirements:
42
52
  - - ! '>='
@@ -44,10 +54,15 @@ dependencies:
44
54
  version: 0.4.6
45
55
  type: :runtime
46
56
  prerelease: false
47
- version_requirements: *70212057625260
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: 0.4.6
48
63
  - !ruby/object:Gem::Dependency
49
64
  name: i18n
50
- requirement: &70212057623580 !ruby/object:Gem::Requirement
65
+ requirement: !ruby/object:Gem::Requirement
51
66
  none: false
52
67
  requirements:
53
68
  - - ! '>='
@@ -55,10 +70,15 @@ dependencies:
55
70
  version: '0'
56
71
  type: :runtime
57
72
  prerelease: false
58
- version_requirements: *70212057623580
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
59
79
  - !ruby/object:Gem::Dependency
60
80
  name: plist
61
- requirement: &70212062183100 !ruby/object:Gem::Requirement
81
+ requirement: !ruby/object:Gem::Requirement
62
82
  none: false
63
83
  requirements:
64
84
  - - ! '>='
@@ -66,10 +86,15 @@ dependencies:
66
86
  version: '0'
67
87
  type: :runtime
68
88
  prerelease: false
69
- version_requirements: *70212062183100
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
70
95
  - !ruby/object:Gem::Dependency
71
96
  name: json
72
- requirement: &70212062182260 !ruby/object:Gem::Requirement
97
+ requirement: !ruby/object:Gem::Requirement
73
98
  none: false
74
99
  requirements:
75
100
  - - ! '>='
@@ -77,10 +102,15 @@ dependencies:
77
102
  version: '0'
78
103
  type: :runtime
79
104
  prerelease: false
80
- version_requirements: *70212062182260
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
81
111
  - !ruby/object:Gem::Dependency
82
112
  name: dnssd
83
- requirement: &70212062181280 !ruby/object:Gem::Requirement
113
+ requirement: !ruby/object:Gem::Requirement
84
114
  none: false
85
115
  requirements:
86
116
  - - ! '>='
@@ -88,10 +118,15 @@ dependencies:
88
118
  version: '0'
89
119
  type: :runtime
90
120
  prerelease: false
91
- version_requirements: *70212062181280
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
92
127
  - !ruby/object:Gem::Dependency
93
128
  name: thor
94
- requirement: &70212062178360 !ruby/object:Gem::Requirement
129
+ requirement: !ruby/object:Gem::Requirement
95
130
  none: false
96
131
  requirements:
97
132
  - - ! '>='
@@ -99,21 +134,31 @@ dependencies:
99
134
  version: '0'
100
135
  type: :runtime
101
136
  prerelease: false
102
- version_requirements: *70212062178360
103
- - !ruby/object:Gem::Dependency
104
- name: xcodeproj
105
- requirement: &70212062177680 !ruby/object:Gem::Requirement
137
+ version_requirements: !ruby/object:Gem::Requirement
106
138
  none: false
107
139
  requirements:
108
140
  - - ! '>='
109
141
  - !ruby/object:Gem::Version
110
142
  version: '0'
143
+ - !ruby/object:Gem::Dependency
144
+ name: xcodeproj
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ~>
149
+ - !ruby/object:Gem::Version
150
+ version: 0.3.5
111
151
  type: :runtime
112
152
  prerelease: false
113
- version_requirements: *70212062177680
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ~>
157
+ - !ruby/object:Gem::Version
158
+ version: 0.3.5
114
159
  - !ruby/object:Gem::Dependency
115
160
  name: rr
116
- requirement: &70212062176740 !ruby/object:Gem::Requirement
161
+ requirement: !ruby/object:Gem::Requirement
117
162
  none: false
118
163
  requirements:
119
164
  - - ! '>='
@@ -121,10 +166,15 @@ dependencies:
121
166
  version: '0'
122
167
  type: :development
123
168
  prerelease: false
124
- version_requirements: *70212062176740
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
125
175
  - !ruby/object:Gem::Dependency
126
176
  name: yard
127
- requirement: &70212062176100 !ruby/object:Gem::Requirement
177
+ requirement: !ruby/object:Gem::Requirement
128
178
  none: false
129
179
  requirements:
130
180
  - - ! '>='
@@ -132,10 +182,15 @@ dependencies:
132
182
  version: '0'
133
183
  type: :development
134
184
  prerelease: false
135
- version_requirements: *70212062176100
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
136
191
  - !ruby/object:Gem::Dependency
137
192
  name: pry
138
- requirement: &70212062175400 !ruby/object:Gem::Requirement
193
+ requirement: !ruby/object:Gem::Requirement
139
194
  none: false
140
195
  requirements:
141
196
  - - ! '>='
@@ -143,10 +198,15 @@ dependencies:
143
198
  version: '0'
144
199
  type: :development
145
200
  prerelease: false
146
- version_requirements: *70212062175400
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ! '>='
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
147
207
  - !ruby/object:Gem::Dependency
148
208
  name: pry-debugger
149
- requirement: &70212062173880 !ruby/object:Gem::Requirement
209
+ requirement: !ruby/object:Gem::Requirement
150
210
  none: false
151
211
  requirements:
152
212
  - - ! '>='
@@ -154,7 +214,12 @@ dependencies:
154
214
  version: '0'
155
215
  type: :development
156
216
  prerelease: false
157
- version_requirements: *70212062173880
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ! '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
158
223
  description: Use cucumber to test native iOS apps via Frank
159
224
  email:
160
225
  - gems@thepete.net
@@ -193,13 +258,14 @@ files:
193
258
  - lib/frank-cucumber/launcher.rb
194
259
  - lib/frank-cucumber/localize.yml
195
260
  - lib/frank-cucumber/location_helper.rb
261
+ - lib/frank-cucumber/rect.rb
196
262
  - lib/frank-cucumber/scroll_helper.rb
197
263
  - lib/frank-cucumber/version.rb
198
264
  - lib/frank-cucumber/wait_helper.rb
199
265
  - test/keyboard_helper_test.rb
200
266
  - test/launcher_test.rb
267
+ - test/rect_test.rb
201
268
  - test/test_helper.rb
202
- - frank-skeleton/frank_static_resources.bundle/_solarized_colors.scss
203
269
  - frank-skeleton/frank_static_resources.bundle/images/ajax-loader.gif
204
270
  - frank-skeleton/frank_static_resources.bundle/images/file.gif
205
271
  - frank-skeleton/frank_static_resources.bundle/images/folder-closed.gif
@@ -220,7 +286,6 @@ files:
220
286
  - frank-skeleton/frank_static_resources.bundle/images/treeview-red.gif
221
287
  - frank-skeleton/frank_static_resources.bundle/index.html
222
288
  - frank-skeleton/frank_static_resources.bundle/index.html.haml
223
- - frank-skeleton/frank_static_resources.bundle/jquery.treeview.css
224
289
  - frank-skeleton/frank_static_resources.bundle/js/accessible_views_view.coffee
225
290
  - frank-skeleton/frank_static_resources.bundle/js/accessible_views_view.js
226
291
  - frank-skeleton/frank_static_resources.bundle/js/controller.coffee
@@ -269,8 +334,21 @@ files:
269
334
  - frank-skeleton/frank_static_resources.bundle/pictos/pictos-web.woff
270
335
  - frank-skeleton/frank_static_resources.bundle/pictos/pictos.css
271
336
  - frank-skeleton/frank_static_resources.bundle/pictos/pictos_base64.css
272
- - frank-skeleton/frank_static_resources.bundle/reset.css
273
- - frank-skeleton/frank_static_resources.bundle/symbiote.css
337
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/css/symbiote.css
338
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_elements.scss
339
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_header.scss
340
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_inspect_tabs_list_tabs.scss
341
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_jquery.treeview.scss
342
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_jqui.scss
343
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_layout.scss
344
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_mixins.sass
345
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_reset.scss
346
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_selector_test_toolbar.scss
347
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_solarized.scss
348
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_typography.scss
349
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_unicode.scss
350
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/_z_index.scss
351
+ - frank-skeleton/frank_static_resources.bundle/stylesheets/sass/symbiote.scss
274
352
  - frank-skeleton/frank_static_resources.bundle/ViewAttributeMapping.plist
275
353
  homepage: http://rubygems.org/gems/frank-cucumber
276
354
  licenses: []
@@ -292,12 +370,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
292
370
  version: '0'
293
371
  requirements: []
294
372
  rubyforge_project:
295
- rubygems_version: 1.8.10
373
+ rubygems_version: 1.8.24
296
374
  signing_key:
297
375
  specification_version: 3
298
376
  summary: Use cucumber to test native iOS apps via Frank
299
377
  test_files:
300
378
  - test/keyboard_helper_test.rb
301
379
  - test/launcher_test.rb
380
+ - test/rect_test.rb
302
381
  - test/test_helper.rb
303
382
  has_rdoc:
@@ -1,505 +0,0 @@
1
- /*This should only be enabled for testing rotation when you're */
2
- /*not actually running Symbiote in a device*/
3
- button#ui-locator-rotator{
4
- display: none;
5
- }
6
-
7
- html {
8
- background-color: #efefef;
9
- font-family: "Helvetica Neue", "HelveticaNeue", Arial;
10
- font-size: 16px;
11
- }
12
-
13
- input, button {
14
- padding: 8px 2em 8px 0.5em;
15
- -webkit-border-radius: 3px;
16
- -moz-border-radius: 3px;
17
- border-radius: 3px;
18
- -webkit-box-shadow: inset 0 1px 3px 0px rgba(0,0,0, .7);
19
- -moz-box-shadow: inset 0 1px 3px 0px rgba(0,0,0, .7);
20
- box-shadow: inset 0 1px 3px 0px rgba(0,0,0, .7);
21
- }
22
-
23
- input {
24
- text-align: left;
25
- border-bottom: 1px solid rgba(255,255,255, .2);
26
- }
27
-
28
- button {
29
- color: #fff;
30
- text-shadow: 0 -1px rgba(0,0,0, .3);
31
- background-image: -webkit-linear-gradient(top, #ddd, #999);
32
- background-image: -moz-linear-gradient(top, #ddd, #999);
33
- background-image: linear-gradient(top, #ddd, #999);
34
- }
35
-
36
- button:hover {
37
- background-image: -webkit-linear-gradient(top, #ccc, #999);
38
- background-image: -moz-linear-gradient(top, #ccc, #999);
39
- background-image: linear-gradient(top, #ccc, #999);
40
- }
41
-
42
- button:active { background: #999; }
43
-
44
- #header {
45
- position: relative;
46
- height: 40px;
47
- padding-left: 10px;
48
- overflow: hidden;
49
- color: #fff;
50
- text-shadow: 0 -1px rgba(0,0,0, .4);
51
- background-image: -webkit-linear-gradient(top, rgba(102,102,102, 1), rgba(51,51,51, 1) );
52
- background-image: -moz-linear-gradient(top, rgba(102,102,102, 1), rgba(51,51,51, 1) );
53
- background-image: linear-gradient(top, rgba(102,102,102, 1), rgba(51,51,51, 1) );
54
- }
55
-
56
- #header a {
57
- color: #aaff00;
58
- font-size: 20px;
59
- font-weight: bold;
60
- }
61
-
62
- #header h1 {
63
- font-size: 2em;
64
- float: left;
65
- }
66
-
67
- .toast {
68
- padding-left: 40px;
69
- padding-top: 8px;
70
- float: left;
71
- height: 40px;
72
- color: hotpink;
73
- font-size: 1.1em;
74
- font-style: italic;
75
-
76
- -moz-transition:all 0.2s linear;
77
- -webkit-transition:all 0.2s linear;
78
- -o-transition:all 0.2s linear;
79
- }
80
-
81
- .toast {
82
- padding-top: 40px;
83
- }
84
- .toast.show {
85
- padding-top: 8px;
86
- }
87
-
88
- #refresh {
89
- float: right;
90
- }
91
-
92
- #refresh button, #refresh span {
93
- height: 40px;
94
- width: 40px;
95
- position: relative;
96
- display: block;
97
- text-align: center;
98
- border-radius: 3px 0 0 3px;
99
- }
100
- #refresh span {
101
- position: absolute;
102
- top: 0;
103
- right: 0;
104
- background: url('images/loader.png') center center no-repeat;
105
- background-size: 80% auto;
106
- -webkit-transition: background 1s;
107
- -moz-transition: background 1s;
108
- transition: background 1s;
109
- }
110
-
111
- .working #refresh span {
112
- background-image:url('images/loader.gif');
113
- background-size: 80% auto;
114
- }
115
-
116
- #selector-test {
117
- position: relative;
118
- /*top: -60px;*/
119
- padding: 10px;
120
- /*text-align: center;*/
121
- }
122
-
123
- #selector-test > input {
124
- display: inline-block;
125
- position: relative;
126
- }
127
- #selector-test input#query {
128
- width: 40%;
129
- }
130
-
131
- #selector-test input#selector_engine {
132
- width: 13em;
133
- }
134
-
135
- .dropdown {
136
- position: relative;
137
- display: inline-block;
138
- }
139
-
140
- .dropdown button {
141
- position: relative;
142
- width: 100%;
143
- }
144
- .dropdown ul {
145
- position: absolute;
146
- top: 100%;
147
- float: left;
148
- list-style: none;
149
- }
150
-
151
- .dropdown * {
152
- z-index: 1;
153
- }
154
- .dropdown ul {
155
- z-index: 1;
156
- opacity: 0;
157
- visibility:hidden;
158
- -webkit-transition: visibility 0s linear 0.2s,opacity 0.2s linear;
159
- -moz-transition: visibility 0s linear 0.2s,opacity 0.2s linear;
160
- -o-transition: visibility 0s linear 0.2s,opacity 0.2s linear;
161
- transition: visibility 0s linear 0.2s,opacity 0.2s linear;
162
- }
163
- .dropdown ul.shown {
164
- opacity: 1;
165
- visibility:visible;
166
- transition-delay:0s;
167
- -webkit-transition-delay:0s;
168
- -moz-transition-delay:0s;
169
- -o-transition-delay:0s;
170
- }
171
-
172
- .dropdown .drop-indicator {
173
- color: #eee;
174
- position: absolute;
175
- width: 2em;
176
- right: 0;
177
- top: 6px;
178
- bottom: 6px;
179
- border-left: 1px solid white;
180
- text-align: center;
181
- cursor: pointer;
182
- -webkit-user-select: none;
183
- -moz-user-select: none;
184
- user-select: none;
185
- }
186
-
187
- .dropdown button {
188
- padding: 8px 2em 8px 0.8em;
189
- }
190
-
191
- .action-buttons button {
192
- width: 9.2em;
193
- }
194
- .selector-engine button {
195
- width: 7.2em;
196
- }
197
-
198
- .selector-engine-label {
199
- padding-left: 1em;
200
- }
201
-
202
- /*.action-buttons {*/
203
- /*position: relative;*/
204
- /*display: inline-block;*/
205
- /*width: 9em;*/
206
- /*top: 60px;*/
207
- /*}*/
208
-
209
- /*.action-buttons button {*/
210
- /*position: relative;*/
211
- /*width: 100%;*/
212
- /*}*/
213
- /*.action-buttons .drop-indicator {*/
214
- /*color: #eee;*/
215
- /*position: absolute;*/
216
- /*width: 1.5em;*/
217
- /*right: 0;*/
218
- /*top: 0;*/
219
- /*padding: 5px;*/
220
- /*}*/
221
-
222
- /*.action-buttons * {*/
223
- /*z-index: 1;*/
224
- /*}*/
225
- /*.action-buttons .extra-actions {*/
226
- /*z-index: 1;*/
227
- /*opacity: 0;*/
228
- /*visibility:hidden;*/
229
- /*-webkit-transition: visibility 0s linear 0.2s,opacity 0.2s linear;*/
230
- /*-moz-transition: visibility 0s linear 0.2s,opacity 0.2s linear;*/
231
- /*-o-transition: visibility 0s linear 0.2s,opacity 0.2s linear;*/
232
- /*transition: visibility 0s linear 0.2s,opacity 0.2s linear;*/
233
- /*}*/
234
- /*.action-buttons .extra-actions.shown {*/
235
- /*opacity: 1;*/
236
- /*visibility:visible;*/
237
- /*transition-delay:0s;*/
238
- /*-webkit-transition-delay:0s;*/
239
- /*-moz-transition-delay:0s;*/
240
- /*-o-transition-delay:0s;*/
241
- /*}*/
242
-
243
- .the-columns {
244
- position: absolute;
245
- top: 90px;
246
- right: 0;
247
- bottom: 0;
248
- left: 0;
249
- }
250
-
251
- #inspect-tabs, #list-tabs {
252
- position: absolute;
253
- top: 0;
254
- bottom: 0;
255
- }
256
-
257
- #inspect-tabs {
258
- right: 0;
259
- left: 60%;
260
- overflow: hidden;
261
- border-left: 1px solid rgba(255,255,255, .1);
262
- -webkit-transition: left .3s;
263
- -moz-transition: left .3s;
264
- transition: left .3s;
265
- -webkit-box-shadow: inset 3px 0 3px 0 rgba(0,0,0, .4);
266
- -moz-box-shadow: inset 3px 0 3px 0 rgba(0,0,0, .4);
267
- box-shadow: inset 3px 0 3px 0 rgba(0,0,0, .4);
268
- -webkit-border-radius: 3px 0 0 0;
269
- -moz-border-radius: 3px 0 0 0;
270
- border-radius: 3px 0 0 0;
271
- }
272
-
273
- #list-tabs {
274
- right: 40%;
275
- left: 0;
276
- -webkit-transition: right .3s;
277
- -moz-transition: right .3s;
278
- transition: right .3s;
279
- -webkit-border-radius: 0 3px 0 0;
280
- -moz-border-radius: 0 3px 0 0;
281
- border-radius: 0 3px 0 0;
282
- -webkit-box-shadow: inset -3px 0 3px 0 rgba(0,0,0, .4);
283
- -moz-box-shadow: inset -3px 0 3px 0 rgba(0,0,0, .4);
284
- box-shadow: inset -3px 0 3px 0 rgba(0,0,0, .4);
285
- }
286
-
287
- /* respond to landscape view. */
288
- .landscape #inspect-tabs { left: 50%; }
289
- .landscape #list-tabs { right: 50%; }
290
-
291
-
292
- #list-tabs > div, #dom-detail {
293
- position: absolute;
294
- top: 40px;
295
- right: 0;
296
- bottom: 0;
297
- left: 0;
298
- overflow-y: scroll;
299
- }
300
-
301
- #inspect-tabs > ul, #list-tabs > ul {
302
- overflow: hidden;
303
- -webkit-box-shadow: inset 0 1px 3px 0px rgba(0,0,0, .7);
304
- -moz-box-shadow: inset 0 1px 3px 0px rgba(0,0,0, .7);
305
- box-shadow: inset 0 1px 3px 0px rgba(0,0,0, .7);
306
- }
307
-
308
- #inspect-tabs > ul > li, #list-tabs > ul > li {
309
- float: left;
310
- position: relative;
311
- width: 50%;
312
- display: inline-block;
313
- font-size: 12px;
314
- margin: 0;
315
- padding: 0;
316
- text-align: center;
317
- border: none;
318
- -webkit-border-radius: 0;
319
- -moz-border-radius: 0;
320
- border-radius: 0;
321
- }
322
-
323
- #inspect-tabs > ul > li > a, #list-tabs > ul > li > a {
324
- float: none;
325
- padding: inherit;
326
- line-height: 40px;
327
- cursor: pointer;
328
- display: block;
329
- color: #fff;
330
- font-size: 16px;
331
- font-weight: bold;
332
- text-shadow: 0 -1px rgba(0,0,0, .3);
333
- background-image: -webkit-linear-gradient(top, rgba(221,221,221, .6), rgba(153,153,153, .6) );
334
- background-image: -moz-linear-gradient(top, rgba(221,221,221, .6), rgba(153,153,153, .6) );
335
- background-image: linear-gradient(top, rgba(221,221,221, .6), rgba(153,153,153, .6) );
336
- -webkit-box-shadow: inset 0 0 2px 0px rgba(0,0,0, .4);
337
- -moz-box-shadow: inset 0 0 2px 0px rgba(0,0,0, .4);
338
- box-shadow: inset 0 0 2px 0px rgba(0,0,0, .4);
339
- }
340
-
341
- #inspect-tabs > ul > li.ui-tabs-selected > a,
342
- #inspect-tabs > ul > li.ui-tabs-selected > a:hover,
343
- #list-tabs > ul > li.ui-tabs-selected > a,
344
- #list-tabs > ul > li.ui-tabs-selected > a:hover {
345
- background-image: -webkit-linear-gradient( top, rgba(35,128,204, .6), rgba(21,78,124, .6) );
346
- background-image: -moz-linear-gradient(top, #2380CC, #154E7C);
347
- background-image: linear-gradient(top, #2380CC, #154E7C);
348
- }
349
-
350
- #inspect-tabs > ul > li > a:hover, #list-tabs > ul > li > a:hover {
351
- background-image: -webkit-linear-gradient(top, rgba(204,204,204, .6), rgba(153,153,153, .6) );
352
- background-image: -moz-linear-gradient(top, rgba(204,204,204, .6), rgba(153,153,153, .6) );
353
- background-image: linear-gradient(top, rgba(204,204,204, .6), rgba(153,153,153, .6) );
354
- }
355
-
356
- #inspect-tabs > ul > li > a:active, #list-tabs > ul > li > a:active {
357
- background: rgba(153,153,153, .6);
358
- -webkit-box-shadow: inset 0 0 3px 0px rgba(0,0,0, .4);
359
- -moz-box-shadow: inset 0 0 3px 0px rgba(0,0,0, .4);
360
- box-shadow: inset 0 0 3px 0px rgba(0,0,0, .4);
361
- }
362
-
363
- a#dump_button {
364
- vertical-align: middle;
365
- }
366
-
367
- #dom-dump {
368
- padding: 0 10px 10px 10px;
369
- }
370
-
371
- div#dom-dump .treeview .hovered-in-locator {
372
- color: #2aa198;
373
- }
374
-
375
- #dom-detail, #accessible-views-tab { padding: 10px; }
376
-
377
- #dom-detail {
378
- font-size:0.8em;
379
- word-break: break-word;
380
- }
381
-
382
- #dom-detail li {
383
- padding: 6px 0;
384
- border-top: 2px solid rgba(255,255,255, .7);
385
- border-bottom: 1px solid rgba(0, 0, 0, .2);
386
- -webkit-transition: background-color .1s;
387
- -moz-transition: background-color .1s;
388
- transition: background-color .1s;
389
- }
390
- #dom-detail li:first-child { border-top: none; }
391
- #dom-detail li:last-child { border-bottom: none; }
392
-
393
- #dom-detail li:hover {
394
- background-color: rgba(255,255,255, .4);
395
- }
396
-
397
- #dom-detail .key {
398
- font-size: 1.5em;
399
- }
400
-
401
- #dom-detail .value:before {
402
- content: "\21b3";
403
- padding-left: 2px;
404
- color: #999;
405
- }
406
-
407
- #dom-detail .interesting {
408
- font-weight: bold;
409
- }
410
-
411
- #accessible-views-tab div.hints{
412
- font-size: 0.8em;
413
- border: 1px dashed #d33682;
414
- padding: 10px;
415
- margin-bottom: 20px;
416
- }
417
-
418
- #accessible-views a {
419
- display: block;
420
- margin: 10px 0;
421
- color: #d33682;
422
- font-style: italic;
423
- -webkit-transition: color .15s;
424
- -moz-transition: color .15s;
425
- transition: color .15s;
426
- }
427
- #accessible-views a:hover {
428
- color: #268bd2;
429
- }
430
-
431
- #accessible-views span{
432
- font-style: normal;
433
- font-weight: bold;
434
- }
435
-
436
- #ui-locator {
437
- padding: 0;
438
- }
439
-
440
- #live-view, #asploder, #ui-live-view-rotator {
441
- text-align: center;
442
- display: inline-block;
443
- float: right;
444
- }
445
-
446
- #live-view button {
447
- -webkit-border-radius: 0;
448
- -moz-border-radius: 0;
449
- border-radius: 0;
450
- }
451
-
452
- #live-view button.down,#asploder button.down {
453
- background-image: -webkit-linear-gradient(top, #2380CC, #154E7C);
454
- background-image: -moz-linear-gradient(top, #2380CC, #154E7C);
455
- background-image: linear-gradient(top, #2380CC, #154E7C);
456
- }
457
-
458
- #live-view button span {
459
- font-family: Pictos;
460
- font-size: 20px;
461
- }
462
-
463
- #ui-locator-view{
464
- position: absolute;
465
- z-index: -1;
466
- top: 40px;
467
- right: 0;
468
- bottom: 0;
469
- left: 0;
470
- text-align: center;
471
- -webkit-transition: -webkit-transform .3s;
472
- -moz-transition: -moz-transform .3s;
473
- transition: transform .3s;
474
- }
475
-
476
- #ui-locator-rotator {
477
- float: right;
478
- font-family: Pictos;
479
- -webkit-border-radius: 0 0 0 3px;
480
- -moz-border-radius: 0 0 0 3px;
481
- border-radius: 0 0 0 3px;
482
- }
483
-
484
- #ui-locator-view.landscape{
485
- position: absolute;
486
- -webkit-transform: rotate(90deg);
487
- -moz-transform: rotate(90deg);
488
- transform: rotate(90deg);
489
- }
490
-
491
- #query {
492
- width: 300px;
493
- }
494
-
495
- ul {
496
- list-style-type: none;
497
- }
498
-
499
- ul.features li {
500
- margin-top: 5px;
501
- }
502
-
503
- /* jqui */
504
- .ui-state-disabled { cursor: default !important; }
505
- .ui-tabs .ui-tabs-hide { display: none !important; }