Permalink
Browse files

Basic system test

  • Loading branch information...
1 parent a05219c commit 4f7d8ea4932569a58e973c64b64d03b3817f4bf0 @soffes soffes committed Jan 3, 2013
Showing with 884 additions and 164 deletions.
  1. +10 −1 Gemfile
  2. +7 −0 Rakefile
  3. +840 −0 test/cassettes/topology.yml
  4. +0 −163 test/data/device_description.xml
  5. +4 −0 test/support/vcr.rb
  6. +13 −0 test/test_helper.rb
  7. +10 −0 test/units/system_test.rb
View
11 Gemfile
@@ -1,7 +1,16 @@
source 'https://rubygems.org'
-# Specify your gem's dependencies in control.gemspec
+# Gem dependencies
gemspec
+# Development dependencies
gem 'rake'
gem 'yard'
+
+# Testing dependencies
+group :test do
+ gem 'minitest'
+ gem 'minitest-wscolor'
+ gem 'fakeweb'
+ gem 'vcr'
+end
View
7 Rakefile
@@ -1 +1,8 @@
require 'bundler/gem_tasks'
+require 'rake/testtask'
+
+Rake::TestTask.new(:test) do |t|
+ t.libs << 'test'
+ t.pattern = 'test/**/*_test.rb'
+end
+task default: :test
View
840 test/cassettes/topology.yml
@@ -0,0 +1,840 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: http://10.0.1.11:1400/status/topology
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ accept:
+ - ! '*/*'
+ user-agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ content-type:
+ - text/xml
+ connection:
+ - close
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8P3htbC1zdHlsZXNoZWV0IHR5cGU9
+ InRleHQveHNsIiBocmVmPSIveG1sL3Jldmlldy54c2wiPz48WlBTdXBwb3J0
+ SW5mbz48Wm9uZVBsYXllcnM+PFpvbmVQbGF5ZXIgZ3JvdXA9J1JJTkNPTl8w
+ MDBFNThBMzZCN0MwMTQwMDozMicgY29vcmRpbmF0b3I9J2ZhbHNlJyBsb2Nh
+ dGlvbj0naHR0cDovLzEwLjAuMS4xMDoxNDAwL3htbC9kZXZpY2VfZGVzY3Jp
+ cHRpb24ueG1sJyB2ZXJzaW9uPScxOS40LTYwMTIwJyBtaW5jb21wYXRpYmxl
+ dmVyc2lvbj0nMTkuNC0wMDAwMCcgYm9vdHNlcT0nMzEnIHV1aWQ9J1JJTkNP
+ Tl8wMDBFNTg3NTFBNDYwMTQwMCc+QmF0aHJvb208L1pvbmVQbGF5ZXI+PFpv
+ bmVQbGF5ZXIgZ3JvdXA9J1JJTkNPTl8wMDBFNThBMzZCN0MwMTQwMDozMicg
+ Y29vcmRpbmF0b3I9J2ZhbHNlJyBsb2NhdGlvbj0naHR0cDovLzEwLjAuMS43
+ OjE0MDAveG1sL2RldmljZV9kZXNjcmlwdGlvbi54bWwnIHZlcnNpb249JzE5
+ LjQtNjAxMjAnIG1pbmNvbXBhdGlibGV2ZXJzaW9uPScxOS40LTAwMDAwJyBi
+ b290c2VxPScxMicgdXVpZD0nUklOQ09OXzAwMEU1ODc1NzUzNjAxNDAwJz5C
+ ZWRyb29tPC9ab25lUGxheWVyPjxab25lUGxheWVyIGdyb3VwPSdSSU5DT05f
+ MDAwRTU4QTM2QjdDMDE0MDA6MzInIGNvb3JkaW5hdG9yPSd0cnVlJyBsb2Nh
+ dGlvbj0naHR0cDovLzEwLjAuMS45OjE0MDAveG1sL2RldmljZV9kZXNjcmlw
+ dGlvbi54bWwnIHZlcnNpb249JzE5LjQtNjAxMjAnIG1pbmNvbXBhdGlibGV2
+ ZXJzaW9uPScxOS40LTAwMDAwJyBib290c2VxPScxNScgdXVpZD0nUklOQ09O
+ XzAwMEU1OEEzNkI3QzAxNDAwJz5MaXZpbmcgUm9vbTwvWm9uZVBsYXllcj48
+ Wm9uZVBsYXllciBncm91cD0nUklOQ09OXzAwMEU1OEEzNkI3QzAxNDAwOjMy
+ JyBjb29yZGluYXRvcj0nZmFsc2UnIGxvY2F0aW9uPSdodHRwOi8vMTAuMC4x
+ LjExOjE0MDAveG1sL2RldmljZV9kZXNjcmlwdGlvbi54bWwnIHZlcnNpb249
+ JzE5LjQtNjAxMjAnIG1pbmNvbXBhdGlibGV2ZXJzaW9uPScxOS40LTAwMDAw
+ JyBib290c2VxPScxNCcgdXVpZD0nUklOQ09OXzAwMEU1ODc1MUE0QTAxNDAw
+ Jz5CZWRyb29tPC9ab25lUGxheWVyPjwvWm9uZVBsYXllcnM+PE1lZGlhU2Vy
+ dmVycz48TWVkaWFTZXJ2ZXIgbG9jYXRpb249JzEwLjAuMS4xNjozNDAxJyB1
+ dWlkPSdtb2JpbGUtaVBob25lLTU0MjY5NjUzOTc0NScgdmVyc2lvbj0nJyBj
+ YW5iZWRpc3BsYXllZD0nZmFsc2UnIHVuYXZhaWxhYmxlPSdmYWxzZScgdHlw
+ ZT0nMCcgZXh0PScnPmlTb2hsPC9NZWRpYVNlcnZlcj48TWVkaWFTZXJ2ZXIg
+ bG9jYXRpb249JzEwLjAuMS4xNTozNDAxJyB1dWlkPSdtb2JpbGUtaVBob25l
+ LTIwQzlEMDU4ODAyNCcgdmVyc2lvbj0nJyBjYW5iZWRpc3BsYXllZD0nZmFs
+ c2UnIHVuYXZhaWxhYmxlPSdmYWxzZScgdHlwZT0nMCcgZXh0PScnPlNhbSZh
+ cG9zO3MgaVBob25lPC9NZWRpYVNlcnZlcj48TWVkaWFTZXJ2ZXIgbG9jYXRp
+ b249JzEwLjAuMS44OjM0MDEnIHV1aWQ9J21vYmlsZS1pUGhvbmUtRTBDOTdB
+ Mjk3MEE0JyB2ZXJzaW9uPScnIGNhbmJlZGlzcGxheWVkPSdmYWxzZScgdW5h
+ dmFpbGFibGU9J2ZhbHNlJyB0eXBlPScwJyBleHQ9Jyc+RWxsZW7igJlzIGlQ
+ aG9uZTwvTWVkaWFTZXJ2ZXI+PC9NZWRpYVNlcnZlcnM+PC9aUFN1cHBvcnRJ
+ bmZvPg==
+ http_version: '1.1'
+ recorded_at: Thu, 03 Jan 2013 07:23:38 GMT
+- request:
+ method: get
+ uri: http://10.0.1.10:1400/xml/device_description.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ accept:
+ - ! '*/*'
+ user-agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ content-type:
+ - text/xml
+ transfer-encoding:
+ - chunked
+ connection:
+ - close
+ body:
+ encoding: US-ASCII
+ string: ! "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<root xmlns=\"urn:schemas-upnp-org:device-1-0\">\n
+ \ <specVersion>\n <major>1</major>\n <minor>0</minor>\n </specVersion>\n
+ \ <device>\n <deviceType>urn:schemas-upnp-org:device:ZonePlayer:1</deviceType>\n
+ \ <friendlyName>10.0.1.10 - Sonos PLAY:3</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <softwareVersion>19.4-60120</softwareVersion>\n <hardwareVersion>1.8.1.2-1</hardwareVersion>\n
+ \ <serialNum>00-0E-58-75-1A-46:C</serialNum>\n <UDN>uuid:RINCON_000E58751A4601400</UDN>\n
+ \ <iconList>\n <icon>\n <id>0</id>\n <mimetype>image/png</mimetype>\n
+ \ <width>48</width>\n <height>48</height>\n <depth>24</depth>\n
+ \ <url>/img/icon-S3.png</url>\n </icon>\n </iconList>\n <minCompatibleVersion>19.4-00000</minCompatibleVersion>\n
+ \ <displayVersion>3.8.4</displayVersion>\n <extraVersion>OTP: </extraVersion>\n
+ \ <roomName>Bathroom</roomName>\n <displayName>PLAY:3</displayName>\n
+ \ <zoneType>7</zoneType>\n <feature1>0x00000000</feature1>\n <feature2>0x00006332</feature2>\n
+ \ <feature3>0x0000002a</feature3>\n <internalSpeakerSize>4</internalSpeakerSize>\n
+ \ <serviceList>\n <service>\n <serviceType>urn:schemas-upnp-org:service:AlarmClock:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:AlarmClock</serviceId>\n <controlURL>/AlarmClock/Control</controlURL>\n
+ \ <eventSubURL>/AlarmClock/Event</eventSubURL>\n <SCPDURL>/xml/AlarmClock1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:MusicServices:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:MusicServices</serviceId>\n <controlURL>/MusicServices/Control</controlURL>\n
+ \ <eventSubURL>/MusicServices/Event</eventSubURL>\n <SCPDURL>/xml/MusicServices1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>\n <controlURL>/DeviceProperties/Control</controlURL>\n
+ \ <eventSubURL>/DeviceProperties/Event</eventSubURL>\n <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>\n <controlURL>/SystemProperties/Control</controlURL>\n
+ \ <eventSubURL>/SystemProperties/Event</eventSubURL>\n <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>\n
+ \ <controlURL>/ZoneGroupTopology/Control</controlURL>\n <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>\n
+ \ <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>\n </service> \n
+ \ <service>\n <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>\n <controlURL>/GroupManagement/Control</controlURL>\n
+ \ <eventSubURL>/GroupManagement/Event</eventSubURL>\n <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>\n
+ \ </service>\n </serviceList>\n <deviceList>\n <device>\n <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>\n
+ \ <friendlyName>10.0.1.10 - Sonos PLAY:3 Media Server</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Server</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <UDN>uuid:RINCON_000E58751A4601400_MS</UDN>\n <serviceList>\n <service>\n
+ \ <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>\n <controlURL>/MediaServer/ContentDirectory/Control</controlURL>\n
+ \ <eventSubURL>/MediaServer/ContentDirectory/Event</eventSubURL>\n <SCPDURL>/xml/ContentDirectory1.xml</SCPDURL>\n
+ \ </service>\n <service>\n <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaServer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaServer/ConnectionManager/Event</eventSubURL>\n\t <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n </device>\n <device>\n\t<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>\n
+ \ <friendlyName>Bathroom - Sonos PLAY:3 Media Renderer</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Renderer</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n\t<UDN>uuid:RINCON_000E58751A4601400_MR</UDN>\n\t<serviceList>\n\t
+ \ <service>\n\t <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>\n\t <controlURL>/MediaRenderer/RenderingControl/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/RenderingControl/Event</eventSubURL>\n\t <SCPDURL>/xml/RenderingControl1.xml</SCPDURL>\n\t
+ \ </service>\n\t <service>\n\t <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaRenderer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/ConnectionManager/Event</eventSubURL>\n\t
+ \ <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t </service>\n\t <service>\n\t
+ \ <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>\n\t <controlURL>/MediaRenderer/AVTransport/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/AVTransport/Event</eventSubURL>\n\t <SCPDURL>/xml/AVTransport1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n <X_Rhapsody-Extension xmlns=\"http://www.real.com/rhapsody/xmlns/upnp-1-0\">\n
+ \ <deviceID>urn:rhapsody-real-com:device-id-1-0:sonos_1:RINCON_000E58751A4601400</deviceID>\n
+ \ <deviceCapabilities>\n <interactionPattern type=\"real-rhapsody-upnp-1-0\"/>\n
+ \ </deviceCapabilities>\n </X_Rhapsody-Extension>\n <iconList>\n
+ \ <icon>\n <mimetype>image/png</mimetype>\n <width>48</width>\n
+ \ <height>48</height>\n <depth>24</depth>\n <url>/img/icon-S3.png</url>\n
+ \ </icon>\n </iconList>\n </device>\n </deviceList>\n
+ \ </device>\n</root>\n"
+ http_version: '1.1'
+ recorded_at: Thu, 03 Jan 2013 07:23:38 GMT
+- request:
+ method: get
+ uri: http://10.0.1.7:1400/xml/device_description.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ accept:
+ - ! '*/*'
+ user-agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ content-type:
+ - text/xml
+ transfer-encoding:
+ - chunked
+ connection:
+ - close
+ body:
+ encoding: US-ASCII
+ string: ! "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<root xmlns=\"urn:schemas-upnp-org:device-1-0\">\n
+ \ <specVersion>\n <major>1</major>\n <minor>0</minor>\n </specVersion>\n
+ \ <device>\n <deviceType>urn:schemas-upnp-org:device:ZonePlayer:1</deviceType>\n
+ \ <friendlyName>10.0.1.7 - Sonos PLAY:3</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <softwareVersion>19.4-60120</softwareVersion>\n <hardwareVersion>1.8.1.2-1</hardwareVersion>\n
+ \ <serialNum>00-0E-58-75-75-36:2</serialNum>\n <UDN>uuid:RINCON_000E5875753601400</UDN>\n
+ \ <iconList>\n <icon>\n <id>0</id>\n <mimetype>image/png</mimetype>\n
+ \ <width>48</width>\n <height>48</height>\n <depth>24</depth>\n
+ \ <url>/img/icon-S3.png</url>\n </icon>\n </iconList>\n <minCompatibleVersion>19.4-00000</minCompatibleVersion>\n
+ \ <displayVersion>3.8.4</displayVersion>\n <extraVersion>OTP: </extraVersion>\n
+ \ <roomName>Bedroom</roomName>\n <displayName>PLAY:3</displayName>\n
+ \ <zoneType>7</zoneType>\n <feature1>0x00000000</feature1>\n <feature2>0x00006332</feature2>\n
+ \ <feature3>0x0000002a</feature3>\n <internalSpeakerSize>4</internalSpeakerSize>\n
+ \ <serviceList>\n <service>\n <serviceType>urn:schemas-upnp-org:service:AlarmClock:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:AlarmClock</serviceId>\n <controlURL>/AlarmClock/Control</controlURL>\n
+ \ <eventSubURL>/AlarmClock/Event</eventSubURL>\n <SCPDURL>/xml/AlarmClock1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:MusicServices:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:MusicServices</serviceId>\n <controlURL>/MusicServices/Control</controlURL>\n
+ \ <eventSubURL>/MusicServices/Event</eventSubURL>\n <SCPDURL>/xml/MusicServices1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>\n <controlURL>/DeviceProperties/Control</controlURL>\n
+ \ <eventSubURL>/DeviceProperties/Event</eventSubURL>\n <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>\n <controlURL>/SystemProperties/Control</controlURL>\n
+ \ <eventSubURL>/SystemProperties/Event</eventSubURL>\n <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>\n
+ \ <controlURL>/ZoneGroupTopology/Control</controlURL>\n <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>\n
+ \ <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>\n </service> \n
+ \ <service>\n <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>\n <controlURL>/GroupManagement/Control</controlURL>\n
+ \ <eventSubURL>/GroupManagement/Event</eventSubURL>\n <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>\n
+ \ </service>\n </serviceList>\n <deviceList>\n <device>\n <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>\n
+ \ <friendlyName>10.0.1.7 - Sonos PLAY:3 Media Server</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Server</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <UDN>uuid:RINCON_000E5875753601400_MS</UDN>\n <serviceList>\n <service>\n
+ \ <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>\n <controlURL>/MediaServer/ContentDirectory/Control</controlURL>\n
+ \ <eventSubURL>/MediaServer/ContentDirectory/Event</eventSubURL>\n <SCPDURL>/xml/ContentDirectory1.xml</SCPDURL>\n
+ \ </service>\n <service>\n <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaServer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaServer/ConnectionManager/Event</eventSubURL>\n\t <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n </device>\n <device>\n\t<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>\n
+ \ <friendlyName>Bedroom - Sonos PLAY:3 Media Renderer</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Renderer</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n\t<UDN>uuid:RINCON_000E5875753601400_MR</UDN>\n\t<serviceList>\n\t
+ \ <service>\n\t <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>\n\t <controlURL>/MediaRenderer/RenderingControl/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/RenderingControl/Event</eventSubURL>\n\t <SCPDURL>/xml/RenderingControl1.xml</SCPDURL>\n\t
+ \ </service>\n\t <service>\n\t <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaRenderer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/ConnectionManager/Event</eventSubURL>\n\t
+ \ <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t </service>\n\t <service>\n\t
+ \ <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>\n\t <controlURL>/MediaRenderer/AVTransport/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/AVTransport/Event</eventSubURL>\n\t <SCPDURL>/xml/AVTransport1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n <X_Rhapsody-Extension xmlns=\"http://www.real.com/rhapsody/xmlns/upnp-1-0\">\n
+ \ <deviceID>urn:rhapsody-real-com:device-id-1-0:sonos_1:RINCON_000E5875753601400</deviceID>\n
+ \ <deviceCapabilities>\n <interactionPattern type=\"real-rhapsody-upnp-1-0\"/>\n
+ \ </deviceCapabilities>\n </X_Rhapsody-Extension>\n <iconList>\n
+ \ <icon>\n <mimetype>image/png</mimetype>\n <width>48</width>\n
+ \ <height>48</height>\n <depth>24</depth>\n <url>/img/icon-S3.png</url>\n
+ \ </icon>\n </iconList>\n </device>\n </deviceList>\n
+ \ </device>\n</root>\n"
+ http_version: '1.1'
+ recorded_at: Thu, 03 Jan 2013 07:23:38 GMT
+- request:
+ method: get
+ uri: http://10.0.1.9:1400/xml/device_description.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ accept:
+ - ! '*/*'
+ user-agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ content-type:
+ - text/xml
+ transfer-encoding:
+ - chunked
+ connection:
+ - close
+ body:
+ encoding: US-ASCII
+ string: ! "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<root xmlns=\"urn:schemas-upnp-org:device-1-0\">\n
+ \ <specVersion>\n <major>1</major>\n <minor>0</minor>\n </specVersion>\n
+ \ <device>\n <deviceType>urn:schemas-upnp-org:device:ZonePlayer:1</deviceType>\n
+ \ <friendlyName>10.0.1.9 - Sonos CONNECT</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>ZP90</modelNumber>\n <modelDescription>Sonos CONNECT</modelDescription>\n
+ \ <modelName>Sonos CONNECT</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/ZP90</modelURL>\n
+ \ <softwareVersion>19.4-60120</softwareVersion>\n <hardwareVersion>1.16.5.5-1</hardwareVersion>\n
+ \ <serialNum>00-0E-58-A3-6B-7C:6</serialNum>\n <UDN>uuid:RINCON_000E58A36B7C01400</UDN>\n
+ \ <iconList>\n <icon>\n <id>0</id>\n <mimetype>image/png</mimetype>\n
+ \ <width>48</width>\n <height>48</height>\n <depth>24</depth>\n
+ \ <url>/img/icon-ZP90.png</url>\n </icon>\n </iconList>\n <minCompatibleVersion>19.4-00000</minCompatibleVersion>\n
+ \ <displayVersion>3.8.4</displayVersion>\n <extraVersion>OTP: 1.1.1(1-16-5-zp90-0.8)</extraVersion>\n
+ \ <roomName>Living Room</roomName>\n <displayName>CONNECT</displayName>\n
+ \ <zoneType>1</zoneType>\n <feature1>0x00310001</feature1>\n <feature2>0x00006172</feature2>\n
+ \ <feature3>0x00000021</feature3>\n <internalSpeakerSize>-1</internalSpeakerSize>\n
+ \ <serviceList>\n <service>\n <serviceType>urn:schemas-upnp-org:service:AlarmClock:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:AlarmClock</serviceId>\n <controlURL>/AlarmClock/Control</controlURL>\n
+ \ <eventSubURL>/AlarmClock/Event</eventSubURL>\n <SCPDURL>/xml/AlarmClock1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:MusicServices:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:MusicServices</serviceId>\n <controlURL>/MusicServices/Control</controlURL>\n
+ \ <eventSubURL>/MusicServices/Event</eventSubURL>\n <SCPDURL>/xml/MusicServices1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:AudioIn:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:AudioIn</serviceId>\n <controlURL>/AudioIn/Control</controlURL>\n
+ \ <eventSubURL>/AudioIn/Event</eventSubURL>\n <SCPDURL>/xml/AudioIn1.xml</SCPDURL>\n
+ \ </service>\n <service>\n <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>\n <controlURL>/DeviceProperties/Control</controlURL>\n
+ \ <eventSubURL>/DeviceProperties/Event</eventSubURL>\n <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>\n <controlURL>/SystemProperties/Control</controlURL>\n
+ \ <eventSubURL>/SystemProperties/Event</eventSubURL>\n <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>\n
+ \ <controlURL>/ZoneGroupTopology/Control</controlURL>\n <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>\n
+ \ <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>\n </service> \n
+ \ <service>\n <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>\n <controlURL>/GroupManagement/Control</controlURL>\n
+ \ <eventSubURL>/GroupManagement/Event</eventSubURL>\n <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>\n
+ \ </service>\n </serviceList>\n <deviceList>\n <device>\n <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>\n
+ \ <friendlyName>10.0.1.9 - Sonos CONNECT Media Server</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>ZP90</modelNumber>\n <modelDescription>Sonos CONNECT Media
+ Server</modelDescription>\n <modelName>Sonos CONNECT</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/ZP90</modelURL>\n
+ \ <UDN>uuid:RINCON_000E58A36B7C01400_MS</UDN>\n <serviceList>\n <service>\n
+ \ <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>\n <controlURL>/MediaServer/ContentDirectory/Control</controlURL>\n
+ \ <eventSubURL>/MediaServer/ContentDirectory/Event</eventSubURL>\n <SCPDURL>/xml/ContentDirectory1.xml</SCPDURL>\n
+ \ </service>\n <service>\n <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaServer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaServer/ConnectionManager/Event</eventSubURL>\n\t <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n </device>\n <device>\n\t<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>\n
+ \ <friendlyName>Living Room - Sonos CONNECT Media Renderer</friendlyName>\n
+ \ <manufacturer>Sonos, Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>ZP90</modelNumber>\n <modelDescription>Sonos CONNECT Media
+ Renderer</modelDescription>\n <modelName>Sonos CONNECT</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/ZP90</modelURL>\n\t<UDN>uuid:RINCON_000E58A36B7C01400_MR</UDN>\n\t<serviceList>\n\t
+ \ <service>\n\t <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>\n\t <controlURL>/MediaRenderer/RenderingControl/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/RenderingControl/Event</eventSubURL>\n\t <SCPDURL>/xml/RenderingControl1.xml</SCPDURL>\n\t
+ \ </service>\n\t <service>\n\t <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaRenderer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/ConnectionManager/Event</eventSubURL>\n\t
+ \ <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t </service>\n\t <service>\n\t
+ \ <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>\n\t <controlURL>/MediaRenderer/AVTransport/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/AVTransport/Event</eventSubURL>\n\t <SCPDURL>/xml/AVTransport1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n <X_Rhapsody-Extension xmlns=\"http://www.real.com/rhapsody/xmlns/upnp-1-0\">\n
+ \ <deviceID>urn:rhapsody-real-com:device-id-1-0:sonos_1:RINCON_000E58A36B7C01400</deviceID>\n
+ \ <deviceCapabilities>\n <interactionPattern type=\"real-rhapsody-upnp-1-0\"/>\n
+ \ </deviceCapabilities>\n </X_Rhapsody-Extension>\n <iconList>\n
+ \ <icon>\n <mimetype>image/png</mimetype>\n <width>48</width>\n
+ \ <height>48</height>\n <depth>24</depth>\n <url>/img/icon-ZP90.png</url>\n
+ \ </icon>\n </iconList>\n </device>\n </deviceList>\n
+ \ </device>\n</root>\n"
+ http_version: '1.1'
+ recorded_at: Thu, 03 Jan 2013 07:23:38 GMT
+- request:
+ method: get
+ uri: http://10.0.1.11:1400/xml/device_description.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ accept:
+ - ! '*/*'
+ user-agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ content-type:
+ - text/xml
+ transfer-encoding:
+ - chunked
+ connection:
+ - close
+ body:
+ encoding: US-ASCII
+ string: ! "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<root xmlns=\"urn:schemas-upnp-org:device-1-0\">\n
+ \ <specVersion>\n <major>1</major>\n <minor>0</minor>\n </specVersion>\n
+ \ <device>\n <deviceType>urn:schemas-upnp-org:device:ZonePlayer:1</deviceType>\n
+ \ <friendlyName>10.0.1.11 - Sonos PLAY:3</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <softwareVersion>19.4-60120</softwareVersion>\n <hardwareVersion>1.8.1.2-1</hardwareVersion>\n
+ \ <serialNum>00-0E-58-75-1A-4A:G</serialNum>\n <UDN>uuid:RINCON_000E58751A4A01400</UDN>\n
+ \ <iconList>\n <icon>\n <id>0</id>\n <mimetype>image/png</mimetype>\n
+ \ <width>48</width>\n <height>48</height>\n <depth>24</depth>\n
+ \ <url>/img/icon-S3.png</url>\n </icon>\n </iconList>\n <minCompatibleVersion>19.4-00000</minCompatibleVersion>\n
+ \ <displayVersion>3.8.4</displayVersion>\n <extraVersion>OTP: </extraVersion>\n
+ \ <roomName>Bedroom</roomName>\n <displayName>PLAY:3</displayName>\n
+ \ <zoneType>7</zoneType>\n <feature1>0x00000000</feature1>\n <feature2>0x00006332</feature2>\n
+ \ <feature3>0x0000002a</feature3>\n <internalSpeakerSize>4</internalSpeakerSize>\n
+ \ <serviceList>\n <service>\n <serviceType>urn:schemas-upnp-org:service:AlarmClock:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:AlarmClock</serviceId>\n <controlURL>/AlarmClock/Control</controlURL>\n
+ \ <eventSubURL>/AlarmClock/Event</eventSubURL>\n <SCPDURL>/xml/AlarmClock1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:MusicServices:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:MusicServices</serviceId>\n <controlURL>/MusicServices/Control</controlURL>\n
+ \ <eventSubURL>/MusicServices/Event</eventSubURL>\n <SCPDURL>/xml/MusicServices1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>\n <controlURL>/DeviceProperties/Control</controlURL>\n
+ \ <eventSubURL>/DeviceProperties/Event</eventSubURL>\n <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>\n <controlURL>/SystemProperties/Control</controlURL>\n
+ \ <eventSubURL>/SystemProperties/Event</eventSubURL>\n <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>\n
+ \ <controlURL>/ZoneGroupTopology/Control</controlURL>\n <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>\n
+ \ <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>\n </service> \n
+ \ <service>\n <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>\n <controlURL>/GroupManagement/Control</controlURL>\n
+ \ <eventSubURL>/GroupManagement/Event</eventSubURL>\n <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>\n
+ \ </service>\n </serviceList>\n <deviceList>\n <device>\n <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>\n
+ \ <friendlyName>10.0.1.11 - Sonos PLAY:3 Media Server</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Server</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <UDN>uuid:RINCON_000E58751A4A01400_MS</UDN>\n <serviceList>\n <service>\n
+ \ <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>\n <controlURL>/MediaServer/ContentDirectory/Control</controlURL>\n
+ \ <eventSubURL>/MediaServer/ContentDirectory/Event</eventSubURL>\n <SCPDURL>/xml/ContentDirectory1.xml</SCPDURL>\n
+ \ </service>\n <service>\n <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaServer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaServer/ConnectionManager/Event</eventSubURL>\n\t <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n </device>\n <device>\n\t<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>\n
+ \ <friendlyName>Bedroom - Sonos PLAY:3 Media Renderer</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Renderer</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n\t<UDN>uuid:RINCON_000E58751A4A01400_MR</UDN>\n\t<serviceList>\n\t
+ \ <service>\n\t <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>\n\t <controlURL>/MediaRenderer/RenderingControl/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/RenderingControl/Event</eventSubURL>\n\t <SCPDURL>/xml/RenderingControl1.xml</SCPDURL>\n\t
+ \ </service>\n\t <service>\n\t <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaRenderer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/ConnectionManager/Event</eventSubURL>\n\t
+ \ <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t </service>\n\t <service>\n\t
+ \ <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>\n\t <controlURL>/MediaRenderer/AVTransport/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/AVTransport/Event</eventSubURL>\n\t <SCPDURL>/xml/AVTransport1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n <X_Rhapsody-Extension xmlns=\"http://www.real.com/rhapsody/xmlns/upnp-1-0\">\n
+ \ <deviceID>urn:rhapsody-real-com:device-id-1-0:sonos_1:RINCON_000E58751A4A01400</deviceID>\n
+ \ <deviceCapabilities>\n <interactionPattern type=\"real-rhapsody-upnp-1-0\"/>\n
+ \ </deviceCapabilities>\n </X_Rhapsody-Extension>\n <iconList>\n
+ \ <icon>\n <mimetype>image/png</mimetype>\n <width>48</width>\n
+ \ <height>48</height>\n <depth>24</depth>\n <url>/img/icon-S3.png</url>\n
+ \ </icon>\n </iconList>\n </device>\n </deviceList>\n
+ \ </device>\n</root>\n"
+ http_version: '1.1'
+ recorded_at: Thu, 03 Jan 2013 07:23:38 GMT
+- request:
+ method: get
+ uri: http://10.0.1.9:1400/xml/device_description.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ accept:
+ - ! '*/*'
+ user-agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ content-type:
+ - text/xml
+ transfer-encoding:
+ - chunked
+ connection:
+ - close
+ body:
+ encoding: US-ASCII
+ string: ! "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<root xmlns=\"urn:schemas-upnp-org:device-1-0\">\n
+ \ <specVersion>\n <major>1</major>\n <minor>0</minor>\n </specVersion>\n
+ \ <device>\n <deviceType>urn:schemas-upnp-org:device:ZonePlayer:1</deviceType>\n
+ \ <friendlyName>10.0.1.9 - Sonos CONNECT</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>ZP90</modelNumber>\n <modelDescription>Sonos CONNECT</modelDescription>\n
+ \ <modelName>Sonos CONNECT</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/ZP90</modelURL>\n
+ \ <softwareVersion>19.4-60120</softwareVersion>\n <hardwareVersion>1.16.5.5-1</hardwareVersion>\n
+ \ <serialNum>00-0E-58-A3-6B-7C:6</serialNum>\n <UDN>uuid:RINCON_000E58A36B7C01400</UDN>\n
+ \ <iconList>\n <icon>\n <id>0</id>\n <mimetype>image/png</mimetype>\n
+ \ <width>48</width>\n <height>48</height>\n <depth>24</depth>\n
+ \ <url>/img/icon-ZP90.png</url>\n </icon>\n </iconList>\n <minCompatibleVersion>19.4-00000</minCompatibleVersion>\n
+ \ <displayVersion>3.8.4</displayVersion>\n <extraVersion>OTP: 1.1.1(1-16-5-zp90-0.8)</extraVersion>\n
+ \ <roomName>Living Room</roomName>\n <displayName>CONNECT</displayName>\n
+ \ <zoneType>1</zoneType>\n <feature1>0x00310001</feature1>\n <feature2>0x00006172</feature2>\n
+ \ <feature3>0x00000021</feature3>\n <internalSpeakerSize>-1</internalSpeakerSize>\n
+ \ <serviceList>\n <service>\n <serviceType>urn:schemas-upnp-org:service:AlarmClock:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:AlarmClock</serviceId>\n <controlURL>/AlarmClock/Control</controlURL>\n
+ \ <eventSubURL>/AlarmClock/Event</eventSubURL>\n <SCPDURL>/xml/AlarmClock1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:MusicServices:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:MusicServices</serviceId>\n <controlURL>/MusicServices/Control</controlURL>\n
+ \ <eventSubURL>/MusicServices/Event</eventSubURL>\n <SCPDURL>/xml/MusicServices1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:AudioIn:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:AudioIn</serviceId>\n <controlURL>/AudioIn/Control</controlURL>\n
+ \ <eventSubURL>/AudioIn/Event</eventSubURL>\n <SCPDURL>/xml/AudioIn1.xml</SCPDURL>\n
+ \ </service>\n <service>\n <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>\n <controlURL>/DeviceProperties/Control</controlURL>\n
+ \ <eventSubURL>/DeviceProperties/Event</eventSubURL>\n <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>\n <controlURL>/SystemProperties/Control</controlURL>\n
+ \ <eventSubURL>/SystemProperties/Event</eventSubURL>\n <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>\n
+ \ <controlURL>/ZoneGroupTopology/Control</controlURL>\n <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>\n
+ \ <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>\n </service> \n
+ \ <service>\n <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>\n <controlURL>/GroupManagement/Control</controlURL>\n
+ \ <eventSubURL>/GroupManagement/Event</eventSubURL>\n <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>\n
+ \ </service>\n </serviceList>\n <deviceList>\n <device>\n <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>\n
+ \ <friendlyName>10.0.1.9 - Sonos CONNECT Media Server</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>ZP90</modelNumber>\n <modelDescription>Sonos CONNECT Media
+ Server</modelDescription>\n <modelName>Sonos CONNECT</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/ZP90</modelURL>\n
+ \ <UDN>uuid:RINCON_000E58A36B7C01400_MS</UDN>\n <serviceList>\n <service>\n
+ \ <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>\n <controlURL>/MediaServer/ContentDirectory/Control</controlURL>\n
+ \ <eventSubURL>/MediaServer/ContentDirectory/Event</eventSubURL>\n <SCPDURL>/xml/ContentDirectory1.xml</SCPDURL>\n
+ \ </service>\n <service>\n <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaServer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaServer/ConnectionManager/Event</eventSubURL>\n\t <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n </device>\n <device>\n\t<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>\n
+ \ <friendlyName>Living Room - Sonos CONNECT Media Renderer</friendlyName>\n
+ \ <manufacturer>Sonos, Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>ZP90</modelNumber>\n <modelDescription>Sonos CONNECT Media
+ Renderer</modelDescription>\n <modelName>Sonos CONNECT</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/ZP90</modelURL>\n\t<UDN>uuid:RINCON_000E58A36B7C01400_MR</UDN>\n\t<serviceList>\n\t
+ \ <service>\n\t <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>\n\t <controlURL>/MediaRenderer/RenderingControl/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/RenderingControl/Event</eventSubURL>\n\t <SCPDURL>/xml/RenderingControl1.xml</SCPDURL>\n\t
+ \ </service>\n\t <service>\n\t <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaRenderer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/ConnectionManager/Event</eventSubURL>\n\t
+ \ <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t </service>\n\t <service>\n\t
+ \ <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>\n\t <controlURL>/MediaRenderer/AVTransport/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/AVTransport/Event</eventSubURL>\n\t <SCPDURL>/xml/AVTransport1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n <X_Rhapsody-Extension xmlns=\"http://www.real.com/rhapsody/xmlns/upnp-1-0\">\n
+ \ <deviceID>urn:rhapsody-real-com:device-id-1-0:sonos_1:RINCON_000E58A36B7C01400</deviceID>\n
+ \ <deviceCapabilities>\n <interactionPattern type=\"real-rhapsody-upnp-1-0\"/>\n
+ \ </deviceCapabilities>\n </X_Rhapsody-Extension>\n <iconList>\n
+ \ <icon>\n <mimetype>image/png</mimetype>\n <width>48</width>\n
+ \ <height>48</height>\n <depth>24</depth>\n <url>/img/icon-ZP90.png</url>\n
+ \ </icon>\n </iconList>\n </device>\n </deviceList>\n
+ \ </device>\n</root>\n"
+ http_version: '1.1'
+ recorded_at: Thu, 03 Jan 2013 07:23:38 GMT
+- request:
+ method: get
+ uri: http://10.0.1.10:1400/xml/device_description.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ accept:
+ - ! '*/*'
+ user-agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ content-type:
+ - text/xml
+ transfer-encoding:
+ - chunked
+ connection:
+ - close
+ body:
+ encoding: US-ASCII
+ string: ! "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<root xmlns=\"urn:schemas-upnp-org:device-1-0\">\n
+ \ <specVersion>\n <major>1</major>\n <minor>0</minor>\n </specVersion>\n
+ \ <device>\n <deviceType>urn:schemas-upnp-org:device:ZonePlayer:1</deviceType>\n
+ \ <friendlyName>10.0.1.10 - Sonos PLAY:3</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <softwareVersion>19.4-60120</softwareVersion>\n <hardwareVersion>1.8.1.2-1</hardwareVersion>\n
+ \ <serialNum>00-0E-58-75-1A-46:C</serialNum>\n <UDN>uuid:RINCON_000E58751A4601400</UDN>\n
+ \ <iconList>\n <icon>\n <id>0</id>\n <mimetype>image/png</mimetype>\n
+ \ <width>48</width>\n <height>48</height>\n <depth>24</depth>\n
+ \ <url>/img/icon-S3.png</url>\n </icon>\n </iconList>\n <minCompatibleVersion>19.4-00000</minCompatibleVersion>\n
+ \ <displayVersion>3.8.4</displayVersion>\n <extraVersion>OTP: </extraVersion>\n
+ \ <roomName>Bathroom</roomName>\n <displayName>PLAY:3</displayName>\n
+ \ <zoneType>7</zoneType>\n <feature1>0x00000000</feature1>\n <feature2>0x00006332</feature2>\n
+ \ <feature3>0x0000002a</feature3>\n <internalSpeakerSize>4</internalSpeakerSize>\n
+ \ <serviceList>\n <service>\n <serviceType>urn:schemas-upnp-org:service:AlarmClock:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:AlarmClock</serviceId>\n <controlURL>/AlarmClock/Control</controlURL>\n
+ \ <eventSubURL>/AlarmClock/Event</eventSubURL>\n <SCPDURL>/xml/AlarmClock1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:MusicServices:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:MusicServices</serviceId>\n <controlURL>/MusicServices/Control</controlURL>\n
+ \ <eventSubURL>/MusicServices/Event</eventSubURL>\n <SCPDURL>/xml/MusicServices1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>\n <controlURL>/DeviceProperties/Control</controlURL>\n
+ \ <eventSubURL>/DeviceProperties/Event</eventSubURL>\n <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>\n <controlURL>/SystemProperties/Control</controlURL>\n
+ \ <eventSubURL>/SystemProperties/Event</eventSubURL>\n <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>\n
+ \ <controlURL>/ZoneGroupTopology/Control</controlURL>\n <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>\n
+ \ <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>\n </service> \n
+ \ <service>\n <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>\n <controlURL>/GroupManagement/Control</controlURL>\n
+ \ <eventSubURL>/GroupManagement/Event</eventSubURL>\n <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>\n
+ \ </service>\n </serviceList>\n <deviceList>\n <device>\n <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>\n
+ \ <friendlyName>10.0.1.10 - Sonos PLAY:3 Media Server</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Server</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <UDN>uuid:RINCON_000E58751A4601400_MS</UDN>\n <serviceList>\n <service>\n
+ \ <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>\n <controlURL>/MediaServer/ContentDirectory/Control</controlURL>\n
+ \ <eventSubURL>/MediaServer/ContentDirectory/Event</eventSubURL>\n <SCPDURL>/xml/ContentDirectory1.xml</SCPDURL>\n
+ \ </service>\n <service>\n <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaServer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaServer/ConnectionManager/Event</eventSubURL>\n\t <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n </device>\n <device>\n\t<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>\n
+ \ <friendlyName>Bathroom - Sonos PLAY:3 Media Renderer</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Renderer</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n\t<UDN>uuid:RINCON_000E58751A4601400_MR</UDN>\n\t<serviceList>\n\t
+ \ <service>\n\t <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>\n\t <controlURL>/MediaRenderer/RenderingControl/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/RenderingControl/Event</eventSubURL>\n\t <SCPDURL>/xml/RenderingControl1.xml</SCPDURL>\n\t
+ \ </service>\n\t <service>\n\t <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaRenderer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/ConnectionManager/Event</eventSubURL>\n\t
+ \ <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t </service>\n\t <service>\n\t
+ \ <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>\n\t <controlURL>/MediaRenderer/AVTransport/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/AVTransport/Event</eventSubURL>\n\t <SCPDURL>/xml/AVTransport1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n <X_Rhapsody-Extension xmlns=\"http://www.real.com/rhapsody/xmlns/upnp-1-0\">\n
+ \ <deviceID>urn:rhapsody-real-com:device-id-1-0:sonos_1:RINCON_000E58751A4601400</deviceID>\n
+ \ <deviceCapabilities>\n <interactionPattern type=\"real-rhapsody-upnp-1-0\"/>\n
+ \ </deviceCapabilities>\n </X_Rhapsody-Extension>\n <iconList>\n
+ \ <icon>\n <mimetype>image/png</mimetype>\n <width>48</width>\n
+ \ <height>48</height>\n <depth>24</depth>\n <url>/img/icon-S3.png</url>\n
+ \ </icon>\n </iconList>\n </device>\n </deviceList>\n
+ \ </device>\n</root>\n"
+ http_version: '1.1'
+ recorded_at: Thu, 03 Jan 2013 07:23:38 GMT
+- request:
+ method: get
+ uri: http://10.0.1.7:1400/xml/device_description.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ accept:
+ - ! '*/*'
+ user-agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ content-type:
+ - text/xml
+ transfer-encoding:
+ - chunked
+ connection:
+ - close
+ body:
+ encoding: US-ASCII
+ string: ! "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<root xmlns=\"urn:schemas-upnp-org:device-1-0\">\n
+ \ <specVersion>\n <major>1</major>\n <minor>0</minor>\n </specVersion>\n
+ \ <device>\n <deviceType>urn:schemas-upnp-org:device:ZonePlayer:1</deviceType>\n
+ \ <friendlyName>10.0.1.7 - Sonos PLAY:3</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <softwareVersion>19.4-60120</softwareVersion>\n <hardwareVersion>1.8.1.2-1</hardwareVersion>\n
+ \ <serialNum>00-0E-58-75-75-36:2</serialNum>\n <UDN>uuid:RINCON_000E5875753601400</UDN>\n
+ \ <iconList>\n <icon>\n <id>0</id>\n <mimetype>image/png</mimetype>\n
+ \ <width>48</width>\n <height>48</height>\n <depth>24</depth>\n
+ \ <url>/img/icon-S3.png</url>\n </icon>\n </iconList>\n <minCompatibleVersion>19.4-00000</minCompatibleVersion>\n
+ \ <displayVersion>3.8.4</displayVersion>\n <extraVersion>OTP: </extraVersion>\n
+ \ <roomName>Bedroom</roomName>\n <displayName>PLAY:3</displayName>\n
+ \ <zoneType>7</zoneType>\n <feature1>0x00000000</feature1>\n <feature2>0x00006332</feature2>\n
+ \ <feature3>0x0000002a</feature3>\n <internalSpeakerSize>4</internalSpeakerSize>\n
+ \ <serviceList>\n <service>\n <serviceType>urn:schemas-upnp-org:service:AlarmClock:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:AlarmClock</serviceId>\n <controlURL>/AlarmClock/Control</controlURL>\n
+ \ <eventSubURL>/AlarmClock/Event</eventSubURL>\n <SCPDURL>/xml/AlarmClock1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:MusicServices:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:MusicServices</serviceId>\n <controlURL>/MusicServices/Control</controlURL>\n
+ \ <eventSubURL>/MusicServices/Event</eventSubURL>\n <SCPDURL>/xml/MusicServices1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>\n <controlURL>/DeviceProperties/Control</controlURL>\n
+ \ <eventSubURL>/DeviceProperties/Event</eventSubURL>\n <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>\n <controlURL>/SystemProperties/Control</controlURL>\n
+ \ <eventSubURL>/SystemProperties/Event</eventSubURL>\n <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>\n
+ \ <controlURL>/ZoneGroupTopology/Control</controlURL>\n <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>\n
+ \ <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>\n </service> \n
+ \ <service>\n <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>\n <controlURL>/GroupManagement/Control</controlURL>\n
+ \ <eventSubURL>/GroupManagement/Event</eventSubURL>\n <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>\n
+ \ </service>\n </serviceList>\n <deviceList>\n <device>\n <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>\n
+ \ <friendlyName>10.0.1.7 - Sonos PLAY:3 Media Server</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Server</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <UDN>uuid:RINCON_000E5875753601400_MS</UDN>\n <serviceList>\n <service>\n
+ \ <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>\n <controlURL>/MediaServer/ContentDirectory/Control</controlURL>\n
+ \ <eventSubURL>/MediaServer/ContentDirectory/Event</eventSubURL>\n <SCPDURL>/xml/ContentDirectory1.xml</SCPDURL>\n
+ \ </service>\n <service>\n <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaServer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaServer/ConnectionManager/Event</eventSubURL>\n\t <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n </device>\n <device>\n\t<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>\n
+ \ <friendlyName>Bedroom - Sonos PLAY:3 Media Renderer</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Renderer</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n\t<UDN>uuid:RINCON_000E5875753601400_MR</UDN>\n\t<serviceList>\n\t
+ \ <service>\n\t <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>\n\t <controlURL>/MediaRenderer/RenderingControl/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/RenderingControl/Event</eventSubURL>\n\t <SCPDURL>/xml/RenderingControl1.xml</SCPDURL>\n\t
+ \ </service>\n\t <service>\n\t <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaRenderer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/ConnectionManager/Event</eventSubURL>\n\t
+ \ <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t </service>\n\t <service>\n\t
+ \ <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>\n\t <controlURL>/MediaRenderer/AVTransport/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/AVTransport/Event</eventSubURL>\n\t <SCPDURL>/xml/AVTransport1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n <X_Rhapsody-Extension xmlns=\"http://www.real.com/rhapsody/xmlns/upnp-1-0\">\n
+ \ <deviceID>urn:rhapsody-real-com:device-id-1-0:sonos_1:RINCON_000E5875753601400</deviceID>\n
+ \ <deviceCapabilities>\n <interactionPattern type=\"real-rhapsody-upnp-1-0\"/>\n
+ \ </deviceCapabilities>\n </X_Rhapsody-Extension>\n <iconList>\n
+ \ <icon>\n <mimetype>image/png</mimetype>\n <width>48</width>\n
+ \ <height>48</height>\n <depth>24</depth>\n <url>/img/icon-S3.png</url>\n
+ \ </icon>\n </iconList>\n </device>\n </deviceList>\n
+ \ </device>\n</root>\n"
+ http_version: '1.1'
+ recorded_at: Thu, 03 Jan 2013 07:23:38 GMT
+- request:
+ method: get
+ uri: http://10.0.1.11:1400/xml/device_description.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ accept:
+ - ! '*/*'
+ user-agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ content-type:
+ - text/xml
+ transfer-encoding:
+ - chunked
+ connection:
+ - close
+ body:
+ encoding: US-ASCII
+ string: ! "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<root xmlns=\"urn:schemas-upnp-org:device-1-0\">\n
+ \ <specVersion>\n <major>1</major>\n <minor>0</minor>\n </specVersion>\n
+ \ <device>\n <deviceType>urn:schemas-upnp-org:device:ZonePlayer:1</deviceType>\n
+ \ <friendlyName>10.0.1.11 - Sonos PLAY:3</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <softwareVersion>19.4-60120</softwareVersion>\n <hardwareVersion>1.8.1.2-1</hardwareVersion>\n
+ \ <serialNum>00-0E-58-75-1A-4A:G</serialNum>\n <UDN>uuid:RINCON_000E58751A4A01400</UDN>\n
+ \ <iconList>\n <icon>\n <id>0</id>\n <mimetype>image/png</mimetype>\n
+ \ <width>48</width>\n <height>48</height>\n <depth>24</depth>\n
+ \ <url>/img/icon-S3.png</url>\n </icon>\n </iconList>\n <minCompatibleVersion>19.4-00000</minCompatibleVersion>\n
+ \ <displayVersion>3.8.4</displayVersion>\n <extraVersion>OTP: </extraVersion>\n
+ \ <roomName>Bedroom</roomName>\n <displayName>PLAY:3</displayName>\n
+ \ <zoneType>7</zoneType>\n <feature1>0x00000000</feature1>\n <feature2>0x00006332</feature2>\n
+ \ <feature3>0x0000002a</feature3>\n <internalSpeakerSize>4</internalSpeakerSize>\n
+ \ <serviceList>\n <service>\n <serviceType>urn:schemas-upnp-org:service:AlarmClock:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:AlarmClock</serviceId>\n <controlURL>/AlarmClock/Control</controlURL>\n
+ \ <eventSubURL>/AlarmClock/Event</eventSubURL>\n <SCPDURL>/xml/AlarmClock1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:MusicServices:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:MusicServices</serviceId>\n <controlURL>/MusicServices/Control</controlURL>\n
+ \ <eventSubURL>/MusicServices/Event</eventSubURL>\n <SCPDURL>/xml/MusicServices1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>\n <controlURL>/DeviceProperties/Control</controlURL>\n
+ \ <eventSubURL>/DeviceProperties/Event</eventSubURL>\n <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>\n <controlURL>/SystemProperties/Control</controlURL>\n
+ \ <eventSubURL>/SystemProperties/Event</eventSubURL>\n <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>\n
+ \ </service> \n <service>\n <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>\n
+ \ <controlURL>/ZoneGroupTopology/Control</controlURL>\n <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>\n
+ \ <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>\n </service> \n
+ \ <service>\n <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>\n <controlURL>/GroupManagement/Control</controlURL>\n
+ \ <eventSubURL>/GroupManagement/Event</eventSubURL>\n <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>\n
+ \ </service>\n </serviceList>\n <deviceList>\n <device>\n <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>\n
+ \ <friendlyName>10.0.1.11 - Sonos PLAY:3 Media Server</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Server</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n
+ \ <UDN>uuid:RINCON_000E58751A4A01400_MS</UDN>\n <serviceList>\n <service>\n
+ \ <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>\n
+ \ <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>\n <controlURL>/MediaServer/ContentDirectory/Control</controlURL>\n
+ \ <eventSubURL>/MediaServer/ContentDirectory/Event</eventSubURL>\n <SCPDURL>/xml/ContentDirectory1.xml</SCPDURL>\n
+ \ </service>\n <service>\n <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaServer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaServer/ConnectionManager/Event</eventSubURL>\n\t <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n </device>\n <device>\n\t<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>\n
+ \ <friendlyName>Bedroom - Sonos PLAY:3 Media Renderer</friendlyName>\n <manufacturer>Sonos,
+ Inc.</manufacturer>\n <manufacturerURL>http://www.sonos.com</manufacturerURL>\n
+ \ <modelNumber>S3</modelNumber>\n <modelDescription>Sonos PLAY:3 Media Renderer</modelDescription>\n
+ \ <modelName>Sonos PLAY:3</modelName>\n <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>\n\t<UDN>uuid:RINCON_000E58751A4A01400_MR</UDN>\n\t<serviceList>\n\t
+ \ <service>\n\t <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>\n\t <controlURL>/MediaRenderer/RenderingControl/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/RenderingControl/Event</eventSubURL>\n\t <SCPDURL>/xml/RenderingControl1.xml</SCPDURL>\n\t
+ \ </service>\n\t <service>\n\t <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>\n\t <controlURL>/MediaRenderer/ConnectionManager/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/ConnectionManager/Event</eventSubURL>\n\t
+ \ <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>\n\t </service>\n\t <service>\n\t
+ \ <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>\n\t
+ \ <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>\n\t <controlURL>/MediaRenderer/AVTransport/Control</controlURL>\n\t
+ \ <eventSubURL>/MediaRenderer/AVTransport/Event</eventSubURL>\n\t <SCPDURL>/xml/AVTransport1.xml</SCPDURL>\n\t
+ \ </service>\n\t</serviceList>\n <X_Rhapsody-Extension xmlns=\"http://www.real.com/rhapsody/xmlns/upnp-1-0\">\n
+ \ <deviceID>urn:rhapsody-real-com:device-id-1-0:sonos_1:RINCON_000E58751A4A01400</deviceID>\n
+ \ <deviceCapabilities>\n <interactionPattern type=\"real-rhapsody-upnp-1-0\"/>\n
+ \ </deviceCapabilities>\n </X_Rhapsody-Extension>\n <iconList>\n
+ \ <icon>\n <mimetype>image/png</mimetype>\n <width>48</width>\n
+ \ <height>48</height>\n <depth>24</depth>\n <url>/img/icon-S3.png</url>\n
+ \ </icon>\n </iconList>\n </device>\n </deviceList>\n
+ \ </device>\n</root>\n"
+ http_version: '1.1'
+ recorded_at: Thu, 03 Jan 2013 07:23:38 GMT
+recorded_with: VCR 2.3.0
View
163 test/data/device_description.xml
@@ -1,163 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<root xmlns="urn:schemas-upnp-org:device-1-0">
- <specVersion>
- <major>1</major>
- <minor>0</minor>
- </specVersion>
- <device>
- <deviceType>urn:schemas-upnp-org:device:ZonePlayer:1</deviceType>
- <friendlyName>192.168.1.95 - Sonos PLAY:3</friendlyName>
- <manufacturer>Sonos, Inc.</manufacturer>
- <manufacturerURL>http://www.sonos.com</manufacturerURL>
- <modelNumber>S3</modelNumber>
- <modelDescription>Sonos PLAY:3</modelDescription>
- <modelName>Sonos PLAY:3</modelName>
- <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>
- <softwareVersion>19.4-60120</softwareVersion>
- <hardwareVersion>1.8.1.2-1</hardwareVersion>
- <serialNum>00-0E-58-72-18-B2:D</serialNum>
- <UDN>uuid:RINCON_000E587218B201400</UDN>
- <iconList>
- <icon>
- <id>0</id>
- <mimetype>image/png</mimetype>
- <width>48</width>
- <height>48</height>
- <depth>24</depth>
- <url>/img/icon-S3.png</url>
- </icon>
- </iconList>
- <minCompatibleVersion>19.4-00000</minCompatibleVersion>
- <displayVersion>3.8.4</displayVersion>
- <extraVersion>OTP: </extraVersion>
- <roomName>Office</roomName>
- <displayName>PLAY:3</displayName>
- <zoneType>7</zoneType>
- <feature1>0x00000000</feature1>
- <feature2>0x00006332</feature2>
- <feature3>0x0000002a</feature3>
- <internalSpeakerSize>4</internalSpeakerSize>
- <serviceList>
- <service>
- <serviceType>urn:schemas-upnp-org:service:AlarmClock:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:AlarmClock</serviceId>
- <controlURL>/AlarmClock/Control</controlURL>
- <eventSubURL>/AlarmClock/Event</eventSubURL>
- <SCPDURL>/xml/AlarmClock1.xml</SCPDURL>
- </service>
- <service>
- <serviceType>urn:schemas-upnp-org:service:MusicServices:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:MusicServices</serviceId>
- <controlURL>/MusicServices/Control</controlURL>
- <eventSubURL>/MusicServices/Event</eventSubURL>
- <SCPDURL>/xml/MusicServices1.xml</SCPDURL>
- </service>
- <service>
- <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>
- <controlURL>/DeviceProperties/Control</controlURL>
- <eventSubURL>/DeviceProperties/Event</eventSubURL>
- <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>
- </service>
- <service>
- <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>
- <controlURL>/SystemProperties/Control</controlURL>
- <eventSubURL>/SystemProperties/Event</eventSubURL>
- <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>
- </service>
- <service>
- <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>
- <controlURL>/ZoneGroupTopology/Control</controlURL>
- <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>
- <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>
- </service>
- <service>
- <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>
- <controlURL>/GroupManagement/Control</controlURL>
- <eventSubURL>/GroupManagement/Event</eventSubURL>
- <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>
- </service>
- </serviceList>
- <deviceList>
- <device>
- <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
- <friendlyName>192.168.1.95 - Sonos PLAY:3 Media Server</friendlyName>
- <manufacturer>Sonos, Inc.</manufacturer>
- <manufacturerURL>http://www.sonos.com</manufacturerURL>
- <modelNumber>S3</modelNumber>
- <modelDescription>Sonos PLAY:3 Media Server</modelDescription>
- <modelName>Sonos PLAY:3</modelName>
- <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>
- <UDN>uuid:RINCON_000E587218B201400_MS</UDN>
- <serviceList>
- <service>
- <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>
- <controlURL>/MediaServer/ContentDirectory/Control</controlURL>
- <eventSubURL>/MediaServer/ContentDirectory/Event</eventSubURL>
- <SCPDURL>/xml/ContentDirectory1.xml</SCPDURL>
- </service>
- <service>
- <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
- <controlURL>/MediaServer/ConnectionManager/Control</controlURL>
- <eventSubURL>/MediaServer/ConnectionManager/Event</eventSubURL>
- <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>
- </service>
- </serviceList>
- </device>
- <device>
- <deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
- <friendlyName>Office - Sonos PLAY:3 Media Renderer</friendlyName>
- <manufacturer>Sonos, Inc.</manufacturer>
- <manufacturerURL>http://www.sonos.com</manufacturerURL>
- <modelNumber>S3</modelNumber>
- <modelDescription>Sonos PLAY:3 Media Renderer</modelDescription>
- <modelName>Sonos PLAY:3</modelName>
- <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>
- <UDN>uuid:RINCON_000E587218B201400_MR</UDN>
- <serviceList>
- <service>
- <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
- <controlURL>/MediaRenderer/RenderingControl/Control</controlURL>
- <eventSubURL>/MediaRenderer/RenderingControl/Event</eventSubURL>
- <SCPDURL>/xml/RenderingControl1.xml</SCPDURL>
- </service>
- <service>
- <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
- <controlURL>/MediaRenderer/ConnectionManager/Control</controlURL>
- <eventSubURL>/MediaRenderer/ConnectionManager/Event</eventSubURL>
- <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>
- </service>
- <service>
- <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
- <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
- <controlURL>/MediaRenderer/AVTransport/Control</controlURL>
- <eventSubURL>/MediaRenderer/AVTransport/Event</eventSubURL>
- <SCPDURL>/xml/AVTransport1.xml</SCPDURL>
- </service>
- </serviceList>
- <X_Rhapsody-Extension xmlns="http://www.real.com/rhapsody/xmlns/upnp-1-0">
- <deviceID>urn:rhapsody-real-com:device-id-1-0:sonos_1:RINCON_000E587218B201400</deviceID>
- <deviceCapabilities>
- <interactionPattern type="real-rhapsody-upnp-1-0"/>
- </deviceCapabilities>
- </X_Rhapsody-Extension>
- <iconList>
- <icon>
- <mimetype>image/png</mimetype>
- <width>48</width>
- <height>48</height>
- <depth>24</depth>
- <url>/img/icon-S3.png</url>
- </icon>
- </iconList>
- </device>
- </deviceList>
- </device>
-</root>
View
4 test/support/vcr.rb
@@ -0,0 +1,4 @@
+VCR.configure do |c|
+ c.cassette_library_dir = 'test/cassettes'
+ c.hook_into :fakeweb
+end
View
13 test/test_helper.rb
@@ -0,0 +1,13 @@
+require 'rubygems'
+require 'bundler'
+Bundler.require :test
+require 'minitest/autorun'
+require 'sonos'
+
+# Support files
+Dir["#{File.expand_path(File.dirname(__FILE__))}/support/*.rb"].each do |file|
+ require file
+end
+
+class SonosTest < MiniTest::Unit::TestCase
+end
View
10 test/units/system_test.rb
@@ -0,0 +1,10 @@
+require 'test_helper'
+
+class SystemTest < SonosTest
+ def test_group_detection
+ VCR.use_cassette('topology') do
+ system = Sonos.system
+ assert_equal 1, system.groups.length
+ end
+ end
+end

0 comments on commit 4f7d8ea

Please sign in to comment.