Passed
Pull Request — master (#235)
by Viruthagiri
17:11
created

GeoDirectoryTests::testSuccessPage()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 26
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 20
nc 2
nop 0
dl 0
loc 26
rs 8.8571
c 1
b 0
f 0
1
<?php
2
class GeoDirectoryTests extends WP_UnitTestCase
3
{
4
    public function setUp()
5
    {
6
        parent::setUp();
7
        wp_set_current_user(1);
8
9
        geodir_register_sidebar();
10
    }
11
12
    public function testBreadcrumbs() {
13
        $query_args = array(
14
            'post_status' => 'publish',
15
            'post_type' => 'gd_place',
16
            'posts_per_page' => 1,
17
        );
18
19
        $all_posts = new WP_Query( $query_args );
20
        $post_id = null;
21
        while ( $all_posts->have_posts() ) : $all_posts->the_post();
22
            $post_id = get_the_ID();
23
        endwhile;
24
25
        $this->assertTrue(is_int($post_id));
26
27
        $this->go_to( get_permalink($post_id) );
28
29
        ob_start();
30
        geodir_breadcrumb();
31
        $output = ob_get_contents();
32
        ob_end_clean();
33
        $this->assertContains('Places', $output);
34
    }
35
36
    public function testAdminSettingForms() {
37
        $_REQUEST['listing_type'] = 'gd_place';
38
        ob_start();
39
        geodir_admin_option_form('general_settings');
40
        $output = ob_get_contents();
41
        ob_end_clean();
42
        $this->assertContains('General Options', $output);
43
44
        ob_start();
45
        geodir_admin_option_form('design_settings');
46
        $output = ob_get_contents();
47
        ob_end_clean();
48
        $this->assertContains('Home Top Section Settings', $output);
49
50
        ob_start();
51
        geodir_admin_option_form('permalink_settings');
52
        $output = ob_get_contents();
53
        ob_end_clean();
54
        $this->assertContains('Listing Detail Permalink Settings', $output);
55
56
        ob_start();
57
        geodir_admin_option_form('title_meta_settings');
58
        $output = ob_get_contents();
59
        ob_end_clean();
60
        $this->assertContains('Homepage Meta Settings', $output);
61
62
        ob_start();
63
        geodir_admin_option_form('notifications_settings');
64
        $output = ob_get_contents();
65
        ob_end_clean();
66
        $this->assertContains('Notification Options', $output);
67
68
        ob_start();
69
        geodir_admin_option_form('default_location_settings');
70
        $output = ob_get_contents();
71
        ob_end_clean();
72
        $this->assertContains('Set Default Location', $output);
73
74
        ob_start();
75
        geodir_admin_option_form('tools_settings');
76
        $output = ob_get_contents();
77
        ob_end_clean();
78
        $this->assertContains('GD Diagnostic Tools', $output);
79
80
        ob_start();
81
        geodir_admin_option_form('compatibility_settings');
82
        $output = ob_get_contents();
83
        ob_end_clean();
84
        $this->assertContains('Theme Compatability Settings', $output);
85
86
        ob_start();
87
        geodir_admin_option_form('import_export');
88
        $output = ob_get_contents();
89
        ob_end_clean();
90
        $this->assertContains('GD Import & Export CSV', $output);
91
92
        $_REQUEST['subtab'] = 'custom_fields';
93
        ob_start();
94
        geodir_admin_option_form('gd_place_fields_settings');
95
        $output = ob_get_contents();
96
        ob_end_clean();
97
        $this->assertContains('general-form-builder-frame', $output);
98
99
    }
100
101 View Code Duplication
    public function testPopPostWidget() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
102
        $args = array(
103
            'before_widget' => '<ul>',
104
            'after_widget' => '<ul>',
105
            'before_title' => '<ul>',
106
            'after_title' => '<ul>'
107
        );
108
        ob_start();
109
        geodir_popular_post_category_output($args);
110
        $output = ob_get_contents();
111
        ob_end_clean();
112
        $this->assertContains('Popular Categories', $output);
113
    }
114
115
    public function texstBestOfWidget() {
116
//        $args = array(
0 ignored issues
show
Unused Code Comprehensibility introduced by
48% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
117
//            'before_widget' => '<ul>',
118
//            'after_widget' => '<ul>',
119
//            'before_title' => '<ul>',
120
//            'after_title' => '<ul>'
121
//        );
122
        include_once geodir_plugin_path() . "/geodirectory-widgets/geodirectory_cpt_categories_widget.php";
123
        $params = array(
124
            'title' => '',
125
            'post_type' => array(), // NULL for all
126
            'hide_empty' => '',
127
            'show_count' => '',
128
            'hide_icon' => '',
129
            'cpt_left' => '',
130
            'sort_by' => 'count',
131
            'max_count' => 'all',
132
            'max_level' => '1'
133
        );
134
        ob_start();
135
        geodir_cpt_categories_output($params);
136
        $output = ob_get_contents();
137
        ob_end_clean();
138
        $this->assertContains('gd-cptcat-title', $output);
139
    }
140
141
    public function testGDWidgetListView() {
142
        global $gridview_columns_widget, $geodir_is_widget_listing;
143
144
        $_REQUEST['sgeo_lat'] = '40.7127837';
145
        $_REQUEST['sgeo_lon'] = '-74.00594130000002';
146
        $query_args = array(
147
            'posts_per_page' => 1,
148
            'is_geodir_loop' => true,
149
            'gd_location' => false,
150
            'post_type' => 'gd_place',
151
        );
152
        $widget_listings = geodir_get_widget_listings($query_args);
153
        $template = apply_filters("geodir_template_part-widget-listing-listview", geodir_locate_template('widget-listing-listview'));
154
        global $post, $map_jason, $map_canvas_arr;
155
156
        $current_post = $post;
157
        $current_map_jason = $map_jason;
158
        $current_map_canvas_arr = $map_canvas_arr;
159
        $geodir_is_widget_listing = true;
160
161
        ob_start();
162
        include($template);
163
        $output = ob_get_contents();
164
        ob_end_clean();
165
        $this->assertContains('geodir-entry-content', $output);
166
167
        $geodir_is_widget_listing = false;
168
169
        $GLOBALS['post'] = $current_post;
170
        if (!empty($current_post))
171
            setup_postdata($current_post);
172
        $map_jason = $current_map_jason;
173
        $map_canvas_arr = $current_map_canvas_arr;
174
175
    }
176
177 View Code Duplication
    public function testRegTemplate() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
178
//        var_dump(geodir_login_page_id());
0 ignored issues
show
Unused Code Comprehensibility introduced by
63% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
179
        wp_set_current_user(0);
180
        $template = geodir_plugin_path() . '/geodirectory-templates/geodir-signup.php';
181
182
        ob_start();
183
        include($template);
184
        $output = ob_get_contents();
185
        ob_end_clean();
186
        $this->assertContains('Sign In', $output);
187
    }
