Completed
Push — test/testing-packages-soft-wor... ( cf0a87 )
by
unknown
76:36 queued 69:22
created

Mock_Options::delete_option()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
define( 'ABSPATH', __DIR__ . '/../../wordpress/' );
3
define( 'WPINC', 'wp-includes' );
4
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
5
6
require ABSPATH . WPINC . '/load.php';
7
require ABSPATH . WPINC . '/cache.php';
8
9
global $wp_object_cache;
10
$wp_object_cache = new \WP_Object_Cache();
11
12
// Include files required for initialization.
13
require ABSPATH . WPINC . '/class-wp-paused-extensions-storage.php';
14
require ABSPATH . WPINC . '/class-wp-fatal-error-handler.php';
15
require ABSPATH . WPINC . '/class-wp-recovery-mode-cookie-service.php';
16
require ABSPATH . WPINC . '/class-wp-recovery-mode-key-service.php';
17
require ABSPATH . WPINC . '/class-wp-recovery-mode-link-service.php';
18
require ABSPATH . WPINC . '/class-wp-recovery-mode-email-service.php';
19
require ABSPATH . WPINC . '/class-wp-recovery-mode.php';
20
require ABSPATH . WPINC . '/error-protection.php';
21
require ABSPATH . WPINC . '/default-constants.php';
22
require_once ABSPATH . WPINC . '/plugin.php';
23
24
// Load early WordPress files.
25
require ABSPATH . WPINC . '/compat.php';
26
require ABSPATH . WPINC . '/class-wp-list-util.php';
27
require ABSPATH . WPINC . '/formatting.php';
28
require ABSPATH . WPINC . '/meta.php';
29
require ABSPATH . WPINC . '/functions.php';
30
require ABSPATH . WPINC . '/class-wp-meta-query.php';
31
require ABSPATH . WPINC . '/class-wp-matchesmapregex.php';
32
require ABSPATH . WPINC . '/class-wp.php';
33
require ABSPATH . WPINC . '/class-wp-error.php';
34
require ABSPATH . WPINC . '/pomo/mo.php';
35
36
require_once ABSPATH . WPINC . '/wp-db.php';
37
require 'db.php';
38
39
// Load most of WordPress.
40
require ABSPATH . WPINC . '/class-wp-walker.php';
41
require ABSPATH . WPINC . '/class-wp-ajax-response.php';
42
require ABSPATH . WPINC . '/capabilities.php';
43
require ABSPATH . WPINC . '/class-wp-roles.php';
44
require ABSPATH . WPINC . '/class-wp-role.php';
45
require ABSPATH . WPINC . '/class-wp-user.php';
46
require ABSPATH . WPINC . '/class-wp-query.php';
47
require ABSPATH . WPINC . '/query.php';
48
require ABSPATH . WPINC . '/class-wp-date-query.php';
49
require ABSPATH . WPINC . '/theme.php';
50
require ABSPATH . WPINC . '/class-wp-theme.php';
51
require ABSPATH . WPINC . '/template.php';
52
require ABSPATH . WPINC . '/class-wp-user-request.php';
53
require ABSPATH . WPINC . '/user.php';
54
require ABSPATH . WPINC . '/class-wp-user-query.php';
55
require ABSPATH . WPINC . '/class-wp-session-tokens.php';
56
require ABSPATH . WPINC . '/class-wp-user-meta-session-tokens.php';
57
require ABSPATH . WPINC . '/class-wp-metadata-lazyloader.php';
58
require ABSPATH . WPINC . '/general-template.php';
59
require ABSPATH . WPINC . '/link-template.php';
60
require ABSPATH . WPINC . '/author-template.php';
61
require ABSPATH . WPINC . '/post.php';
62
require ABSPATH . WPINC . '/class-walker-page.php';
63
require ABSPATH . WPINC . '/class-walker-page-dropdown.php';
64
require ABSPATH . WPINC . '/class-wp-post-type.php';
65
require ABSPATH . WPINC . '/class-wp-post.php';
66
require ABSPATH . WPINC . '/post-template.php';
67
require ABSPATH . WPINC . '/revision.php';
68
require ABSPATH . WPINC . '/post-formats.php';
69
require ABSPATH . WPINC . '/post-thumbnail-template.php';
70
require ABSPATH . WPINC . '/category.php';
71
require ABSPATH . WPINC . '/class-walker-category.php';
72
require ABSPATH . WPINC . '/class-walker-category-dropdown.php';
73
require ABSPATH . WPINC . '/category-template.php';
74
require ABSPATH . WPINC . '/comment.php';
75
require ABSPATH . WPINC . '/class-wp-comment.php';
76
require ABSPATH . WPINC . '/class-wp-comment-query.php';
77
require ABSPATH . WPINC . '/class-walker-comment.php';
78
require ABSPATH . WPINC . '/comment-template.php';
79
require ABSPATH . WPINC . '/rewrite.php';
80
require ABSPATH . WPINC . '/class-wp-rewrite.php';
81
require ABSPATH . WPINC . '/feed.php';
82
require ABSPATH . WPINC . '/bookmark.php';
83
require ABSPATH . WPINC . '/bookmark-template.php';
84
require ABSPATH . WPINC . '/kses.php';
85
require ABSPATH . WPINC . '/cron.php';
86
require ABSPATH . WPINC . '/deprecated.php';
87
require ABSPATH . WPINC . '/script-loader.php';
88
require ABSPATH . WPINC . '/taxonomy.php';
89
require ABSPATH . WPINC . '/class-wp-taxonomy.php';
90
require ABSPATH . WPINC . '/class-wp-term.php';
91
require ABSPATH . WPINC . '/class-wp-term-query.php';
92
require ABSPATH . WPINC . '/class-wp-tax-query.php';
93
require ABSPATH . WPINC . '/update.php';
94
require ABSPATH . WPINC . '/canonical.php';
95
require ABSPATH . WPINC . '/shortcodes.php';
96
require ABSPATH . WPINC . '/embed.php';
97
require ABSPATH . WPINC . '/class-wp-embed.php';
98
require ABSPATH . WPINC . '/class-wp-oembed.php';
99
require ABSPATH . WPINC . '/class-wp-oembed-controller.php';
100
require ABSPATH . WPINC . '/media.php';
101
require ABSPATH . WPINC . '/http.php';
102
require ABSPATH . WPINC . '/class-http.php';
103
require ABSPATH . WPINC . '/class-wp-http-streams.php';
104
require ABSPATH . WPINC . '/class-wp-http-curl.php';
105
require ABSPATH . WPINC . '/class-wp-http-proxy.php';
106
require ABSPATH . WPINC . '/class-wp-http-cookie.php';
107
require ABSPATH . WPINC . '/class-wp-http-encoding.php';
108
require ABSPATH . WPINC . '/class-wp-http-response.php';
109
require ABSPATH . WPINC . '/class-wp-http-requests-response.php';
110
require ABSPATH . WPINC . '/class-wp-http-requests-hooks.php';
111
require ABSPATH . WPINC . '/widgets.php';
112
require ABSPATH . WPINC . '/class-wp-widget.php';
113
require ABSPATH . WPINC . '/class-wp-widget-factory.php';
114
require ABSPATH . WPINC . '/nav-menu.php';
115
require ABSPATH . WPINC . '/nav-menu-template.php';
116
require ABSPATH . WPINC . '/admin-bar.php';
117
require ABSPATH . WPINC . '/rest-api.php';
118
require ABSPATH . WPINC . '/rest-api/class-wp-rest-server.php';
119
require ABSPATH . WPINC . '/rest-api/class-wp-rest-response.php';
120
require ABSPATH . WPINC . '/rest-api/class-wp-rest-request.php';
121
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-controller.php';
122
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-posts-controller.php';
123
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-attachments-controller.php';
124
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-post-types-controller.php';
125
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-post-statuses-controller.php';
126
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-revisions-controller.php';
127
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-autosaves-controller.php';
128
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-taxonomies-controller.php';
129
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-terms-controller.php';
130
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-users-controller.php';
131
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-comments-controller.php';
132
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-search-controller.php';
133
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-blocks-controller.php';
134
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-block-renderer-controller.php';
135
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-settings-controller.php';
136
require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-themes-controller.php';
137
require ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-meta-fields.php';
138
require ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-comment-meta-fields.php';
139
require ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-post-meta-fields.php';
140
require ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-term-meta-fields.php';
141
require ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-user-meta-fields.php';
142
require ABSPATH . WPINC . '/rest-api/search/class-wp-rest-search-handler.php';
143
require ABSPATH . WPINC . '/rest-api/search/class-wp-rest-post-search-handler.php';
144
require ABSPATH . WPINC . '/class-wp-block-type.php';
145
require ABSPATH . WPINC . '/class-wp-block-styles-registry.php';
146
require ABSPATH . WPINC . '/class-wp-block-type-registry.php';
147
require ABSPATH . WPINC . '/class-wp-block-parser.php';
148
require ABSPATH . WPINC . '/blocks.php';
149
require ABSPATH . WPINC . '/blocks/archives.php';
150
require ABSPATH . WPINC . '/blocks/block.php';
151
require ABSPATH . WPINC . '/blocks/calendar.php';
152
require ABSPATH . WPINC . '/blocks/categories.php';
153
require ABSPATH . WPINC . '/blocks/latest-comments.php';
154
require ABSPATH . WPINC . '/blocks/latest-posts.php';
155
require ABSPATH . WPINC . '/blocks/rss.php';
156
require ABSPATH . WPINC . '/blocks/search.php';
157
require ABSPATH . WPINC . '/blocks/shortcode.php';
158
require ABSPATH . WPINC . '/blocks/social-link.php';
159
require ABSPATH . WPINC . '/blocks/tag-cloud.php';
160
161
class Mock_Options {
162
163
	public $options = array();
164
165
	public function __construct() {
166
		add_filter( 'alloptions', array( $this, 'get_all_options' ), 10 );
167
		add_filter( 'update_option', array( $this, 'update_option' ), 10, 3 );
168
		add_filter( 'add_option', array( $this, 'add_option' ), 10, 2 );
169
		add_filter( 'deleted_option', array( $this, 'delete_option' ) );
170
	}
171
172
	public function get_all_options( $options ) {
173
		$defaults = require 'default-options.php';
174
175
		$all_options = array_merge(
176
			$this->options,
177
			$defaults,
178
			$options
179
		);
180
181
		wp_cache_flush();
182
183
		return $all_options;
184
	}
185
186
	public function add_option( $option, $value ) {
187
		$this->options[ $option ] = $value;
188
		wp_cache_flush();
189
	}
190
191
	public function update_option( $option, $old_value, $value ) {
192
		$this->options[ $option ] = $value;
193
		wp_cache_flush();
194
	}
195
196
	public function delete_option( $option ) {
197
		unset( $this->options[ $option ] );
198
		wp_cache_flush();
199
	}
200
201
}
202
global $mock_options;
203
204
$mock_options = new Mock_Options();
205