| 48 |
48 |
| 49 return G_SOURCE_REMOVE; |
49 return G_SOURCE_REMOVE; |
| 50 } |
50 } |
| 51 |
51 |
| 52 /****************************************************************************** |
52 /****************************************************************************** |
| |
53 * TestProtocolRosterEmpty implementation |
| |
54 *****************************************************************************/ |
| |
55 G_DECLARE_FINAL_TYPE(TestPurpleProtocolRosterEmpty, |
| |
56 test_purple_protocol_roster_empty, |
| |
57 TEST_PURPLE, PROTOCOL_ROSTER_EMPTY, PurpleProtocol) |
| |
58 |
| |
59 struct _TestPurpleProtocolRosterEmpty { |
| |
60 PurpleProtocol parent; |
| |
61 }; |
| |
62 |
| |
63 static void |
| |
64 test_purple_protocol_roster_empty_iface_init(G_GNUC_UNUSED PurpleProtocolRosterInterface *iface) |
| |
65 { |
| |
66 } |
| |
67 |
| |
68 G_DEFINE_TYPE_WITH_CODE(TestPurpleProtocolRosterEmpty, |
| |
69 test_purple_protocol_roster_empty, |
| |
70 PURPLE_TYPE_PROTOCOL, |
| |
71 G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_ROSTER, |
| |
72 test_purple_protocol_roster_empty_iface_init)) |
| |
73 |
| |
74 static void |
| |
75 test_purple_protocol_roster_empty_init(G_GNUC_UNUSED TestPurpleProtocolRosterEmpty *empty) |
| |
76 { |
| |
77 } |
| |
78 |
| |
79 static void |
| |
80 test_purple_protocol_roster_empty_class_init(G_GNUC_UNUSED TestPurpleProtocolRosterEmptyClass *klass) |
| |
81 { |
| |
82 } |
| |
83 |
| |
84 /****************************************************************************** |
| |
85 * TestProtocolRosterEmpty Tests |
| |
86 *****************************************************************************/ |
| |
87 static void |
| |
88 test_purple_protocol_roster_empty_add(void) { |
| |
89 if(g_test_subprocess()) { |
| |
90 PurpleAccount *account = NULL; |
| |
91 PurpleContact *contact = NULL; |
| |
92 PurpleProtocolRoster *roster = NULL; |
| |
93 |
| |
94 roster = g_object_new(test_purple_protocol_roster_empty_get_type(), |
| |
95 NULL); |
| |
96 |
| |
97 account = purple_account_new("test", "test"); |
| |
98 contact = purple_contact_new(account, NULL); |
| |
99 g_clear_object(&account); |
| |
100 |
| |
101 purple_protocol_roster_add_async(roster, contact, NULL, NULL, NULL); |
| |
102 |
| |
103 g_clear_object(&roster); |
| |
104 g_clear_object(&contact); |
| |
105 } |
| |
106 |
| |
107 g_test_trap_subprocess(NULL, 0, 0); |
| |
108 g_test_trap_assert_stderr("*Purple-WARNING*TestPurpleProtocolRosterEmpty*add_async*"); |
| |
109 } |
| |
110 |
| |
111 static void |
| |
112 test_purple_protocol_roster_empty_update(void) { |
| |
113 if(g_test_subprocess()) { |
| |
114 PurpleAccount *account = NULL; |
| |
115 PurpleContact *contact = NULL; |
| |
116 PurpleProtocolRoster *roster = NULL; |
| |
117 |
| |
118 roster = g_object_new(test_purple_protocol_roster_empty_get_type(), |
| |
119 NULL); |
| |
120 |
| |
121 account = purple_account_new("test", "test"); |
| |
122 contact = purple_contact_new(account, NULL); |
| |
123 g_clear_object(&account); |
| |
124 |
| |
125 purple_protocol_roster_update_async(roster, contact, NULL, NULL, NULL); |
| |
126 |
| |
127 g_clear_object(&roster); |
| |
128 g_clear_object(&contact); |
| |
129 } |
| |
130 |
| |
131 g_test_trap_subprocess(NULL, 0, 0); |
| |
132 g_test_trap_assert_stderr("*Purple-WARNING*TestPurpleProtocolRosterEmpty*update_async*"); |
| |
133 } |
| |
134 |
| |
135 static void |
| |
136 test_purple_protocol_roster_empty_remove(void) { |
| |
137 if(g_test_subprocess()) { |
| |
138 PurpleAccount *account = NULL; |
| |
139 PurpleContact *contact = NULL; |
| |
140 PurpleProtocolRoster *roster = NULL; |
| |
141 |
| |
142 roster = g_object_new(test_purple_protocol_roster_empty_get_type(), |
| |
143 NULL); |
| |
144 |
| |
145 account = purple_account_new("test", "test"); |
| |
146 contact = purple_contact_new(account, NULL); |
| |
147 g_clear_object(&account); |
| |
148 |
| |
149 purple_protocol_roster_remove_async(roster, contact, NULL, NULL, NULL); |
| |
150 |
| |
151 g_clear_object(&roster); |
| |
152 g_clear_object(&contact); |
| |
153 } |
| |
154 |
| |
155 g_test_trap_subprocess(NULL, 0, 0); |
| |
156 g_test_trap_assert_stderr("*Purple-WARNING*TestPurpleProtocolRosterEmpty*remove_async*"); |
| |
157 } |
| |
158 |
| |
159 /****************************************************************************** |
| 53 * TestProtocolRoster implementation |
160 * TestProtocolRoster implementation |
| 54 *****************************************************************************/ |
161 *****************************************************************************/ |
| 55 G_DECLARE_FINAL_TYPE(TestPurpleProtocolRoster, test_purple_protocol_roster, |
162 G_DECLARE_FINAL_TYPE(TestPurpleProtocolRoster, test_purple_protocol_roster, |
| 56 TEST_PURPLE, PROTOCOL_ROSTER, PurpleProtocol) |
163 TEST_PURPLE, PROTOCOL_ROSTER, PurpleProtocol) |
| 57 |
164 |
| 472 g_test_init(&argc, &argv, NULL); |
579 g_test_init(&argc, &argv, NULL); |
| 473 |
580 |
| 474 test_ui_purple_init(); |
581 test_ui_purple_init(); |
| 475 |
582 |
| 476 loop = g_main_loop_new(NULL, FALSE); |
583 loop = g_main_loop_new(NULL, FALSE); |
| |
584 |
| |
585 g_test_add_func("/protocol-roster/empty/add", |
| |
586 test_purple_protocol_roster_empty_add); |
| |
587 g_test_add_func("/protocol-roster/empty/update", |
| |
588 test_purple_protocol_roster_empty_update); |
| |
589 g_test_add_func("/protocol-roster/empty/remove", |
| |
590 test_purple_protocol_roster_empty_remove); |
| 477 |
591 |
| 478 g_test_add_func("/protocol-roster/add", test_purple_protocol_roster_add); |
592 g_test_add_func("/protocol-roster/add", test_purple_protocol_roster_add); |
| 479 g_test_add_func("/protocol-roster/add-error", |
593 g_test_add_func("/protocol-roster/add-error", |
| 480 test_purple_protocol_roster_add_error); |
594 test_purple_protocol_roster_add_error); |
| 481 g_test_add_func("/protocol-roster/update", |
595 g_test_add_func("/protocol-roster/update", |