62 lines
2.4 KiB
Ruby
62 lines
2.4 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe IcecastUserAuthentication do
|
|
|
|
let(:auth) { IcecastUserAuthentication.new }
|
|
let(:output) { StringIO.new }
|
|
let(:builder) { ::Builder::XmlMarkup.new(:target => output, :indent => 1) }
|
|
|
|
it "save error" do
|
|
auth.save.should be_false
|
|
auth.errors[:mount_add].should == ["can't be blank"]
|
|
auth.errors[:mount_remove].should == ["can't be blank"]
|
|
auth.errors[:listener_add].should == ["can't be blank"]
|
|
auth.errors[:listener_remove].should == ["can't be blank"]
|
|
#auth.errors[:unused_username].should == ["is too short (minimum is 5 characters)"]
|
|
#auth.errors[:unused_pass].should == ["is too short (minimum is 5 characters)"]
|
|
end
|
|
|
|
it "save" do
|
|
auth.mount_add = Faker::Lorem.characters(10)
|
|
auth.mount_remove = Faker::Lorem.characters(10)
|
|
auth.listener_add = Faker::Lorem.characters(10)
|
|
auth.listener_remove = Faker::Lorem.characters(10)
|
|
auth.unused_username = Faker::Lorem.characters(10)
|
|
auth.unused_pass = Faker::Lorem.characters(10)
|
|
|
|
auth.save!
|
|
|
|
auth.dumpXml(builder)
|
|
|
|
output.rewind
|
|
|
|
xml = Nokogiri::XML(output)
|
|
xml.css('authentication')[0]["type"].should == auth.authentication_type
|
|
xml.css('authentication option[name="mount_add"]')[0]["value"].should == auth.mount_add
|
|
xml.css('authentication option[name="mount_remove"]')[0]["value"].should == auth.mount_remove
|
|
xml.css('authentication option[name="listener_add"]')[0]["value"].should == auth.listener_add
|
|
xml.css('authentication option[name="listener_remove"]')[0]["value"].should == auth.listener_remove
|
|
xml.css('authentication option[name="username"]')[0]["value"].should == auth.unused_username
|
|
xml.css('authentication option[name="password"]')[0]["value"].should == auth.unused_pass
|
|
xml.css('authentication option[name="auth_header"]')[0]["value"].should == auth.auth_header
|
|
xml.css('authentication option[name="timelimit_header"]')[0]["value"].should == auth.timelimit_header
|
|
end
|
|
|
|
describe "poke configs" do
|
|
let(:server) { a = FactoryGirl.create(:icecast_server_with_overrides); a.config_updated; IcecastServer.find(a.id) }
|
|
|
|
before(:each) do
|
|
server.mounts << FactoryGirl.create(:icecast_mount_with_auth)
|
|
server.save!
|
|
server.config_updated
|
|
server.reload
|
|
end
|
|
|
|
it "success via server" do
|
|
server.mounts.first.authentication.save!
|
|
server.reload
|
|
server.config_changed.should == 1
|
|
end
|
|
end
|
|
end
|