Skip to content

Commit ac404a6

Browse files
committed
https settings, workaround for edemo#87, test for edemo#88
1 parent 4587302 commit ac404a6

File tree

13 files changed

+164
-20
lines changed

13 files changed

+164
-20
lines changed

eDemo-SSOauth/includes/class_edemo-ssoauth_widgets.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ function widget( $args, $instance ) {
8181

8282
//section for all
8383
?>
84-
<li><a href="https://<?= (get_option('eDemoSSO_serviceURI').eDemo_SSOauth::SSO_SITE_URL) ?>"><?= __('SSO services', eDemo_SSOauth::TEXTDOMAIN)?></a></li>
84+
<li><a href="https://<?php echo (get_option('eDemoSSO_serviceURI').eDemo_SSOauth::SSO_SITE_URL) ?>"><?= __('SSO services', eDemo_SSOauth::TEXTDOMAIN)?></a></li>
8585
</ul>
8686
<?= $args['after_widget'] ?>
8787
<?php
@@ -110,4 +110,4 @@ function form( $instance ) {
110110
<?php
111111
}
112112
}
113-
?>
113+
?>

end2endtest/InstallTest.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
from selenium import webdriver
22
from unittest.case import TestCase
3-
from selenium.webdriver.common.by import By
43
from UIProcedures import UIProcedures
4+
import os
55

66
class InstalltestTest(TestCase, UIProcedures):
77
def setUp(self):
8-
self.driver = webdriver.Firefox()
8+
profile_directory = os.path.join(os.path.dirname(__file__),"..", "etc", "firefox-profile")
9+
profile = webdriver.FirefoxProfile(profile_directory)
10+
profile.accept_untrusted_certs = True
11+
self.driver = webdriver.Firefox(firefox_profile=profile)
912

1013
def tearDown(self):
1114
self.driver.close()
@@ -14,15 +17,21 @@ def assertFieldValue(self, fieldId, value):
1417
element = self.driver.find_element_by_id(fieldId)
1518
self.assertEqual(value,element.get_property('value'))
1619

20+
def assertSelected(self, fieldId):
21+
element = self.driver.find_element_by_id(fieldId)
22+
self.assertEqual(True,element.is_selected())
23+
1724
def test_install_page(self):
1825
self.login_as_admin()
26+
self.workaroundPermalinkProblem()
1927
self.configureSSO()
20-
self.wait_on_element_text(By.ID, "wpbody-content", "Options updated", 30)
21-
self.assertFieldValue("EdemoSSO_serviceURI", "/sso_callback")
28+
self.assertFieldValue("EdemoSSO_serviceURI", "sso.edemokraciagep.org")
2229
self.assertFieldValue("EdemoSSO_appname", "testapp")
2330
self.assertFieldValue("EdemoSSO_appkey", "f7354fa2-811f-48b6-9be9-359c5d99d6a4")
24-
self.assertFieldValue("EdemoSSO_secret", "testsecret")
25-
self.assertFieldValue("EdemoSSO_callback_uri", "/callback/uri")
31+
self.assertFieldValue("EdemoSSO_secret", "e2etest")
32+
self.assertSelected("EdemoSSO_allowBind")
33+
self.assertSelected("EdemoSSO_allowLogin")
34+
self.assertSelected("EdemoSSO_allowRegister")
2635

2736
self.assertIn("Options updated",self.driver.find_element_by_id("wpbody-content").text)
2837

end2endtest/LoginTest.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,3 @@ def setUp(self):
99

1010
def tearDown(self):
1111
self.driver.close()
12-

end2endtest/UIProcedures.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,32 @@
11
from UIActions import UIActions
2+
from selenium.webdriver.common.by import By
3+
import pdb
24

35
class UIProcedures(UIActions):
46
def login_as_admin(self):
5-
self.driver.get("http://blog.example.com:8080/wp-login.php")
7+
self.driver.get("https://blog.example.com:8080/wp-login.php")
68
self.waitUntilElementEnabled("user_login").send_keys("admin")
79
self.waitUntilElementEnabled("user_pass").send_keys("admin")
810
self.waitUntilElementEnabled("wp-submit").click()
911
self.waitUntilElementEnabled("wpadminbar")
1012

11-
#5 | f7354fa2-811f-48b6-9be9-359c5d99d6a4 | e2etest | e2etest | https://blog.example.com:8080 |
12-
13-
1413
def configureSSO(self):
15-
self.driver.get("http://blog.example.com:8080/wp-admin/options-general.php?page=edemosso")
16-
self.fillInField("EdemoSSO_serviceURI", "/sso_callback")
14+
self.driver.get("https://blog.example.com:8080/wp-admin/options-general.php?page=edemosso")
15+
self.fillInField("EdemoSSO_serviceURI", "sso.edemokraciagep.org")
1716
self.fillInField("EdemoSSO_appname", "testapp")
1817
self.fillInField("EdemoSSO_appkey", "f7354fa2-811f-48b6-9be9-359c5d99d6a4")
19-
self.fillInField("EdemoSSO_secret", "testsecret")
20-
self.fillInField("EdemoSSO_callback_uri", "/callback/uri")
18+
self.fillInField("EdemoSSO_secret", "e2etest")
2119
self.waitUntilElementEnabled("EdemoSSO_allowBind").click()
2220
self.waitUntilElementEnabled("EdemoSSO_allowLogin").click()
21+
self.waitUntilElementEnabled("EdemoSSO_allowRegister").click()
2322
self.waitUntilElementEnabled("EdemoSSO_update").click()
23+
pdb.set_trace()
24+
self.wait_on_element_text(By.ID, "wpbody-content", "Options updated", 30)
2425

