From 17b2a1edef71441d11117b265b54fe97d677513e Mon Sep 17 00:00:00 2001
From: Chris Sangwin <C.J.Sangwin@gmail.com>
Date: Wed, 11 Jul 2018 13:44:12 +0100
Subject: [PATCH] Code tidy, and ignore 3rd party libraries on code checker.

---
 bulktestall.php                             |  2 +
 bulktestindex.php                           |  2 +
 deploy.php                                  |  2 +
 equivdemo.php                               |  2 +
 exportone.php                               |  2 +
 lang/en/qtype_stack.php                     |  3 +-
 questiontestdelete.php                      |  2 +
 questiontestedit.php                        |  3 ++
 questiontestrun.php                         |  2 +
 stack/answertest/atdecplaceswrong.class.php | 42 ++++++++++-----------
 stack/bulktester.class.php                  |  2 +
 stack/cas/installhelper.class.php           |  4 +-
 tests/behat/behat_qtype_stack.php           |  2 +-
 tests/input_textarea_test.php               |  1 +
 tests/multilang_test.php                    |  4 +-
 tests/parser_test.php                       |  2 +
 tests/restore_logic_test.php                |  1 +
 thirdpartylibs.xml                          | 25 ++++++++++++
 tidyquestion.php                            |  2 +
 19 files changed, 77 insertions(+), 28 deletions(-)
 create mode 100644 thirdpartylibs.xml

diff --git a/bulktestall.php b/bulktestall.php
index 0077387d2..a15c31c5d 100644
--- a/bulktestall.php
+++ b/bulktestall.php
@@ -48,6 +48,8 @@ $PAGE->set_context($context);
 $title = stack_string('bulktesttitle', $context->get_context_name());
 $PAGE->set_title($title);
 
+require_login();
+
 // Create the helper class.
 $bulktester = new stack_bulk_tester();
 $allpassed = true;
diff --git a/bulktestindex.php b/bulktestindex.php
index e28964e10..dcdd2fbe2 100644
--- a/bulktestindex.php
+++ b/bulktestindex.php
@@ -40,6 +40,8 @@ $PAGE->set_url('/question/type/stack/bulktestindex.php');
 $PAGE->set_context($context);
 $PAGE->set_title(stack_string('bulktestindextitle'));
 
+require_login();
+
 // Create the helper class.
 $bulktester = new stack_bulk_tester();
 
diff --git a/deploy.php b/deploy.php
index 2522962b3..079c1c0d7 100644
--- a/deploy.php
+++ b/deploy.php
@@ -46,6 +46,8 @@ $PAGE->set_url($nexturl); // Since this script always ends in a redirect.
 $PAGE->set_heading($COURSE->fullname);
 $PAGE->set_pagelayout('admin');
 