188
189 View Code Duplication
    public function testInfoTemplate() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
190
        wp_set_current_user(1);
191
        global $information;
192
        $information = "hello world";
193
194
        $template = geodir_plugin_path() . '/geodirectory-templates/geodir-information.php';
195
196
        ob_start();
197
        include($template);
198
        $output = ob_get_contents();
199
        ob_end_clean();
200
        $this->assertContains('hello world', $output);
201
    }
202
203
    public function testSuccessPage() {
204
        wp_set_current_user(1);
205
206
        $query_args = array(
207
            'post_status' => 'publish',
208
            'post_type' => 'gd_place',
209
            'posts_per_page' => 1,
210
        );
211
212
        $all_posts = new WP_Query( $query_args );
213
        $post_id = null;
214
        while ( $all_posts->have_posts() ) : $all_posts->the_post();
215
            $post_id = get_the_ID();
216
        endwhile;
217
218
        $this->assertTrue(is_int($post_id));
219
220
        $_REQUEST['listing_type'] = 'gd_place';
221
        $_REQUEST['pid'] = $post_id;
222
        ob_start();
223
        $this->go_to( get_permalink(geodir_success_page_id()) );
224
        $this->load_template();
225
        $output = ob_get_contents();
226
        ob_end_clean();
227
        $this->assertContains('View your submitted information', $output);
228
    }
229
230
    public function testPreviewPage() {
231
        wp_set_current_user(1);
232
233
        $query_args = array(
234
            'post_status' => 'publish',
235
            'post_type' => 'gd_place',
236
            'posts_per_page' => 1,
237
        );
238
239
        $all_posts = new WP_Query( $query_args );
240
        $post_id = null;
241
        while ( $all_posts->have_posts() ) : $all_posts->the_post();
242
            $post_id = get_the_ID();
243
        endwhile;
244
245
        $this->assertTrue(is_int($post_id));
246
247
        $_REQUEST = array(
248
            'pid' => $post_id,
249
            'listing_type' => 'gd_place',
250
            'post_title' => 'Test Listing Title Modified',
251
            'post_desc' => 'Test Desc',
252
            'post_tags' => 'test1,test2',
253
            'post_address' => 'New York City Hall',
254
            'post_zip' => '10007',
255
            'post_latitude' => '40.7127837',
256
            'post_longitude' => '-74.00594130000002',
257
            'post_mapview' => 'ROADMAP',
258
            'post_mapzoom' => '10',
259
            'geodir_timing' => '10.00 am to 6 pm every day',
260
            'geodir_contact' => '1234567890',
261
            'geodir_email' => '[email protected]',
262
            'geodir_website' => 'http://test.com',
263
            'geodir_twitter' => 'http://twitter.com/test',
264
            'geodir_facebook' => 'http://facebook.com/test',
265
            'geodir_special_offers' => 'Test offer',
266
            'preview' => true,
267
            'post_category' => array(
268
                'gd_placecategory' => ''
269
            )
270
        );
271
272
        ob_start();
273
        $this->go_to( get_permalink(geodir_preview_page_id()) );
274
        $this->load_template();
275
        $output = ob_get_contents();
276
        ob_end_clean();
277
        $this->assertContains('This is a preview of your listing', $output);
278
    }
279
280 View Code Duplication
    public function testAddListingPage() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
281
        wp_set_current_user(1);
282
283
        ob_start();
284
        $this->go_to( get_permalink(geodir_add_listing_page_id()) );
285
        $this->load_template();
286
        $output = ob_get_contents();
287
        ob_end_clean();
288
        $this->assertContains('Enter Listing Details', $output);
289
    }
290
291 View Code Duplication
    public function testLocationPage() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
292
        wp_set_current_user(1);
293
294
        ob_start();
295
        $this->go_to( get_permalink(geodir_location_page_id()) );
296
        $this->load_template();
297
        $output = ob_get_contents();
298
        ob_end_clean();
299
        $this->assertContains('Location', $output);
300
    }
