@@ -214,4 +214,53 @@ function () {
214
214
215
215
remove_all_filters ( 'activitypub_transformer ' );
216
216
}
217
+
218
+ /**
219
+ * Test successful URI transformation.
220
+ */
221
+ public function test_successful_uri_transformation () {
222
+ // Mock-Daten für die HTTP-Antwort.
223
+ $ fake_request = function () {
224
+ return array (
225
+ 'response ' => array ( 'code ' => 200 ),
226
+ 'body ' => wp_json_encode (
227
+ array (
228
+ 'id ' => 'https://example.com/activity/1 ' ,
229
+ 'type ' => 'Note ' ,
230
+ 'content ' => 'Test Content ' ,
231
+ )
232
+ ),
233
+ );
234
+ };
235
+
236
+ add_filter ( 'pre_http_request ' , $ fake_request , 10 );
237
+
238
+ $ uri_transformer = Factory::get_transformer ( 'https://example.com/activity/1 ' );
239
+ $ result = $ uri_transformer ->to_object ();
240
+
241
+ $ this ->assertIsObject ( $ result );
242
+ $ this ->assertEquals ( 'https://example.com/activity/1 ' , $ result ->get_id () );
243
+ $ this ->assertEquals ( 'Note ' , $ result ->get_type () );
244
+ $ this ->assertEquals ( 'Test Content ' , $ result ->get_content () );
245
+
246
+ remove_filter ( 'pre_http_request ' , $ fake_request , 10 );
247
+ }
248
+
249
+ /**
250
+ * Test URI transformation with error.
251
+ */
252
+ public function test_uri_transformation_error () {
253
+ // WP_Error für fehlgeschlagene Anfrage erstellen.
254
+ $ fake_request = function () {
255
+ return new \WP_Error ( 'fetch_error ' , 'Failed to fetch remote object ' );
256
+ };
257
+
258
+ add_filter ( 'pre_http_request ' , $ fake_request , 10 );
259
+
260
+ $ uri_transformer = Factory::get_transformer ( 'https://example.com/invalid ' );
261
+
262
+ $ this ->assertWPError ( $ uri_transformer );
263
+
264
+ remove_filter ( 'pre_http_request ' , $ fake_request , 10 );
265
+ }
217
266
}
0 commit comments