Changeset 57593
- Timestamp:
- 02/12/2024 12:58:53 PM (12 months ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/class-wp-script-modules.php
r57492 r57593 149 149 $this->registered[ $id ]['enqueue'] = false; 150 150 } 151 unset( $this->enqueued_before_registered[ $id ] ); 152 } 153 154 /** 155 * Removes a registered script module. 156 * 157 * @since 6.5.0 158 * 159 * @param string $id The identifier of the script module. 160 */ 161 public function deregister( string $id ) { 162 unset( $this->registered[ $id ] ); 151 163 unset( $this->enqueued_before_registered[ $id ] ); 152 164 } -
trunk/src/wp-includes/script-modules.php
r57503 r57593 113 113 wp_script_modules()->dequeue( $id ); 114 114 } 115 116 /** 117 * Deregisters the script module. 118 * 119 * @since 6.5.0 120 * 121 * @param string $id The identifier of the script module. 122 */ 123 function wp_deregister_script_module( string $id ) { 124 wp_script_modules()->deregister( $id ); 125 } -
trunk/tests/phpunit/tests/script-modules/wpScriptModules.php
r57492 r57593 127 127 } 128 128 129 130 /** 131 * Tests that a script module can be deregistered 132 * after being enqueued, and that will be removed 133 * from the enqueue list too. 134 * 135 * @ticket 60463 136 * 137 * @covers ::register() 138 * @covers ::enqueue() 139 * @covers ::deregister() 140 * @covers ::get_enqueued_script_modules() 141 */ 142 public function test_wp_deregister_script_module() { 143 $this->script_modules->register( 'foo', '/foo.js' ); 144 $this->script_modules->register( 'bar', '/bar.js' ); 145 $this->script_modules->enqueue( 'foo' ); 146 $this->script_modules->enqueue( 'bar' ); 147 $this->script_modules->deregister( 'foo' ); // Dequeued. 148 149 $enqueued_script_modules = $this->get_enqueued_script_modules(); 150 151 $this->assertCount( 1, $enqueued_script_modules ); 152 $this->assertFalse( isset( $enqueued_script_modules['foo'] ) ); 153 $this->assertTrue( isset( $enqueued_script_modules['bar'] ) ); 154 } 155 156 /** 157 * Tests that a script module is not deregistered 158 * if it has not been registered before, causing 159 * no errors. 160 * 161 * @ticket 60463 162 * 163 * @covers ::deregister() 164 * @covers ::get_enqueued_script_modules() 165 */ 166 public function test_wp_deregister_unexistent_script_module() { 167 $this->script_modules->deregister( 'unexistent' ); 168 $enqueued_script_modules = $this->get_enqueued_script_modules(); 169 170 $this->assertCount( 0, $enqueued_script_modules ); 171 $this->assertFalse( isset( $enqueued_script_modules['unexistent'] ) ); 172 } 173 174 /** 175 * Tests that a script module is not deregistered 176 * if it has been deregistered previously, causing 177 * no errors. 178 * 179 * @ticket 60463 180 * 181 * @covers ::get_enqueued_script_modules() 182 * @covers ::register() 183 * @covers ::deregister() 184 * @covers ::enqueue() 185 */ 186 public function test_wp_deregister_already_deregistered_script_module() { 187 $this->script_modules->register( 'foo', '/foo.js' ); 188 $this->script_modules->enqueue( 'foo' ); 189 $this->script_modules->deregister( 'foo' ); // Dequeued. 190 $enqueued_script_modules = $this->get_enqueued_script_modules(); 191 192 $this->assertCount( 0, $enqueued_script_modules ); 193 $this->assertFalse( isset( $enqueued_script_modules['foo'] ) ); 194 195 $this->script_modules->deregister( 'foo' ); // Dequeued. 196 $enqueued_script_modules = $this->get_enqueued_script_modules(); 197 198 $this->assertCount( 0, $enqueued_script_modules ); 199 $this->assertFalse( isset( $enqueued_script_modules['foo'] ) ); 200 } 201 129 202 /** 130 203 * Tests that a script module can be enqueued before it is registered, and will
Note: See TracChangeset
for help on using the changeset viewer.