summaryrefslogtreecommitdiffstats
path: root/tests/lib
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2015-01-28 22:08:50 +0100
committerThomas Müller <thomas.mueller@tmit.eu>2015-02-10 11:51:24 +0100
commitd74662df7df72ad9ec238b78223acc0e7f65311f (patch)
treeffadb56b1bb0c0dfa11cb54a10a67186aff31306 /tests/lib
parent5ae03fd650b6f3665d1c69ead674d4f5d6420513 (diff)
downloadnextcloud-server-d74662df7df72ad9ec238b78223acc0e7f65311f.tar.gz
nextcloud-server-d74662df7df72ad9ec238b78223acc0e7f65311f.zip
implement php code checker to detect usage of not allowed private APIs - including console command to check local code to be used by developers
Diffstat (limited to 'tests/lib')
-rw-r--r--tests/lib/app/codechecker.php38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/lib/app/codechecker.php b/tests/lib/app/codechecker.php
new file mode 100644
index 00000000000..64403fd0f23
--- /dev/null
+++ b/tests/lib/app/codechecker.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Copyright (c) 2015 Thomas Müller <deepdiver@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\App;
+
+use OC;
+
+class CodeChecker extends \Test\TestCase {
+
+ /**
+ * @dataProvider providesFilesToCheck
+ * @param $expectedErrors
+ * @param $fileToVerify
+ */
+ public function testFindInvalidUsage($expectedErrorToken, $expectedErrorCode, $fileToVerify) {
+ $checker = new OC\App\CodeChecker();
+ $errors = $checker->analyseFile(OC::$SERVERROOT . "/tests/data/app/code-checker/$fileToVerify");
+
+ $this->assertEquals(1, count($errors));
+ $this->assertEquals($expectedErrorCode, $errors[0]['errorCode']);
+ $this->assertEquals($expectedErrorToken, $errors[0]['disallowedToken']);
+ }
+
+ public function providesFilesToCheck() {
+ return [
+ ['OC_Hook', 1000, 'test-extends.php'],
+ ['oC_Avatar', 1001, 'test-implements.php'],
+ ['OC_App', 1002, 'test-static-call.php'],
+ ['OC_API', 1003, 'test-const.php'],
+ ['OC_AppConfig', 1004, 'test-new.php'],
+ ];
+ }
+}