301
302
    public function testTemplates() {
303
304
        global $current_user;
305
306
        $user_id = $current_user->ID;
307
308
        $this->setPermalinkStructure();
309
310
        $homepage = get_page_by_title( 'GD Home page' );
311
        if ( $homepage )
312
        {
313
            update_option( 'page_on_front', $homepage->ID );
314
            update_option( 'show_on_front', 'page' );
315
        }
316
317
        ob_start();
318
        $this->go_to( home_url('/') );
319
        $this->load_template();
320
        $output = ob_get_contents();
321
        ob_end_clean();
322
        $this->assertContains('body class="home', $output);
323
324
325
        ob_start();
326
        $this->go_to( home_url('/?post_type=gd_place') );
327
        $this->load_template();
328
        $output = ob_get_contents();
329
        ob_end_clean();
330
        $this->assertContains('All Places', $output);
331
332
        $query_args = array(
333
            'post_status' => 'publish',
334
            'post_type' => 'gd_place',
335
            'posts_per_page' => 1,
336
        );
337
338
        $all_posts = new WP_Query( $query_args );
339
        $post_id = null;
340
        while ( $all_posts->have_posts() ) : $all_posts->the_post();
341
            $post_id = get_the_ID();
342
        endwhile;
343
344
        $this->assertTrue(is_int($post_id));
345
346
        global $preview;
347
        $preview = false;
348
        ob_start();
349
        $this->go_to( get_permalink($post_id) );
350
        $this->load_template();
351
        $output = ob_get_contents();
352
        ob_end_clean();
353
        $this->assertContains('post_profileTab', $output);
354
355
        ob_start();
356
        $_REQUEST['stype'] = 'gd_place';
357
        $_REQUEST['geodir_dashbord'] = true;
358
        $this->go_to( get_author_posts_url($user_id) );
359
        $this->load_template();
360
        $output = ob_get_contents();
361
        ob_end_clean();
362
        $this->assertContains('gd_list_view', $output);
363
364
    }
365
366
    public function testSearchPage() {
367
        ob_start();
368
        $_REQUEST['geodir_search'] = "1";
369
        $_REQUEST['stype'] = 'gd_place';
370
        $this->go_to( home_url('/?geodir_search=1&stype=gd_place&s=test&snear=&sgeo_lat=&sgeo_lon=') );
371
        $this->load_template();
372
        $output = ob_get_contents();
373
        ob_end_clean();
374
        $this->assertContains('Search Results for', $output);
375
376
    }
377
378 View Code Duplication
    public function testPopupSendEnquiryTemplate() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
379
380
        $query_args = array(
381
            'post_status' => 'publish',
382
            'post_type' => 'gd_place',
383
            'posts_per_page' => 1,
384
        );
385
386
        $all_posts = new WP_Query( $query_args );
387
        $post_id = null;
388
        while ( $all_posts->have_posts() ) : $all_posts->the_post();
389
            $post_id = get_the_ID();
390
        endwhile;
391
392
        $this->assertTrue(is_int($post_id));
393
394
        $_REQUEST['popuptype'] = 'b_send_inquiry';
395
        $_REQUEST['post_id'] = $post_id;
396
        add_filter('wp_redirect', '__return_false');
397
        ob_start();
398
        geodir_ajax_handler();
399
        $output = ob_get_contents();
400
        ob_end_clean();
401
        $this->assertContains('send_inqury', $output);
402
        remove_filter('wp_redirect', '__return_false');
403
404
    }
405
406 View Code Duplication
    public function texstPopupSendToFrndTemplate() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
407
408
        //include template problem. its already loaded. find a way to fix this
409
410
        $query_args = array(
411
            'post_status' => 'publish',
412
            'post_type' => 'gd_place',
413
            'posts_per_page' => 1,
414
        );
415
416
        $all_posts = new WP_Query( $query_args );
417
        $post_id = null;
418
        while ( $all_posts->have_posts() ) : $all_posts->the_post();
419
            $post_id = get_the_ID();
420
        endwhile;
421
422
        $this->assertTrue(is_int($post_id));
423
424
        $_REQUEST['popuptype'] = 'b_sendtofriend';
425
        $_REQUEST['post_id'] = $post_id;
426
        add_filter('wp_redirect', '__return_false');
427
        ob_start();
428
        geodir_ajax_handler();
429
        $output = ob_get_contents();
430
        ob_end_clean();
431
        $this->assertContains('send_inqury', $output);
432
        remove_filter('wp_redirect', '__return_false');
433
    }
434
435
    public function testNavMenus() {
436
        $menuname = 'Primary Menu';
437
        $menulocation = 'primary';
438
        // Does the menu exist already?
439
        $menu_exists = wp_get_nav_menu_object( $menuname );
440
441
        // If it doesn't exist, let's create it.
442
        if( !$menu_exists){
443
            $menu_id = wp_create_nav_menu($menuname);
444
445
            // Set up default BuddyPress links and add them to the menu.
446
            wp_update_nav_menu_item($menu_id, 0, array(
447
                'menu-item-title' =>  __('Home'),
448
                'menu-item-classes' => 'home',
449
                'menu-item-url' => home_url( '/' ),
450
                'menu-item-status' => 'publish'));
451
452
            if( !has_nav_menu( $menulocation ) ){
453
                $locations = get_theme_mod('nav_menu_locations');
454
                $locations[$menulocation] = $menu_id;
455
                set_theme_mod( 'nav_menu_locations', $locations );
456
            }
457
458
            update_option('geodir_theme_location_nav', array('primary'));
459
460
            $menu = wp_nav_menu(array(
461
                'theme_location' => 'primary',
462
                'echo' => false,
463
            ));
464
465
            $this->assertContains('Add Listing', $menu);
466
467
468
        }
469
    }
