Passed
Push — 1.10.x ( f64eef...04397c )
by Angel Fernando Quiroz
132:38 queued 79:40
created
plugin/pens/lib/pens/pens_server.php 1 patch
Indentation   +260 added lines, -260 removed lines patch added patch discarded remove patch
@@ -16,15 +16,15 @@  discard block
 block discarded – undo
16 16
  * along with php-pens.  If not, see <http://www.gnu.org/licenses/>.
17 17
  */
18 18
  
19
- /**
20
- * PENSServer
21
- * 
22
- * Provides the PENSServer class
23
- * 
24
- * @package PENS
25
- * @author Guillaume Viguier-Just <[email protected]>
26
- * @licence http://www.gnu.org/licenses/gpl.txt
27
- */
19
+    /**
20
+     * PENSServer
21
+     * 
22
+     * Provides the PENSServer class
23
+     * 
24
+     * @package PENS
25
+     * @author Guillaume Viguier-Just <[email protected]>
26
+     * @licence http://www.gnu.org/licenses/gpl.txt
27
+     */
28 28
 
29 29
 require_once __DIR__ . '/pens_controller.php';
30 30
 require_once __DIR__ . '/pens_package_handler.php';
@@ -42,272 +42,272 @@  discard block
 block discarded – undo
42 42
  */
