diff --git a/.project b/.project
index ac9cc38..a3e13d8 100644
--- a/.project
+++ b/.project
@@ -10,24 +10,8 @@
-
- org.eclipse.cdt.managedbuilder.core.genmakebuilder
- clean,full,incremental,
-
-
-
-
- org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
- full,incremental,
-
-
-
- org.eclipse.cdt.core.cnature
- org.eclipse.cdt.core.ccnature
- org.eclipse.cdt.managedbuilder.core.managedBuildNature
- org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
org.python.pydev.pythonNature
diff --git a/.pydevproject b/.pydevproject
new file mode 100644
index 0000000..53cdb91
--- /dev/null
+++ b/.pydevproject
@@ -0,0 +1,8 @@
+
+
+python 2.7
+Default
+
+/${PROJECT_DIR_NAME}/end2endtest
+
+
diff --git a/Dockerfile b/Dockerfile
index 0fad7f8..a99adf3 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -11,7 +11,10 @@ RUN echo 'mysql-server mysql-server/root_password password password' | debconf-s
RUN echo 'mysql-server mysql-server/root_password_again password password' | debconf-set-selections
RUN apt-get -y install wordpress vim less xvfb firefox chromium-chromedriver \
- wget git mysql-server iputils-ping vnc4server net-tools strace fvwm python3-pip make
+ wget git mysql-server iputils-ping vnc4server net-tools strace fvwm python3-pip make\
+ python-pip
+
+RUN pip install vnc2flv
ADD requirements.txt /tmp/requirements.txt
diff --git a/Makefile b/Makefile
index 16656d9..f0266d7 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ testenv:
check:
phpunit --stderr tests
-e2e:
+e2e: recording
PYTHONPAT=end2endtest python3 -m unittest discover -v -f -s end2endtest -p "*.py"
PDOauth:
@@ -16,6 +16,14 @@ PDOauth:
runsso: PDOauth
cd PDOauth; make runserver
-cleanup:
- rm -rf wordpress/
+cleanup: stoprecording
+ rm -rf /tmp/wordpress/
+ mv /tmp/wplog/* shippable
rm -rf tmp/
+
+recording:
+ start-stop-daemon --start --background --oknodo --name flvrec --make-pidfile --pidfile /tmp/flvrec.pid --startas /usr/bin/python -- /usr/local/bin/flvrec.py -o /tmp/wplog/record.flv :1
+
+stoprecording:
+ -start-stop-daemon --stop --pidfile /tmp/flvrec.pid
+
diff --git a/README.md b/README.md
index 632b6d3..4e98bb0 100644
--- a/README.md
+++ b/README.md
@@ -1,30 +1,30 @@
-# MSSO login plugin for Wordpress
+# Autentikációs plugin Wordpress-hez
-Ez egy wordpress plugin.
-Segítségével az eDemo SSO autentikációs szolgáltatást igénybe véve lehet bejelentkezni a wordpress-be.
+Segítségével az ADA (Anonim Digitális Azonosító) autentikációs szolgáltatást igénybe véve lehet bejelentkezni a wordpress-be.
-SSO szolgáltatás: https://sso.edemokraciagep.org/static/login.html
+ADA szolgáltatás: https://adatom.hu
+Teszt szerver: https://sso.edemokraciagep.org
funkciók
-- bejelentkezés SSO szolgáltatás segítségével
-- regisztráció SSO szolgáltatás segítségével (független a gyári WP regisztrálási lehetőség beállítástól)
-- login widget - sso login, sso regisztráció, logout, sso account bind, show user profil
-- login oldal SSO kiegészítés - sso login, sso regisztráció
-- SSO adatok a felhasználói profil oldalon - adatfrissítés funkció
+- bejelentkezés ADA szolgáltatás segítségével
+- regisztráció ADA felhasználóknak (független a gyári WP regisztrálási lehetőség beállítástól)
+- login widget - ADA login, ADA regisztráció, logout, ADA account bind, show user profile
+- login oldal ADA kiegészítés - ADA login, ADA regisztráció
+- ADA adatok a felhasználói profil oldalon - adatfrissítés funkció
- plugin beállító adminisztrációs panel a beállítások menüben
- felhasználói fiók letiltása (ban user) funkció
-- SSO tanusítások user meta
-- SSO user ID user mata
-- 0 szintű 'SSO user' szerepkör
-- assurance függő regisztráció
+- ADA igazolások - user meta
+- ADA user ID user mata
+- 0 szintű 'ADA user' szerepkör
+- igazolás függő regisztráció
opciók
-- SSO regisztráció letiltása -> scope: all user
-- SSO bejelentkezés letiltása -> scope: all user
+- ADA regisztráció letiltása -> scope: all user
+- ADA bejelentkezés letiltása -> scope: all user
- SSL tanusítvány ellenőrzése
-- SSO account bind engedélyezése
+- ADA account bind engedélyezése
- admin bar alapértelmezett kikapcsolása
- alapértelmezett felhasználói szerepkör beállítása
-- regisztrációhoz szükséges assurancok beállítása
+- regisztrációhoz szükséges igazolások beállítása
----
\ No newline at end of file
+---
diff --git a/eDemo-SSOauth/includes/class_edemo-ssoauth_widgets.php b/eDemo-SSOauth/includes/class_edemo-ssoauth_widgets.php
index 7793858..f315e31 100644
--- a/eDemo-SSOauth/includes/class_edemo-ssoauth_widgets.php
+++ b/eDemo-SSOauth/includes/class_edemo-ssoauth_widgets.php
@@ -81,7 +81,7 @@ function widget( $args, $instance ) {
//section for all
?>
-
= __('SSO services', eDemo_SSOauth::TEXTDOMAIN)?>
+ = __('SSO services', eDemo_SSOauth::TEXTDOMAIN)?>
= $args['after_widget'] ?>
\ No newline at end of file
+?>
diff --git a/end2endtest/InstallTest.py b/end2endtest/InstallTest.py
index 6d66d0e..04a42f0 100644
--- a/end2endtest/InstallTest.py
+++ b/end2endtest/InstallTest.py
@@ -1,81 +1,31 @@
from selenium import webdriver
-from selenium.webdriver.common.keys import Keys
from unittest.case import TestCase
-import pdb
-from selenium.webdriver.support.wait import WebDriverWait
-from selenium.webdriver.support import expected_conditions as EC
-from selenium.webdriver.common.by import By
-import sys
-import time
+from UIProcedures import UIProcedures
+import os
-
-class element_to_be_useable(object):
- def __init__(self, locator):
- self.locator = locator
-
- def __call__(self, driver):
- try:
- element = driver.find_element(*self.locator)
- except:
- #print(sys.exc_info())
- element = None
- if element:
- try:
- displayValue=element.value_of_css_property('display')
- displayok = displayValue in ('block', 'inline','inline-block')
- displayed = element.is_displayed()
- enabled = element.is_enabled()
- if displayed and enabled and displayok:
- return element
- except StaleElementReferenceException:
- pass
- return False
-
-class UIActions(object):
- def waitUntilElementEnabled(self, fieldId):
- element = WebDriverWait(self.driver, 100).until(element_to_be_useable((By.ID,fieldId)))
- return element
-
- def wait_on_element_text(self, by_type, element, text, timeout=20):
- WebDriverWait(self.driver, timeout).until(
- EC.text_to_be_present_in_element(
- (by_type, element), text)
- )
-
- def fillInField(self, fieldId, value):
- element = self.waitUntilElementEnabled(fieldId)
- element.clear()
- element.send_keys(value)
-
-
-class UIProcedures(UIActions):
- def login_as_admin(self):
- self.driver.get("http://blog.example.com:8080/wp-login.php")
- self.waitUntilElementEnabled("user_login").send_keys("admin")
- self.waitUntilElementEnabled("user_pass").send_keys("admin")
- self.waitUntilElementEnabled("wp-submit").click()
- self.waitUntilElementEnabled("wpadminbar")
-
- def configureSSO(self):
- self.driver.get("http://blog.example.com:8080/wp-admin/options-general.php?page=edemosso")
- self.fillInField("EdemoSSO_appname", "testapp")
- self.fillInField("EdemoSSO_appkey", "testkey")
- self.fillInField("EdemoSSO_secret", "testsecret")
- self.fillInField("EdemoSSO_callback_uri", "/callback/uri")
- self.waitUntilElementEnabled("EdemoSSO_allowBind").click()
- self.waitUntilElementEnabled("EdemoSSO_allowLogin").click()
- self.waitUntilElementEnabled("EdemoSSO_update").click()
-
-class InstalltestTest(TestCase, UIProcedures):
+class InstallTest(TestCase, UIProcedures):
def setUp(self):
- self.driver = webdriver.Firefox()
+ profile_directory = os.path.join(os.path.dirname(__file__),"..", "etc", "firefox-profile")
+ profile = webdriver.FirefoxProfile(profile_directory)
+ profile.accept_untrusted_certs = True
+ self.driver = webdriver.Firefox(firefox_profile=profile)
def tearDown(self):
self.driver.close()
-
+
def test_install_page(self):
self.login_as_admin()
+ self.addSsoWidget()
+ self.workaroundPermalinkProblem()
self.configureSSO()
- self.wait_on_element_text(By.ID, "wpbody-content", "Options updated", 30)
+ self.assertFieldValue("EdemoSSO_serviceURI", "sso.edemokraciagep.org")
+ self.assertFieldValue("EdemoSSO_appname", "testapp")
+ self.assertFieldValue("EdemoSSO_appkey", "f7354fa2-811f-48b6-9be9-359c5d99d6a4")
+ self.assertFieldValue("EdemoSSO_secret", "e2etest")
+ self.assertSelected("EdemoSSO_allowBind")
+ self.assertSelected("EdemoSSO_allowLogin")
+ self.assertSelected("EdemoSSO_allowRegister")
self.assertIn("Options updated",self.driver.find_element_by_id("wpbody-content").text)
+ self.wp_logout()
+ self.loginWithSSO()
diff --git a/end2endtest/UIActions.py b/end2endtest/UIActions.py
new file mode 100644
index 0000000..575fdc0
--- /dev/null
+++ b/end2endtest/UIActions.py
@@ -0,0 +1,71 @@
+from selenium.common.exceptions import StaleElementReferenceException
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support.wait import WebDriverWait
+from selenium.webdriver.support import expected_conditions as EC
+import time
+
+class element_to_be_useable(object):
+ def __init__(self, locator):
+ self.locator = locator
+
+ def __call__(self, driver):
+ try:
+ element = driver.find_element(*self.locator)
+ except:
+ #print(sys.exc_info())
+ element = None
+ if element:
+ try:
+ displayValue=element.value_of_css_property('display')
+ displayok = displayValue in ('block', 'inline','inline-block')
+ displayed = element.is_displayed()
+ enabled = element.is_enabled()
+ if displayed and enabled and displayok:
+ return element
+ except StaleElementReferenceException:
+ pass
+ return False
+
+class UIActions(object):
+ def waitUntilElementEnabled(self, fieldId):
+ element = WebDriverWait(self.driver, 100).until(element_to_be_useable((By.ID,fieldId)))
+ return element
+
+ def wait_on_element_text(self, by_type, element, text, timeout=20):
+ WebDriverWait(self.driver, timeout).until(
+ EC.text_to_be_present_in_element(
+ (by_type, element), text)
+ )
+
+ def fillInField(self, fieldId, value):
+ element = self.waitUntilElementEnabled(fieldId)
+ element.clear()
+ element.send_keys(value)
+
+ def setCheckBox(self, elemId):
+ element = self.waitUntilElementEnabled(elemId)
+ if not element.is_selected():
+ self.click(elemId)
+ tried=0
+ while not element.is_selected() and tried<5:
+ time.sleep(1)
+ tried += 1
+
+ def click(self, fieldId):
+ element = self.waitUntilElementEnabled(fieldId)
+ self.driver.execute_script("""
+ window.scrollTo(
+ 0,
+ document.getElementById('{0}').getBoundingClientRect().top-
+ document.body.getBoundingClientRect().top-
+ 100)""".format(fieldId))
+ return element.click()
+
+ def assertFieldValue(self, fieldId, value):
+ element = self.driver.find_element_by_id(fieldId)
+ self.assertEqual(value,element.get_property('value'))
+
+ def assertSelected(self, fieldId):
+ element = self.driver.find_element_by_id(fieldId)
+ self.assertEqual(True,element.is_selected())
+
diff --git a/end2endtest/UIProcedures.py b/end2endtest/UIProcedures.py
new file mode 100644
index 0000000..99ce328
--- /dev/null
+++ b/end2endtest/UIProcedures.py
@@ -0,0 +1,68 @@
+from UIActions import UIActions
+from selenium.webdriver.common.by import By
+import pdb
+import time
+
+class UIProcedures(UIActions):
+ def login_as_admin(self):
+ self.driver.get("https://blog.example.com:8080/wp-login.php")
+ self.waitUntilElementEnabled("user_login").send_keys("admin")
+ self.waitUntilElementEnabled("user_pass").send_keys("admin")
+ self.waitUntilElementEnabled("wp-submit").click()
+ self.waitUntilElementEnabled("wpadminbar")
+
+ def addSsoWidget(self):
+ self.driver.get("https://blog.example.com:8080/wp-admin/widgets.php?widgets-access=on")
+ self.waitUntilElementEnabled("widgets-left")
+ ssoauth=self.driver.find_element_by_xpath("//a[contains(@href, 'base=edemo_ssoauth_login_widget')]")
+ ssoauth.click()
+ title = self.waitUntilElementEnabled("widget-edemo_ssoauth_login_widget-__i__-title")
+ title.clear()
+ title.send_keys("SSO")
+ sidebarPosition=self.driver.find_element_by_xpath("//select[@name='sidebar-1_position']")
+ for option in sidebarPosition.find_elements_by_tag_name('option'):
+ if option.text == '1':
+ option.click()
+ break
+ time.sleep(1)#FIXME:why is it needed?
+ self.click("savewidget")
+ self.wait_on_element_text(By.ID, "message", "Changes saved.", 50)
+
+
+ def configureSSO(self):
+ self.driver.get("https://blog.example.com:8080/wp-admin/options-general.php?page=edemosso")
+ self.fillInField("EdemoSSO_serviceURI", "sso.edemokraciagep.org")
+ self.fillInField("EdemoSSO_appname", "testapp")
+ self.fillInField("EdemoSSO_appkey", "f7354fa2-811f-48b6-9be9-359c5d99d6a4")
+ self.fillInField("EdemoSSO_secret", "e2etest")
+ self.setCheckBox("EdemoSSO_allowBind")
+ self.setCheckBox("EdemoSSO_allowLogin")
+ self.setCheckBox("EdemoSSO_allowRegister")
+ time.sleep(2)#WTF?
+ self.waitUntilElementEnabled("EdemoSSO_update").click()
+ self.wait_on_element_text(By.ID, "wpbody-content", "Options updated", 30)
+
+ def wp_logout(self):
+ self.driver.get("https://blog.example.com:8080/wp-login.php?action=logout")
+ element=self.driver.find_element_by_xpath("//a")
+ element.click()
+
+ def workaroundPermalinkProblem(self):
+ self.driver.get("https://blog.example.com:8080/wp-admin/options-permalink.php")
+ element=self.driver.find_element_by_xpath("//input[@value='/%year%/%monthnum%/%day%/%postname%/']")
+ element.click()
+ button = self.driver.find_element_by_id("submit")
+ button.click()
+ self.wait_on_element_text(By.ID, "setting-error-settings_updated", "Permalink structure updated.", 30)
+
+ def loginWithSSO(self):
+ self.driver.get("https://blog.example.com:8080/")
+ registerLink=self.driver.find_element_by_xpath("//a[text()='Register with SSO']")
+ registerLink.click()
+ self.fillInField("LoginForm_email_input", "mag+blog@magwas.rulez.org")
+ self.fillInField("LoginForm_password_input", "3l3k Th3 T3st3r")
+ button=self.driver.find_element_by_xpath("//button[text()='Bejelentkezés']")
+ button.click()
+ self.waitUntilElementEnabled("wp-admin-bar-root-default")
+ avatar = self.driver.find_element_by_xpath("//a[text()='Howdy, SSO user']")
+ self.assertEqual(avatar.text,"Howdy, SSO user")
diff --git a/etc/apache.conf.in b/etc/apache.conf
similarity index 77%
rename from etc/apache.conf.in
rename to etc/apache.conf
index e675b79..553e630 100644
--- a/etc/apache.conf.in
+++ b/etc/apache.conf
@@ -21,12 +21,14 @@ LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so
MaxConnectionsPerChild 0
-ServerRoot PWD
+User www-data
+Group www-data
+ServerRoot /tmp
LogLevel debug
-ErrorLog ./shippable/Error.log
+ErrorLog /tmp/wplog/Error.log
#ErrorLog ./tmp/ErrorLog
LogFormat "%h %l %u %t \"%r\" %>s %b" common
-CustomLog ./shippable/CustomLog common
+CustomLog /tmp/wplog/CustomLog common
PidFile /tmp/httpd.pid
Mutex file:/tmp default
Timeout 300
@@ -47,8 +49,19 @@ Listen 127.0.0.1:8080
LoadModule php7_module /usr/lib/apache2/modules/libphp7.0.so
-DocumentRoot PWD/wordpress
+DocumentRoot /tmp/wordpress
ServerName blog.example.com
DirectoryIndex index.php index.html
-
+SSLCertificateFile etc/cert.pem
+SSLCertificateKeyFile etc/key.pem
+SSLEngine on
+SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
+SSLOptions +StdEnvVars
+SSLOptions +ExportCertData
+SSLSessionCacheTimeout 300
+
+ AllowOverride all
+ Require all granted
+
+
diff --git a/etc/cert.pem b/etc/cert.pem
new file mode 100644
index 0000000..542c47c
--- /dev/null
+++ b/etc/cert.pem
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIGEzCCA/ugAwIBAgIJAO1ri/4eWAiFMA0GCSqGSIb3DQEBCwUAMIGfMQswCQYD
+VQQGEwJodTENMAsGA1UECAwEcGVzdDERMA8GA1UEBwwIYnVkYXBlc3QxKTAnBgNV
+BAoMIGluZm9ybWF0aWt1c29rIGF6IGVkZW1va3JhY2lhZXJ0MRkwFwYDVQQDDBBi
+bG9nLmV4YW1wbGUuY29tMSgwJgYJKoZIhvcNAQkBFhltYWcrYmxvZ0BtYWd3YXMu
+cnVsZXoub3JnMB4XDTE2MTEwMTEwNDkzMVoXDTI2MTAzMDEwNDkzMVowgZ8xCzAJ
+BgNVBAYTAmh1MQ0wCwYDVQQIDARwZXN0MREwDwYDVQQHDAhidWRhcGVzdDEpMCcG
+A1UECgwgaW5mb3JtYXRpa3Vzb2sgYXogZWRlbW9rcmFjaWFlcnQxGTAXBgNVBAMM
+EGJsb2cuZXhhbXBsZS5jb20xKDAmBgkqhkiG9w0BCQEWGW1hZytibG9nQG1hZ3dh
+cy5ydWxlei5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJBK94
+oggaztSCxx7UK2zfQlDfDYp9HCXTEQXj7jJRPE5VDIKBfaYmmCv2pTuks8qOCclA
+HxsvrX6XQgpS0AHPpANcjiSulhpv/IudwP86U2yo/eXdU8afTs00QmoKB0I2gCSE
+8pcJTo/AFbzNx2xrH4ThTNki97iu0fB6xNvwYEUKHs3cFLK8CFUzI/dg+GvDYnN/
+fTsaopZtwL7g6blbrm49IgLYQfS7DeaCHSkV5YeJIwxZSh51EdbnuiSW+p+pmddv
+3tqi0pjZt3bzFmszZHSSVP3J2sy52rDJCRRgSpzjt7G6//OaLWmnPlBEp4mx7s2W
+OA50lQsgRFwjMlCWhyrDnD1NBVdBd5e6A9US/ZEWbeABWNg7UwW9DZ87LiSP6a4Q
+fGZaRGwM3kWpgeeYT/gAmTctIDN4B8G/QltK7knKGRdOsnxyfbmbni7TFseN57Jf
+LUzCeV3xR/sO+4/xrzD5IoukrPZUvNQYy68tIbP2wHsX3KknSZs1s9uptSNXNWoP
+pV9UCJTXxfCZm1o3vqH8lUeYZMq1khMdqIs19JbCrCTyhJk45enC3ux4nJ/VuXUu
+t2gXTLiqP1Mkgfsc31AEMyC5e3o3unoDxEAj22Sv5mdhTciyrVv3T9/e3WoFK4bl
+XOBsaNYlotwk3pdZQn0qoaz/mQ3AK28rTrpS0wIDAQABo1AwTjAdBgNVHQ4EFgQU
+XXYq59uuklnzC9+Sw7PO97sKeEQwHwYDVR0jBBgwFoAUXXYq59uuklnzC9+Sw7PO
+97sKeEQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAUlOkCHJLN8GU
+zSQI7UYCBIDTVhA3uW9x4rvwcsxFhqosbhTgkx2LNWGa0Z6DZwur28LgmXSyDsr6
+V61sda2HyiDntj0sG1plO2IDzpVt/SaPxmcSo35QWdmUdVoDR4Vq3KY3CV/zhjHJ
+Xt23O1GXQWcrGtRWyQFIlp3aZXnQlUum8AFPmeeydIa5E8gOFzVbktzt3QmTJ62/
+UPTw+rkQYAYn617UGEbujQ4mZq77YccsiNxny3KyIvNuP/Mv12i4Z7teSgXPZ5Wn
+/CmRiwf/px6V1BhOaoj9lF2k7iWqslJE/bbKaFNmVYn4mA61R+W0eze0QBdWDVMb
+4Hf7kfbYmc3P124Nr6hQotWBwI2fQoq2GJslixRzE6USFciLwzgY06VZqwHPYvhb
+CU4JMTM70SBmVPUtDhCgNGNSrCpMqbsxfQdVwEPT7yPnUgDcRrPZkuEDeF3v20z8
+mimJz6H8VwwgQ4tklwSOwJIGD8R4VTvAetav85AKE7enFhmhQuSix7VNi8HZvb18
+W7jupviL1kz62VneVoMRmQzHBmrEaI+HNCHTD5rkcea+n7ZtlQr0M4dZGYsH1OxQ
+rnnMUyTu3pYgB+36XGoGePAKzEXxKe7hTkc5FA4qvIUAmF6PBwFcXvej24PNcUT8
+SITwRTBndSWdKqSqrG2MIpe7qugAVLI=
+-----END CERTIFICATE-----
diff --git a/etc/firefox-profile/cert8.db b/etc/firefox-profile/cert8.db
new file mode 100644
index 0000000..f4f605f
Binary files /dev/null and b/etc/firefox-profile/cert8.db differ
diff --git a/etc/firefox-profile/cert_override.txt b/etc/firefox-profile/cert_override.txt
new file mode 100644
index 0000000..8909562
--- /dev/null
+++ b/etc/firefox-profile/cert_override.txt
@@ -0,0 +1,3 @@
+# PSM Certificate Override Settings file
+# This is a generated file! Do not edit.
+blog.example.com:8080 OID.2.16.840.1.101.3.4.2.1 9A:07:37:00:7E:DC:35:45:D2:C4:A2:1F:6A:4B:25:2C:69:09:BA:D5:44:22:9D:4D:98:69:33:99:EF:D9:9C:1C U AAAAAAAAAAAAAAAJAAAAogDta4v+HlgIhTCBnzELMAkGA1UEBhMCaHUxDTALBgNVBAgMBHBlc3QxETAPBgNVBAcMCGJ1ZGFwZXN0MSkwJwYDVQQKDCBpbmZvcm1hdGlrdXNvayBheiBlZGVtb2tyYWNpYWVydDEZMBcGA1UEAwwQYmxvZy5leGFtcGxlLmNvbTEoMCYGCSqGSIb3DQEJARYZbWFnK2Jsb2dAbWFnd2FzLnJ1bGV6Lm9yZw==
diff --git a/etc/firefox-profile/key3.db b/etc/firefox-profile/key3.db
new file mode 100644
index 0000000..a02bb6c
Binary files /dev/null and b/etc/firefox-profile/key3.db differ
diff --git a/etc/firefox-profile/secmod.db b/etc/firefox-profile/secmod.db
new file mode 100644
index 0000000..729ba91
Binary files /dev/null and b/etc/firefox-profile/secmod.db differ
diff --git a/etc/key.pem b/etc/key.pem
new file mode 100644
index 0000000..cc7759d
--- /dev/null
+++ b/etc/key.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQDJBK94oggaztSC
+xx7UK2zfQlDfDYp9HCXTEQXj7jJRPE5VDIKBfaYmmCv2pTuks8qOCclAHxsvrX6X
+QgpS0AHPpANcjiSulhpv/IudwP86U2yo/eXdU8afTs00QmoKB0I2gCSE8pcJTo/A
+FbzNx2xrH4ThTNki97iu0fB6xNvwYEUKHs3cFLK8CFUzI/dg+GvDYnN/fTsaopZt
+wL7g6blbrm49IgLYQfS7DeaCHSkV5YeJIwxZSh51EdbnuiSW+p+pmddv3tqi0pjZ
+t3bzFmszZHSSVP3J2sy52rDJCRRgSpzjt7G6//OaLWmnPlBEp4mx7s2WOA50lQsg
+RFwjMlCWhyrDnD1NBVdBd5e6A9US/ZEWbeABWNg7UwW9DZ87LiSP6a4QfGZaRGwM
+3kWpgeeYT/gAmTctIDN4B8G/QltK7knKGRdOsnxyfbmbni7TFseN57JfLUzCeV3x
+R/sO+4/xrzD5IoukrPZUvNQYy68tIbP2wHsX3KknSZs1s9uptSNXNWoPpV9UCJTX
+xfCZm1o3vqH8lUeYZMq1khMdqIs19JbCrCTyhJk45enC3ux4nJ/VuXUut2gXTLiq
+P1Mkgfsc31AEMyC5e3o3unoDxEAj22Sv5mdhTciyrVv3T9/e3WoFK4blXOBsaNYl
+otwk3pdZQn0qoaz/mQ3AK28rTrpS0wIDAQABAoICAEUqnY3ugsdmn2yYQx1SC9YO
+JXF6YUqHIuSrGNHCpgGZtIJDGaygpUjmV0o4tHsJegrBh0PO8DXJhqNZD+BKvjTK
+BHYWWrzP3SznQsr3G1rgVaUYJ72uE8vA+46dw4rL0JacJPSx3BJRu9imIh7UHZQG
+dlxnatdDUYKlrg8wKVVeaqL+0mqFnLJiU56TI410LPA/seoOFwYlJ4mAJq2Q/jxz
+mm7igwQSPbkXIVdn3Tkxjx86tgcLH8u8Zau6OtjQR5u92YkerzATMpDHNeCSuDQo
+vouTPvfzlznj66xguWgghDc+f6MOaq2ELrRjFo9o7lIRDyA/DYpDtl5V5zYdG+jy
+hevfPcMQoKmdfdGtKPsey5TTUbUzc3+kJGVXI8J+yyMdtQgjsPpb7GpYupGzqXQP
+zUgOSKlEsS+vx0gQanzZn2veac/mbZL8YLf6JqLYYO2bCiAdJQmu/x4Ee55md2W/
+qmNewrQm6YdJnJl3myDEa5S3tKtlmeJKmeuEhkU8xVaBfEzSn/WOh7wCM7AxaOI1
+8Dp0MfUFc8/LU1QJN4NoXkyFQaXNEJv4L5GFjA2CGCmZ3THJKZFUvhkRCPD1tWrd
+1WObzOtKTAmyzl5l8iZYOjdfCuxwLZu6xaNOvgtMcfL+p83lLMtKugixD2h/G1XM
+JbQm+K0QpTYVwKpOPVZxAoIBAQD73uJlU4HkKCuxqSs/GVV8jRs66kjeORrTkqNI
+mr0hCJ7meMDd8TtDVWXG5McI2ATYUimoxo1GBWd8awSu87Pmo10A38mw4Cpd7XAU
+/uLgQTLdWd+wVDvLFa9A4oj1HrN8GlfHYdiGknMyXVH1A/Mo0RaYaraPhBObAEHs
+JjCdtRyH0qCWmkS8WyJhbgkSTYf1j9wlqEw3uVp5fi1sbEZBb8JvROe1ZbrrT4u6
+3YkMZarw2MX2imTUzdSvFX/6HfmUJrOJ1uBeo+kYFv6LfbI5OqqprgLvRYfHkkDU
+XlUlcv5LCI0XQWDh/H/CCnj+7dzauWDxSpM5aRZKparDwJ6tAoIBAQDMUF7xMKcR
+yv+LCpABk1g95Cz7Ktg68tQH+Za+ZdsixiPRJE5/iw289uKccVF5upgP8Dke+i1P
++AWuKEx1ocqdV3x9k3i+KNsMqRYu56JM3oULkyemghBup0o6kofdAgIcG/oY6LEL
+X+2VlzuV+asYGg8M9geXJh9eorF/tqI4qhC7gChX8H4X1IF9TrOf/gAyk5Bj2zmn
+x4cEeZvVdBiX0ZjSNGcBtx/hRM1YWl9z064E0Nyoq3H1r/ZKlNphPPg1M+EY/dd8
+nWiCMLE1kxm3C+U1brKMFLsjh8DsJ0MT1pw/Ncu3XbHHaI96gjs0g070ogWfb+MV
+ZPetcT8qJGd/AoIBAFVZcd5kLd/ivOu3J7B6JT3PkyqjuY2UTELlre8sgGpxQWdY
+BAMxe6OVjKeZXtjgWsPzE6rdnYHc0vSWTz/51TySnzFspCwLyk+J5jE3LipP7ayU
+h/h4ksp+zqRuH3rwrGGhi51EytrPRboLZXphnER4le+QOczoNLyRmcUsK81FUiW0
+ejaOkDxDpaLeZrSNEUVlOnSIU0uOw9nnp/zVs/j4piqObvZJQs36Zp8r8wUAbqyu
+yGaC/ygdl7S81GEtRyWs96n95oorgRFouVkLfxllh+93yAbMyPYX2WAdlzzZetJy
+U11OCkaKCcD3S4kXkX+M0gzx+HG76pHhEbzDyQECggEARtr4khyVVA5aYRXgqys2
+RwCCuPg61PaxobJlHNKmFIEymq1Eq+bFdOsJ28dQwi573csphByu6jTRg3xmR8U8
+RyS3/7TNAuWYUeOx1cJu/smMyl7WOWCR4k4R6A45H+Q6ZxUsvsaz34X9FwvDlldn
+hoxC+/O23ixSZLd3ZxsnVw9jjiL72sOEdy8zWQmaMbocx211favhatY/dMXXzUbd
+4IjHvt59epLPc4gwzptIzxpyFyl33ObYNqQ3fdXxhhdm3MyJG+mseYL9Y2kPi8zf
+9iMh8k3ZjcsCu2ew+DUFhjO/LAy0AXt00/rnB01yytte3mfyG0DqN9k0K+pCRZMq
+cQKCAQABL+FKjLEq4r9M6Tq83xFkJ/rnWrhU1m7/REtMOfbEMSBCoTX6nFdOusy4
+ucrgkj9ZOVhj4/z99CTEVIeWUXktuYRf47aK2gw78VIJmp9nZ9k0Q+m2vsyUa8RY
+zegnTexKE/Rh1unxH4lhXPZD723D70SkjFHRh83v/SY63fwQXvKAVs1ZyXvAzWCH
+79J+OLkDRh4BzG4AQ9gmY4nPwaLg0VXU1rtSEtwdPHC5u2CWSuWl2rnRNq5EnI89
+zbEdzgfgJYVVIC5j9JoI1uM5op8cV13M3qgcndNZiHpp4m6sRxph4asTQchlWkCZ
+hfwVxYoFBchS7Yv847I0uAVPSwWr
+-----END PRIVATE KEY-----
diff --git a/tests/eDemo_SSOauth_widgetTest.php b/tests/eDemo_SSOauth_widgetTest.php
index 6b8da7f..d15d239 100644
--- a/tests/eDemo_SSOauth_widgetTest.php
+++ b/tests/eDemo_SSOauth_widgetTest.php
@@ -3,6 +3,7 @@
require_once 'tests/fake_lib.php';
require_once 'eDemo-SSOauth/includes/class_edemo-ssoauth_base.php';
+require_once 'eDemo-SSOauth/includes/class_edemo-ssoauth.php';
require_once 'eDemo-SSOauth/includes/class_edemo-ssoauth_widgets.php';
class eDemo_SSOauth_login_widget__Test extends PHPUnit_Framework_TestCase
@@ -25,4 +26,28 @@ public function test_constructor_sets_the_properties_from_plugin_options()
false);
}
+ public function test_serviceuri_exists()
+ {
+ init_mocked_option_container();
+ update_option('eDemoSSO_serviceURI','sso.edemokraciagep.org.lehetne');
+ $opt = get_option('eDemoSSO_serviceURI');
+ $this->assertEquals('sso.edemokraciagep.org.lehetne',$opt);
+ }
+
+
+ public function test_site_url_exists()
+ {
+ $this->assertEquals(
+ '/login.html',
+ eDemo_SSOauth::SSO_SITE_URL);
+ }
+
+ public function test_services_url_can_be_assembled()
+ {
+ init_mocked_option_container();
+ update_option('eDemoSSO_serviceURI','sso.edemokraciagep.org.lehetne');
+ $this->assertEquals(
+ 'sso.edemokraciagep.org.lehetne/login.html',
+ (get_option('eDemoSSO_serviceURI').eDemo_SSOauth::SSO_SITE_URL));
+ }
}
diff --git a/tools/postci b/tools/postci
new file mode 100755
index 0000000..e11ab9b
--- /dev/null
+++ b/tools/postci
@@ -0,0 +1,2 @@
+#!/bin/bash
+make cleanup
diff --git a/tools/prepare b/tools/prepare
index ab7296f..8b37b85 100755
--- a/tools/prepare
+++ b/tools/prepare
@@ -1,6 +1,6 @@
#!/bin/bash
set -x
-rm -rf tmp shippable wordpress
+rm -rf tmp /tmp/wordpress
mkdir -p tmp shippable
export DISPLAY=:1
Xvnc -SecurityTypes=None :1&
diff --git a/tools/runapache b/tools/runapache
index 1757b50..b73d114 100755
--- a/tools/runapache
+++ b/tools/runapache
@@ -1,6 +1,6 @@
#!/bin/bash
-sed sAPWDA$(pwd)A tmp/apache.conf
-apache2 -X -f $(pwd)/tmp/apache.conf&
-sleep 3
-tail -f shippable/*&
+cp -r $(pwd)/etc /tmp
+apache2 -X -f /tmp/etc/apache.conf&
+sleep 2
+tail -f /tmp/wplog/*&
diff --git a/tools/script b/tools/script
index 5a1bfb7..2ee4fc6 100755
--- a/tools/script
+++ b/tools/script
@@ -1,6 +1,7 @@
#!/bin/bash
make cleanup
killall tail
+ls -la /root
. tools/prepare
tools/runapache
make check
diff --git a/tools/wpinstall b/tools/wpinstall
index 984e5b0..43cf860 100755
--- a/tools/wpinstall
+++ b/tools/wpinstall
@@ -1,10 +1,14 @@
-wget -O tmp/wp_cli https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
-chmod a+x tmp/wp_cli
-./tmp/wp_cli core download --allow-root --path=wordpress
+#!/bin/bash
+oldpath=$(pwd)
+cd /tmp
+rm -rf wordpress wplog
+wget -O wp_cli https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
+chmod a+x wp_cli
+./wp_cli core download --allow-root --path=wordpress
mysql --password=password -e "create database wordpress"
-./tmp/wp_cli core config --allow-root --dbname=wordpress --dbuser=root --dbhost=localhost --path=wordpress --dbpass=password
-./tmp/wp_cli core install --allow-root --admin_name=admin --admin_password=admin --admin_email=admin@example.com --url=http://blog.example.com:8080 --title=WordPress --path=wordpress
-cp -r eDemo-SSOauth wordpress/wp-content/plugins/
-./tmp/wp_cli --allow-root plugin activate eDemo-SSOauth --path=wordpress
-
-
+./wp_cli core config --allow-root --dbname=wordpress --dbuser=root --dbhost=localhost --path=wordpress --dbpass=password
+./wp_cli core install --allow-root --admin_name=admin --admin_password=admin --admin_email=admin@example.com --url=http://blog.example.com:8080 --title=WordPress --path=wordpress
+cp -r $oldpath/eDemo-SSOauth wordpress/wp-content/plugins/
+./wp_cli --allow-root plugin activate eDemo-SSOauth --path=wordpress
+mkdir -p /tmp/wplog
+chown -R www-data.www-data wordpress wplog