470
471
    public function testBestOfWidget() {
472
        $template = geodir_plugin_path() . '/geodirectory-widgets/geodirectory_bestof_widget.php';
473
        include_once($template);
474
475
        ob_start();
476
        $instance = array();
477
        $instance['use_viewing_post_type'] = '1';
478
        $instance['excerpt_type'] = 'show-reviews';
479
        the_widget( 'geodir_bestof_widget' );
480
        $output = ob_get_contents();
481
        ob_end_clean();
482
        $this->assertContains('bestof-widget-tab-layout', $output);
483
484
        ob_start();
485
        $this->the_widget_form( 'geodir_bestof_widget' );
486
        $output = ob_get_contents();
487
        ob_end_clean();
488
        $this->assertContains('Number of categories', $output);
489
490
        $new_instance = array(
491
            'title' => '',
492
            'post_type' => '',
493
            'post_limit' => '5',
494
            'categ_limit' => '3',
495
            'character_count' => '20',
496
            'add_location_filter' => '1',
497
            'tab_layout' => 'bestof-tabs-on-top',
498
            'excerpt_type' => 'show-desc',
499
            'use_viewing_post_type' => '1'
500
        );
501
        $output = $this->the_widget_form_update( 'geodir_bestof_widget', $new_instance );
502
        $this->assertContains('20', $output['character_count']);
503
504
        ob_start();
505
        geodir_bestof_js();
506
        $output = ob_get_contents();
507
        ob_end_clean();
508
        $this->assertContains('bestof-widget-tab-layout', $output);
509
510
    }
511
512
    public function testCptCatsWidget() {
513
        $template = geodir_plugin_path() . '/geodirectory-widgets/geodirectory_cpt_categories_widget.php';
514
        include_once($template);
515
516
        ob_start();
517
        the_widget( 'geodir_cpt_categories_widget' );
518
        $output = ob_get_contents();
519
        ob_end_clean();
520
        $this->assertContains('geodir_cpt_categories_widget', $output);
521
522
        ob_start();
523
        $this->the_widget_form( 'geodir_cpt_categories_widget' );
524
        $output = ob_get_contents();
525
        ob_end_clean();
526
        $this->assertContains('Select CPT', $output);
527
528
        $new_instance = array(
529
            'title' => '',
530
            'post_type' => array(), // NULL for all
531
            'hide_empty' => '',
532
            'show_count' => '',
533
            'hide_icon' => '',
534
            'cpt_left' => '',
535
            'sort_by' => 'count',
536
            'max_count' => 'all',
537
            'max_level' => '1'
538
        );
539
        $output = $this->the_widget_form_update( 'geodir_cpt_categories_widget', $new_instance );
540
        $this->assertContains('count', $output['sort_by']);
541
542
    }
543
544
    public function testFeaturesWidget() {
545
        $template = geodir_plugin_path() . '/geodirectory-widgets/geodirectory_features_widget.php';
546
        include_once($template);
547
548
        $instance = array(
549
            'title' => 'Features',
550
            'icon_color' => '',
551
            'title1' => 'Hello World',
552
            'image1' => 'fa-recycle',
553
            'desc1' => 'cool',
554
        );
555
556
        ob_start();
557
        the_widget( 'Geodir_Features_Widget', $instance);
558
        $output = ob_get_contents();
559
        ob_end_clean();
560
        $this->assertContains('widget_gd_features', $output);
561
562
        ob_start();
563
        $this->the_widget_form( 'Geodir_Features_Widget', $instance );
564
        $output = ob_get_contents();
565
        ob_end_clean();
566
        $this->assertContains('Font Awesome Icon Color', $output);
567
568
        $new_instance = array(
569
            'title' => 'Features',
570
            'icon_color' => '',
571
            'title1' => 'Hello World',
572
            'image1' => 'fa-recycle',
573
            'desc1' => 'cool',
574
        );
575
        $output = $this->the_widget_form_update( 'Geodir_Features_Widget', $new_instance );
576
        $this->assertContains('Features', $output['title']);
577
578
    }
579
580
    public function testSliderWidget() {
581
        $template = geodir_plugin_path() . '/geodirectory-widgets/geodirectory_listing_slider_widget.php';
582
        include_once($template);
583
584
        ob_start();
585
        the_widget( 'geodir_listing_slider_widget' );
586
        $output = ob_get_contents();
587
        ob_end_clean();
588
        $this->assertContains('geodir_listing_slider_view', $output);
589
590
        ob_start();
591
        $this->the_widget_form( 'geodir_listing_slider_widget' );
592
        $output = ob_get_contents();
593
        ob_end_clean();
594
        $this->assertContains('Slide Show Speed', $output);
595
596
        $new_instance = array(
597
            'title' => '',
598
            'post_type' => '',
599
            'category' => '',
600
            'post_number' => '5',
601
            'max_show' => '1',
602
            'slide_width' => '',
603
            'show_title' => '',
604
            'slideshow' => '',
605
            'animationLoop' => '',
606
            'directionNav' => '',
607
            'slideshowSpeed' => 5000,
608
            'animationSpeed' => 600,
609
            'animation' => '',
610
            'list_sort' => 'latest',
611
            'show_featured_only' => '',
612
        );
613
        $output = $this->the_widget_form_update( 'geodir_listing_slider_widget', $new_instance );
614
        $this->assertContains('latest', $output['list_sort']);
615
616
    }
