PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 5.0.3
Jetpack – WP Security, Backup, Speed, & Growth v5.0.3
16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 All 501 releases
jetpack / class.jetpack-constants.php

class.jetpack-constants.php in Jetpack – WP Security, Backup, Speed, & Growth 5.0.3, at class.jetpack-constants.php

84 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Class Jetpack_Constants
5 *
6 * Testing constants is hard. Once you define a constant, it's defined. Jetpack_Constants is an
7 * abstraction layer so that unit tests can set "constants" for tests.
8 *
9 * To test your code, you'll need to swap out `defined( 'CONSTANT' )` with `Jetpack_Constants::is_defined( 'CONSTANT' )`
10 * and replace `CONSTANT` with `Jetpack_Constants::get_constant( 'CONSTANT' )`. Then in the unit test, you can set the
11 * constant with `Jetpack::set_constant( 'CONSTANT', $value )` and then clean up after each test with something like
12 * this:
13 *
14 * function tearDown() {
15 * Jetpack_Constants::clear_constants();
16 * }
17 */
18 class Jetpack_Constants {
19 static $set_constants = array();
20
21 /**
22 * Checks if a "constant" has been set in Jetpack_Constants, and if not,
23 * checks if the constant was defined with define( 'name', 'value ).
24 *
25 * @param $name string The name of the constant
26 *
27 * @return bool
28 */
29 public static function is_defined( $name ) {
30 return array_key_exists( $name, self::$set_constants )
31 ? true
32 : defined( $name );
33 }
34
35 /**
36 * Attempts to retrieve the "constant" from Jetpack_Constants, and if it hasn't been set,
37 * then attempts to get the constant with the constant() function.
38 *
39 * @param $name
40 *
41 * @return mixed null if the constant does not exist or the value of the constant.
42 */
43 public static function get_constant( $name ) {
44 if ( array_key_exists( $name, self::$set_constants ) ) {
45 return self::$set_constants[ $name ];
46 }
47
48 return defined( $name ) ? constant( $name ) : null;
49 }
50
51 /**
52 * Sets the value of the "constant" within Jetpack_Constants.
53 *
54 * @param $name string The name of the "constant"
55 * @param $value string The value of the "constant"
56 */
57 public static function set_constant( $name, $value ) {
58 self::$set_constants[ $name ] = $value;
59 }
60
61 /**
62 * Will unset a "constant" from Jetpack_Constants if the constant exists.
63 *
64 * @param $name string The name of the "constant"
65 *
66 * @return bool Whether the constant was removed.
67 */
68 public static function clear_single_constant( $name ) {
69 if ( ! array_key_exists( $name, self::$set_constants ) ) {
70 return false;
71 }
72
73 unset( self::$set_constants[ $name ] );
74 return true;
75 }
76
77 /**
78 * Resets all of the constants within Jetpack_Constants.
79 */
80 public static function clear_constants() {
81 self::$set_constants = array();
82 }
83 }
84