43 43
 class PENSServer extends PENSController {
44 44
 
45
-	/**
46
-	 * Instance of the PENSServer
47
-	 * @var PENSServer
48
-	 */
49
-	private static $_instance;
45
+    /**
46
+     * Instance of the PENSServer
47
+     * @var PENSServer
48
+     */
49
+    private static $_instance;
50 50
 	
51
-	/**
52
-	 * Package handler
53
-	 * @var PENSPackageHandler
54
-	 */
55
-	protected $_package_handler = null;
51
+    /**
52
+     * Package handler
53
+     * @var PENSPackageHandler
54
+     */
55
+    protected $_package_handler = null;
56 56
 	
57
-	/**
58
-	 * Private constructor
59
-	 */
60
-	private function __construct() {
61
-	}
57
+    /**
58
+     * Private constructor
59
+     */
60
+    private function __construct() {
61
+    }
62 62
 	
63
-	/**
64
-	 * Singleton method
65
-	 */
66
-	public static function singleton() {
67
-		if(!isset(self::$_instance)) {
68
-			$c = __CLASS__;
69
-			self::$_instance = new $c;
70
-		}
71
-		return self::$_instance;
72
-	}
63
+    /**
64
+     * Singleton method
65
+     */
66
+    public static function singleton() {
67
+        if(!isset(self::$_instance)) {
68
+            $c = __CLASS__;
69
+            self::$_instance = new $c;
70
+        }
71
+        return self::$_instance;
72
+    }
73 73
 	
74
-	/**
75
-	 * Prevent users to clone the instance
76
-	 */
77
-	public function __clone() {
78
-		trigger_error('Clone is not allowed', E_USER_ERROR);
79
-	}
74
+    /**
75
+     * Prevent users to clone the instance
76
+     */
77
+    public function __clone() {
78
+        trigger_error('Clone is not allowed', E_USER_ERROR);
79
+    }
80 80
 	
81
-	public function getPackageHandler() {
82
-		return $this->_package_handler;
83
-	}
81
+    public function getPackageHandler() {
82
+        return $this->_package_handler;
83
+    }
84 84
 	
85
-	/**
86
-	 * Sets the package handler. Does nothing if the argument is not an instance of PENSPackageHandler
87
-	 * 
88
-	 * @param PENSPackageHandler Package handler
89
-	 */
90
-	public function setPackageHandler($package_handler) {
91
-		if($package_handler instanceof PENSPackageHandler) {
92
-			$this->_package_handler = $package_handler;
93
-		}
94
-	}
85
+    /**
86
+     * Sets the package handler. Does nothing if the argument is not an instance of PENSPackageHandler
87
+     * 
88
+     * @param PENSPackageHandler Package handler
89
+     */
90
+    public function setPackageHandler($package_handler) {
91
+        if($package_handler instanceof PENSPackageHandler) {
92
+            $this->_package_handler = $package_handler;
93
+        }
94
+    }
95 95
 	
96
-	/**
97
-	 * Receives a collect request and treats it
98
-	 */
99
-	public function receiveCollect() {
100
-		$request = null;
101
-		try {
102
-			// First, try to parse the request
103
-			$request = $this->parseRequest();
104
-			if($request->getCommand() == "collect") {
105
-				if(isset($_REQUEST['process'])) {
106
-					// Collect the package and process it
107
-					$receipt = null;
108
-					$path_to_package = null;
109
-					try {
110
-						// Collect the package
111
-						$path_to_package = $this->collectPackage($request);
112
-						$receipt = new PENSResponse(0, "package successfully collected");
113
-					} catch(PENSException $e) {
114
-						$receipt = new PENSResponse($e);
115
-					}
116
-					// Send receipt
117
-					$response = $this->sendReceipt($request, $receipt);
118
-					if(!is_null($response) && !is_null($path_to_package)) {
119
-						if($response->getError() === 0) {
120
-							// Process package
121
-							$this->processPackage($request, $path_to_package);
122
-						}
123
-						unlink($path_to_package);
124
-					}
125
-				} else {
126
-					// Then, send a success response to the client
127
-					$this->sendResponse(new PENSResponse(0, "collect command received and understood"));
128
-					// Send a request to process the package: fake multithreading
129
-					$params = $_REQUEST;
130
-					$params['process'] = 1;
131
-					$scheme = "http";
132
-					if(!empty($_SERVER['HTTPS'])) {
133
-						$scheme = "https";
134
-					}
135
-					$ch = curl_init();
136
-					curl_setopt($ch, CURLOPT_URL, $scheme."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
137
-					curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
138
-					curl_setopt($ch, CURLOPT_TIMEOUT, 1);
139
-					curl_exec($ch);
140
-					curl_close($ch);
141
-				}
142
-			}
96
+    /**
97
+     * Receives a collect request and treats it
98
+     */
99
+    public function receiveCollect() {
100
+        $request = null;
101
+        try {
102
+            // First, try to parse the request
103
+            $request = $this->parseRequest();
104
+            if($request->getCommand() == "collect") {
105
+                if(isset($_REQUEST['process'])) {
106
+                    // Collect the package and process it
107
+                    $receipt = null;
108
+                    $path_to_package = null;
109
+                    try {
110
+                        // Collect the package
111
+                        $path_to_package = $this->collectPackage($request);
112
+                        $receipt = new PENSResponse(0, "package successfully collected");
113
+                    } catch(PENSException $e) {
114
+                        $receipt = new PENSResponse($e);
115
+                    }
116
+                    // Send receipt
117
+                    $response = $this->sendReceipt($request, $receipt);
118
+                    if(!is_null($response) && !is_null($path_to_package)) {
119
+                        if($response->getError() === 0) {
120
+                            // Process package
121
+                            $this->processPackage($request, $path_to_package);
122
+                        }
123
+                        unlink($path_to_package);
124
+                    }
125
+                } else {
126
+                    // Then, send a success response to the client
127
+                    $this->sendResponse(new PENSResponse(0, "collect command received and understood"));
128
+                    // Send a request to process the package: fake multithreading
129
+                    $params = $_REQUEST;
130
+                    $params['process'] = 1;
131
+                    $scheme = "http";
132
+                    if(!empty($_SERVER['HTTPS'])) {
133
+                        $scheme = "https";
134
+                    }
135
+                    $ch = curl_init();
136
+                    curl_setopt($ch, CURLOPT_URL, $scheme."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
137
+                    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
138
+                    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
139
+                    curl_exec($ch);
140
+                    curl_close($ch);
141
+                }
142
+            }
143 143
 				
144
-		} catch(PENSException $e) {
145
-			// If we could not parse the request, send the error back to the client
146
-			$this->sendResponse(new PENSResponse($e));
147
-		}
148
-	}
144
+        } catch(PENSException $e) {
145
+            // If we could not parse the request, send the error back to the client
146
+            $this->sendResponse(new PENSResponse($e));
147
+        }
148
+    }
149 149
 	
150
-	/**
151
-	 * Collects the package onto the local server
152
-	 * 
153
-	 * @param PENSRequest request
154
-	 * @return string Path to the package on the hard drive
155
-	 * @throws PENSException if an exception occured
156
-	 */
157
-	protected function collectPackage($request) {
158
-		$supported_package_types = $this->_package_handler->getSupportedPackageTypes();
159
-		if(!in_array($request->getPackageType(), $supported_package_types)) {
160
-			throw new PENSException(1430);
161
-		}
162
-		$supported_package_formats = $this->_package_handler->getSupportedPackageFormats();
163
-		if(!in_array($request->getPackageFormat(), $supported_package_formats)) {
164
-			throw new PENSException(1431);
165
-		}
166
-		if(!$this->isExpiryDateValid($request->getPackageUrlExpiry())) {
167
-			throw new PENSException(1322);
168
-		}
150
+    /**
151
+     * Collects the package onto the local server
152
+     * 
153
+     * @param PENSRequest request
154
+     * @return string Path to the package on the hard drive
155
+     * @throws PENSException if an exception occured
156
+     */
157
+    protected function collectPackage($request) {
158
+        $supported_package_types = $this->_package_handler->getSupportedPackageTypes();
159
+        if(!in_array($request->getPackageType(), $supported_package_types)) {
160
+            throw new PENSException(1430);
161
+        }
162
+        $supported_package_formats = $this->_package_handler->getSupportedPackageFormats();
163
+        if(!in_array($request->getPackageFormat(), $supported_package_formats)) {
164
+            throw new PENSException(1431);
165
+        }
166
+        if(!$this->isExpiryDateValid($request->getPackageUrlExpiry())) {
167
+            throw new PENSException(1322);
168
+        }
169 169
 		
170
-		// Try to download the package in the temporary directory
171
-		$tmp = null;
172
-		if(function_exists("sys_get_temp_dir")) {
173
-			$tmp = sys_get_temp_dir();
174
-		} else {
175
-			$tmp = "/tmp";
176
-		}
177
-		$path_to_file = $tmp."/".$request->getFilename();
178
-		$fp = fopen($path_to_file, 'w');
179
-		$ch = curl_init();
180
-		curl_setopt($ch, CURLOPT_URL, $request->getPackageUrl());
181
-		curl_setopt($ch, CURLOPT_HEADER, false);	
182
-		curl_setopt($ch, CURLOPT_FILE, $fp);
183
-		if(!is_null($request->getPackageUrlUserId())) {
184
-			curl_setopt($ch, CURLOPT_USERPWD, $request->getPackageUrlUserId().":".$request->getPackageUrlPassword());
185
-		}
186
-		if(curl_exec($ch) === false) {
187
-			$errno = curl_errno($ch);
188
-			curl_close($ch);
189
-			// Error occured. Throw an exception
190
-			switch($errno) {
191
-				case CURLE_UNSUPPORTED_PROTOCOL:
192
-					throw new PENSException(1301);
193
-					break;
194
-				case CURLE_URL_MALFORMAT:
195
-				case CURLE_COULDNT_RESOLVE_PROXY:
196
-				case CURLE_COULDNT_RESOLVE_HOST:
197
-				case CURLE_COULDNT_CONNECT:
198
-				case CURLE_OPERATION_TIMEOUT:
199
-				case CURLE_REMOTE_FILE_NOT_FOUND:
200
-					throw new PENSException(1310);
201
-					break;
202
-				case CURLE_REMOTE_ACCESS_DENIED:
203
-					throw new PENSException(1312);
204
-					break;
205
-				default:
206
-					throw new PENSException(1301);
207
-					break;
208
-			}
209
-			return null;
170
+        // Try to download the package in the temporary directory
171
+        $tmp = null;
172
+        if(function_exists("sys_get_temp_dir")) {
173
+            $tmp = sys_get_temp_dir();
174
+        } else {
175
+            $tmp = "/tmp";
176
+        }
177
+        $path_to_file = $tmp."/".$request->getFilename();
178
+        $fp = fopen($path_to_file, 'w');
179
+        $ch = curl_init();
180
+        curl_setopt($ch, CURLOPT_URL, $request->getPackageUrl());
181
+        curl_setopt($ch, CURLOPT_HEADER, false);	
182
+        curl_setopt($ch, CURLOPT_FILE, $fp);
183
+        if(!is_null($request->getPackageUrlUserId())) {
184
+            curl_setopt($ch, CURLOPT_USERPWD, $request->getPackageUrlUserId().":".$request->getPackageUrlPassword());
185
+        }
186
+        if(curl_exec($ch) === false) {
187
+            $errno = curl_errno($ch);
188
+            curl_close($ch);
189
+            // Error occured. Throw an exception
190
+            switch($errno) {
191
+                case CURLE_UNSUPPORTED_PROTOCOL:
192
+                    throw new PENSException(1301);
193
+                    break;
194
+                case CURLE_URL_MALFORMAT:
195
+                case CURLE_COULDNT_RESOLVE_PROXY:
196
+                case CURLE_COULDNT_RESOLVE_HOST:
197
+                case CURLE_COULDNT_CONNECT:
198
+                case CURLE_OPERATION_TIMEOUT:
199
+                case CURLE_REMOTE_FILE_NOT_FOUND:
200
+                    throw new PENSException(1310);
201
+                    break;
202
+                case CURLE_REMOTE_ACCESS_DENIED:
203
+                    throw new PENSException(1312);
204
+                    break;
205
+                default:
206
+                    throw new PENSException(1301);
207
+                    break;
208
+            }
209
+            return null;
210 210
 				
211
-		} else {
212
-			curl_close($ch);
213
-			return $path_to_file;
214
-		}
215
-	}
211
+        } else {
212
+            curl_close($ch);
213
+            return $path_to_file;
214
+        }
215
+    }
216 216
 	
217
-	/**
218
-	 * Verifies that the package url is not expired
219
-	 * 
220
-	 * @param DateTime DateTime object to verify against current time
221
-	 */
222
-	protected function isExpiryDateValid($expiry) {
223
-		date_default_timezone_set('UTC');
224
-		$current_time = time();
225
-		$expiry_time = strtotime($expiry->format(DateTime::ISO8601));
226
-		if($current_time > $expiry_time) {
227
-			return false;
228
-		} else {
229
-			return true;
230
-		}
231
-	}
217
+    /**
218
+     * Verifies that the package url is not expired
219
+     * 
220
+     * @param DateTime DateTime object to verify against current time
221
+     */
222
+    protected function isExpiryDateValid($expiry) {
223
+        date_default_timezone_set('UTC');
224
+        $current_time = time();
225
+        $expiry_time = strtotime($expiry->format(DateTime::ISO8601));
226
+        if($current_time > $expiry_time) {
227
+            return false;
228
+        } else {
229
+            return true;
230
+        }
231
+    }
232 232
 	
233
-	/**
234
-	 * Sends an alert or a receipt. Called by sendReceipt and sendAlert
235
-	 * 
236
-	 * @param PENSRequest Original collect request
237
-	 * @param PENSResponse Reponse to send in the receipt or the alert
238
-	 * @param string Mode (alert | receipt)
239
-	 * @return PENSResponse Response
240
-	 */
241
-	protected function sendAlertOrReceipt($request, $response, $mode) {
242
-		if($mode == "alert") {
243
-			$url = $request->getAlerts();
244
-		} else {
245
-			$url = $request->getReceipt();
246
-		}
247
-		if(!empty($url)) {
248
-			$url_components = parse_url($url);
249
-			$scheme = $url_components["scheme"];
250
-			if($scheme == "mailto") {
251
-				$to = $url_components["path"];
252
-				if($mode == "alert") {
253
-					$subject = "PENS Alert for ".$request->getPackageId();
254
-				} else {
255
-					$subject = "PENS Receipt for ".$request->getPackageId();
256
-				}
257
-				$message = $response->__toString();
258
-				mail($to, $subject, $message);
259
-				return new PENSResponse(0, "");
260
-			} else if($scheme == "http" || $scheme == "https") {
261
-				if($mode == "alert") {
262
-					$params = array_merge($request->getSendAlertArray(), $response->getArray());
263
-				} else {
264
-					$params = array_merge($request->getSendReceiptArray(), $response->getArray());
265
-				}
266
-				$ch = curl_init($url);
267
-				curl_setopt($ch, CURLOPT_POST, true);
268
-				curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
269
-				curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
270
-				$data = curl_exec($ch);
271
-				curl_close($ch);
272
-				if($data === false) {
273
-					return null;
274
-				} else {
275
-					return new PENSResponse($data);
276
-				}
277
-			}
278
-		}
279
-	}
233
+    /**
234
+     * Sends an alert or a receipt. Called by sendReceipt and sendAlert
235
+     * 
236
+     * @param PENSRequest Original collect request
237
+     * @param PENSResponse Reponse to send in the receipt or the alert
238
+     * @param string Mode (alert | receipt)
239
+     * @return PENSResponse Response
240
+     */
241
+    protected function sendAlertOrReceipt($request, $response, $mode) {
242
+        if($mode == "alert") {
243
+            $url = $request->getAlerts();
244
+        } else {
245
+            $url = $request->getReceipt();
246
+        }
247
+        if(!empty($url)) {
248
+            $url_components = parse_url($url);
249
+            $scheme = $url_components["scheme"];
250
+            if($scheme == "mailto") {
251
+                $to = $url_components["path"];
252
+                if($mode == "alert") {
253
+                    $subject = "PENS Alert for ".$request->getPackageId();
254
+                } else {
255
+                    $subject = "PENS Receipt for ".$request->getPackageId();
256
+                }
257
+                $message = $response->__toString();
258
+                mail($to, $subject, $message);
259
+                return new PENSResponse(0, "");
260
+            } else if($scheme == "http" || $scheme == "https") {
261
+                if($mode == "alert") {
262
+                    $params = array_merge($request->getSendAlertArray(), $response->getArray());
263
+                } else {
264
+                    $params = array_merge($request->getSendReceiptArray(), $response->getArray());
265
+                }
266
+                $ch = curl_init($url);
267
+                curl_setopt($ch, CURLOPT_POST, true);
268
+                curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
269
+                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
270
+                $data = curl_exec($ch);
271
+                curl_close($ch);
272
+                if($data === false) {
273
+                    return null;
274
+                } else {
275
+                    return new PENSResponse($data);
276
+                }
277
+            }
278
+        }
279
+    }
280 280
 	
281
-	/**
282
-	 * Sends a receipt. Returns a PENSResponse in case of success, null if a problem occured
283
-	 * 
284
-	 * @param PENSRequest Original collect request
285
-	 * @param PENSResponse Response to send in the receipt
286
-	 * @return PENSResponse Response
287
-	 */
288
-	protected function sendReceipt($request, $receipt) {
289
-		return $this->sendAlertOrReceipt($request, $receipt, "receipt");
290
-	}
281
+    /**
282
+     * Sends a receipt. Returns a PENSResponse in case of success, null if a problem occured
283
+     * 
284
+     * @param PENSRequest Original collect request
285
+     * @param PENSResponse Response to send in the receipt
286
+     * @return PENSResponse Response
287
+     */
288
+    protected function sendReceipt($request, $receipt) {
289
+        return $this->sendAlertOrReceipt($request, $receipt, "receipt");
290
+    }
291 291
 	
292
-	/**
293
-	 * Processes the package using the handler provided
294
-	 * 
295
-	 * @param PENSRequest Original collect request
296
-	 * @param string Path to the package on the hard drive
297
-	 */
298
-	protected function processPackage($request, $path_to_package) {
299
-		return $this->_package_handler->processPackage($request, $path_to_package);
300
-	}
292
+    /**
293
+     * Processes the package using the handler provided
294
+     * 
295
+     * @param PENSRequest Original collect request
296
+     * @param string Path to the package on the hard drive
297
+     */
298
+    protected function processPackage($request, $path_to_package) {
299
+        return $this->_package_handler->processPackage($request, $path_to_package);
300
+    }
301 301
 	
302
-	/**
303
-	 * Sends an alert to the client. Returns a PENSResponse in case of success, null if a problem occured
304
-	 * 
305
-	 * @param PENSRequest Original collect request
306
-	 * @param PENSResponse Response to send in the alert
307
-	 * @return PENSResponse Response
308
-	 */
309
-	public function sendAlert($request, $alert) {
310
-		return $this->sendAlertOrReceipt($request, $alert, "alert");
311
-	}
302
+    /**
303
+     * Sends an alert to the client. Returns a PENSResponse in case of success, null if a problem occured
304
+     * 
305
+     * @param PENSRequest Original collect request
306
+     * @param PENSResponse Response to send in the alert
307
+     * @return PENSResponse Response
308
+     */
309
+    public function sendAlert($request, $alert) {
310
+        return $this->sendAlertOrReceipt($request, $alert, "alert");
311
+    }
312 312
 	
313 313
 }
Please login to merge, or discard this patch.
plugin/pens/lib/pens/pens_request_factory.php 1 patch
Indentation   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -43,26 +43,26 @@
 block discarded – undo
43 43
  */
44 44
 class PENSRequestFactory {
45 45
 
46
-	/**
47
-	 * Factory method
48
-	 * 
49
-	 * Creates the right PENSRequest object, based on the command inside the arguments
50
-	 * 
51
-	 * @param array Associative array of arguments
52
-	 * @return mixed PENSRequestAlert or PENSRequestCollect or PENSRequestReceipt
53
-	 * 
54
-	 * @throws PENSException with code 2002 if command is invalid
55
-	 */
56
-	public static function createPENSRequest($arguments) {
57
-		$command = $arguments["command"];
58
-		if($command == "alert") {
59
-			return new PENSRequestAlert($arguments);
60
-		} else if($command == "collect") {
61
-			return new PENSRequestCollect($arguments);
62
-		} else if($command == "receipt") {
63
-			return new PENSRequestReceipt($arguments);
64
-		} else {
65
-			throw new PENSException(2002);
66
-		}
67
-	}
46
+    /**
47
+     * Factory method
48
+     * 
49
+     * Creates the right PENSRequest object, based on the command inside the arguments
50
+     * 
51
+     * @param array Associative array of arguments
52
+     * @return mixed PENSRequestAlert or PENSRequestCollect or PENSRequestReceipt
53
+     * 
54
+     * @throws PENSException with code 2002 if command is invalid
55
+     */
56
+    public static function createPENSRequest($arguments) {
57
+        $command = $arguments["command"];
58
+        if($command == "alert") {
59
+            return new PENSRequestAlert($arguments);
60
+        } else if($command == "collect") {
61
+            return new PENSRequestCollect($arguments);
62
+        } else if($command == "receipt") {
63
+            return new PENSRequestReceipt($arguments);
64
+        } else {
65
+            throw new PENSException(2002);
66
+        }
67
+    }
68 68
 }
Please login to merge, or discard this patch.
plugin/pens/lib/pens/pens_request.php 1 patch
Indentation   +462 added lines, -462 removed lines patch added patch discarded remove patch
@@ -1,20 +1,20 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * This file is part of php-pens.
4
- * 
5
- * php-pens is free software: you can redistribute it and/or modify 
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- * 
10
- * php-pens is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
- * GNU General Public License for more details.
14
- * 
15
- * You should have received a copy of the GNU General Public License
16
- * along with php-pens.  If not, see <http://www.gnu.org/licenses/>.
17
- */
3
+     * This file is part of php-pens.
4
+     * 
5
+     * php-pens is free software: you can redistribute it and/or modify 
6
+     * it under the terms of the GNU General Public License as published by
7
+     * the Free Software Foundation, either version 3 of the License, or
8
+     * (at your option) any later version.
9
+     * 
10
+     * php-pens is distributed in the hope that it will be useful,
11
+     * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
+     * GNU General Public License for more details.
14
+     * 
15
+     * You should have received a copy of the GNU General Public License
16
+     * along with php-pens.  If not, see <http://www.gnu.org/licenses/>.
17
+     */
18 18
 
19 19
 /**
20 20
  * PENSRequest
@@ -43,453 +43,453 @@  discard block
 block discarded – undo
43 43
 
44 44
 abstract class PENSRequest extends PENSMessage {
45 45
 
46
-	/**
47
-	 * PENS Version to be used. Currently, the only valid value is 1.0.0. Required.
48
-	 * @var string
49
-	 */
50
-	protected $_pens_version = null;
51
-	
52
-	/**
53
-	 * Command being used. The only valid values are collect, alert and receipt.Required
54
-	 * @var string
55
-	 */
56
-	protected $_command = null;
57
-	
58
-	/**
59
-	 * Package type being used. The only valid values are aicc-pkg, scorm-pif, ims-qti. Required
60
-	 * @var string
61
-	 */
62
-	protected $_package_type = null;
63
-	
64
-	/**
65
-	 * Package type version. Required
66
-	 * @var string
67
-	 */
68
-	protected $_package_type_version = null;
69
-	
70
-	/**
71
-	 * Package format. The only valid values are zip, url, jar, war and xml. Required
72
-	 * @var string
73
-	 */
74
-	protected $_package_format = null;
75
-	
76
-	/**
77
-	 * Package id. Requires a valid URI according to RFC 2396. Required
78
-	 * @var string
79
-	 */
80
-	protected $_package_id = null;
81
-	
82
-	/**
83
-	 * Package url. Requires a valid, fully qualified URL including transport protocol and filename extension. Required
84
-	 * @var string
85
-	 */
86
-	protected $_package_url = null;
87
-	
88
-	/**
89
-	 * User id required for system to retrieve package from URL. Optional.
90
-	 * @var string
91
-	 */
92
-	protected $_package_url_user_id = null;
93
-	
94
-	/**
95
-	 * Account required for system to retrieve package from URL. Optional.
96
-	 * @var string
97
-	 */
98
-	protected $_package_url_account = null;
99
-	
100
-	/**
101
-	 * Password required for system to retrieve package from URL. Optional.
102
-	 * @var string
103
-	 */
104
-	protected $_package_url_password = null;
105
-	
106
-	/**
107
-	 * Expiry date for package URL. ISO 8601 format expressed as UTC. Will be transformed into a PHP DateTime object during construction. Required
108
-	 * @var DateTime
109
-	 */
110
-	protected $_package_url_expiry = null;
111
-	
112
-	/**
113
-	 * Name or ID for client submitting the content package to the target system. Required.
114
-	 * @var string
115
-	 */
116
-	protected $_client = null;
117
-	
118
-	/**
119
-	 * User-id or sign-on for target system. Optional
120
-	 * @var string
121
-	 */
122
-	protected $_system_user_id = null;
123
-	
124
-	/**
125
-	 * Either a URL-encoded password token or the null string. If the 
126
-	 * target system requires a password and the null string value is 
127
-	 * passed, then the target system is responsible for prompting for a 
128
-	 * password for target system. Optional
129
-	 * @var string
130
-	 */
131
-	protected $_system_password = null;
132
-	
133
-	/**
134
-	 * URL to send acknowledgement receipt after collecting a package. Any URL, including mailto (as per RFC 2368 and RFC 2822). Required.
135
-	 * @var string
136
-	 */
137
-	protected $_receipt = null;
138
-	
139
-	/**
140
-	 * URL to send alerts to while processing the package. Any URL, including mailto (as per RFC 2368 and RFC 2822). Optional.
141
-	 * @var string
142
-	 */
143
-	protected $_alerts = null;
144
-	
145
-	/**
146
-	 * Unstructured character string that may be used to transfer vendor-specific data such as processing hints or deployment information. Optional.
147
-	 * @var string
148
-	 */
149
-	protected $_vendor_data = null;
150
-	
151
-	/**
152
-	 * Constructor
153
-	 * 
154
-	 * Constructs a PENSRequest based class using the arguments given
155
-	 * 
156
-	 * @param array Arguments
157
-	 */
158
-	public function __construct($arguments) {
159
-		$this->setPensVersion($arguments["pens-version"]);
160
-		$this->setPackageType($arguments["package-type"]);
161
-		$this->setPackageTypeVersion($arguments["package-type-version"]);
162
-		$this->setPackageFormat($arguments["package-format"]);
163
-		$this->setPackageId($arguments["package-id"]);
164
-		$this->setPackageUrl($arguments["package-url"]);
165
-		$this->setPackageUrlUserId($arguments["package-url-user-id"]);
166
-		$this->setPackageUrlAccount($arguments["package-url-account"]);
167
-		$this->setPackageUrlPassword($arguments["package-url-password"]);
168
-		$this->setPackageUrlExpiry($arguments["package-url-expiry"]);
169
-		$this->setClient($arguments["client"]);
170
-		$this->setSystemUserId($arguments["system-user-id"]);
171
-		$this->setSystemPassword($arguments["system-password"]);
172
-		$this->setReceipt($arguments["receipt"]);
173
-		$this->setAlerts($arguments["alerts"]);
174
-		$this->setVendorData($arguments["vendor-data"]);
175
-	}
176
-	
177
-	public function getPensVersion() {
178
-		return $this->_pens_version;
179
-	}
180
-	
181
-	/**
182
-	 * Sets the PENS version
183
-	 * 
184
-	 * @param string PENS version
185
-	 * 
186
-	 * @throws PENSException with code 2001 if invalid
187
-	 */
188
-	public function setPensVersion($pens_version) {
189
-		if($pens_version == PENSConfig::$version) {
190
-			$this->_pens_version = $pens_version;
191
-		} else {
192
-			throw new PENSException(2001);
193
-		}
194
-	}
195
-	
196
-	public function getCommand() {
197
-		return $this->_command;
198
-	}
199
-	
200
-	/**
201
-	 * Sets the command
202
-	 * 
203
-	 * @param string command
204
-	 * 
205
-	 * @throws PENSException with code 2002 if invalid
206
-	 */
207
-	protected function setCommand($command) {
208
-		if(in_array($command, PENSConfig::$allowed_commands)) {
209
-			$this->_command = $command;
210
-		} else {
211
-			throw new PENSException(2002);
212
-		}
213
-	}
214
-	
215
-	public function getPackageType() {
216
-		return $this->_package_type;
217
-	}
218
-	
219
-	/**
220
-	 * Sets the package type
221
-	 * 
222
-	 * @param string package type
223
-	 * 
224
-	 * @throws PENSException with code 2003 if invalid
225
-	 */
226
-	public function setPackageType($package_type) {
227
-		if(in_array($package_type, PENSConfig::$allowed_package_types)) {
228
-			$this->_package_type = $package_type;
229
-		} else {
230
-			throw new PENSException(2003);
231
-		}
232
-	}
233
-	
234
-	public function getPackageTypeVersion() {
235
-		return $this->_package_type_version;
236
-	}
237
-	
238
-	/**
239
-	 * Sets the package type version
240
-	 * 
241
-	 * @param string package type version
242
-	 * 
243
-	 * @throws PENSException with code 2004 if invalid
244
-	 */
245
-	public function setPackageTypeVersion($package_type_version) {
246
-		if(empty($package_type_version)) {
247
-			throw new PENSException(2004);
248
-		} else {
249
-			$this->_package_type_version = $package_type_version;
250
-		}
251
-	}
252
-	
253
-	public function getPackageFormat() {
254
-		return $this->_package_format;
255
-	}
256
-	
257
-	/**
258
-	 * Sets the package format
259
-	 * 
260
-	 * @param string package format
261
-	 * 
262
-	 * @throws PENSException with code 2005 if invalid
263
-	 */
264
-	public function setPackageFormat($package_format) {
265
-		if(in_array($package_format, PENSConfig::$allowed_package_formats)) {
266
-			$this->_package_format = $package_format;
267
-		} else {
268
-			throw new PENSException(2005);
269
-		}
270
-	}
271
-	
272
-	public function getPackageId() {
273
-		return $this->_package_id;
274
-	}
275
-	
276
-	/**
277
-	 * Sets the package Id
278
-	 * 
279
-	 * @param string package Id
280
-	 * 
281
-	 * @throws PENSException with code 2007 if invalid
282
-	 */
283
-	public function setPackageId($package_id) {
284
-		if (preg_match('/'.ABSOLUTEURI_2396.'/', $package_id)) {
285
-			$this->_package_id = $package_id;
286
-		} else {
287
-			throw new PENSException(2007);
288
-		}
289
-	}
290
-	
291
-	public function getPackageUrl() {
292
-		return $this->_package_url;
293
-	}
294
-	
295
-	/**
296
-	 * Sets the package url
297
-	 * 
298
-	 * @param string package url
299
-	 * 
300
-	 * @throws PENSException with code 2008 if invalid
301
-	 */
302
-	public function setPackageUrl($package_url) {
303
-		if (preg_match('/'.ABSOLUTEURI_2396.'/', $package_url) && substr($package_url, -4) == ".".$this->_package_format) {
304
-			$this->_package_url = $package_url;
305
-		} else {
306
-			throw new PENSException(2008);
307
-		}
308
-	}
309
-	
310
-	public function getFilename() {
311
-		return substr(strrchr($this->_package_url, "/"), 1);
312
-	}
313
-	
314
-	public function getPackageUrlUserId() {
315
-		return $this->_package_url_user_id;
316
-	}
317
-	
318
-	public function setPackageUrlUserId($package_url_user_id) {
319
-		if(!empty($package_url_user_id)) {
320
-			$this->_package_url_user_id = $package_url_user_id;
321
-		}
322
-	}
323
-	
324
-	public function getPackageUrlAccount() {
325
-		return $this->_package_url_account;
326
-	}
327
-	
328
-	public function setPackageUrlAccount($package_url_account) {
329
-		if(!empty($package_url_account)) {
330
-			$this->_package_url_account = $package_url_account;
331
-		}
332
-	}
333
-	
334
-	public function getPackageUrlPassword() {
335
-		return $this->_package_url_password;
336
-	}
337
-	
338
-	public function setPackageUrlPassword($package_url_password) {
339
-		if(!empty($package_url_password)) {
340
-			$this->_package_url_password = $package_url_password;
341
-		}
342
-	}
343
-	
344
-	public function getPackageUrlExpiry() {
345
-		return $this->_package_url_expiry;
346
-	}
347
-	
348
-	/**
349
-	 * Sets the package url expiry and transforms it into a php DateTime object
350
-	 * 
351
-	 * @param string package url expiry
352
-	 * 
353
-	 * @throws PENSException with code 2009 if invalid
354
-	 * @todo Perform a better validation of the date
355
-	 */
356
-	public function setPackageUrlExpiry($package_url_expiry) {
357
-		if(empty($package_url_expiry)) {
358
-			throw new PENSException(2009);
359
-		} else {
360
-			try {
361
-				$expiry = new DateTime($package_url_expiry, new DateTimeZone('UTC'));
362
-				$this->_package_url_expiry = $expiry;
363
-			} catch(Exception $e) {
364
-				throw new PENSException(2009);
365
-			}
366
-		}
367
-	}
368
-	
369
-	public function getClient() {
370
-		return $this->_client;
371
-	}
372
-	
373
-	/**
374
-	 * Sets the client
375
-	 * 
376
-	 * @param string client
377
-	 * 
378
-	 * @throws PENSException with code 2010 if invalid
379
-	 */
380
-	public function setClient($client) {
381
-		if(!empty($client)) {
382
-			$this->_client = $client;
383
-		} else {
384
-			throw new PENSException(2010);
385
-		}
386
-	}
387
-	
388
-	public function getSystemUserId() {
389
-		return $this->_system_user_id;
390
-	}
391
-	
392
-	public function setSystemUserId($system_user_id) {
393
-		if(!empty($system_user_id)) {
394
-			$this->_system_user_id = $system_user_id;
395
-		}
396
-	}
397
-	
398
-	public function getSystemPassword() {
399
-		return $this->_system_password;
400
-	}
401
-	
402
-	public function setSystemPassword($system_password) {
403
-		if(!empty($system_password)) {
404
-			$this->_system_password = $system_password;
405
-		}
406
-	}
407
-	
408
-	public function getReceipt() {
409
-		return $this->_receipt;
410
-	}
411
-	
412
-	/**
413
-	 * Sets the receipt url
414
-	 * 
415
-	 * @param string receipt url
416
-	 * 
417
-	 * @throws PENSException with code 2011 if invalid
418
-	 */
419
-	public function setReceipt($receipt) {
420
-		if($this instanceof PENSRequestCollect) {
421
-			if (preg_match('/'.ABSOLUTEURI_2396.'/', $receipt)) {
422
-				$this->_receipt = $receipt;
423
-			} else {
424
-				throw new PENSException(2011);
425
-			}
426
-		}
427
-	}
428
-	
429
-	public function getAlerts() {
430
-		return $this->_alerts;
431
-	}
432
-	
433
-	public function setAlerts($alerts) {
434
-		if(!empty($alerts)) {
435
-			if(preg_match('/'.ABSOLUTEURI_2396.'/', $alerts)) {
436
-				$this->_alerts = $alerts;
437
-			} else {
438
-				throw new PENSException(1201);
439
-			}
440
-		}
441
-	}
442
-	
443
-	public function getVendorData() {
444
-		return $this->_vendor_data;
445
-	}
446
-	
447
-	public function setVendorData($vendor_data) {
448
-		if(!empty($vendor_data)) {
449
-			$this->_vendor_data = $vendor_data;
450
-		}
451
-	}
452
-	
453
-	/**
454
-	 * Returns an associative that contains all the fields needed to send a
455
-	 * receipt or an alert to the client
456
-	 * 
457
-	 * @return array Associative array
458
-	 */
459
-	protected function getSendReceiptAlertArray() {
460
-		return array("pens-version" => $this->getPensVersion(),
461
-			"package-type" => $this->getPackageType(),
462
-			"package-type-version" => $this->getPackageTypeVersion(),
463
-			"package-format" => $this->getPackageFormat(),
464
-			"package-id" => $this->getPackageId(),
465
-			"package-url" => $this->getPackageUrl(),
466
-			"package-url-expiry" => $this->getPackageUrlExpiry()->format(DateTime::ISO8601),
467
-			"client" => $this->getClient());
468
-	}
469
-	
470
-	/**
471
-	 * Returns an associative that contains all the fields needed to send a
472
-	 * receipt to the client
473
-	 * 
474
-	 * @return array Associative array
475
-	 */
476
-	public function getSendReceiptArray() {
477
-		$receipt = $this->getSendReceiptAlertArray();
478
-		$receipt["command"] = "receipt";
479
-		return $receipt;
480
-	}
481
-	
482
-	/**
483
-	 * Returns an associative that contains all the fields needed to send an
484
-	 * alert to the client
485
-	 * 
486
-	 * @return array Associative array
487
-	 */
488
-	public function getSendAlertArray() {
489
-		$alert = $this->getSendReceiptAlertArray();
490
-		$alert["command"] = "alert";
491
-		return $alert;
492
-	}
46
+    /**
47
+     * PENS Version to be used. Currently, the only valid value is 1.0.0. Required.
48
+     * @var string
49
+     */
50
+    protected $_pens_version = null;
51
+	
52
+    /**
53
+     * Command being used. The only valid values are collect, alert and receipt.Required
54
+     * @var string
55
+     */
56
+    protected $_command = null;
57
+	
58
+    /**
59
+     * Package type being used. The only valid values are aicc-pkg, scorm-pif, ims-qti. Required
60
+     * @var string
61
+     */
62
+    protected $_package_type = null;
63
+	
64
+    /**
65
+     * Package type version. Required
66
+     * @var string
67
+     */
68
+    protected $_package_type_version = null;
69
+	
70
+    /**
71
+     * Package format. The only valid values are zip, url, jar, war and xml. Required
72
+     * @var string
73
+     */
74
+    protected $_package_format = null;
75
+	
76
+    /**
77
+     * Package id. Requires a valid URI according to RFC 2396. Required
78
+     * @var string
79
+     */
80
+    protected $_package_id = null;
81
+	
82
+    /**
83
+     * Package url. Requires a valid, fully qualified URL including transport protocol and filename extension. Required
84
+     * @var string
85
+     */
86
+    protected $_package_url = null;
87
+	
88
+    /**
89
+     * User id required for system to retrieve package from URL. Optional.
90
+     * @var string
91
+     */
92
+    protected $_package_url_user_id = null;
93
+	
94
+    /**
95
+     * Account required for system to retrieve package from URL. Optional.
96
+     * @var string
97
+     */
98
+    protected $_package_url_account = null;
99
+	
100
+    /**
101
+     * Password required for system to retrieve package from URL. Optional.
102
+     * @var string
103
+     */
104
+    protected $_package_url_password = null;
105
+	
106
+    /**
107
+     * Expiry date for package URL. ISO 8601 format expressed as UTC. Will be transformed into a PHP DateTime object during construction. Required
108
+     * @var DateTime
109
+     */
110
+    protected $_package_url_expiry = null;
111
+	
112
+    /**
113
+     * Name or ID for client submitting the content package to the target system. Required.
114
+     * @var string
115
+     */
116
+    protected $_client = null;
117
+	
118
+    /**
119
+     * User-id or sign-on for target system. Optional
120
+     * @var string
121
+     */
122
+    protected $_system_user_id = null;
123
+	
124
+    /**
125
+     * Either a URL-encoded password token or the null string. If the 
126
+     * target system requires a password and the null string value is 
127
+     * passed, then the target system is responsible for prompting for a 
128
+     * password for target system. Optional
129
+     * @var string
130
+     */
131
+    protected $_system_password = null;
132
+	
133
+    /**
134
+     * URL to send acknowledgement receipt after collecting a package. Any URL, including mailto (as per RFC 2368 and RFC 2822). Required.
135
+     * @var string
136
+     */
137
+    protected $_receipt = null;
138
+	
139
+    /**
140
+     * URL to send alerts to while processing the package. Any URL, including mailto (as per RFC 2368 and RFC 2822). Optional.
141
+     * @var string
142
+     */
143
+    protected $_alerts = null;
144
+	
145
+    /**
146
+     * Unstructured character string that may be used to transfer vendor-specific data such as processing hints or deployment information. Optional.
147
+     * @var string
148
+     */
149
+    protected $_vendor_data = null;
150
+	
151
+    /**
152
+     * Constructor
153
+     * 
154
+     * Constructs a PENSRequest based class using the arguments given
155
+     * 
156
+     * @param array Arguments
157
+     */
158
+    public function __construct($arguments) {
159
+        $this->setPensVersion($arguments["pens-version"]);
160
+        $this->setPackageType($arguments["package-type"]);
161
+        $this->setPackageTypeVersion($arguments["package-type-version"]);
162
+        $this->setPackageFormat($arguments["package-format"]);
163
+        $this->setPackageId($arguments["package-id"]);
164
+        $this->setPackageUrl($arguments["package-url"]);
165
+        $this->setPackageUrlUserId($arguments["package-url-user-id"]);
166
+        $this->setPackageUrlAccount($arguments["package-url-account"]);
167
+        $this->setPackageUrlPassword($arguments["package-url-password"]);
168
+        $this->setPackageUrlExpiry($arguments["package-url-expiry"]);
169
+        $this->setClient($arguments["client"]);
170
+        $this->setSystemUserId($arguments["system-user-id"]);
171
+        $this->setSystemPassword($arguments["system-password"]);
172
+        $this->setReceipt($arguments["receipt"]);
173
+        $this->setAlerts($arguments["alerts"]);
174
+        $this->setVendorData($arguments["vendor-data"]);
175
+    }
176
+	
177
+    public function getPensVersion() {
178
+        return $this->_pens_version;
179
+    }
180
+	
181
+    /**
182
+     * Sets the PENS version
183
+     * 
184
+     * @param string PENS version
185
+     * 
186
+     * @throws PENSException with code 2001 if invalid
187
+     */
188
+    public function setPensVersion($pens_version) {
189
+        if($pens_version == PENSConfig::$version) {
190
+            $this->_pens_version = $pens_version;
191
+        } else {
192
+            throw new PENSException(2001);
193
+        }
194
+    }
195
+	
196
+    public function getCommand() {
197
+        return $this->_command;
198
+    }
199
+	
200
+    /**
201
+     * Sets the command
202
+     * 
203
+     * @param string command
204
+     * 
205
+     * @throws PENSException with code 2002 if invalid
206
+     */
207
+    protected function setCommand($command) {
208
+        if(in_array($command, PENSConfig::$allowed_commands)) {
209
+            $this->_command = $command;
210
+        } else {
211
+            throw new PENSException(2002);
212
+        }
213
+    }
214
+	
215
+    public function getPackageType() {
216
+        return $this->_package_type;
217
+    }
218
+	
219
+    /**
220
+     * Sets the package type
221
+     * 
222
+     * @param string package type
223
+     * 
224
+     * @throws PENSException with code 2003 if invalid
225
+     */
226
+    public function setPackageType($package_type) {
227
+        if(in_array($package_type, PENSConfig::$allowed_package_types)) {
228
+            $this->_package_type = $package_type;
229
+        } else {
230
+            throw new PENSException(2003);
231
+        }
232
+    }
233
+	
234
+    public function getPackageTypeVersion() {
235
+        return $this->_package_type_version;
236
+    }
237
+	
238
+    /**
239
+     * Sets the package type version
240
+     * 
241
+     * @param string package type version
242
+     * 
243
+     * @throws PENSException with code 2004 if invalid
244
+     */
245
+    public function setPackageTypeVersion($package_type_version) {
246
+        if(empty($package_type_version)) {
247
+            throw new PENSException(2004);
248
+        } else {
249
+            $this->_package_type_version = $package_type_version;
250
+        }
251
+    }
252
+	
253
+    public function getPackageFormat() {
254
+        return $this->_package_format;
255
+    }
256
+	
257
+    /**
258
+     * Sets the package format
259
+     * 
260
+     * @param string package format
261
+     * 
262
+     * @throws PENSException with code 2005 if invalid
263
+     */
264
+    public function setPackageFormat($package_format) {
265
+        if(in_array($package_format, PENSConfig::$allowed_package_formats)) {
266
+            $this->_package_format = $package_format;
267
+        } else {
268
+            throw new PENSException(2005);
269
+        }
270
+    }
271
+	
272
+    public function getPackageId() {
273
+        return $this->_package_id;
274
+    }
275
+	
276
+    /**
277
+     * Sets the package Id
278
+     * 
279
+     * @param string package Id
280
+     * 
281
+     * @throws PENSException with code 2007 if invalid
282
+     */
283
+    public function setPackageId($package_id) {
284
+        if (preg_match('/'.ABSOLUTEURI_2396.'/', $package_id)) {
285
+            $this->_package_id = $package_id;
286
+        } else {
287
+            throw new PENSException(2007);
288
+        }
289
+    }
290
+	
291
+    public function getPackageUrl() {
292
+        return $this->_package_url;
293
+    }
294
+	
295
+    /**
296
+     * Sets the package url
297
+     * 
298
+     * @param string package url
299
+     * 
300
+     * @throws PENSException with code 2008 if invalid
301
+     */
302
+    public function setPackageUrl($package_url) {
303
+        if (preg_match('/'.ABSOLUTEURI_2396.'/', $package_url) && substr($package_url, -4) == ".".$this->_package_format) {
304
+            $this->_package_url = $package_url;
305
+        } else {
306
+            throw new PENSException(2008);
307
+        }
308
+    }
309
+	
310
+    public function getFilename() {
311
+        return substr(strrchr($this->_package_url, "/"), 1);
312
+    }
313
+	
314
+    public function getPackageUrlUserId() {
315
+        return $this->_package_url_user_id;
316
+    }
317
+	
318
+    public function setPackageUrlUserId($package_url_user_id) {
319
+        if(!empty($package_url_user_id)) {
320
+            $this->_package_url_user_id = $package_url_user_id;
321
+        }
322
+    }
323
+	
324
+    public function getPackageUrlAccount() {
325
+        return $this->_package_url_account;
326
+    }
327
+	
328
+    public function setPackageUrlAccount($package_url_account) {
329
+        if(!empty($package_url_account)) {
330
+            $this->_package_url_account = $package_url_account;
331
+        }
332
+    }
333
+	
334
+    public function getPackageUrlPassword() {
335
+        return $this->_package_url_password;
336
+    }
337
+	
338
+    public function setPackageUrlPassword($package_url_password) {
339
+        if(!empty($package_url_password)) {
340
+            $this->_package_url_password = $package_url_password;
341
+        }
342
+    }
343
+	
344
+    public function getPackageUrlExpiry() {
345
+        return $this->_package_url_expiry;
346
+    }
347
+	
348
+    /**
349
+     * Sets the package url expiry and transforms it into a php DateTime object
350
+     * 
351
+     * @param string package url expiry
352
+     * 
353
+     * @throws PENSException with code 2009 if invalid
354
+     * @todo Perform a better validation of the date
355
+     */
356
+    public function setPackageUrlExpiry($package_url_expiry) {
357
+        if(empty($package_url_expiry)) {
358
+            throw new PENSException(2009);
359
+        } else {
360
+            try {
361
+                $expiry = new DateTime($package_url_expiry, new DateTimeZone('UTC'));
362
+                $this->_package_url_expiry = $expiry;
363
+            } catch(Exception $e) {
364
+                throw new PENSException(2009);
365
+            }
366
+        }
367
+    }
368
+	
369
+    public function getClient() {
370
+        return $this->_client;
371
+    }
372
+	
373
+    /**
374
+     * Sets the client
375
+     * 
376
+     * @param string client
377
+     * 
378
+     * @throws PENSException with code 2010 if invalid
379
+     */
380
+    public function setClient($client) {
381
+        if(!empty($client)) {
382
+            $this->_client = $client;
383
+        } else {
384
+            throw new PENSException(2010);
385
+        }
386
+    }
387
+	
388
+    public function getSystemUserId() {
389
+        return $this->_system_user_id;
390
+    }
391
+	
392
+    public function setSystemUserId($system_user_id) {
393
+        if(!empty($system_user_id)) {
394
+            $this->_system_user_id = $system_user_id;
395
+        }
396
+    }
397
+	
398
+    public function getSystemPassword() {
399
+        return $this->_system_password;
400
+    }
401
+	
402
+    public function setSystemPassword($system_password) {
403
+        if(!empty($system_password)) {
404
+            $this->_system_password = $system_password;
405
+        }
406
+    }
407
+	
408
+    public function getReceipt() {
409
+        return $this->_receipt;
410
+    }
411
+	
412
+    /**
413
+     * Sets the receipt url
414
+     * 
415
+     * @param string receipt url
416
+     * 
417
+     * @throws PENSException with code 2011 if invalid
418
+     */
419
+    public function setReceipt($receipt) {
420
+        if($this instanceof PENSRequestCollect) {
421
+            if (preg_match('/'.ABSOLUTEURI_2396.'/', $receipt)) {
422
+                $this->_receipt = $receipt;
423
+            } else {
424
+                throw new PENSException(2011);
425
+            }
426
+        }
427
+    }
428
+	
429
+    public function getAlerts() {
430
+        return $this->_alerts;
431
+    }
432
+	
433
+    public function setAlerts($alerts) {
434
+        if(!empty($alerts)) {
435
+            if(preg_match('/'.ABSOLUTEURI_2396.'/', $alerts)) {
436
+                $this->_alerts = $alerts;
437
+            } else {
438
+                throw new PENSException(1201);
439
+            }
440
+        }
441
+    }
442
+	
443
+    public function getVendorData() {
444
+        return $this->_vendor_data;
445
+    }
446
+	
447
+    public function setVendorData($vendor_data) {
448
+        if(!empty($vendor_data)) {
449
+            $this->_vendor_data = $vendor_data;
450
+        }
451
+    }
452
+	
453
+    /**
454
+     * Returns an associative that contains all the fields needed to send a
455
+     * receipt or an alert to the client
456
+     * 
457
+     * @return array Associative array
458
+     */
459
+    protected function getSendReceiptAlertArray() {
460
+        return array("pens-version" => $this->getPensVersion(),
461
+            "package-type" => $this->getPackageType(),
462
+            "package-type-version" => $this->getPackageTypeVersion(),
463
+            "package-format" => $this->getPackageFormat(),
464
+            "package-id" => $this->getPackageId(),
465
+            "package-url" => $this->getPackageUrl(),
466
+            "package-url-expiry" => $this->getPackageUrlExpiry()->format(DateTime::ISO8601),
467
+            "client" => $this->getClient());
468
+    }
469
+	
470
+    /**
471
+     * Returns an associative that contains all the fields needed to send a
472
+     * receipt to the client
473
+     * 
474
+     * @return array Associative array
475
+     */
476
+    public function getSendReceiptArray() {
477
+        $receipt = $this->getSendReceiptAlertArray();
478
+        $receipt["command"] = "receipt";
479
+        return $receipt;
480
+    }
481
+	
482
+    /**
483
+     * Returns an associative that contains all the fields needed to send an
484
+     * alert to the client
485
+     * 
486
+     * @return array Associative array
487
+     */
488
+    public function getSendAlertArray() {
489
+        $alert = $this->getSendReceiptAlertArray();
490
+        $alert["command"] = "alert";
491
+        return $alert;
492
+    }
493 493
 	
494 494
 	
495 495
 }
Please login to merge, or discard this patch.
plugin/pens/lib/pens/pens_response.php 1 patch
Indentation   +119 added lines, -119 removed lines patch added patch discarded remove patch
@@ -39,137 +39,137 @@
 block discarded – undo
39 39
  * @author Guillaume Viguier-Just <[email protected]>
40 40
  * @licence http://www.gnu.org/licenses/gpl.txt
41 41
  */
42
- class PENSResponse extends PENSMessage {
43
-	 /**
44
-	  * Error code
45
-	  * @var int
46
-	  */
47
-	 protected $_error = null;
42
+    class PENSResponse extends PENSMessage {
43
+        /**
44
+         * Error code
45
+         * @var int
46
+         */
47
+        protected $_error = null;
48 48
 	 
49
-	 /**
50
-	  * Descriptive text of the error
51
-	  * @var string
52
-	  */
53
-	 protected $_error_text = null;
49
+        /**
50
+         * Descriptive text of the error
51
+         * @var string
52
+         */
53
+        protected $_error_text = null;
54 54
 	 
55
-	 /**
56
-	  * Data linked to the error
57
-	  * @var string
58
-	  */
59
-	 protected $_pens_data = null;
55
+        /**
56
+         * Data linked to the error
57
+         * @var string
58
+         */
59
+        protected $_pens_data = null;
60 60
 	 
61
-	 /**
62
-	  * Version
63
-	  * @var string
64
-	  */
65
-	 protected $_pens_version = null;
61
+        /**
62
+         * Version
63
+         * @var string
64
+         */
65
+        protected $_pens_version = null;
66 66
 	 
67
-	 /**
68
-	  * Constructor
69
-	  * 
70
-	  * @param mixed Can be a PENSException or an error code or a string representing an HTTP response
71
-	  * @param string error text
72
-	  * @param string PENS data
73
-	  */
74
-	public function __construct($error, $error_text = null, $pens_data = null) {
75
-		$this->_pens_version = PENSConfig::$version;
76
-		if($error instanceof PENSException) {
77
-			$this->_error = $error->getCode();
78
-			$this->_error_text = $error->getMessage();
79
-		} else if(is_string($error)){
80
-			// Parse the string
81
-			$this->parseResponse($error);
82
-		} else if(is_array($error)) {
83
-			// Try to build from array
84
-			$this->_error = $error["error"];
85
-			$this->_error_text = $error["error-text"];
86
-			$this->_pens_data = $error["pens-data"];
87
-		} else {
88
-			$this->_error = $error;
89
-			$this->_error_text = $error_text;
90
-			$this->_pens_data = $pens_data;
91
-		}
67
+        /**
68
+         * Constructor
69
+         * 
70
+         * @param mixed Can be a PENSException or an error code or a string representing an HTTP response
71
+         * @param string error text
72
+         * @param string PENS data
73
+         */
74
+    public function __construct($error, $error_text = null, $pens_data = null) {
75
+        $this->_pens_version = PENSConfig::$version;
76
+        if($error instanceof PENSException) {
77
+            $this->_error = $error->getCode();
78
+            $this->_error_text = $error->getMessage();
79
+        } else if(is_string($error)){
80
+            // Parse the string
81
+            $this->parseResponse($error);
82
+        } else if(is_array($error)) {
83
+            // Try to build from array
84
+            $this->_error = $error["error"];
85
+            $this->_error_text = $error["error-text"];
86
+            $this->_pens_data = $error["pens-data"];
87
+        } else {
88
+            $this->_error = $error;
89
+            $this->_error_text = $error_text;
90
+            $this->_pens_data = $pens_data;
91
+        }
92 92
 		
93
-	}
93
+    }
94 94
 	
95
-	/**
96
-	 * Parses an HTTP response and assigns the attributes of the object
97
-	 * 
98
-	 * @param string HTTP response
99
-	 */
100
-	protected function parseResponse($response) {
101
-		$lines = explode(PENSConfig::$eol, $response);
102
-		$i = 1;
103
-		foreach($lines as $line) {
104
-			if($i < 5) {
105
-				$pair = explode("=", $line);
106
-				if($pair[0] == "error") {
107
-					$this->_error = intval($pair[1]);
108
-				} else if($pair[0] == "error-text") {
109
-					$this->_error_text = $pair[1];
110
-				} else if($pair[0] == "version") {
111
-					$this->_pens_version = $pair[1];
112
-				} else if($pair[0] == "pens-data") {
113
-					if(!empty($pair[1])) {
114
-						$this->_pens_data = $pair[1].PENSConfig::$eol;
115
-					}
116
-				}
117
-			} else {
118
-				if(!empty($line)) {
119
-					$this->_pens_data .= $line.PENSConfig::$eol;
120
-				}
121
-			}
122
-			$i++;
123
-		}
124
-	}
95
+    /**
96
+     * Parses an HTTP response and assigns the attributes of the object
97
+     * 
98
+     * @param string HTTP response
99
+     */
100
+    protected function parseResponse($response) {
101
+        $lines = explode(PENSConfig::$eol, $response);
102
+        $i = 1;
103
+        foreach($lines as $line) {
104
+            if($i < 5) {
105
+                $pair = explode("=", $line);
106
+                if($pair[0] == "error") {
107
+                    $this->_error = intval($pair[1]);
108
+                } else if($pair[0] == "error-text") {
109
+                    $this->_error_text = $pair[1];
110
+                } else if($pair[0] == "version") {
111
+                    $this->_pens_version = $pair[1];
112
+                } else if($pair[0] == "pens-data") {
113
+                    if(!empty($pair[1])) {
114
+                        $this->_pens_data = $pair[1].PENSConfig::$eol;
115
+                    }
116
+                }
117
+            } else {
118
+                if(!empty($line)) {
119
+                    $this->_pens_data .= $line.PENSConfig::$eol;
120
+                }
121
+            }
122
+            $i++;
123
+        }
124
+    }
125 125
 	
126
-	public function getError() {
127
-		return $this->_error;
128
-	}
126
+    public function getError() {
127
+        return $this->_error;
128
+    }
129 129
 	
130
-	public function getErrorText() {
131
-		return $this->_error_text;
132
-	}
130
+    public function getErrorText() {
131
+        return $this->_error_text;
132
+    }
133 133
 	
134
-	public function getPensData() {
135
-		return $this->_pens_data;
136
-	}
134
+    public function getPensData() {
135
+        return $this->_pens_data;
136
+    }
137 137
 	
138
-	public function getVersion() {
139
-		return $this->_pens_version;
140
-	}
138
+    public function getVersion() {
139
+        return $this->_pens_version;
140
+    }
141 141
 	
142
-	/**
143
-	 * Sends the response content through HTTP headers
144
-	 */
145
-	public function send() {
146
-		header("Content-Type: text/plain");
147
-		print $this;
148
-	}
142
+    /**
143
+     * Sends the response content through HTTP headers
144
+     */
145
+    public function send() {
146
+        header("Content-Type: text/plain");
147
+        print $this;
148
+    }
149 149
 	
150
-	/**
151
-	 * Returns an associative array of the response
152
-	 * 
153
-	 * @return array Associative array
154
-	 */
155
-	public function getArray() {
156
-		return array("error" => $this->_error,
157
-			"error-text" => $this->_error_text,
158
-			"version" => PENSConfig::$version,
159
-			"pens-data" => $this->_pens_data);
160
-	}
150
+    /**
151
+     * Returns an associative array of the response
152
+     * 
153
+     * @return array Associative array
154
+     */
155
+    public function getArray() {
156
+        return array("error" => $this->_error,
157
+            "error-text" => $this->_error_text,
158
+            "version" => PENSConfig::$version,
159
+            "pens-data" => $this->_pens_data);
160
+    }
161 161
 	
162
-	/**
163
-	 * Transforms the object into a string
164
-	 */
165
-	public function __toString() {
166
-		$eol = PENSConfig::$eol;
167
-		$return = "error=".$this->_error.$eol;
168
-		$return .= "error-text=".$this->_error_text.$eol;
169
-		$return .= "version=".PENSConfig::$version.$eol;
170
-		$return .= "pens-data=".$this->_pens_data.$eol;
171
-		return $return;
172
-	}
162
+    /**
163
+     * Transforms the object into a string
164
+     */
165
+    public function __toString() {
166
+        $eol = PENSConfig::$eol;
167
+        $return = "error=".$this->_error.$eol;
168
+        $return .= "error-text=".$this->_error_text.$eol;
169
+        $return .= "version=".PENSConfig::$version.$eol;
170
+        $return .= "pens-data=".$this->_pens_data.$eol;
171
+        return $return;
172
+    }
173 173
  
174
- }
174
+    }
175 175
  
Please login to merge, or discard this patch.
plugin/pens/lib/pens_server_test.php 1 patch
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -26,9 +26,9 @@
 block discarded – undo
26 26
 require_once __DIR__ . '/pens.php';
27 27
 
28 28
 class MyPackageHandler extends PENSPackageHandler {
29
-	public function processPackage($request, $path_to_package) {
30
-		// Do the package processing here
31
-	}
29
+    public function processPackage($request, $path_to_package) {
30
+        // Do the package processing here
31
+    }
32 32
 }
33 33
 
34 34
 $handler = new MyPackageHandler();
Please login to merge, or discard this patch.
plugin/pens/lib/tests/test_pens_response.php 1 patch
Indentation   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -44,25 +44,25 @@
 block discarded – undo
44 44
  */
45 45
 class TestPENSResponse extends UnitTestCase {
46 46
 	
47
-	public function testCreationFromPENSException() {
48
-		$object = new PENSResponse(new PENSException(1101));
49
-		$this->assertEqual($object->getError(), 1101);
50
-		$this->assertNotNull($object->getErrorText());
51
-	}
47
+    public function testCreationFromPENSException() {
48
+        $object = new PENSResponse(new PENSException(1101));
49
+        $this->assertEqual($object->getError(), 1101);
50
+        $this->assertNotNull($object->getErrorText());
51
+    }
52 52
 	
53
-	public function testCreationFromArguments() {
54
-		$object = new PENSResponse(0, "collect command received and understood");
55
-		$this->assertIdentical($object->getError(), 0);
56
-		$this->assertEqual($object->getErrorText(), "collect command received and understood");
57
-	}
53
+    public function testCreationFromArguments() {
54
+        $object = new PENSResponse(0, "collect command received and understood");
55
+        $this->assertIdentical($object->getError(), 0);
56
+        $this->assertEqual($object->getErrorText(), "collect command received and understood");
57
+    }
58 58
 	
59
-	public function testCreationFromHTTPResponse() {
60
-		$eol = PENSConfig::$eol;
61
-		$response = "error=1101".$eol."error-text=unable to parse PENS command".$eol."version=1.0.0".$eol."pens-data=".$eol;
62
-		$object = new PENSResponse($response);
63
-		$this->assertIdentical($object->getError(), 1101);
64
-		$this->assertIdentical($object->getErrorText(), "unable to parse PENS command");
65
-		$this->assertIdentical($object->getVersion(), "1.0.0");
66
-		$this->assertNull($object->getPensData());
67
-	}
59
+    public function testCreationFromHTTPResponse() {
60
+        $eol = PENSConfig::$eol;
61
+        $response = "error=1101".$eol."error-text=unable to parse PENS command".$eol."version=1.0.0".$eol."pens-data=".$eol;
62
+        $object = new PENSResponse($response);
63
+        $this->assertIdentical($object->getError(), 1101);
64
+        $this->assertIdentical($object->getErrorText(), "unable to parse PENS command");
65
+        $this->assertIdentical($object->getVersion(), "1.0.0");
66
+        $this->assertNull($object->getPensData());
67
+    }
68 68
 }
Please login to merge, or discard this patch.
plugin/pens/lib/tests/test_pens_package_handler.php 1 patch
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -33,8 +33,8 @@  discard block
 block discarded – undo
33 33
 require_once(dirname(__FILE__)."/../pens.php");
34 34
 
35 35
 class MyPackageHandler extends PENSPackageHandler {
36
-	public function processPackage($request, $path_to_package) {
37
-	}
36
+    public function processPackage($request, $path_to_package) {
37
+    }
38 38
 }
39 39
 
40 40
 /**
@@ -49,39 +49,39 @@  discard block
 block discarded – undo
49 49
  */
50 50
 class TestPENSPackageHandler extends UnitTestCase {
51 51
 	
52
-	public function testSupportedPackageTypesInvalid() {
53
-		$object = new MyPackageHandler();
54
-		$object->setSupportedPackageTypes("testing");
55
-		$this->assertEqual($object->getSupportedPackageTypes(), null);
56
-	}
52
+    public function testSupportedPackageTypesInvalid() {
53
+        $object = new MyPackageHandler();
54
+        $object->setSupportedPackageTypes("testing");
55
+        $this->assertEqual($object->getSupportedPackageTypes(), null);
56
+    }
57 57
 	
58
-	public function testSupportedPackageTypesInvalid2() {
59
-		$object = new MyPackageHandler();
60
-		$object->setSupportedPackageTypes(array("aicc-pkg", "testing"));
61
-		$this->assertEqual($object->getSupportedPackageTypes(), array("aicc-pkg"));
62
-	}
58
+    public function testSupportedPackageTypesInvalid2() {
59
+        $object = new MyPackageHandler();
60
+        $object->setSupportedPackageTypes(array("aicc-pkg", "testing"));
61
+        $this->assertEqual($object->getSupportedPackageTypes(), array("aicc-pkg"));
62
+    }
63 63
 	
64
-	public function testSupportedPackageTypesValid() {
65
-		$object = new MyPackageHandler();
66
-		$object->setSupportedPackageTypes(array("aicc-pkg", "lms-qti"));
67
-		$this->assertEqual($object->getSupportedPackageTypes(), array("aicc-pkg", "lms-qti"));
68
-	}
64
+    public function testSupportedPackageTypesValid() {
65
+        $object = new MyPackageHandler();
66
+        $object->setSupportedPackageTypes(array("aicc-pkg", "lms-qti"));
67
+        $this->assertEqual($object->getSupportedPackageTypes(), array("aicc-pkg", "lms-qti"));
68
+    }
69 69
 	
70
-	public function testSupportedPackageFormatsInvalid() {
71
-		$object = new MyPackageHandler();
72
-		$object->setSupportedPackageFormats("testing");
73
-		$this->assertEqual($object->getSupportedPackageFormats(), null);
74
-	}
70
+    public function testSupportedPackageFormatsInvalid() {
71
+        $object = new MyPackageHandler();
72
+        $object->setSupportedPackageFormats("testing");
73
+        $this->assertEqual($object->getSupportedPackageFormats(), null);
74
+    }
75 75
 	
76
-	public function testSupportedPackageFormatsInvalid2() {
77
-		$object = new MyPackageHandler();
78
-		$object->setSupportedPackageFormats(array("zip", "testing"));
79
-		$this->assertEqual($object->getSupportedPackageFormats(), array("zip"));
80
-	}
76
+    public function testSupportedPackageFormatsInvalid2() {
77
+        $object = new MyPackageHandler();
78
+        $object->setSupportedPackageFormats(array("zip", "testing"));
79
+        $this->assertEqual($object->getSupportedPackageFormats(), array("zip"));
80
+    }
81 81
 	
82
-	public function testSupportedPackageFormatsValid() {
83
-		$object = new MyPackageHandler();
84
-		$object->setSupportedPackageFormats(array("zip", "jar"));
85
-		$this->assertEqual($object->getSupportedPackageFormats(), array("zip", "jar"));
86
-	}
82
+    public function testSupportedPackageFormatsValid() {
83
+        $object = new MyPackageHandler();
84
+        $object->setSupportedPackageFormats(array("zip", "jar"));
85
+        $this->assertEqual($object->getSupportedPackageFormats(), array("zip", "jar"));
86
+    }
87 87
 }
Please login to merge, or discard this patch.
plugin/pens/lib/tests/test_pens_server.php 1 patch
Indentation   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -46,77 +46,77 @@
 block discarded – undo
46 46
  */
47 47
 class TestPENSServer extends WebTestCase {
48 48
 	
49
-	private $_valid_params = array(
50
-		"command" => "collect",
51
-		"pens-version" => "1.0.0",
52
-		"package-type" => "aicc-pkg",
53
-		"package-type-version" => "1.0",
54
-		"package-format" => "zip",
55
-		"package-id" => "http://myurl.com/12345",
56
-		"package-url" => "http://www.aicc.org/pens/sample/captivatequiz.zip",
57
-		"package-url-expiry" => "2099-04-09T14:17:43Z",
58
-		"client" => "test-pens-server",
59
-		"receipt" => PENS_TEST_RECEIPT_MAILTO);
49
+    private $_valid_params = array(
50
+        "command" => "collect",
51
+        "pens-version" => "1.0.0",
52
+        "package-type" => "aicc-pkg",
53
+        "package-type-version" => "1.0",
54
+        "package-format" => "zip",
55
+        "package-id" => "http://myurl.com/12345",
56
+        "package-url" => "http://www.aicc.org/pens/sample/captivatequiz.zip",
57
+        "package-url-expiry" => "2099-04-09T14:17:43Z",
58
+        "client" => "test-pens-server",
59
+        "receipt" => PENS_TEST_RECEIPT_MAILTO);
60 60
 		
61
-	public function testEmptyQuery() {
62
-		$this->get(PENS_TEST_SERVER_URL);
63
-		$this->assertText("error=2002");
64
-	}
61
+    public function testEmptyQuery() {
62
+        $this->get(PENS_TEST_SERVER_URL);
63
+        $this->assertText("error=2002");
64
+    }
65 65
 	
66
-	public function testValidQuery() {
67
-		$this->get(PENS_TEST_SERVER_URL, $this->_valid_params);
68
-		$this->assertText("error=0");
69
-	}
66
+    public function testValidQuery() {
67
+        $this->get(PENS_TEST_SERVER_URL, $this->_valid_params);
68
+        $this->assertText("error=0");
69
+    }
70 70
 	
71
-	private function invalidParameterTest($name, $value, $error) {
72
-		$params = $this->_valid_params;
73
-		$params[$name] = $value;
74
-		$this->get(PENS_TEST_SERVER_URL, $params);
75
-		$this->assertText("error=".$error);
76
-	}
71
+    private function invalidParameterTest($name, $value, $error) {
72
+        $params = $this->_valid_params;
73
+        $params[$name] = $value;
74
+        $this->get(PENS_TEST_SERVER_URL, $params);
75
+        $this->assertText("error=".$error);
76
+    }
77 77
 	
78
-	private function validParameterTest($name, $value) {
79
-		$params = $this->_valid_params;
80
-		$params[$name] = $value;
81
-		$this->get(PENS_TEST_SERVER_URL, $params);
82
-		$this->assertText("error=0");
83
-	}
78
+    private function validParameterTest($name, $value) {
79
+        $params = $this->_valid_params;
80
+        $params[$name] = $value;
81
+        $this->get(PENS_TEST_SERVER_URL, $params);
82
+        $this->assertText("error=0");
83
+    }
84 84
 	
85
-	public function testInvalidCommand() {
86
-		$this->invalidParameterTest("command", "invalid", 2002);
87
-	}
85
+    public function testInvalidCommand() {
86
+        $this->invalidParameterTest("command", "invalid", 2002);
87
+    }
88 88
 	
89
-	public function testInvalidVersion() {
90
-		$this->invalidParameterTest("pens-version", "0.8.0", 2001);
91
-	}
89
+    public function testInvalidVersion() {
90
+        $this->invalidParameterTest("pens-version", "0.8.0", 2001);
91
+    }
92 92
 	
93
-	public function testInvalidPackageType() {
94
-		$this->invalidParameterTest("package-type", "invalid", 2003);
95
-	}
93
+    public function testInvalidPackageType() {
94
+        $this->invalidParameterTest("package-type", "invalid", 2003);
95
+    }
96 96
 	
97
-	public function testEmptyPackageTypeVersion() {
98
-		$this->invalidParameterTest("package-type-version", null, 2004);
99
-	}
97
+    public function testEmptyPackageTypeVersion() {
98
+        $this->invalidParameterTest("package-type-version", null, 2004);
99
+    }
100 100
 	
101
-	public function testInvalidPackageFormat() {
102
-		$this->invalidParameterTest("package-format", "invalid", 2005);
103
-	}
101
+    public function testInvalidPackageFormat() {
102
+        $this->invalidParameterTest("package-format", "invalid", 2005);
103
+    }
104 104
 	
105
-	public function testInvalidPackageId() {
106
-		$this->invalidParameterTest("package-id", "invalid", 2007);
107
-	}
105
+    public function testInvalidPackageId() {
106
+        $this->invalidParameterTest("package-id", "invalid", 2007);
107
+    }
108 108
 	
109
-	public function testInvalidPackageUrl() {
110
-		$this->invalidParameterTest("package-url", "invalid", 2008);
111
-	}
109
+    public function testInvalidPackageUrl() {
110
+        $this->invalidParameterTest("package-url", "invalid", 2008);
111
+    }
112 112
 	
113
-	public function testInvalidPackageUrlExpiry() {
114
-		$this->invalidParameterTest("package-url-expiry", "invalid", 2009);
115
-	}
113
+    public function testInvalidPackageUrlExpiry() {
114
+        $this->invalidParameterTest("package-url-expiry", "invalid", 2009);
115
+    }
116 116
 	
117
-	public function testValidPackageUrlExpiry() {
118
-		$this->validParameterTest("package-url-expiry", "2099-01-01");
119
-	}
117
+    public function testValidPackageUrlExpiry() {
118
+        $this->validParameterTest("package-url-expiry", "2099-01-01");
119
+    }
120 120
 	
121 121
 }
122 122
 
Please login to merge, or discard this patch.
plugin/pens/lib/tests/test_pens_request.php 1 patch
Indentation   +163 added lines, -163 removed lines patch added patch discarded remove patch
@@ -44,170 +44,170 @@
 block discarded – undo
44 44
  */
45 45
 class TestPENSRequest extends UnitTestCase {
46 46
 	
47
-	/**
48
-	 * Valid arguments to be used for tests
49
-	 * 
50
-	 * @var array
51
-	 */
52
-	private $args = null;
53
-	
54
-	public function setUp() {
55
-		$this->args = array(
56
-			"pens-version" => "1.0.0",
57
-			"command" => "collect",
58
-			"package-type" => "aicc-pkg",
59
-			"package-type-version" => "1.0",
60
-			"package-format" => "zip",
61
-			"package-id" => "http://myurl.com/12345",
62
-			"package-url" => "http://myurl.com/mypackage.zip",
63
-			"package-url-expiry" => "2006-04-01T06:51:29Z",
64
-			"client" => "Authorware7",
65
-			"receipt" => "mailto:[email protected]",
66
-			"package-url-user-id" => "guillaumev",
67
-			"package-url-account" => "toto",
68
-			"package-url-password" => "12345",
69
-			"system-user-id" => "guillaumev",
70
-			"system-password" => "12345",
71
-			"alerts" => "http://myurl.com/alerts",
72
-			"vendor-data" => "here are my data");
73
-	}
74
-	
75
-	public function createObject($myargs) {
76
-		return PENSRequestFactory::createPENSRequest($myargs);
77
-	}
78
-	
79
-	public function exceptionTestForValue($key, $value, $code) {
80
-		try {
81
-			$myargs = $this->args;
82
-			if($value === null) {
83
-				unset($myargs[$key]);
84
-			} else {
85
-				$myargs[$key] = $value;
86
-			}
87
-			$object = $this->createObject($myargs);
88
-			$this->fail();
89
-		} catch(PENSException $e) {
90
-			$this->assertEqual($e->getCode(), $code);
91
-		}
92
-	}
93
-	
94
-	public function testPensVersionInvalid() {
95
-		$this->exceptionTestForValue("pens-version", "0.8.0", 2001);
96
-	}
97
-	
98
-	public function testPensVersionNull() {
99
-		$this->exceptionTestForValue("pens-version", null, 2001);
100
-	}
101
-	
102
-	
103
-	public function testCommandInvalid() {
104
-		$this->exceptionTestForValue("command", "testing", 2002);
105
-	}
106
-	
107
-	public function testCommandNull() {
108
-		$this->exceptionTestForValue("command", null, 2002);
109
-	}
110
-	
111
-	public function testPackageTypeInvalid() {
112
-		$this->exceptionTestForValue("package-type", "testing", 2003);
113
-	}
114
-	
115
-	public function testPackageTypeNull() {
116
-		$this->exceptionTestForValue("package-type", null, 2003);
117
-	}
118
-	
119
-	public function testPackageTypeVersionNull() {
120
-		$this->exceptionTestForValue("package-type-version", null, 2004);
121
-	}
122
-	
123
-	public function testPackageFormatInvalid() {
124
-		$this->exceptionTestForValue("package-format", "testing", 2005);
125
-	}
126
-	
127
-	public function testPackageFormatNull() {
128
-		$this->exceptionTestForValue("package-format", null, 2005);
129
-	}
130
-	
131
-	public function testPackageIdInvalid() {
132
-		$this->exceptionTestForValue("package-id", "testing", 2007);
133
-	}
134
-	
135
-	public function testPackageIdNull() {
136
-		$this->exceptionTestForValue("package-id", null, 2007);
137
-	}
138
-	
139
-	public function testPackageUrlInvalid() {
140
-		$this->exceptionTestForValue("package-url", "testing", 2008);
141
-	}
142
-	
143
-	public function testPackageUrlInvalid2() {
144
-		$this->exceptionTestForValue("package-url", "http://myurl.com/mypackage", 2008);
145
-	}
146
-	
147
-	public function testPackageUrlNull() {
148
-		$this->exceptionTestForValue("package-url", null, 2008);
149
-	}
150
-	
151
-	public function testPackageUrlExpiryNull() {
152
-		$this->exceptionTestForValue("package-url-expiry", null, 2009);
153
-	}
154
-	
155
-	public function testPackageUrlExpiryInvalid() {
156
-		$this->exceptionTestForValue("package-url-expiry", "testing", 2009);
157
-	}
158
-	
159
-	public function testClientNull() {
160
-		$this->exceptionTestForValue("client", null, 2010);
161
-	}
162
-	
163
-	public function testReceiptNull() {
164
-		$this->exceptionTestForValue("receipt", null, 2011);
165
-	}
166
-	
167
-	public function testReceiptInvalid() {
168
-		$this->exceptionTestForValue("receipt", "testing", 2011);
169
-	}
170
-	
171
-	public function testAlertsInvalid() {
172
-		$this->exceptionTestForValue("alerts", "testing", 1201);
173
-	}
174
-	
175
-	public function testReceiptValid() {
176
-		try {
177
-			$myargs = $this->args;
178
-			$myargs["receipt"] = "mailto:[email protected],[email protected]";
179
-			$object = $this->createObject($myargs);
180
-			$this->pass();
181
-		} catch(PENSException $e) {
182
-			$this->fail();
183
-		}
184
-	}
185
-	
186
-	public function testValid() {
187
-		try {
188
-			$object = $this->createObject($this->args);
189
-			$this->assertIsA($object, "PENSRequestCollect");
190
-			$this->assertEqual($object->getPensVersion(), "1.0.0");
191
-			$this->assertEqual($object->getPackageType(), "aicc-pkg");
192
-			$this->assertEqual($object->getPackageTypeVersion(), "1.0");
193
-			$this->assertEqual($object->getPackageFormat(), "zip");
194
-			$this->assertEqual($object->getPackageId(), "http://myurl.com/12345");
195
-			$this->assertEqual($object->getPackageUrl(), "http://myurl.com/mypackage.zip");
196
-			$this->assertIsA($object->getPackageUrlExpiry(), "DateTime");
197
-			$this->assertEqual($object->getClient(), "Authorware7");
198
-			$this->assertEqual($object->getReceipt(), "mailto:[email protected]");
199
-			$this->assertEqual($object->getPackageUrlUserId(), "guillaumev");
200
-			$this->assertEqual($object->getPackageUrlAccount(), "toto");
201
-			$this->assertEqual($object->getPackageUrlPassword(), "12345");
202
-			$this->assertEqual($object->getSystemUserId(), "guillaumev");
203
-			$this->assertEqual($object->getSystemPassword(), "12345");
204
-			$this->assertEqual($object->getAlerts(), "http://myurl.com/alerts");
205
-			$this->assertEqual($object->getVendorData(), "here are my data");
47
+    /**
48
+     * Valid arguments to be used for tests
49
+     * 
50
+     * @var array
51
+     */
52
+    private $args = null;
53
+	
54
+    public function setUp() {
55
+        $this->args = array(
56
+            "pens-version" => "1.0.0",
57
+            "command" => "collect",
58
+            "package-type" => "aicc-pkg",
59
+            "package-type-version" => "1.0",
60
+            "package-format" => "zip",
61
+            "package-id" => "http://myurl.com/12345",
62
+            "package-url" => "http://myurl.com/mypackage.zip",
63
+            "package-url-expiry" => "2006-04-01T06:51:29Z",
64
+            "client" => "Authorware7",
65
+            "receipt" => "mailto:[email protected]",
66
+            "package-url-user-id" => "guillaumev",
67
+            "package-url-account" => "toto",
68
+            "package-url-password" => "12345",
69
+            "system-user-id" => "guillaumev",
70
+            "system-password" => "12345",
71
+            "alerts" => "http://myurl.com/alerts",
72
+            "vendor-data" => "here are my data");
73
+    }
74
+	
75
+    public function createObject($myargs) {
76
+        return PENSRequestFactory::createPENSRequest($myargs);
77
+    }
78
+	
79
+    public function exceptionTestForValue($key, $value, $code) {
80
+        try {
81
+            $myargs = $this->args;
82
+            if($value === null) {
83
+                unset($myargs[$key]);
84
+            } else {
85
+                $myargs[$key] = $value;
86
+            }
87
+            $object = $this->createObject($myargs);
88
+            $this->fail();
89
+        } catch(PENSException $e) {
90
+            $this->assertEqual($e->getCode(), $code);
91
+        }
92
+    }
93
+	
94
+    public function testPensVersionInvalid() {
95
+        $this->exceptionTestForValue("pens-version", "0.8.0", 2001);
96
+    }
97
+	
98
+    public function testPensVersionNull() {
99
+        $this->exceptionTestForValue("pens-version", null, 2001);
100
+    }
101
+	
102
+	
103
+    public function testCommandInvalid() {
104
+        $this->exceptionTestForValue("command", "testing", 2002);
105
+    }
106
+	
107
+    public function testCommandNull() {
108
+        $this->exceptionTestForValue("command", null, 2002);
109
+    }
110
+	
111
+    public function testPackageTypeInvalid() {
112
+        $this->exceptionTestForValue("package-type", "testing", 2003);
113
+    }
114
+	
115
+    public function testPackageTypeNull() {
116
+        $this->exceptionTestForValue("package-type", null, 2003);
117
+    }
118
+	
119
+    public function testPackageTypeVersionNull() {
120
+        $this->exceptionTestForValue("package-type-version", null, 2004);
121
+    }
122
+	
123
+    public function testPackageFormatInvalid() {
124
+        $this->exceptionTestForValue("package-format", "testing", 2005);
125
+    }
126
+	
127
+    public function testPackageFormatNull() {
128
+        $this->exceptionTestForValue("package-format", null, 2005);
129
+    }
130
+	
131
+    public function testPackageIdInvalid() {
132
+        $this->exceptionTestForValue("package-id", "testing", 2007);
133
+    }
134
+	
135
+    public function testPackageIdNull() {
136
+        $this->exceptionTestForValue("package-id", null, 2007);
137
+    }
138
+	
139
+    public function testPackageUrlInvalid() {
140
+        $this->exceptionTestForValue("package-url", "testing", 2008);
141
+    }
142
+	
143
+    public function testPackageUrlInvalid2() {
144
+        $this->exceptionTestForValue("package-url", "http://myurl.com/mypackage", 2008);
145
+    }
146
+	
147
+    public function testPackageUrlNull() {
148
+        $this->exceptionTestForValue("package-url", null, 2008);
149
+    }
150
+	
151
+    public function testPackageUrlExpiryNull() {
152
+        $this->exceptionTestForValue("package-url-expiry", null, 2009);
153
+    }
154
+	
155
+    public function testPackageUrlExpiryInvalid() {
156
+        $this->exceptionTestForValue("package-url-expiry", "testing", 2009);
157
+    }
158
+	
159
+    public function testClientNull() {
160
+        $this->exceptionTestForValue("client", null, 2010);
161
+    }
162
+	
163
+    public function testReceiptNull() {
164
+        $this->exceptionTestForValue("receipt", null, 2011);
165
+    }
166
+	
167
+    public function testReceiptInvalid() {
168
+        $this->exceptionTestForValue("receipt", "testing", 2011);
169
+    }
170
+	
171
+    public function testAlertsInvalid() {
172
+        $this->exceptionTestForValue("alerts", "testing", 1201);
173
+    }
174
+	
175
+    public function testReceiptValid() {
176
+        try {
177
+            $myargs = $this->args;
178
+            $myargs["receipt"] = "mailto:[email protected],[email protected]";
179
+            $object = $this->createObject($myargs);
180
+            $this->pass();
181
+        } catch(PENSException $e) {
182
+            $this->fail();
183
+        }
184
+    }
185
+	
186
+    public function testValid() {
187
+        try {
188
+            $object = $this->createObject($this->args);
189
+            $this->assertIsA($object, "PENSRequestCollect");
190
+            $this->assertEqual($object->getPensVersion(), "1.0.0");
191
+            $this->assertEqual($object->getPackageType(), "aicc-pkg");
192
+            $this->assertEqual($object->getPackageTypeVersion(), "1.0");
193
+            $this->assertEqual($object->getPackageFormat(), "zip");
194
+            $this->assertEqual($object->getPackageId(), "http://myurl.com/12345");
195
+            $this->assertEqual($object->getPackageUrl(), "http://myurl.com/mypackage.zip");
196
+            $this->assertIsA($object->getPackageUrlExpiry(), "DateTime");
197
+            $this->assertEqual($object->getClient(), "Authorware7");
198
+            $this->assertEqual($object->getReceipt(), "mailto:[email protected]");
199
+            $this->assertEqual($object->getPackageUrlUserId(), "guillaumev");
200
+            $this->assertEqual($object->getPackageUrlAccount(), "toto");
201
+            $this->assertEqual($object->getPackageUrlPassword(), "12345");
202
+            $this->assertEqual($object->getSystemUserId(), "guillaumev");
203
+            $this->assertEqual($object->getSystemPassword(), "12345");
204
+            $this->assertEqual($object->getAlerts(), "http://myurl.com/alerts");
205
+            $this->assertEqual($object->getVendorData(), "here are my data");
206 206
 			
207
-		} catch(PENSException $e) {
208
-			$this->fail();
209
-		}
210
-	}
207
+        } catch(PENSException $e) {
208
+            $this->fail();
209
+        }
210
+    }
211 211
 	
212 212
 	
213 213
 }
Please login to merge, or discard this patch.