25-
26+
def workaroundPermalinkProblem(self):
27+
self.driver.get("https://blog.example.com:8080/wp-admin/options-permalink.php")
28+
element=self.driver.find_element_by_xpath("//input[@value='/%year%/%monthnum%/%day%/%postname%/']")
29+
element.click()
30+
button = self.driver.find_element_by_id("submit")
31+
button.click()
32+
self.wait_on_element_text(By.ID, "setting-error-settings_updated", "Permalink structure updated.", 30)

etc/apache.conf.in

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so
2121
MaxConnectionsPerChild 0
2222

2323

24+
User www-data
25+
Group www-data
2426
ServerRoot PWD
2527
LogLevel debug
2628
ErrorLog ./shippable/Error.log
@@ -51,4 +53,15 @@ DocumentRoot PWD/wordpress
5153
ServerName blog.example.com
5254
DirectoryIndex index.php index.html
5355

54-
56+
SSLCertificateFile etc/cert.pem
57+
SSLCertificateKeyFile etc/key.pem
58+
SSLEngine on
59+
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
60+
SSLOptions +StdEnvVars
61+
SSLOptions +ExportCertData
62+
SSLSessionCacheTimeout 300
63+
<Directory "PWD/wordpress">
64+
AllowOverride all
65+
Require all granted
66+
</Directory>
67+

etc/cert.pem

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIGEzCCA/ugAwIBAgIJAO1ri/4eWAiFMA0GCSqGSIb3DQEBCwUAMIGfMQswCQYD
3+
VQQGEwJodTENMAsGA1UECAwEcGVzdDERMA8GA1UEBwwIYnVkYXBlc3QxKTAnBgNV
4+
BAoMIGluZm9ybWF0aWt1c29rIGF6IGVkZW1va3JhY2lhZXJ0MRkwFwYDVQQDDBBi
5+
bG9nLmV4YW1wbGUuY29tMSgwJgYJKoZIhvcNAQkBFhltYWcrYmxvZ0BtYWd3YXMu
6+
cnVsZXoub3JnMB4XDTE2MTEwMTEwNDkzMVoXDTI2MTAzMDEwNDkzMVowgZ8xCzAJ
7+
BgNVBAYTAmh1MQ0wCwYDVQQIDARwZXN0MREwDwYDVQQHDAhidWRhcGVzdDEpMCcG
8+
A1UECgwgaW5mb3JtYXRpa3Vzb2sgYXogZWRlbW9rcmFjaWFlcnQxGTAXBgNVBAMM
9+
EGJsb2cuZXhhbXBsZS5jb20xKDAmBgkqhkiG9w0BCQEWGW1hZytibG9nQG1hZ3dh
10+
cy5ydWxlei5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJBK94
11+
oggaztSCxx7UK2zfQlDfDYp9HCXTEQXj7jJRPE5VDIKBfaYmmCv2pTuks8qOCclA
12+
HxsvrX6XQgpS0AHPpANcjiSulhpv/IudwP86U2yo/eXdU8afTs00QmoKB0I2gCSE
13+
8pcJTo/AFbzNx2xrH4ThTNki97iu0fB6xNvwYEUKHs3cFLK8CFUzI/dg+GvDYnN/
14+
fTsaopZtwL7g6blbrm49IgLYQfS7DeaCHSkV5YeJIwxZSh51EdbnuiSW+p+pmddv
15+
3tqi0pjZt3bzFmszZHSSVP3J2sy52rDJCRRgSpzjt7G6//OaLWmnPlBEp4mx7s2W
16+
OA50lQsgRFwjMlCWhyrDnD1NBVdBd5e6A9US/ZEWbeABWNg7UwW9DZ87LiSP6a4Q
17+
fGZaRGwM3kWpgeeYT/gAmTctIDN4B8G/QltK7knKGRdOsnxyfbmbni7TFseN57Jf
18+
LUzCeV3xR/sO+4/xrzD5IoukrPZUvNQYy68tIbP2wHsX3KknSZs1s9uptSNXNWoP
19+
pV9UCJTXxfCZm1o3vqH8lUeYZMq1khMdqIs19JbCrCTyhJk45enC3ux4nJ/VuXUu
20+
t2gXTLiqP1Mkgfsc31AEMyC5e3o3unoDxEAj22Sv5mdhTciyrVv3T9/e3WoFK4bl
21+
XOBsaNYlotwk3pdZQn0qoaz/mQ3AK28rTrpS0wIDAQABo1AwTjAdBgNVHQ4EFgQU
22+
XXYq59uuklnzC9+Sw7PO97sKeEQwHwYDVR0jBBgwFoAUXXYq59uuklnzC9+Sw7PO
23+
97sKeEQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAUlOkCHJLN8GU
24+
zSQI7UYCBIDTVhA3uW9x4rvwcsxFhqosbhTgkx2LNWGa0Z6DZwur28LgmXSyDsr6
25+
V61sda2HyiDntj0sG1plO2IDzpVt/SaPxmcSo35QWdmUdVoDR4Vq3KY3CV/zhjHJ
26+
Xt23O1GXQWcrGtRWyQFIlp3aZXnQlUum8AFPmeeydIa5E8gOFzVbktzt3QmTJ62/
27+
UPTw+rkQYAYn617UGEbujQ4mZq77YccsiNxny3KyIvNuP/Mv12i4Z7teSgXPZ5Wn
28+
/CmRiwf/px6V1BhOaoj9lF2k7iWqslJE/bbKaFNmVYn4mA61R+W0eze0QBdWDVMb
29+
4Hf7kfbYmc3P124Nr6hQotWBwI2fQoq2GJslixRzE6USFciLwzgY06VZqwHPYvhb
30+
CU4JMTM70SBmVPUtDhCgNGNSrCpMqbsxfQdVwEPT7yPnUgDcRrPZkuEDeF3v20z8
31+
mimJz6H8VwwgQ4tklwSOwJIGD8R4VTvAetav85AKE7enFhmhQuSix7VNi8HZvb18
32+
W7jupviL1kz62VneVoMRmQzHBmrEaI+HNCHTD5rkcea+n7ZtlQr0M4dZGYsH1OxQ
33+
rnnMUyTu3pYgB+36XGoGePAKzEXxKe7hTkc5FA4qvIUAmF6PBwFcXvej24PNcUT8
34+
SITwRTBndSWdKqSqrG2MIpe7qugAVLI=
35+
-----END CERTIFICATE-----

