diff options
20 files changed, 277 insertions, 15 deletions
| diff --git a/protocols/skype/skype.c b/protocols/skype/skype.c index 57855ad0..8f0d9b1c 100644 --- a/protocols/skype/skype.c +++ b/protocols/skype/skype.c @@ -979,8 +979,8 @@ static void skype_parse_chat(struct im_connection *ic, char *line)  			g_free(sd->adder);  			sd->adder = NULL;  		} -	} else if (!strncmp(info, "ACTIVEMEMBERS ", 14)) { -		info += 14; +	} else if (!strncmp(info, "MEMBERS ", 8)) { +		info += 8;  		gc = bee_chat_by_title(ic->bee, ic, id);  		/* Hack! We set ->data to TRUE  		 * while we're on the channel diff --git a/protocols/skype/t/add-no-bitlbee.mock b/protocols/skype/t/add-no-bitlbee.mock new file mode 100644 index 00000000..d7a70c66 --- /dev/null +++ b/protocols/skype/t/add-no-bitlbee.mock @@ -0,0 +1,9 @@ +>> NOTICE AUTH +<< NICK alice +<< USER alice alice localhost :Alice +>> PRIVMSG &bitlbee +<< PRIVMSG &bitlbee :account add skype alice foo +<< PRIVMSG &bitlbee :account skype on +>> PRIVMSG &bitlbee :skype - New request: The user bob wants to add you +<< PRIVMSG &bitlbee :no +>> PRIVMSG &bitlbee :skype - Rejected diff --git a/protocols/skype/t/add-no-skyped.mock b/protocols/skype/t/add-no-skyped.mock new file mode 100644 index 00000000..f7283cbc --- /dev/null +++ b/protocols/skype/t/add-no-skyped.mock @@ -0,0 +1,13 @@ +>> SEARCH GROUPS CUSTOM +<< GROUPS 48, 49 +>> SEARCH FRIENDS +<< USERS echo123 +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> GET USER echo123 ONLINESTATUS +<< USER echo123 ONLINESTATUS ONLINE +<< USER bob RECEIVEDAUTHREQUEST Please allow me to see when you are online +>> SET USER bob ISAUTHORIZED FALSE +<< USER bob ISAUTHORIZED FALSE diff --git a/protocols/skype/t/add-yes-bitlbee.mock b/protocols/skype/t/add-yes-bitlbee.mock new file mode 100644 index 00000000..df068f89 --- /dev/null +++ b/protocols/skype/t/add-yes-bitlbee.mock @@ -0,0 +1,9 @@ +>> NOTICE AUTH +<< NICK alice +<< USER alice alice localhost :Alice +>> PRIVMSG &bitlbee +<< PRIVMSG &bitlbee :account add skype alice foo +<< PRIVMSG &bitlbee :account skype on +>> PRIVMSG &bitlbee :skype - New request: The user bob wants to add you +<< PRIVMSG &bitlbee :yes +>> :bob!bob@skype.com JOIN :&bitlbee diff --git a/protocols/skype/t/add-yes-skyped.mock b/protocols/skype/t/add-yes-skyped.mock new file mode 100644 index 00000000..e22beb97 --- /dev/null +++ b/protocols/skype/t/add-yes-skyped.mock @@ -0,0 +1,23 @@ +>> SEARCH GROUPS CUSTOM +<< GROUPS 48, 49 +>> SEARCH FRIENDS +<< USERS echo123 +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> GET USER echo123 ONLINESTATUS +<< USER echo123 ONLINESTATUS ONLINE +<< USER bob RECEIVEDAUTHREQUEST Please allow me to see when you are online +>> SET USER bob ISAUTHORIZED TRUE +<< USER bob ISAUTHORIZED TRUE +<< USER bob RECEIVEDAUTHREQUEST  +<< USER bob ISAUTHORIZED TRUE +<< USER bob ISBLOCKED FALSE +<< USER bob BUDDYSTATUS 3 +<< USER bob ONLINESTATUS OFFLINE +<< USER bob ONLINESTATUS ONLINE +<< USER bob TIMEZONE 90000 +<< USER bob FULLNAME Miklos V +<< USER bob LANGUAGE hu Hungarian +<< USER bob COUNTRY hu Hungary diff --git a/protocols/skype/t/call-failed-bitlbee.mock b/protocols/skype/t/call-failed-bitlbee.mock new file mode 100644 index 00000000..aae1d99a --- /dev/null +++ b/protocols/skype/t/call-failed-bitlbee.mock @@ -0,0 +1,9 @@ +>> NOTICE AUTH +<< NICK alice +<< USER alice alice localhost :alice +>> PRIVMSG &bitlbee +<< PRIVMSG &bitlbee :account add skype alice foo +<< PRIVMSG &bitlbee :account skype on +>> PRIVMSG &bitlbee :skype - Logging in: Logged in +<< PRIVMSG bob :CALL +>> PRIVMSG &bitlbee :skype - Error: Call failed: User is offline diff --git a/protocols/skype/t/call-failed-skyped.mock b/protocols/skype/t/call-failed-skyped.mock new file mode 100644 index 00000000..8f6f6007 --- /dev/null +++ b/protocols/skype/t/call-failed-skyped.mock @@ -0,0 +1,17 @@ +>> SEARCH GROUPS CUSTOM +<< GROUPS 48, 49 +>> SEARCH FRIENDS +<< USERS echo123, bob +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> GET USER echo123 ONLINESTATUS +<< USER echo123 ONLINESTATUS ONLINE +>> GET USER bob ONLINESTATUS +<< USER bob ONLINESTATUS OFFLINE +>> CALL bob +<< CALL 216 STATUS UNPLACED +<< CALL 216 STATUS ROUTING +<< CALL 216 FAILUREREASON 3 +<< CALL 216 STATUS FAILED diff --git a/protocols/skype/t/call-skyped.mock b/protocols/skype/t/call-skyped.mock index 16e28ee2..c166af96 100644 --- a/protocols/skype/t/call-skyped.mock +++ b/protocols/skype/t/call-skyped.mock @@ -1,7 +1,7 @@  >> SEARCH GROUPS CUSTOM  << GROUPS 48, 49  >> SEARCH FRIENDS -<< USERS echo123, bob, bitlbee-skype +<< USERS echo123, bob  >> SET USERSTATUS ONLINE  << USERSTATUS ONLINE  >> SET USERSTATUS ONLINE @@ -10,8 +10,6 @@  << USER echo123 ONLINESTATUS OFFLINE  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE ->> GET USER bitlbee-skype ONLINESTATUS -<< USER bitlbee-skype ONLINESTATUS OFFLINE  >> CALL bob  << CALL 178 STATUS UNPLACED  << CALL 178 STATUS ROUTING diff --git a/protocols/skype/t/called-no-bitlbee.mock b/protocols/skype/t/called-no-bitlbee.mock new file mode 100644 index 00000000..c69a0c8b --- /dev/null +++ b/protocols/skype/t/called-no-bitlbee.mock @@ -0,0 +1,10 @@ +>> NOTICE AUTH +<< NICK alice +<< USER alice alice localhost :Alice +>> PRIVMSG &bitlbee +<< PRIVMSG &bitlbee :account add skype alice foo +<< PRIVMSG &bitlbee :account skype on +>> PRIVMSG &bitlbee :skype - New request: The user bob is currently ringing you. +<< PRIVMSG &bitlbee :no +>> PRIVMSG &bitlbee :skype - Rejected: The user bob is currently ringing you. +>> PRIVMSG &bitlbee :skype - You refused the call from user bob. diff --git a/protocols/skype/t/called-no-skyped.mock b/protocols/skype/t/called-no-skyped.mock new file mode 100644 index 00000000..6e90e5b9 --- /dev/null +++ b/protocols/skype/t/called-no-skyped.mock @@ -0,0 +1,20 @@ +>> SEARCH GROUPS CUSTOM +<< GROUPS 48, 49 +>> SEARCH FRIENDS +<< USERS echo123, bob +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> GET USER echo123 ONLINESTATUS +<< USER echo123 ONLINESTATUS ONLINE +>> GET USER bob ONLINESTATUS +<< USER bob ONLINESTATUS ONLINE +<< CALL 212 CONF_ID 0 +<< CALL 212 STATUS RINGING +>> GET CALL 212 PARTNER_HANDLE +<< CALL 212 PARTNER_HANDLE bob +>> SET CALL 212 STATUS FINISHED +<< CALL 212 STATUS REFUSED +>> GET CALL 212 PARTNER_HANDLE +<< CALL 212 PARTNER_HANDLE bob diff --git a/protocols/skype/t/called-yes-bitlbee.mock b/protocols/skype/t/called-yes-bitlbee.mock new file mode 100644 index 00000000..47c54799 --- /dev/null +++ b/protocols/skype/t/called-yes-bitlbee.mock @@ -0,0 +1,9 @@ +>> NOTICE AUTH +<< NICK alice +<< USER alice alice localhost :Alice +>> PRIVMSG &bitlbee +<< PRIVMSG &bitlbee :account add skype alice foo +<< PRIVMSG &bitlbee :account skype on +>> PRIVMSG &bitlbee :skype - New request: The user bob is currently ringing you. +<< PRIVMSG &bitlbee :yes +>> PRIVMSG &bitlbee :skype - Accepted: The user bob is currently ringing you. diff --git a/protocols/skype/t/called-yes-skyped.mock b/protocols/skype/t/called-yes-skyped.mock new file mode 100644 index 00000000..08c78275 --- /dev/null +++ b/protocols/skype/t/called-yes-skyped.mock @@ -0,0 +1,18 @@ +>> SEARCH GROUPS CUSTOM +<< GROUPS 48, 49 +>> SEARCH FRIENDS +<< USERS echo123, bob +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> GET USER echo123 ONLINESTATUS +<< USER echo123 ONLINESTATUS ONLINE +>> GET USER bob ONLINESTATUS +<< USER bob ONLINESTATUS ONLINE +<< CALL 208 CONF_ID 0 +<< CALL 208 STATUS RINGING +>> GET CALL 208 PARTNER_HANDLE +<< CALL 208 PARTNER_HANDLE bob +>> SET CALL 208 STATUS INPROGRESS +<< CALL 208 STATUS INPROGRESS diff --git a/protocols/skype/t/groupchat-invite-bitlbee.mock b/protocols/skype/t/groupchat-invite-bitlbee.mock new file mode 100644 index 00000000..49e3716f --- /dev/null +++ b/protocols/skype/t/groupchat-invite-bitlbee.mock @@ -0,0 +1,10 @@ +>> NOTICE AUTH +<< NICK alice +<< USER alice alice localhost :Alice +>> PRIVMSG &bitlbee +<< PRIVMSG &bitlbee :account add skype alice foo +<< PRIVMSG &bitlbee :account skype on +<< PRIVMSG &bitlbee :chat with bob +>> 353 alice = ##alice/$bob;a7ab206ec780 :@alice bob @root +<< INVITE cecil ##alice/$bob;a7ab206ec780 +>> cecil@skype.com JOIN :##alice/$bob;a7ab206ec780 diff --git a/protocols/skype/t/groupchat-invite-skyped.mock b/protocols/skype/t/groupchat-invite-skyped.mock new file mode 100644 index 00000000..0f30a28e --- /dev/null +++ b/protocols/skype/t/groupchat-invite-skyped.mock @@ -0,0 +1,42 @@ +>> SEARCH GROUPS CUSTOM +<< GROUPS 48, 49 +>> SEARCH FRIENDS +<< USERS echo123, bob, cecil +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> GET USER echo123 ONLINESTATUS +<< USER echo123 ONLINESTATUS ONLINE +>> GET USER bob ONLINESTATUS +<< USER bob ONLINESTATUS ONLINE +>> GET USER cecil ONLINESTATUS +<< USER cecil ONLINESTATUS ONLINE +>> CHAT CREATE bob +<< CHAT #alice/$bob;a7ab206ec78060f1 STATUS DIALOG +>> GET CHAT #alice/$bob;a7ab206ec78060f1 ADDER +<< CHAT #alice/$bob;a7ab206ec78060f1 ADDER  +<< CHAT #alice/$bob;a7ab206ec78060f1 NAME #alice/$bob;a7ab206ec78060f1 +>> GET CHAT #alice/$bob;a7ab206ec78060f1 TOPIC +<< CHAT #alice/$bob;a7ab206ec78060f1 TOPIC  +<< CHATMESSAGE 206 STATUS SENDING +<< CHAT #alice/$bob;a7ab206ec78060f1 STATUS DIALOG +<< CHATMEMBER 204 ROLE USER +<< CHAT #alice/$bob;a7ab206ec78060f1 MYROLE USER +<< CHAT #alice/$bob;a7ab206ec78060f1 MEMBERS bob alice +<< CHAT #alice/$bob;a7ab206ec78060f1 ACTIVEMEMBERS alice +<< CHAT #alice/$bob;a7ab206ec78060f1 STATUS DIALOG +<< CHAT #alice/$bob;a7ab206ec78060f1 TIMESTAMP 1358344213 +<< CHAT #alice/$bob;a7ab206ec78060f1 DIALOG_PARTNER bob +<< CHAT #alice/$bob;a7ab206ec78060f1 MEMBERS bob alice +<< CHAT #alice/$bob;a7ab206ec78060f1 FRIENDLYNAME bob +>> ALTER CHAT #alice/$bob;a7ab206ec78060f1 ADDMEMBERS cecil +<< ALTER CHAT ADDMEMBERS +<< CHAT #alice/$bob;a7ab206ec78060f1 STATUS MULTI_SUBSCRIBED +<< CHAT #alice/$bob;a7ab206ec78060f1 MEMBERS bob cecil alice +>> GET CHAT #alice/$bob;a7ab206ec78060f1 ADDER +<< CHAT #alice/$bob;a7ab206ec78060f1 ADDER  +<< CHAT #alice/$bob;a7ab206ec78060f1 FRIENDLYNAME bob, cecil +>> GET CHAT #alice/$bob;a7ab206ec78060f1 TOPIC +<< CHAT #alice/$bob;a7ab206ec78060f1 TOPIC  +<< CHATMESSAGE 210 STATUS SENDING diff --git a/protocols/skype/t/groupchat-invited-bitlbee.mock b/protocols/skype/t/groupchat-invited-bitlbee.mock new file mode 100644 index 00000000..f63b7d5c --- /dev/null +++ b/protocols/skype/t/groupchat-invited-bitlbee.mock @@ -0,0 +1,8 @@ +>> NOTICE AUTH +<< NICK alice +<< USER alice alice localhost :Alice +>> PRIVMSG &bitlbee +<< PRIVMSG &bitlbee :account add skype alice foo +<< PRIVMSG &bitlbee :account skype on +>> JOIN :##cecil/$bob;4d8cc9965791 +>> 353 alice = ##cecil/$bob;4d8cc9965791 :@alice bob cecil @root diff --git a/protocols/skype/t/groupchat-invited-skyped.mock b/protocols/skype/t/groupchat-invited-skyped.mock new file mode 100644 index 00000000..7da3be74 --- /dev/null +++ b/protocols/skype/t/groupchat-invited-skyped.mock @@ -0,0 +1,52 @@ +>> SEARCH GROUPS CUSTOM +<< GROUPS 48, 49 +>> SEARCH FRIENDS +<< USERS echo123, bob, cecil +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> SET USERSTATUS ONLINE +<< USERSTATUS ONLINE +>> GET USER echo123 ONLINESTATUS +<< USER echo123 ONLINESTATUS ONLINE +>> GET USER bob ONLINESTATUS +<< USER bob ONLINESTATUS OFFLINE +>> GET USER cecil ONLINESTATUS +<< USER cecil ONLINESTATUS OFFLINE +<< CHAT #cecil/$bob;4d8cc9965791c6b9 NAME #cecil/$bob;4d8cc9965791c6b9 +<< CHAT #cecil/$bob;4d8cc9965791c6b9 STATUS MULTI_SUBSCRIBED +<< CHAT #cecil/$bob;4d8cc9965791c6b9 STATUS MULTI_SUBSCRIBED +<< CHATMEMBER 186 ROLE USER +<< CHAT #cecil/$bob;4d8cc9965791c6b9 MYROLE USER +<< CHAT #cecil/$bob;4d8cc9965791c6b9 MEMBERS bob cecil alice +<< CHAT #cecil/$bob;4d8cc9965791c6b9 FRIENDLYNAME bob, cecil +<< CHAT #cecil/$bob;4d8cc9965791c6b9 ACTIVEMEMBERS bob alice +<< CHAT #cecil/$bob;4d8cc9965791c6b9 TIMESTAMP 1358276196 +<< CHAT #cecil/$bob;4d8cc9965791c6b9 ADDER bob +<< CHAT #cecil/$bob;4d8cc9965791c6b9 TOPIC  +<< CHAT #cecil/$bob;4d8cc9965791c6b9 STATUS MULTI_SUBSCRIBED +<< CHATMESSAGE 188 STATUS RECEIVED +>> GET CHAT #cecil/$bob;4d8cc9965791c6b9 ADDER +<< CHAT #cecil/$bob;4d8cc9965791c6b9 ADDER bob +>> GET CHAT #cecil/$bob;4d8cc9965791c6b9 TOPIC +<< CHAT #cecil/$bob;4d8cc9965791c6b9 TOPIC  +>> GET CHAT #cecil/$bob;4d8cc9965791c6b9 ADDER +<< CHAT #cecil/$bob;4d8cc9965791c6b9 ADDER bob +>> GET CHAT #cecil/$bob;4d8cc9965791c6b9 TOPIC +<< CHAT #cecil/$bob;4d8cc9965791c6b9 TOPIC  +>> GET CHAT #cecil/$bob;4d8cc9965791c6b9 ADDER +<< CHAT #cecil/$bob;4d8cc9965791c6b9 ADDER bob +>> GET CHAT #cecil/$bob;4d8cc9965791c6b9 TOPIC +<< CHAT #cecil/$bob;4d8cc9965791c6b9 TOPIC  +>> GET CHATMESSAGE 188 FROM_HANDLE +<< CHATMESSAGE 188 FROM_HANDLE bob +>> GET CHATMESSAGE 188 BODY +<< CHATMESSAGE 188 BODY  +>> GET CHATMESSAGE 188 TYPE +<< CHATMESSAGE 188 TYPE ADDEDMEMBERS +>> GET CHATMESSAGE 188 CHATNAME +<< CHATMESSAGE 188 CHATNAME #cecil/$bob;4d8cc9965791c6b9 +<< CHATMESSAGE 189 STATUS READ +<< CHATMESSAGE 189 STATUS READ +<< CHATMEMBER 186 IS_ACTIVE TRUE +<< CHAT #cecil/$bob;4d8cc9965791c6b9 ACTIVEMEMBERS bob cecil alice +<< CHATMESSAGE 190 STATUS SENT diff --git a/protocols/skype/t/info-skyped.mock b/protocols/skype/t/info-skyped.mock index 217a2b23..9b4ffda7 100644 --- a/protocols/skype/t/info-skyped.mock +++ b/protocols/skype/t/info-skyped.mock @@ -1,7 +1,7 @@  >> SEARCH GROUPS CUSTOM  << GROUPS 48, 49  >> SEARCH FRIENDS -<< USERS echo123, bob, bitlbee-skype +<< USERS echo123, bob  >> SET USERSTATUS ONLINE  << USERSTATUS ONLINE  >> SET USERSTATUS ONLINE @@ -10,8 +10,6 @@  << USER echo123 ONLINESTATUS ONLINE  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE ->> GET USER bitlbee-skype ONLINESTATUS -<< USER bitlbee-skype ONLINESTATUS OFFLINE  >> GET USER bob FULLNAME  << USER bob FULLNAME Bob  >> GET USER bob PHONE_HOME diff --git a/protocols/skype/t/login-skyped.mock b/protocols/skype/t/login-skyped.mock index 91c387d3..322c7c6b 100644 --- a/protocols/skype/t/login-skyped.mock +++ b/protocols/skype/t/login-skyped.mock @@ -1,7 +1,7 @@  >> SEARCH GROUPS CUSTOM  << GROUPS 48, 49  >> SEARCH FRIENDS -<< USERS echo123, bob, bitlbee-skype +<< USERS echo123, bob  >> SET USERSTATUS ONLINE  << USERSTATUS ONLINE  >> SET USERSTATUS ONLINE @@ -10,5 +10,3 @@  << USER echo123 ONLINESTATUS ONLINE  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE ->> GET USER bitlbee-skype ONLINESTATUS -<< USER bitlbee-skype ONLINESTATUS OFFLINE diff --git a/protocols/skype/t/msg-skyped.mock b/protocols/skype/t/msg-skyped.mock index 2e3308b1..1a49566e 100644 --- a/protocols/skype/t/msg-skyped.mock +++ b/protocols/skype/t/msg-skyped.mock @@ -1,7 +1,7 @@  >> SEARCH GROUPS CUSTOM  << GROUPS 48, 49  >> SEARCH FRIENDS -<< USERS echo123, bob, bitlbee-skype +<< USERS echo123, bob  >> SET USERSTATUS ONLINE  << USERSTATUS ONLINE  >> SET USERSTATUS ONLINE @@ -10,8 +10,6 @@  << USER echo123 ONLINESTATUS ONLINE  >> GET USER bob ONLINESTATUS  << USER bob ONLINESTATUS ONLINE ->> GET USER bitlbee-skype ONLINESTATUS -<< USER bitlbee-skype ONLINESTATUS OFFLINE  >> MESSAGE bob foo  << CHATMESSAGE 290 STATUS SENDING  << CHAT #alice/$bob;ea753190f0a3e49b NAME #alice/$bob;ea753190f0a3e49b diff --git a/protocols/skype/test.py b/protocols/skype/test.py index 99883747..3c35a5c0 100755 --- a/protocols/skype/test.py +++ b/protocols/skype/test.py @@ -27,7 +27,7 @@ class Test(unittest.TestCase):  			for i in bitlbee_mock.readlines():  				line = i.strip()  				if line.startswith(">> "): -					bitlbee.expect(line[3:], timeout=10) +					bitlbee.expect_exact(line[3:], timeout=10)  				elif line.startswith("<< "):  					bitlbee.sendline(line[3:])  			bitlbee_mock.close() @@ -74,6 +74,27 @@ class Test(unittest.TestCase):  	def testCall(self):  		self.mock("call") +	 +	def testCallFailed(self): +		self.mock("call-failed") +	 +	def testAddYes(self): +		self.mock("add-yes") + +	def testAddNo(self): +		self.mock("add-no") + +	def testGroupchatInvited(self): +		self.mock("groupchat-invited") + +	def testGroupchatInvite(self): +		self.mock("groupchat-invite") +	 +	def testCalledYes(self): +		self.mock("called-yes") + +	def testCalledNo(self): +		self.mock("called-no")  if __name__ == '__main__':  	unittest.main() | 