+require_login();
+
 // Process deploy if applicable.
 $deploy = optional_param('deploy', null, PARAM_INT);
 if (!is_null($deploy)) {
diff --git a/equivdemo.php b/equivdemo.php
index 18b5b7683..a5a0f621a 100644
--- a/equivdemo.php
+++ b/equivdemo.php
@@ -61,6 +61,8 @@ $PAGE->set_url('/question/type/stack/equivdemo.php', $urlparams);
 $title = "Equivalence reasoning test cases";
 $PAGE->set_title($title);
 
+require_login();
+
 echo $OUTPUT->header();
 echo $OUTPUT->heading($title);
 
diff --git a/exportone.php b/exportone.php
index cf23d80a8..20496aa9a 100644
--- a/exportone.php
+++ b/exportone.php
@@ -50,6 +50,8 @@ $PAGE->set_url($nexturl); // Since this script always ends in a redirect.
 $PAGE->set_heading($COURSE->fullname);
 $PAGE->set_pagelayout('admin');
 
+require_login();
+
 // Set up the export format.
 $qformat = new qformat_xml();
 $filename = question_default_export_filename($COURSE, $questiondata) .
diff --git a/lang/en/qtype_stack.php b/lang/en/qtype_stack.php
index 68b258351..a9c6091ba 100644
--- a/lang/en/qtype_stack.php
+++ b/lang/en/qtype_stack.php
@@ -702,6 +702,7 @@ $string['stackOptions_AnsTest_values_NumRelative']         = "NumRelative";
 $string['stackOptions_AnsTest_values_NumAbsolute']         = "NumAbsolute";
 $string['stackOptions_AnsTest_values_NumSigFigs']          = "NumSigFigs";
 $string['stackOptions_AnsTest_values_NumDecPlaces']        = "NumDecPlaces";
+$string['stackOptions_AnsTest_values_NumDecPlacesWrong']   = "NumDecPlacesWrong";
 $string['stackOptions_AnsTest_values_UnitsSigFigs']        = "UnitsSigFigs";
 $string['stackOptions_AnsTest_values_UnitsStrictSigFigs']  = "UnitsStrictSigFigs";
 $string['stackOptions_AnsTest_values_UnitsRelative']       = "UnitsRelative";
@@ -831,7 +832,7 @@ $string['ATNumDecPlaces_OptNotInt']    = 'For ATNumDecPlaces the test option mus
 $string['ATNumDecPlaces_NoDP']         = 'Your answer must be a decimal number, including a decimal point. ';
 $string['ATNumDecPlaces_Wrong_DPs']    = 'Your answer has been given to the wrong number of decimal places.';
 
-$string['ATNumDecPlacesWrong_OptNotInt']    = 'For ATNumDecPlacesWrong the test option must be a positive integer, in fact "{$a->opt}" was received. ';
+$string['ATNumDecPlacesWrong_OptNotInt']    = 'For ATNumDecPlacesWrong the test option must be a positive integer, in fact "{$a->opt}" was received. ';
 
 $string['ATSysEquiv_SA_not_list']               = 'Your answer should be a list, but it is not!';
 $string['ATSysEquiv_SB_not_list']               = 'The teacher\'s answer is not a list.  Please contact your teacher.';
diff --git a/questiontestdelete.php b/questiontestdelete.php
index 568ba6118..d8a54d8b4 100644
--- a/questiontestdelete.php
+++ b/questiontestdelete.php
@@ -52,6 +52,8 @@ $PAGE->set_url('/question/type/stack/questiontestdelete.php', $urlparams);
 $title = stack_string('deletetestcase',
         array('no' => $testcase, 'question' => format_string($question->name)));
 
+require_login();
+
 if (data_submitted() && confirm_sesskey()) {
     // User has confirmed. Actually delete the test case.
     question_bank::get_qtype('stack')->delete_question_test($questionid, $testcase);
diff --git a/questiontestedit.php b/questiontestedit.php
index 0388d83c9..34617ef7c 100644
--- a/questiontestedit.php
+++ b/questiontestedit.php
@@ -65,6 +65,9 @@ $PAGE->set_url('/question/type/stack/questiontestedit.php', $urlparams);
 $PAGE->set_title($title);
 $PAGE->set_heading($title);
 $PAGE->set_pagelayout('popup');
+
+require_login();
+
 // Create the question usage we will use.
 $quba = question_engine::make_questions_usage_by_activity('qtype_stack', $context);
 $quba->set_preferred_behaviour('adaptive');
diff --git a/questiontestrun.php b/questiontestrun.php
index 8a022df59..8a256bdd0 100644
--- a/questiontestrun.php
+++ b/questiontestrun.php
@@ -62,6 +62,8 @@ $PAGE->set_title($title);
 $PAGE->set_heading($title);
 $PAGE->set_pagelayout('popup');
 
+require_login();
+
 // Create some other useful links.
 $qbankparams = $urlparams;
 unset($qbankparams['questionid']);
diff --git a/stack/answertest/atdecplaceswrong.class.php b/stack/answertest/atdecplaceswrong.class.php
index 898856902..0427dce56 100644
--- a/stack/answertest/atdecplaceswrong.class.php
+++ b/stack/answertest/atdecplaceswrong.class.php
@@ -60,8 +60,8 @@ class stack_anstest_atdecplaceswrong extends stack_anstest {
         $cascommands[] = "caschat0:{$this->sanskey}";
         $cascommands[] = "caschat1:{$this->tanskey}";
         $cascommands[] = "caschat2:ev({$this->atoption},simp)";
-        $cascommands[] = "caschat3:numberp({$this->sanskey})";
-        $cascommands[] = "caschat4:numberp({$this->tanskey})";
+        $cascommands[] = "caschat3:numberp({$this->sanskey})";
+        $cascommands[] = "caschat4:numberp({$this->tanskey})";
 
         $cts = array();
         foreach ($cascommands as $com) {
@@ -103,15 +103,15 @@ class stack_anstest_atdecplaceswrong extends stack_anstest {
             return null;
         }
 
-        if ('' != $session->get_errors_key('caschat3')) {
-            $this->aterror      = 'TEST_FAILED';
-            $this->atfeedback  .= stack_string('TEST_FAILED', array('errors' => $session->get_errors_key('caschat3')));
-            $anotes[]           = 'ATNumDecPlacesWrong_ERR_sansnum';
-            $this->atansnote    = implode('. ', $anotes).'.';
-            $this->atmark       = 0;
-            $this->atvalid      = false;
-            return null;
-        }
+        if ('' != $session->get_errors_key('caschat3')) {
+            $this->aterror      = 'TEST_FAILED';
+            $this->atfeedback  .= stack_string('TEST_FAILED', array('errors' => $session->get_errors_key('caschat3')));
+            $anotes[]           = 'ATNumDecPlacesWrong_ERR_sansnum';
+            $this->atansnote    = implode('. ', $anotes).'.';
+            $this->atmark       = 0;
+            $this->atvalid      = false;
+            return null;
+        }
 
         if ('' != $session->get_errors_key('caschat4')) {
             $this->aterror      = 'TEST_FAILED';
@@ -124,13 +124,13 @@ class stack_anstest_atdecplaceswrong extends stack_anstest {
         }
 
         // These should not throw an error. The test just returns false.
-        if ('false' === $session->get_value_key('caschat3')) {
-            $anotes[]           = 'ATNumDecPlacesWrong_Sans_Not_Num';
-            $this->atansnote    = implode('. ', $anotes).'.';
-            $this->atmark       = 0;
-            $this->atvalid      = false;
-            return null;
-        }
+        if ('false' === $session->get_value_key('caschat3')) {
+            $anotes[]           = 'ATNumDecPlacesWrong_Sans_Not_Num';
+            $this->atansnote    = implode('. ', $anotes).'.';
+            $this->atmark       = 0;
+            $this->atvalid      = false;
+            return null;
+        }
 
         if ('false' === $session->get_value_key('caschat4')) {
             $anotes[]           = 'ATNumDecPlacesWrong_Tans_Not_Num';
@@ -147,16 +147,16 @@ class stack_anstest_atdecplaceswrong extends stack_anstest {
 
         // Ignore the decimal point by eliminating it.
         $sa = str_replace('.', '', $sa);
-        $ta = str_replace('.', '', $ta);
+        $ta = str_replace('.', '', $ta);
 
         // Remove any leading zeros.
         $sa = substr($sa, strcspn($sa, '123456789'));
         $ta = substr($ta, strcspn($ta, '123456789'));
-
+
         // Add sufficient trailing zeros.
         // This condones any lack of trailing zeros (for this test).
         $sa .= str_repeat('0', (int) $ndps);
-        $ta .= str_repeat('0', (int) $ndps);
+        $ta .= str_repeat('0', (int) $ndps);
 
         $sa = substr($sa, 0, (int) $ndps);
         $ta = substr($ta, 0, (int) $ndps);
diff --git a/stack/bulktester.class.php b/stack/bulktester.class.php
index 84b14a279..ae91bc848 100644
--- a/stack/bulktester.class.php
+++ b/stack/bulktester.class.php
@@ -19,6 +19,8 @@
 // @copyright  2015 The Open University.
 // @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
 
+defined('MOODLE_INTERNAL') || die();
+
 class stack_bulk_tester  {
 
     /**
diff --git a/stack/cas/installhelper.class.php b/stack/cas/installhelper.class.php
index e1154170d..67dff239c 100644
--- a/stack/cas/installhelper.class.php
+++ b/stack/cas/installhelper.class.php
@@ -16,9 +16,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-// The file provides helper code for creating the files needed to connect to the CAS.
-
-require_once(__DIR__.'/../../../../../config.php');
+// This provides helper code for creating the files needed to connect to the CAS.
 
 require_once(__DIR__ . '/../../locallib.php');
 require_once(__DIR__ . '/../utils.class.php');
diff --git a/tests/behat/behat_qtype_stack.php b/tests/behat/behat_qtype_stack.php
index 950b637ea..aa5936065 100644
--- a/tests/behat/behat_qtype_stack.php
+++ b/tests/behat/behat_qtype_stack.php
@@ -46,7 +46,7 @@ class behat_qtype_stack extends behat_base {
      *
      * @When /^I set up STACK using the PHPUnit configuration$/
      */
-    public function iSetUpStackUsingThePhpunitConfiguration() {
+    public function isetupstackusingthephpunitconfiguration() {
         // The require_once is here, this file may be required by behat before including /config.php.
         require_once(__DIR__ . '/../fixtures/test_maxima_configuration.php');
 
diff --git a/tests/input_textarea_test.php b/tests/input_textarea_test.php
index a3cb51d6a..a3098716f 100644
--- a/tests/input_textarea_test.php
+++ b/tests/input_textarea_test.php
@@ -179,6 +179,7 @@ class stack_textarea_input_test extends qtype_stack_testcase {
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class testable_stack_textarea_input extends stack_textarea_input {
+    // @codingStandardsIgnoreLine
     public function tokenize_list($in) {
         return parent::tokenize_list($in);
     }
diff --git a/tests/multilang_test.php b/tests/multilang_test.php
index 30ca7def0..524c154c5 100644
--- a/tests/multilang_test.php
+++ b/tests/multilang_test.php
@@ -21,8 +21,8 @@ require_once(__DIR__ . '/../lang/multilang.php');
 
 // Unit tests for stack_multilang.
 //
-// @copyright  2018 The University of Edinburgh
-// @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+// @copyright  2018 The University of Edinburgh.
+// @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
 
 /**
  * @group qtype_stack
diff --git a/tests/parser_test.php b/tests/parser_test.php
index f4f6389e8..f6fc81405 100644
--- a/tests/parser_test.php
+++ b/tests/parser_test.php
@@ -14,6 +14,8 @@
 // You should have received a copy of the GNU General Public License
 // along with Stack.  If not, see <http://www.gnu.org/licenses/>.
 
+defined('MOODLE_INTERNAL') || die();
+
 require_once(__DIR__ . '/../locallib.php');
 require_once(__DIR__ . '/fixtures/test_base.php');
 require_once(__DIR__ . '/../stack/cas/castext/castextparser.class.php');
diff --git a/tests/restore_logic_test.php b/tests/restore_logic_test.php
index bda993d90..2711c3242 100644
--- a/tests/restore_logic_test.php
+++ b/tests/restore_logic_test.php
@@ -65,6 +65,7 @@ class testable_restore_qtype_stack_plugin extends restore_qtype_stack_plugin {
         return $this->log;
     }
 
+    // @codingStandardsIgnoreLine
     public function after_execute_question() {
         // Make method public.
         parent::after_execute_question();
diff --git a/thirdpartylibs.xml b/thirdpartylibs.xml
new file mode 100644
index 000000000..41864283b
--- /dev/null
+++ b/thirdpartylibs.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<libraries>
+    <library>
+        <location>amd</location>
+        <name>JSXGraph</name>
+        <version>?</version>
+        <license>GNU LGPL or MIT License</license>
+    </library>
+    <library>
+        <location>thirdparty/php-peg</location>
+        <name>PHP-PEG</name>
+        <version>2.0.0</version>
+        <license>MIT, BSD, and GPL</license>
+    </library>
+    <library>
+        <location>stack/cas/castext/</location>
+        <name>PHP-PEG autogenerated PHP files</name>
+        <version>As for STACK</version>
+        <license>GPL</license>
+    </library>
+</libraries>
+
+
+
+
diff --git a/tidyquestion.php b/tidyquestion.php
index 4f323b0bf..558b793fc 100644
--- a/tidyquestion.php
+++ b/tidyquestion.php
@@ -49,6 +49,8 @@ $PAGE->set_title($title);
 $PAGE->set_heading($COURSE->fullname);
 $PAGE->set_pagelayout('admin');
 
+require_login();
+
 // The URL back to the preview page.
 $returnurl = question_preview_url($questionid, null, null, null, null, $context);
 
-- 
GitLab