spec/spec_helper.rb in rupnp-0.2.2 vs spec/spec_helper.rb in rupnp-0.3.0
- old
+ new
@@ -8,10 +8,11 @@
require 'em-spec/rspec'
require 'webmock/rspec'
RUPNP.log_level = :failure
+WebMock.disable_net_connect!(allow_localhost: true)
class FakeMulticast < RUPNP::SSDP::MulticastConnection
attr_reader :handshake_response, :packets
def onclose(&blk); @onclose = blk; end
@@ -149,10 +150,21 @@
<maximum>#{64*(i+1) - 1}</maximum>
</allowedValueRange>
</stateVariable>
EOSV
end
+ scpd << <<EOSV2
+ <stateVariable sendEvents="#{opt[:send_event] ? 'yes' : 'no'}">
+ <name>X_variableStr</name>
+ <dataType>string</dataType>
+ <defaultValue>none</defaultValue>
+ <allowedValueList>
+ <allowedValue>none</allowedValue>
+ <allowedValue>another value</allowedValue>
+ </allowedValueList>
+ </stateVariable>
+EOSV2
scpd << " </serviceStateTable>\n</scpd>\n"
end
def action_response(hash)
@@ -170,9 +182,37 @@
r << <<EOD
</u:testActionResponse>
</s:Body>
</s:Envelope>
EOD
+end
+
+
+def event_body
+ <<EOD
+<?xml version="1.0"?>
+<e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
+ <e:property>
+ <X_variableName1>12</variableName>
+ </e:property>
+</e:propertyset>
+EOD
+end
+
+
+def send_notify_request(req, options={})
+ delete = options.delete(:delete)
+ headers = {
+ 'HOST' => "127.0.0.1:1234",
+ 'USER-AGENT' => RUPNP::USER_AGENT,
+ 'CONTENT-TYPE' => 'text/xml; charset="utf-8"',
+ 'NT' => 'upnp:event',
+ 'NTS' => 'upnp:propchange',
+ 'SID' => "uuid:#{UUID.generate}",
+ 'SEQ' => 0 }.merge(options)
+ headers.delete delete if delete
+
+ req.setup_request(:notify, :head => headers, :body => event_body)
end
NOTIFY_REGEX = {
:common => [