onlyoffice_webdriver_wrapper 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01e7c8a03fdec74828c4f660d287be5729f56f29ce49b91f74005e29a666942e
|
4
|
+
data.tar.gz: bd3f969c07b3c5043b6329c07fff8e02d9576dfa373eef527af6738db1be9acd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5a02e944fd3b617209598f54274dcec25776695ed050576e9f7b92371de8c8bb72632ef8460c1bf0390a338f0e910f8610d590b59b449f29c08a93618440e99
|
7
|
+
data.tar.gz: dd7151ef729280ba654f37a5c4842f62b10c3d6c4b47f64df0e02e9a0d9658ad1a8c7c6c8ad4e44b2b9a87ea2a1e4092913ee290165006dd5ad00745f7bbd755
|
@@ -4,10 +4,12 @@ require_relative 'headless_helper/real_display_tools'
|
|
4
4
|
require_relative 'headless_helper/ruby_helper'
|
5
5
|
require 'headless'
|
6
6
|
require_relative 'headless_helper/headless_screenshot_patch'
|
7
|
+
require_relative 'headless_helper/headless_video_recorder'
|
7
8
|
|
8
9
|
module OnlyofficeWebdriverWrapper
|
9
10
|
# Class for using headless gem
|
10
11
|
class HeadlessHelper
|
12
|
+
include HeadlessVideoRecorder
|
11
13
|
include RealDisplayTools
|
12
14
|
include RubyHelper
|
13
15
|
# @return [Headless] instance of headless object
|
@@ -16,10 +18,15 @@ module OnlyofficeWebdriverWrapper
|
|
16
18
|
attr_accessor :resolution_x
|
17
19
|
# @return [Integer] y resolution of virtual screen
|
18
20
|
attr_accessor :resolution_y
|
21
|
+
# @return [True, False] is video should be recorded
|
22
|
+
attr_reader :record_video
|
19
23
|
|
20
|
-
def initialize(resolution_x = 1680,
|
24
|
+
def initialize(resolution_x = 1680,
|
25
|
+
resolution_y = 1050,
|
26
|
+
record_video: true)
|
21
27
|
@resolution_x = resolution_x
|
22
28
|
@resolution_y = resolution_y
|
29
|
+
@record_video = record_video
|
23
30
|
end
|
24
31
|
|
25
32
|
# Check if should start headless
|
@@ -43,21 +50,25 @@ module OnlyofficeWebdriverWrapper
|
|
43
50
|
begin
|
44
51
|
@headless_instance = Headless.new(reuse: false,
|
45
52
|
destroy_at_exit: true,
|
46
|
-
dimensions: "#{@resolution_x + 1}x#{@resolution_y + 1}x24"
|
53
|
+
dimensions: "#{@resolution_x + 1}x#{@resolution_y + 1}x24",
|
54
|
+
video: { provider: :ffmpeg })
|
47
55
|
rescue Exception => e
|
48
56
|
OnlyofficeLoggerHelper.log("xvfb not started with problem #{e}")
|
49
57
|
WebDriver.clean_up(true)
|
50
58
|
@headless_instance = Headless.new(reuse: false,
|
51
59
|
destroy_at_exit: true,
|
52
|
-
dimensions: "#{@resolution_x + 1}x#{@resolution_y + 1}x24"
|
60
|
+
dimensions: "#{@resolution_x + 1}x#{@resolution_y + 1}x24",
|
61
|
+
video: { provider: :ffmpeg })
|
53
62
|
end
|
54
63
|
headless_instance.start
|
64
|
+
start_capture
|
55
65
|
end
|
56
66
|
|
57
67
|
def stop
|
58
68
|
return unless running?
|
59
69
|
|
60
70
|
OnlyofficeLoggerHelper.log('Stopping Headless Session')
|
71
|
+
stop_capture
|
61
72
|
headless_instance.destroy
|
62
73
|
end
|
63
74
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OnlyofficeWebdriverWrapper
|
4
|
+
# Methods to record video
|
5
|
+
module HeadlessVideoRecorder
|
6
|
+
# @return [String] uniq file path to recorded file
|
7
|
+
def recorded_video_file
|
8
|
+
return @recorded_video_file if @recorded_video_file
|
9
|
+
|
10
|
+
file_pattern = 'onlyoffice_webdriver_wrapper_video_file'
|
11
|
+
temp_file = Tempfile.new([file_pattern, '.mp4'])
|
12
|
+
@recorded_video_file = temp_file.path
|
13
|
+
temp_file.unlink
|
14
|
+
@recorded_video_file
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [nil] start capture of file
|
18
|
+
def start_capture
|
19
|
+
headless_instance.video.start_capture if record_video
|
20
|
+
rescue Headless::Exception => e
|
21
|
+
OnlyofficeLoggerHelper.log("Cannot start video capture: #{e}")
|
22
|
+
@record_video = false
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [nil] stop catpure of file
|
26
|
+
def stop_capture
|
27
|
+
return unless record_video
|
28
|
+
|
29
|
+
headless_instance.video.stop_and_save(recorded_video_file)
|
30
|
+
OnlyofficeLoggerHelper.log("Video is saved to #{recorded_video_file}")
|
31
|
+
rescue Headless::Exception => e
|
32
|
+
OnlyofficeLoggerHelper.log("Saving recorded video failed: #{e}")
|
33
|
+
@record_video = false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onlyoffice_webdriver_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ONLYOFFICE
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2020-
|
14
|
+
date: 2020-09-03 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: headless
|
@@ -103,28 +103,28 @@ dependencies:
|
|
103
103
|
requirements:
|
104
104
|
- - '='
|
105
105
|
- !ruby/object:Gem::Version
|
106
|
-
version: 6.
|
106
|
+
version: 6.17.0
|
107
107
|
type: :runtime
|
108
108
|
prerelease: false
|
109
109
|
version_requirements: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
111
|
- - '='
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version: 6.
|
113
|
+
version: 6.17.0
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: codecov
|
116
116
|
requirement: !ruby/object:Gem::Requirement
|
117
117
|
requirements:
|
118
118
|
- - '='
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version: 0.2.
|
120
|
+
version: 0.2.9
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
123
|
version_requirements: !ruby/object:Gem::Requirement
|
124
124
|
requirements:
|
125
125
|
- - '='
|
126
126
|
- !ruby/object:Gem::Version
|
127
|
-
version: 0.2.
|
127
|
+
version: 0.2.9
|
128
128
|
- !ruby/object:Gem::Dependency
|
129
129
|
name: overcommit
|
130
130
|
requirement: !ruby/object:Gem::Requirement
|
@@ -173,14 +173,14 @@ dependencies:
|
|
173
173
|
requirements:
|
174
174
|
- - '='
|
175
175
|
- !ruby/object:Gem::Version
|
176
|
-
version: 0.
|
176
|
+
version: 0.90.0
|
177
177
|
type: :development
|
178
178
|
prerelease: false
|
179
179
|
version_requirements: !ruby/object:Gem::Requirement
|
180
180
|
requirements:
|
181
181
|
- - '='
|
182
182
|
- !ruby/object:Gem::Version
|
183
|
-
version: 0.
|
183
|
+
version: 0.90.0
|
184
184
|
- !ruby/object:Gem::Dependency
|
185
185
|
name: rubocop-performance
|
186
186
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,6 +226,7 @@ files:
|
|
226
226
|
- lib/onlyoffice_webdriver_wrapper/helpers/firefox_helper/save_to_disk_files.list
|
227
227
|
- lib/onlyoffice_webdriver_wrapper/helpers/headless_helper.rb
|
228
228
|
- lib/onlyoffice_webdriver_wrapper/helpers/headless_helper/headless_screenshot_patch.rb
|
229
|
+
- lib/onlyoffice_webdriver_wrapper/helpers/headless_helper/headless_video_recorder.rb
|
229
230
|
- lib/onlyoffice_webdriver_wrapper/helpers/headless_helper/real_display_tools.rb
|
230
231
|
- lib/onlyoffice_webdriver_wrapper/helpers/headless_helper/ruby_helper.rb
|
231
232
|
- lib/onlyoffice_webdriver_wrapper/helpers/os_helper.rb
|