PluginProbe
WP Discourse / trunk
WP Discourse vtrunk
2.6.4 2.6.3 1.2.1 1.2.2 1.2.5 1.2.6 1.2.7 1.2.8 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.85 1.4.0 1.4.15 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 All 150 releases
wp-discourse / tests / phpunit / helpers / multisite.php

multisite.php in WP Discourse trunk, at tests/phpunit/helpers/multisite.php

72 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Class \Test\Multisite
4 *
5 * @package WPDiscourse
6 */
7
8 namespace WPDiscourse\Test;
9
10 /**
11 * Multisite methods for WPDiscourse unit tests
12 */
13 trait Multisite {
14
15 /**
16 * Setup multisite tests
17 */
18 public function setUp(): void {
19 parent::setUp();
20 $this->create_topic_blog_table();
21 }
22
23 /**
24 * Teardown multisite tests
25 */
26 public function tearDown(): void {
27 parent::tearDown();
28 $this->clear_topic_blog_table();
29 }
30
31 /**
32 * Create topic_blog_table if it doesn't exist.
33 */
34 protected function create_topic_blog_table() {
35 global $wpdb;
36
37 $table = $wpdb->base_prefix . 'wpdc_topic_blog';
38 $sql = sprintf(
39 'CREATE TABLE %s (
40 topic_id mediumint(9) NOT NULL,
41 blog_id mediumint(9) NOT NULL,
42 PRIMARY KEY (topic_id)
43 ) %s;',
44 $table,
45 $wpdb->get_charset_collate()
46 );
47
48 require_once ABSPATH . 'wp-admin/includes/upgrade.php';
49 maybe_create_table( $table, $sql );
50 }
51
52 /**
53 * Clear topic_blog_table.
54 */
55 protected function clear_topic_blog_table() {
56 global $wpdb;
57 $table = $wpdb->base_prefix . 'wpdc_topic_blog';
58 $result = $wpdb->query( "TRUNCATE TABLE $table" );
59 }
60
61 /**
62 * Switch to blog for discourse topic.
63 */
64 protected function switch_to_blog_for_topic( $topic_id ) {
65 global $wpdb;
66 $table_name = $wpdb->base_prefix . 'wpdc_topic_blog';
67 $query = "SELECT blog_id FROM $table_name WHERE topic_id = %d";
68 $blog_id = $wpdb->get_var( $wpdb->prepare( $query, $topic_id ) );
69 switch_to_blog( $blog_id );
70 }
71 }
72