617
618
    public function testPopularWidget() {
619
        $template = geodir_plugin_path() . '/geodirectory-widgets/geodirectory_popular_widget.php';
620
        include_once($template);
621
622
        ob_start();
623
        the_widget( 'geodir_popular_post_category' );
624
        $output = ob_get_contents();
625
        ob_end_clean();
626
        $this->assertContains('geodir_popular_post_category', $output);
627
628
        ob_start();
629
        $this->the_widget_form( 'geodir_popular_post_category' );
630
        $output = ob_get_contents();
631
        ob_end_clean();
632
        $this->assertContains('Default post type to use', $output);
633
634
        $new_instance = array(
635
            'title' => '',
636
            'category_limit' => 15,
637
            'default_post_type' => ''
638
        );
639
        $output = $this->the_widget_form_update( 'geodir_popular_post_category', $new_instance );
640
        $this->assertEquals(15, $output['category_limit']);
641
642
        ob_start();
643
        $instance = array();
644
        $instance['category_title'] = '';
645
        the_widget( 'geodir_popular_postview', $instance );
646
        $output = ob_get_contents();
647
        ob_end_clean();
648
        $this->assertContains('geodir_popular_post_view', $output);
649
650
        ob_start();
651
        $this->the_widget_form( 'geodir_popular_postview' );
652
        $output = ob_get_contents();
653
        ob_end_clean();
654
        $this->assertContains('Post Category', $output);
655
656
        $new_instance = array(
657
            'title' => '',
658
            'post_type' => '',
659
            'category' => array(),
660
            'category_title' => '',
661
            'list_sort' => '',
662
            'list_order' => '',
663
            'post_number' => '5',
664
            'layout' => 'gridview_onehalf',
665
            'listing_width' => '',
666
            'add_location_filter' => '1',
667
            'character_count' => '20',
668
            'show_featured_only' => '',
669
            'show_special_only' => '',
670
            'with_pics_only' => '',
671
            'with_videos_only' => '',
672
            'use_viewing_post_type' => ''
673
        );
674
        $output = $this->the_widget_form_update( 'geodir_popular_postview', $new_instance );
675
        $this->assertContains('gridview_onehalf', $output['layout']);
676
677
    }
678
679
    public function testRelatedWidget() {
680
        $query_args = array(
681
            'post_status' => 'publish',
682
            'post_type' => 'gd_place',
683
            'posts_per_page' => 1,
684
        );
685
686
        $all_posts = new WP_Query( $query_args );
687
        $post_id = null;
688
        while ( $all_posts->have_posts() ) : $all_posts->the_post();
689
            global $post;
690
            $post_id = get_the_ID();
691
            $post = geodir_get_post_info($post->ID);
692
693
//            $term_list = wp_get_post_terms($post->ID, 'gd_placecategory');
0 ignored issues
show
Unused Code Comprehensibility introduced by
54% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
694
//            $post->gd_placecategory = (string) $term_list[0]->term_id;
695
696
            $template = geodir_plugin_path() . '/geodirectory-widgets/geodirectory_related_listing_widget.php';
697
            include_once($template);
698
699
            ob_start();
700
            the_widget( 'geodir_related_listing_postview' );
701
            $output = ob_get_contents();
702
            ob_end_clean();
703
            $this->assertContains('Related Listing', $output);
704
705
            ob_start();
706
            $this->the_widget_form( 'geodir_related_listing_postview' );
707
            $output = ob_get_contents();
708
            ob_end_clean();
709
            $this->assertContains('Relate to', $output);
710
711
            $new_instance = array(
712
                'title' => '',
713
                'list_sort' => '',
714
                'list_order' => '',
715
                'post_number' => '5',
716
                'relate_to' => '',
717
                'layout' => 'gridview_onehalf',
718
                'listing_width' => '',
719
                'add_location_filter' => '1',
720
                'character_count' => '20'
721
            );
722
            $output = $this->the_widget_form_update( 'geodir_related_listing_postview', $new_instance );
723
            $this->assertContains('gridview_onehalf', $output['layout']);
724
        endwhile;
725
726
        $this->assertTrue(is_int($post_id));
727
728
729
    }
730
731
    public function testReviewsWidget() {
732
733
        $time = current_time('mysql');
734
735
        $args = array(
736
            'listing_type' => 'gd_place',
737
            'post_title' => 'Test Listing Title',
738
            'post_desc' => 'Test Desc',
739
            'post_tags' => 'test1,test2',
740
            'post_address' => 'New York City Hall',
741
            'post_zip' => '10007',
742
            'post_latitude' => '40.7127837',
743
            'post_longitude' => '-74.00594130000002',
744
            'post_mapview' => 'ROADMAP',
745
            'post_mapzoom' => '10',
746
            'geodir_timing' => '10.00 am to 6 pm every day',
747
            'geodir_contact' => '1234567890',
748
            'geodir_email' => '[email protected]',
749
            'geodir_website' => 'http://test.com',
750
            'geodir_twitter' => 'http://twitter.com/test',
751
            'geodir_facebook' => 'http://facebook.com/test',
752
            'geodir_special_offers' => 'Test offer'
753
        );
754
        $post_id = geodir_save_listing($args, true);
755
756
        $data = array(
757
            'comment_post_ID' => $post_id,
758
            'comment_author' => 'admin',
759
            'comment_author_email' => '[email protected]',
760
            'comment_author_url' => 'http://wpgeodirectory.com',
761
            'comment_content' => 'content here',
762
            'comment_type' => '',
763
            'comment_parent' => 0,
764
            'user_id' => 1,
765
            'comment_author_IP' => '127.0.0.1',
766
            'comment_agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)',
767
            'comment_date' => $time,
768
            'comment_approved' => 1,
769
        );
770
771
        $comment_id = wp_insert_comment($data);
772
773
        $_REQUEST['geodir_overallrating'] = 5.0;
774
        geodir_save_rating($comment_id);
775
776
        $this->assertTrue(is_int($comment_id));
777
778
        $template = geodir_plugin_path() . '/geodirectory-widgets/geodirectory_reviews_widget.php';
779
        include_once($template);
780
781
        ob_start();
782
        the_widget( 'geodir_recent_reviews_widget' );
783
        $output = ob_get_contents();
784
        ob_end_clean();
785
        $this->assertContains('geodir_recent_reviews', $output);
786
787
        ob_start();
788
        $this->the_widget_form( 'geodir_recent_reviews_widget' );
789
        $output = ob_get_contents();
790
        ob_end_clean();
791
        $this->assertContains('Number of Reviews', $output);
792
793
        $new_instance = array(
794
            'title' => '',
795
            't1' => '',
796
            't2' => '',
797
            't3' => '',
798
            'img1' => '',
799
            'count' => ''
800
        );
801
        $output = $this->the_widget_form_update( 'geodir_recent_reviews_widget', $new_instance );
802
        $this->assertTrue(empty($output['count']));
803
    }
