60 lines
1.7 KiB
Ruby
60 lines
1.7 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe IcecastRelay do
|
|
|
|
let(:relay) { IcecastRelay.new }
|
|
let(:output){ StringIO.new }
|
|
let(:builder) { ::Builder::XmlMarkup.new(:target => output, :indent => 1) }
|
|
|
|
|
|
it "should not save" do
|
|
relay.save.should be false
|
|
relay.errors[:mount].should == ["can't be blank"]
|
|
relay.errors[:server].should == ["can't be blank"]
|
|
end
|
|
|
|
it "save" do
|
|
relay.mount = Faker::Lorem.characters(number: 10)
|
|
relay.server = Faker::Lorem.characters(number: 10)
|
|
relay.relay_shoutcast_metadata = false
|
|
relay.save!
|
|
|
|
relay.dumpXml(builder)
|
|
|
|
output.rewind
|
|
xml = Nokogiri::XML(output)
|
|
xml.css('relay port').text.should == relay.port.to_s
|
|
xml.css('relay mount').text.should == relay.mount
|
|
xml.css('relay server').text.should == relay.server
|
|
xml.css('relay local-mount').length.should == 0
|
|
xml.css('relay username').length.should == 0
|
|
xml.css('relay password').length.should == 0
|
|
xml.css('relay relay-shoutcast-metadata').text.should == "0"
|
|
xml.css('relay on-demand').text.should == "1"
|
|
end
|
|
|
|
describe "poke configs" do
|
|
let(:server) { a = FactoryBot.create(:icecast_server_with_overrides); a.config_updated; IcecastServer.find(a.id) }
|
|
|
|
before(:each) do
|
|
relay = FactoryBot.build(:icecast_relay, server: '127.0.0.1')
|
|
relay.save!
|
|
JamRuby::IcecastServerRelay.create!(server: server, relay: relay)
|
|
server.save!
|
|
server.config_updated
|
|
server.reload
|
|
end
|
|
|
|
it "success via server" do
|
|
server.relays.first.save!
|
|
server.reload
|
|
server.config_changed.should == 1
|
|
end
|
|
|
|
it "delete via server" do
|
|
server.relays.first.destroy
|
|
server.reload
|
|
server.config_changed.should == 1
|
|
end
|
|
end
|
|
end |