| @@ 404-479 (lines=76) @@ | ||
| 401 | * |
|
| 402 | * @covers ::add_tools_menu |
|
| 403 | */ |
|
| 404 | public function test_add_tools_menu() { |
|
| 405 | global $menu, $submenu; |
|
| 406 | ||
| 407 | $slug = 'https://wordpress.com/marketing/tools/' . static::$domain; |
|
| 408 | static::$admin_menu->add_tools_menu( static::$domain ); |
|
| 409 | ||
| 410 | $tools_menu_item = array( |
|
| 411 | 'Tools', |
|
| 412 | 'manage_options', |
|
| 413 | $slug, |
|
| 414 | 'Tools', |
|
| 415 | 'menu-top toplevel_page_' . $slug, |
|
| 416 | 'toplevel_page_' . $slug, |
|
| 417 | 'dashicons-admin-tools', |
|
| 418 | ); |
|
| 419 | ||
| 420 | $this->assertSame( $menu[75], $tools_menu_item ); |
|
| 421 | $this->assertArrayNotHasKey( 'tools.php', $submenu ); |
|
| 422 | ||
| 423 | // Contains the following menu items. |
|
| 424 | ||
| 425 | $marketing_submenu_item = array( |
|
| 426 | 'Marketing', |
|
| 427 | 'manage_options', |
|
| 428 | 'https://wordpress.com/marketing/tools/' . static::$domain, |
|
| 429 | 'Marketing', |
|
| 430 | ); |
|
| 431 | $this->assertContains( $marketing_submenu_item, $submenu[ $slug ] ); |
|
| 432 | ||
| 433 | $earn_submenu_item = array( |
|
| 434 | 'Earn', |
|
| 435 | 'manage_options', |
|
| 436 | 'https://wordpress.com/earn/' . static::$domain, |
|
| 437 | 'Earn', |
|
| 438 | ); |
|
| 439 | $this->assertContains( $earn_submenu_item, $submenu[ $slug ] ); |
|
| 440 | ||
| 441 | $import_submenu_item = array( |
|
| 442 | 'Import', |
|
| 443 | 'import', |
|
| 444 | 'https://wordpress.com/import/' . static::$domain, |
|
| 445 | 'Import', |
|
| 446 | ); |
|
| 447 | $this->assertContains( $import_submenu_item, $submenu[ $slug ] ); |
|
| 448 | ||
| 449 | $export_submenu_item = array( |
|
| 450 | 'Export', |
|
| 451 | 'export', |
|
| 452 | 'https://wordpress.com/export/' . static::$domain, |
|
| 453 | 'Export', |
|
| 454 | ); |
|
| 455 | $this->assertContains( $export_submenu_item, $submenu[ $slug ] ); |
|
| 456 | ||
| 457 | // NOT contains the following menu items. |
|
| 458 | ||
| 459 | $tools_submenu_item = array( |
|
| 460 | 'Available Tools', |
|
| 461 | 'edit_posts', |
|
| 462 | 'tools.php', |
|
| 463 | ); |
|
| 464 | $this->assertNotContains( $tools_submenu_item, $submenu[ $slug ] ); |
|
| 465 | ||
| 466 | $import_submenu_item = array( |
|
| 467 | 'Import', |
|
| 468 | 'import', |
|
| 469 | 'import.php', |
|
| 470 | ); |
|
| 471 | $this->assertNotContains( $import_submenu_item, $submenu[ $slug ] ); |
|
| 472 | ||
| 473 | $export_submenu_item = array( |
|
| 474 | 'Export', |
|
| 475 | 'export', |
|
| 476 | 'export.php', |
|
| 477 | ); |
|
| 478 | $this->assertNotContains( $export_submenu_item, $submenu[ $slug ] ); |
|
| 479 | } |
|
| 480 | ||
| 481 | /** |
|
| 482 | * Tests add_options_menu |
|
| @@ 452-527 (lines=76) @@ | ||
| 449 | * |
|
| 450 | * @covers ::add_tools_menu |
|
| 451 | */ |
|
| 452 | public function test_add_tools_menu() { |
|
| 453 | global $menu, $submenu; |
|
| 454 | ||
| 455 | $slug = 'https://wordpress.com/marketing/tools/' . static::$domain; |
|
| 456 | static::$admin_menu->add_tools_menu( static::$domain ); |
|
| 457 | ||
| 458 | $tools_menu_item = array( |
|
| 459 | 'Tools', |
|
| 460 | 'manage_options', |
|
| 461 | $slug, |
|
| 462 | 'Tools', |
|
| 463 | 'menu-top toplevel_page_' . $slug, |
|
| 464 | 'toplevel_page_' . $slug, |
|
| 465 | 'dashicons-admin-tools', |
|
| 466 | ); |
|
| 467 | ||
| 468 | $this->assertSame( $menu[75], $tools_menu_item ); |
|
| 469 | $this->assertArrayNotHasKey( 'tools.php', $submenu ); |
|
| 470 | ||
| 471 | // Contains the following menu items. |
|
| 472 | ||
| 473 | $marketing_submenu_item = array( |
|
| 474 | 'Marketing', |
|
| 475 | 'manage_options', |
|
| 476 | 'https://wordpress.com/marketing/tools/' . static::$domain, |
|
| 477 | 'Marketing', |
|
| 478 | ); |
|
| 479 | $this->assertContains( $marketing_submenu_item, $submenu[ $slug ] ); |
|
| 480 | ||
| 481 | $earn_submenu_item = array( |
|
| 482 | 'Earn', |
|
| 483 | 'manage_options', |
|
| 484 | 'https://wordpress.com/earn/' . static::$domain, |
|
| 485 | 'Earn', |
|
| 486 | ); |
|
| 487 | $this->assertContains( $earn_submenu_item, $submenu[ $slug ] ); |
|
| 488 | ||
| 489 | $import_submenu_item = array( |
|
| 490 | 'Import', |
|
| 491 | 'import', |
|
| 492 | 'https://wordpress.com/import/' . static::$domain, |
|
| 493 | 'Import', |
|
| 494 | ); |
|
| 495 | $this->assertContains( $import_submenu_item, $submenu[ $slug ] ); |
|
| 496 | ||
| 497 | $export_submenu_item = array( |
|
| 498 | 'Export', |
|
| 499 | 'export', |
|
| 500 | 'https://wordpress.com/export/' . static::$domain, |
|
| 501 | 'Export', |
|
| 502 | ); |
|
| 503 | $this->assertContains( $export_submenu_item, $submenu[ $slug ] ); |
|
| 504 | ||
| 505 | // NOT contains the following menu items. |
|
| 506 | ||
| 507 | $tools_submenu_item = array( |
|
| 508 | 'Available Tools', |
|
| 509 | 'edit_posts', |
|
| 510 | 'tools.php', |
|
| 511 | ); |
|
| 512 | $this->assertNotContains( $tools_submenu_item, $submenu[ $slug ] ); |
|
| 513 | ||
| 514 | $import_submenu_item = array( |
|
| 515 | 'Import', |
|
| 516 | 'import', |
|
| 517 | 'import.php', |
|
| 518 | ); |
|
| 519 | $this->assertNotContains( $import_submenu_item, $submenu[ $slug ] ); |
|
| 520 | ||
| 521 | $export_submenu_item = array( |
|
| 522 | 'Export', |
|
| 523 | 'export', |
|
| 524 | 'export.php', |
|
| 525 | ); |
|
| 526 | $this->assertNotContains( $export_submenu_item, $submenu[ $slug ] ); |
|
| 527 | } |
|
| 528 | ||
| 529 | /** |
|
| 530 | * Tests add_options_menu |
|