804
805
    public function testHomeMapWidget() {
806
        $template = geodir_plugin_path() . '/geodirectory-widgets/home_map_widget.php';
807
        include_once($template);
808
809
        ob_start();
810
        $instance = array();
811
        $args = array();
812
        $args["widget_id"] = "geodir_map_v3_home_map-2";
813
        the_widget( 'geodir_homepage_map', $instance, $args );
814
        $output = ob_get_contents();
815
        ob_end_clean();
816
        $this->assertContains('geodir-map-home-page', $output);
817
818
        ob_start();
819
        $this->the_widget_form( 'geodir_homepage_map' );
820
        $output = ob_get_contents();
821
        ob_end_clean();
822
        $this->assertContains('Map Zoom level', $output);
823
824
        $new_instance = array(
825
            'width' => '',
826
            'heigh' => '',
827
            'maptype' => '',
828
            'zoom' => '',
829
            'autozoom' => '',
830
            'child_collapse' => '0',
831
            'scrollwheel' => '0'
832
        );
833
        $output = $this->the_widget_form_update( 'geodir_homepage_map', $new_instance );
834
        $this->assertContains('0', $output['scrollwheel']);
835
836
    }
837
838
    public function testLoginWidget() {
839
840
        register_geodir_widgets();
841
842
        ob_start();
843
        the_widget( 'geodir_loginwidget' );
844
        $output = ob_get_contents();
845
        ob_end_clean();
846
        $this->assertContains('geodir_loginbox', $output);
847
848
        ob_start();
849
        $this->the_widget_form( 'geodir_loginwidget' );
850
        $output = ob_get_contents();
851
        ob_end_clean();
852
        $this->assertContains('Widget Title', $output);
853
854
        $new_instance = array(
855
            'title' => 'Login',
856
            't1' => '',
857
            't2' => '',
858
            't3' => '',
859
            'img1' => '',
860
            'desc1' => ''
861
        );
862
        $output = $this->the_widget_form_update( 'geodir_loginwidget', $new_instance );
863
        $this->assertContains('Login', $output['title']);
864
865
    }
866
867 View Code Duplication
    public function testSocialWidget() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
868
869
        ob_start();
870
        the_widget( 'geodir_social_like_widget' );
871
        $output = ob_get_contents();
872
        ob_end_clean();
873
        $this->assertContains('twitter.com', $output);
874
875
        ob_start();
876
        $this->the_widget_form( 'geodir_social_like_widget' );
877
        $output = ob_get_contents();
878
        ob_end_clean();
879
        $this->assertContains('No settings for this widget', $output);
880
881
        $new_instance = array(
882
            'title' => 'Social',
883
        );
884
        $output = $this->the_widget_form_update( 'geodir_social_like_widget', $new_instance );
885
        $this->assertContains('Social', $output['title']);
886
887
    }
888
889
    public function testSubscribeWidget() {
890
891
        ob_start();
892
        the_widget( 'geodirsubscribeWidget' );
893
        $output = ob_get_contents();
894
        ob_end_clean();
895
        $this->assertContains('geodir-subscribe-form', $output);
896
897
        ob_start();
898
        $this->the_widget_form( 'geodirsubscribeWidget' );
899
        $output = ob_get_contents();
900
        ob_end_clean();
901
        $this->assertContains('Feedburner ID', $output);
902
903
        $new_instance = array(
904
            'title' => 'Subscribe',
905
            'id' => '',
906
            'advt1' => '',
907
            'text' => '',
908
            'twitter' => '',
909
            'facebook' => '',
910
            'digg' => '',
911
            'myspace' => ''
912
        );
913
        $output = $this->the_widget_form_update( 'geodirsubscribeWidget', $new_instance );
914
        $this->assertContains('Subscribe', $output['title']);
915
916
    }
917
918 View Code Duplication
    public function testAdvWidget() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
919
920
        ob_start();
921
        $instance = array();
922
        $instance['desc1'] = 'hello';
923
        the_widget( 'geodiradvtwidget', $instance );
924
        $output = ob_get_contents();
925
        ob_end_clean();
926
        $this->assertContains('hello', $output);
927
928
        ob_start();
929
        $this->the_widget_form( 'geodiradvtwidget' );
930
        $output = ob_get_contents();
931
        ob_end_clean();
932
        $this->assertContains('Your Advt code', $output);
933
934
        $new_instance = array(
935
            'desc1' => 'Advertise'
936
        );
