ruby-vnc 1.1.0 → 1.3.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.
data/spec/net_vnc_spec.rb DELETED
@@ -1,136 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
2
- require 'net/vnc'
3
-
4
- =begin
5
- class SocketMock
6
- class MockIOError < IOError
7
- end
8
-
9
- def initialize
10
- # this can be used to make detailed assertions
11
- @trace = []
12
- @read_buf = ''
13
- @write_buf = ''
14
- end
15
-
16
- def read len
17
- @trace << [:read, len]
18
- if @read_buf.length < len
19
- msg = 'bad socket read sequence - read(%d) but only %d byte(s) available' % [len, @read_buf.length]
20
- raise MockIOError, msg
21
- end
22
- @read_buf.slice! 0, len
23
- end
24
-
25
- def write data
26
- @trace << [:write, data]
27
- @write_buf << data
28
- end
29
- end
30
-
31
- class VNCServerSocketMock < SocketMock
32
- TICK_TIME = 0.1
33
-
34
- def initialize(&block)
35
- super
36
-
37
- @pending_read = nil
38
- obj = self
39
- @t = Thread.new { block.call obj; @pending_read = nil }
40
- 100.times do |i|
41
- break if @pending_read
42
- if i == 99
43
- msg = 'blah'
44
- raise MockIOError, msg
45
- end
46
- sleep TICK_TIME
47
- end
48
- end
49
-
50
- def run
51
- yield
52
- 100.times do |i|
53
- break unless @pending_read
54
- if i == 99
55
- msg = 'missing socket write sequence'
56
- raise MockIOError, msg
57
- end
58
- sleep TICK_TIME
59
- end
60
- raise 'wrote to much' if @write_buf.length != 0
61
- raise 'did not read enough' if @read_buf.length != 0
62
- end
63
-
64
- def read len
65
- @trace << [:read, len]
66
- 100.times do |i|
67
- break if @read_buf.length >= len
68
- if i == 99
69
- msg = 'timeout during socket read sequence - read(%d) but only %d byte(s) available' % [len, @read_buf.length]
70
- raise MockIOError, msg
71
- end
72
- sleep TICK_TIME
73
- end
74
- @read_buf.slice! 0, len
75
- end
76
-
77
- def write data
78
- unless @read_buf.empty?
79
- raise MockIOError, 'tried to write with non empty read buffer - (%p, %p)' % [@read_buf, data]
80
- end
81
- super
82
- if !@pending_read
83
- raise MockIOError, "wrote to socket but server is not expecting it"
84
- end
85
- if @write_buf.length >= @pending_read
86
- @pending_read = @write_buf.slice!(0, @pending_read)
87
- sleep TICK_TIME while @pending_read.is_a? String
88
- end
89
- end
90
-
91
- def provide_data data
92
- @read_buf << data
93
- end
94
-
95
- def expect_data len
96
- @pending_read = len
97
- sleep TICK_TIME while @pending_read.is_a? Fixnum
98
- @pending_read
99
- end
100
- end
101
-
102
- describe 'Net::VNC' do
103
- VNC = Net::VNC
104
-
105
- it 'should do something' do
106
- =begin
107
- socket_mock.should_receive(:read).once.ordered.with(12).and_return("RFB 003.003\n")
108
- socket_mock.should_receive(:write).once.ordered.with(/^RFB (\d{3}.\d{3})\n$/)
109
- socket_mock.should_receive(:read).once.ordered.with(4).and_return([1].pack('N'))
110
- socket_mock.should_receive(:write).once.ordered.with("\000")
111
- socket_mock.should_receive(:read).once.ordered.with(20).and_return('')
112
- socket_mock.should_receive(:read).once.ordered.with(4).and_return([0].pack('N'))
113
- #m = mock('my mock')
114
- #m.should_receive(:test1).ordered.once.with('argument').and_return(1)
115
- #m.should_receive(:test2).ordered.once.with('argument').and_return(2)
116
- #p m.test1('argument')
117
- #p m.test2('argument')
118
- vnc = VNC.open('192.168.0.1:0')
119
- #=end
120
-
121
- server = VNCServerSocketMock.new do |s|
122
- s.provide_data "RFB 003.003\n"
123
- p :read => s.expect_data(12)
124
- s.provide_data [1].pack('N')
125
- p :read => s.expect_data(1)
126
- s.provide_data ' ' * 20
127
- s.provide_data [0].pack('N')
128
- end
129
- server.run do
130
- TCPSocket.should_receive(:open).with('192.168.0.1', 5900).and_return(server)
131
- vnc = VNC.open('192.168.0.1:0')
132
- end
133
- end
134
- end
135
- =end
136
-