trecs 0.1.11 → 0.1.12

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.
@@ -1,64 +0,0 @@
1
- require "spec_helper"
2
- require "zip"
3
-
4
- require "recorders/zip_file_recorder"
5
- require "players/zip_file_player"
6
-
7
- module TRecs
8
- describe ZipFileRecorder do
9
- class DummyRecordingStrategy
10
- attr_accessor :recorder
11
-
12
- def initialize(options={})
13
- #@recorder = options.fetch(:recorder)
14
- end
15
-
16
- def perform
17
- recorder.current_frame(time: 0, content: "zero")
18
- recorder.current_frame(time: 1, content: "one")
19
- recorder.current_frame(time: 2, content: "two")
20
- end
21
- end
22
-
23
- class DummyZipFileRecorder < ZipFileRecorder
24
- def initialize(options)
25
- @recording_strategy = DummyRecordingStrategy.new(recorder: self)
26
- super
27
- end
28
- end
29
-
30
- it "expects a file name" do
31
- expect {
32
- Recorder.new( persistence_strategy: ZipFileRecorder.new, recording_strategy: DummyRecordingStrategy.new) }.to raise_error
33
- end
34
-
35
- it "generates a .trecs compressed file" do
36
- file_name = "tmp/i_should_exist.trecs"
37
- recorder = Recorder.new(
38
- persistence_strategy: ZipFileRecorder.new(file_name: file_name),
39
- recording_strategy: DummyRecordingStrategy.new)
40
-
41
- recorder.record
42
-
43
- File.exists?(file_name).should be_truthy
44
- expect { Zip::File.open(file_name) }.not_to raise_error
45
- end
46
-
47
- it "has the correct frames" do
48
- file_name = "tmp/zero_one_two.trecs"
49
- recorder = Recorder.new(
50
- persistence_strategy: ZipFileRecorder.new(file_name: file_name),
51
- recording_strategy: DummyRecordingStrategy.new)
52
-
53
- recorder.record
54
-
55
- player = ZipFilePlayer.new(file_name: file_name)
56
-
57
- player.timestamps.should == [0, 1, 2]
58
- player.get_frame(0).should == "zero"
59
- player.get_frame(1).should == "one"
60
- player.get_frame(2).should == "two"
61
- end
62
-
63
- end
64
- end
@@ -1,44 +0,0 @@
1
- require "spec_helper"
2
- require "timestamps"
3
-
4
- describe Timestamps do
5
- context "invalid inputs" do
6
- it "returns 0 with invalid imputs" do
7
- ts = Timestamps.new([0, 10, 20, 30])
8
- [-1, :a, "hola", Object.new].each do |input|
9
- ts.time_at(input).should == 0
10
- end
11
- end
12
- end
13
-
14
- context "empty collection" do
15
- it "returns 0 at 0" do
16
- ts = Timestamps.new([])
17
- ts.time_at(0).should == 0
18
- end
19
-
20
- it "returns 0 at > 0" do
21
- ts = Timestamps.new([])
22
- ts.time_at(10).should == 0
23
- end
24
- end
25
-
26
- context "with timestamps and valid imputs" do
27
- let(:subject) { Timestamps.new([0, 10, 20]) }
28
-
29
- it "returns the exact time" do
30
- subject.time_at(0).should == 0
31
- subject.time_at(10).should == 10
32
- subject.time_at(20).should == 20
33
- end
34
-
35
- it "returns the previous valid time if no exact time in the collection" do
36
- subject.time_at(5).should == 0
37
- subject.time_at(15).should == 10
38
- end
39
-
40
- it "returns the last time when passing a time greater than the greater time" do
41
- subject.time_at(25).should == 20
42
- end
43
- end
44
- end
@@ -1,125 +0,0 @@
1
- require "spec_helper"
2
- require "fileutils"
3
- require 'zip'
4
-
5
- describe "T-Recs" do
6
- include FileUtils
7
-
8
- define :have_frames do |expected|
9
- match do |actual|
10
- actual = actual.split("\e[H\e[2J\n").select { |f|
11
- (/\S/ === f)
12
- }.map(&:chomp)
13
- expected = Array(expected)
14
- actual == expected
15
- end
16
- end
17
-
18
- let(:trecs_root) { File.expand_path("../..", __FILE__) }
19
- let(:bin) { "#{trecs_root}/bin" }
20
- let(:exe) { "#{bin}/trecs_message" }
21
- let(:play_exe) { "#{bin}/trecs" }
22
-
23
- let(:project_dir) { create_dir("#{trecs_root}/tmp") }
24
-
25
- def trecs(*args, &block)
26
- command = [exe]
27
- .concat(args.map(&:to_s))
28
- .concat(["2>&1"])
29
- .join(" ")
30
- IO.popen(command) do |output|
31
- yield output.read if block_given?
32
- end
33
- end
34
-
35
- def play(*args, &block)
36
- command = [play_exe]
37
- .concat(args.map(&:to_s))
38
- .concat(["testing", "2>&1"])
39
- .join(" ")
40
- IO.popen(command) do |output|
41
- yield output.read if block_given?
42
- end
43
- end
44
-
45
- context "trecs_message command" do
46
- after do
47
- rm file_name if file_name
48
- end
49
-
50
- specify "is in place and executes" do
51
- expect { trecs }.not_to raise_exception
52
- trecs do |output|
53
- output.should_not match /error/i
54
- end
55
- end
56
-
57
- it "expects a file name" do
58
- trecs do |output|
59
- output.should have_frames "Please give a file name"
60
- end
61
- end
62
-
63
- it "generates a .trecs compressed file" do
64
- file_name "i_should_exist"
65
- trecs("-f", file_name, "--message", "a")
66
-
67
- File.exists?(file_name).should be_truthy
68
- expect { Zip::File.open(file_name) }.not_to raise_error
69
- end
70
-
71
- context "recording" do
72
- it "records a one letter message screencast" do
73
- file_name "a"
74
-
75
- trecs("-f", file_name, "--message", "a")
76
-
77
- play("-f", file_name) do |output|
78
- output.should have_frames "a"
79
- end
80
- end
81
-
82
- it "records a two letters message screencast" do
83
- file_name "ab"
84
-
85
- trecs("-f", file_name, "--message", "ab")
86
-
87
- play("-f", file_name) do |output|
88
- output.should have_frames ["a", "ab"]
89
- end
90
- end
91
-
92
- it "records a three letters message screencast" do
93
- file_name "abc"
94
-
95
- trecs("-f", file_name, "--message", "abc")
96
-
97
- play("-f", file_name) do |output|
98
- output.should have_frames ["a", "ab", "abc"]
99
- end
100
- end
101
- end
102
-
103
- context "timestamps" do
104
- it "uses 100 ms by default" do
105
- file_name "abcd"
106
-
107
- trecs("-f", file_name, "-m", "abcd")
108
-
109
- play("-f", file_name, "--timestamps") do |output|
110
- output.should have_frames "[0, 100, 200, 300]"
111
- end
112
- end
113
-
114
- it "accepts a step parameter" do
115
- file_name "abc"
116
-
117
- trecs("-f", file_name, "-m", "abcd", "-s", "250")
118
-
119
- play("-f", file_name, "--timestamps") do |output|
120
- output.should have_frames "[0, 250, 500, 750]"
121
- end
122
- end
123
- end
124
- end
125
- end
@@ -1,115 +0,0 @@
1
- require "spec_helper"
2
- require "fileutils"
3
- require 'zip'
4
- require 'rspec/expectations'
5
-
6
- describe "T-Recs" do
7
- define :have_frames do |expected|
8
- match do |actual|
9
- actual = actual.split("\e[H\e[2J\n").select { |f|
10
- (/\S/ === f)
11
- }.map(&:chomp)
12
- expected = Array(expected)
13
- actual == expected
14
- end
15
- end
16
-
17
- after do
18
- rm file_name if file_name
19
- end
20
-
21
- include FileUtils
22
-
23
- let(:trecs_root) { File.expand_path("../..", __FILE__) }
24
- let(:bin) { "#{trecs_root}/bin" }
25
- let(:exe) { "#{bin}/trecs" }
26
-
27
- let(:project_dir) { create_dir("#{trecs_root}/tmp") }
28
-
29
- def trecs(*args, &block)
30
- command = [exe]
31
- .concat(args.map(&:to_s))
32
- .concat(["--testing"])
33
- .join(" ")
34
- IO.popen(command) do |output|
35
- yield output.read if block_given?
36
- end
37
- end
38
-
39
- def create_recording(options={})
40
- file_name = options.fetch(:file_name) { "" }
41
- unless File.exist?(file_name)
42
- recording_dir = "#{File.dirname(file_name)}/frames"
43
- rm_rf recording_dir
44
- mkdir_p recording_dir
45
- rm file_name if File.exists? file_name
46
-
47
- yield recording_dir
48
-
49
- files_to_record = Dir.glob("#{recording_dir}/*")
50
-
51
- Zip::File.open(file_name, Zip::File::CREATE) do |trecs_file|
52
- files_to_record.each do |file_to_rec|
53
- dest_file_name = File.basename(file_to_rec)
54
- trecs_file.add(dest_file_name, file_to_rec)
55
- end
56
- end
57
- rm_rf Dir.glob("#{recording_dir}")
58
- end
59
- end
60
-
61
- def create_frame(options={})
62
- file_name = options.fetch(:file_name) { "" }
63
- content = options.fetch(:content) { "" }
64
- time = options.fetch(:time) { 0 }
65
-
66
- File.open("#{project_dir}/frames/#{time.to_i}", File::WRONLY|File::CREAT) do |f|
67
- f << content
68
- end
69
- end
70
-
71
- context "trecs command" do
72
- it "is in place and executes" do
73
- expect { trecs }.not_to raise_exception
74
- end
75
-
76
- it "returns an error whe project doesn't exist" do
77
- non_existent = "path/to/a/non/existing/file.trecs"
78
-
79
- trecs("-f", non_existent) do |output|
80
- output.should have_frames "File #{non_existent} does not exist."
81
- end
82
- end
83
-
84
- context "Player" do
85
-
86
- context "playing a recording" do
87
-
88
- it "plays a recording" do
89
- file_name "multiple_frames"
90
-
91
- create_recording(file_name: file_name) do
92
- create_frame(time: 0, content: "FIRST FRAME")
93
- create_frame(time: 100, content: "FRAME AT 100")
94
- create_frame(time: 200, content: "FRAME AT 200")
95
- create_frame(time: 301, content: "FRAME AT 301")
96
- create_frame(time: 499, content: "FRAME AT 499")
97
- create_frame(time: 599, content: "FRAME AT 599")
98
- end
99
-
100
- trecs("-f", file_name) do |output|
101
- output.should have_frames [
102
- "FIRST FRAME",
103
- "FRAME AT 100",
104
- "FRAME AT 200",
105
- "FRAME AT 200",
106
- "FRAME AT 301",
107
- "FRAME AT 499",
108
- "FRAME AT 599",
109
- ]
110
- end
111
- end
112
- end
113
- end
114
- end
115
- end