#!/usr/bin/ruby $:.unshift File::dirname(__FILE__) + '/../../lib' require 'test/unit' require File::dirname(__FILE__) + '/../lib/clienttester' require 'xmpp4r' require 'xmpp4r/tune/helper/helper' require 'xmpp4r/tune/tune' include Jabber #Jabber::debug=true class UserTune::HelperTest < Test::Unit::TestCase include ClientTester ## # Test sending 'now playing' notifications # # See http://www.xmpp.org/extensions/xep-0118.html#protocol-transport, # example 1 def test_send_now_playing artist = 'Mike Flowers Pops' title = 'Light My Fire' tune_to_send = UserTune::Tune.new(artist, title) h = UserTune::Helper.new(@client, nil) assert_kind_of(UserTune::Helper, h) state { |now_playing| assert_kind_of(Jabber::Iq, now_playing) assert_equal :set, now_playing.type assert_kind_of(Jabber::PubSub::IqPubSub,now_playing.first_element('pubsub')) assert_equal(Jabber::UserTune::NS_USERTUNE,now_playing.first_element('pubsub').first_element('publish').node) tune=now_playing.first_element('pubsub').first_element('publish').first_element('item').first_element('tune') assert_kind_of Jabber::UserTune::Tune,tune assert_equal true, tune.playing? assert_equal artist,tune.artist assert_equal title,tune.title assert_equal nil,tune.length assert_equal nil,tune.track assert_equal nil,tune.source assert_equal nil,tune.uri send("") } h.now_playing(tune_to_send) wait_state end def test_send_stop_playing h = UserTune::Helper.new(@client, nil) state { |now_playing| tune = now_playing.first_element('pubsub').first_element('publish').first_element('item').first_element('tune') assert_kind_of Jabber::UserTune::Tune, tune assert_equal false, tune.playing? assert_equal nil, tune.artist assert_equal nil, tune.title assert_equal nil,tune.length assert_equal nil,tune.track assert_equal nil,tune.source assert_equal nil,tune.uri send("") } h.stop_playing wait_state end end