From 8fae78b1b3e5820a31d7ada1ffd5987da3263505 Mon Sep 17 00:00:00 2001
From: Guy Halse <guy@tenet.ac.za>
Date: Tue, 29 May 2018 16:43:30 +0200
Subject: [PATCH] Consent: unit test setting of instance private vars

---
 .../consent/lib/Auth/Process/ConsentTest.php  | 35 +++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/tests/modules/consent/lib/Auth/Process/ConsentTest.php b/tests/modules/consent/lib/Auth/Process/ConsentTest.php
index 97534dc43..c0c03cae5 100644
--- a/tests/modules/consent/lib/Auth/Process/ConsentTest.php
+++ b/tests/modules/consent/lib/Auth/Process/ConsentTest.php
@@ -179,4 +179,39 @@ class ConsentTest extends TestCase
             "Hash is not the same when the order of the attributs changes and the values are not included"
         );
     }
+
+    public function testConstructorSetsInstancePrivateVars()
+    {
+        $reflection = new \ReflectionClass('\sspmod_consent_Auth_Process_Consent');
+
+        foreach (array(
+            '_includeValues', '_checked', '_focus', '_hiddenAttributes', '_noconsentattributes', '_showNoConsentAboutService'
+        ) as $v) {
+            $instanceVars[$v] = $reflection->getProperty($v);
+            $instanceVars[$v]->setAccessible(true);
+        }
+
+        /* these just need to be different to the default values */
+        $config = array(
+            'includeValues' => true,
+            'checked' => true,
+            'focus' => 'yes',
+            'hiddenAttributes' => array('attribute1', 'attribute2'),
+            'attributes.exclude' => array('attribute1', 'attribute2'),
+            'showNoConsentAboutService' => false,
+        );
+
+        $testcase = $reflection->newInstance($config, null);
+
+        $this->assertEquals($instanceVars['_includeValues']->getValue($testcase), $config['includeValues']);
+        $this->assertEquals($instanceVars['_checked']->getValue($testcase), $config['checked']);
+        $this->assertEquals($instanceVars['_focus']->getValue($testcase), $config['focus']);
+        $this->assertEquals($instanceVars['_hiddenAttributes']->getValue($testcase), $config['hiddenAttributes']);
+        $this->assertEquals($instanceVars['_noconsentattributes']->getValue($testcase), $config['attributes.exclude']);
+        $this->assertEquals($instanceVars['_showNoConsentAboutService']->getValue($testcase), $config['showNoConsentAboutService']);
+
+        $deprecated = $reflection->newInstance(array('noconsentattributes' => $config['attributes.exclude'],), null);
+        $this->assertEquals($instanceVars['_noconsentattributes']->getValue($deprecated), $config['attributes.exclude']);
+
+    }
 }
-- 
GitLab