etc/firefox-profile/cert8.db

64 KB
Binary file not shown.

etc/firefox-profile/cert_override.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# PSM Certificate Override Settings file
2+
# This is a generated file! Do not edit.
3+
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==

etc/firefox-profile/key3.db

16 KB
Binary file not shown.

etc/firefox-profile/secmod.db

16 KB
Binary file not shown.

etc/key.pem

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
-----BEGIN PRIVATE KEY-----
2+
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
51+
hfwVxYoFBchS7Yv847I0uAVPSwWr
52+
-----END PRIVATE KEY-----

tests/eDemo_SSOauth_widgetTest.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
require_once 'tests/fake_lib.php';
44

55
require_once 'eDemo-SSOauth/includes/class_edemo-ssoauth_base.php';
6+
require_once 'eDemo-SSOauth/includes/class_edemo-ssoauth.php';
67
require_once 'eDemo-SSOauth/includes/class_edemo-ssoauth_widgets.php';
78

89
class eDemo_SSOauth_login_widget__Test extends PHPUnit_Framework_TestCase
@@ -25,4 +26,29 @@ public function test_constructor_sets_the_properties_from_plugin_options()
2526
false);
2627
}
2728

29+
public function test_serviceuri_exists()
30+
{
31+
init_mocked_option_container();
32+
update_option('eDemoSSO_serviceURI','sso.edemokraciagep.org.lehetne');
33+
$opt = get_option('eDemoSSO_serviceURI');
34+
var_dump($opt);
35+
$this->assertEquals('sso.edemokraciagep.org.lehetne',$opt);
36+
}
37+
38+
39+
public function test_site_url_exists()
40+
{
41+
$this->assertEquals(
42+
'/login.html',
43+
eDemo_SSOauth::SSO_SITE_URL);
44+
}
45+
46+
public function test_services_url_can_be_assembled()
47+
{
48+
init_mocked_option_container();
49+
update_option('eDemoSSO_serviceURI','sso.edemokraciagep.org.lehetne');
50+
$this->assertEquals(
51+
'sso.edemokraciagep.org.lehetne/login.html',
52+
(get_option('eDemoSSO_serviceURI').eDemo_SSOauth::SSO_SITE_URL));
53+
}
2854
}

tools/wpinstall

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ mysql --password=password -e "create database wordpress"
66
./tmp/wp_cli core install --allow-root --admin_name=admin --admin_password=admin [email protected] --url=http://blog.example.com:8080 --title=WordPress --path=wordpress
77
cp -r eDemo-SSOauth wordpress/wp-content/plugins/
88
./tmp/wp_cli --allow-root plugin activate eDemo-SSOauth --path=wordpress
9-
9+
chown -R www-data.www-data wordpress
1010

0 commit comments

Comments
 (0)