937
        $output = $this->the_widget_form_update( 'geodiradvtwidget', $new_instance );
938
        $this->assertContains('Advertise', $output['desc1']);
939
940
    }
941
942 View Code Duplication
    public function testFlickrWidget() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
943
944
        ob_start();
945
        the_widget( 'GeodirFlickrWidget' );
946
        $output = ob_get_contents();
947
        ob_end_clean();
948
        $this->assertContains('geodir-flickr', $output);
949
950
        ob_start();
951
        $this->the_widget_form( 'GeodirFlickrWidget' );
952
        $output = ob_get_contents();
953
        ob_end_clean();
954
        $this->assertContains('Flickr ID', $output);
955
956
        $new_instance = array(
957
            'id' => '',
958
            'number' => '34'
959
        );
960
        $output = $this->the_widget_form_update( 'GeodirFlickrWidget', $new_instance );
961
        $this->assertContains('34', $output['number']);
962
963
    }
964
965 View Code Duplication
    public function testTwitterWidget() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
966
967
        ob_start();
968
        $instance = array();
969
        $instance['gd_tw_desc1'] = 'hello';
970
        the_widget( 'geodir_twitter', $instance );
971
        $output = ob_get_contents();
972
        ob_end_clean();
973
        $this->assertContains('hello', $output);
974
975
        ob_start();
976
        $this->the_widget_form( 'geodir_twitter' );
977
        $output = ob_get_contents();
978
        ob_end_clean();
979
        $this->assertContains('Your twitter code', $output);
980
981
        $new_instance = array(
982
            'gd_tw_desc1' => 'hello'
983
        );
984
        $output = $this->the_widget_form_update( 'geodir_twitter', $new_instance );
985
        $this->assertContains('hello', $output['gd_tw_desc1']);
986
987
    }
988
989
    public function testAdvSearchWidget() {
990
991
        ob_start();
992
        the_widget( 'geodir_advance_search_widget' );
993
        $output = ob_get_contents();
994
        ob_end_clean();
995
        $this->assertContains('geodir-loc-bar', $output);
996
997
        ob_start();
998
        $this->the_widget_form( 'geodir_advance_search_widget' );
999
        $output = ob_get_contents();
1000
        ob_end_clean();
1001
        $this->assertContains('This is a search widget', $output);
1002
1003
//        $new_instance = array(
0 ignored issues
show
Unused Code Comprehensibility introduced by
57% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
1004
//        );
1005
//        $output = $this->the_widget_form_update( 'geodir_advance_search_widget', $new_instance );
1006
//        $this->assertContains('Subscribe', $output['title']);
1007
1008
    }
1009
1010
    public function testListingMapWidget() {
1011
1012
        $template = geodir_plugin_path() . '/geodirectory-widgets/listing_map_widget.php';
1013
        include_once($template);
1014
1015
        //listing page
1016
        $this->go_to( home_url('/?post_type=gd_place') );
1017
1018
        ob_start();
1019
        $instance = array();
1020
        $args = array();
1021
        $args["widget_id"] = "geodir_map_v3_listing_map-2";
1022
        the_widget( 'geodir_map_listingpage', $instance, $args );
1023
        $output = ob_get_contents();
1024
        ob_end_clean();
1025
        $this->assertContains('geodir-map-listing-page', $output);
1026
1027
        // detail page
1028
        $query_args = array(
1029
            'post_status' => 'publish',
1030
            'post_type' => 'gd_place',
1031
            'posts_per_page' => 1,
1032
        );
1033
1034
        $all_posts = new WP_Query( $query_args );
1035
        $post_id = null;
1036
        while ( $all_posts->have_posts() ) : $all_posts->the_post();
1037
            $post_id = get_the_ID();
1038
        endwhile;
1039
1040
        $this->assertTrue(is_int($post_id));
1041
1042
        $this->go_to( get_permalink($post_id) );
1043
1044
        ob_start();
1045
        $instance = array();
1046
        $args = array();
1047
        $args["widget_id"] = "geodir_map_v3_listing_map-2";
1048
        the_widget( 'geodir_map_listingpage', $instance, $args );
1049
        $output = ob_get_contents();
1050
        ob_end_clean();
1051
        $this->assertContains('geodir-map-listing-page', $output);
1052
1053
        ob_start();
1054
        $this->the_widget_form( 'geodir_map_listingpage' );
1055
        $output = ob_get_contents();
1056
        ob_end_clean();
1057
        $this->assertContains('Select Map View', $output);
1058
1059
        $new_instance = array(
1060
            'width' => '',
1061
            'heigh' => '',
1062
            'maptype' => '',
1063
            'zoom' => '',
1064
            'autozoom' => '',
1065
            'sticky' => '',
1066
            'scrollwheel' => '0',
1067
            'showall' => '0'
1068
        );
1069
        $output = $this->the_widget_form_update( 'geodir_map_listingpage', $new_instance );
1070
        $this->assertContains('0', $output['scrollwheel']);
1071
1072
1073
    }
1074
1075
    private function load_template() {
1076
        do_action( 'template_redirect' );
1077
        $template = false;
1078
        if	 ( is_404()			&& $template = get_404_template()			) :
1079
        elseif ( is_search()		 && $template = get_search_template()		 ) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1080
        elseif ( is_front_page()	 && $template = get_front_page_template()	 ) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1081
        elseif ( is_home()		   && $template = get_home_template()		   ) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1082
        elseif ( is_post_type_archive() && $template = get_post_type_archive_template() ) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1083
        elseif ( is_tax()			&& $template = get_taxonomy_template()	   ) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1084
        elseif ( is_attachment()	 && $template = get_attachment_template()	 ) :
1085
            remove_filter('the_content', 'prepend_attachment');
1086
        elseif ( is_single()		 && $template = get_single_template()		 ) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1087
        elseif ( is_page()		   && $template = get_page_template()		   ) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1088
        elseif ( is_category()	   && $template = get_category_template()	   ) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1089
        elseif ( is_tag()			&& $template = get_tag_template()			) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1090
        elseif ( is_author()		 && $template = get_author_template()		 ) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1091
        elseif ( is_date()		   && $template = get_date_template()		   ) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1092
        elseif ( is_archive()		&& $template = get_archive_template()		) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1093
        elseif ( is_paged()		  && $template = get_paged_template()		  ) :
0 ignored issues
show
Unused Code introduced by
This elseif statement is empty, and could be removed.

This check looks for the bodies of elseif statements that have no statements or where all statements have been commented out. This may be the result of changes for debugging or the code may simply be obsolete.

These elseif bodies can be removed. If you have an empty elseif but statements in the else branch, consider inverting the condition.

Loading history...
1094
        else :
1095
            $template = get_index_template();
1096
        endif;
1097
        /**
1098
         * Filter the path of the current template before including it.
1099
         *
1100
         * @since 3.0.0
1101
         *
1102
         * @param string $template The path of the template to include.
1103
         */
1104
        if ( $template = apply_filters( 'template_include', $template ) ) {
1105
            $template_contents = file_get_contents( $template );
1106
            $included_header = $included_footer = false;
1107 View Code Duplication
            if ( false !== stripos( $template_contents, 'get_header();' ) ) {
1108
                do_action( 'get_header', null );
1109
                locate_template( 'header.php', true, false );
1110
                $included_header = true;
1111
            }
1112
            include( $template );
1113 View Code Duplication
            if ( false !== stripos( $template_contents, 'get_footer();' ) ) {
1114
                do_action( 'get_footer', null );
1115
                locate_template( 'footer.php', true, false );
1116
                $included_footer = true;
1117
            }
1118
            if ( $included_header && $included_footer ) {
1119
                global $wp_scripts;
1120
                $wp_scripts->done = array();
1121
            }
1122
        }
1123
        return;
1124
    }
1125
1126
    public static function setPermalinkStructure( $struc = '/%postname%/' ) {
1127
        global $wp_rewrite;
1128
        $wp_rewrite->set_permalink_structure( $struc );
1129
        $wp_rewrite->flush_rules();
1130
        update_option( 'permalink_structure', $struc );
1131
        flush_rewrite_rules( true );
1132
    }
1133
1134 View Code Duplication
    function the_widget_form( $widget, $instance = array() ) {
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
1135
        global $wp_widget_factory;
1136
1137
        $widget_obj = $wp_widget_factory->widgets[$widget];
1138
        if ( ! ( $widget_obj instanceof WP_Widget ) ) {
0 ignored issues
show
Bug introduced by
The class WP_Widget does not exist. Did you forget a USE statement, or did you not list all dependencies?

This error could be the result of:

1. Missing dependencies

PHP Analyzer uses your composer.json file (if available) to determine the dependencies of your project and to determine all the available classes and functions. It expects the composer.json to be in the root folder of your repository.

Are you sure this class is defined by one of your dependencies, or did you maybe not list a dependency in either the require or require-dev section?

2. Missing use statement

PHP does not complain about undefined classes in ìnstanceof checks. For example, the following PHP code will work perfectly fine:

if ($x instanceof DoesNotExist) {
    // Do something.
}

If you have not tested against this specific condition, such errors might go unnoticed.

Loading history...
1139
            return;
1140
        }
1141
1142
        $widget_obj->_set(-1);
1143
        $widget_obj->form($instance);
1144
    }
1145
1146 View Code Duplication
    function the_widget_form_update( $widget, $new_instance = array(), $old_instance = array() ) {
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
1147
        global $wp_widget_factory;
1148
1149
        $widget_obj = $wp_widget_factory->widgets[$widget];
1150
        if ( ! ( $widget_obj instanceof WP_Widget ) ) {
0 ignored issues
show
Bug introduced by
The class WP_Widget does not exist. Did you forget a USE statement, or did you not list all dependencies?

This error could be the result of:

1. Missing dependencies

PHP Analyzer uses your composer.json file (if available) to determine the dependencies of your project and to determine all the available classes and functions. It expects the composer.json to be in the root folder of your repository.

Are you sure this class is defined by one of your dependencies, or did you maybe not list a dependency in either the require or require-dev section?

2. Missing use statement

PHP does not complain about undefined classes in ìnstanceof checks. For example, the following PHP code will work perfectly fine:

if ($x instanceof DoesNotExist) {
    // Do something.
}

If you have not tested against this specific condition, such errors might go unnoticed.

Loading history...
1151
            return;
1152
        }
1153
1154
        $widget_obj->_set(-1);
1155
        return $widget_obj->update($new_instance, $old_instance);
1156
    }
1157
1158
1159
    public function tearDown()
1160
    {
1161
        parent::tearDown();
1162
    }
1163
}
1164
?>
0 ignored issues
show
Best Practice introduced by
It is not recommended to use PHP's closing tag ?> in files other than templates.

Using a closing tag in PHP files that only contain PHP code is not recommended as you might accidentally add whitespace after the closing tag which would then be output by PHP. This can cause severe problems, for example headers cannot be sent anymore.

A simple precaution is to leave off the closing tag as it is not required, and it also has no negative effects whatsoever.

Loading history...