From 787eefc67c60dc9aaf80e1c043a1bbce5ac96597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Fri, 8 Jan 2016 11:40:36 +0000 Subject: [PATCH] non working experimental status --- ChangeLog | 5 +++ cordova/platforms/android/AndroidManifest.xml | 2 +- .../android/assets/www/cordova_plugins.js | 21 +++++----- cordova/platforms/android/res/xml/config.xml | 9 +---- html/login.php | 6 ++- html/opendb.php | 25 +++++++----- html/safechat.js | 38 ++++++++++++++----- html/send.php | 2 + test/makefile.am | 6 +-- test/runtests.sh | 31 ++++++++++++--- test/settings.wt | 4 +- 11 files changed, 97 insertions(+), 52 deletions(-) diff --git a/ChangeLog b/ChangeLog index d5488fd..d1d20fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-12-04 08:36 marc + + * COPYING, ChangeLog, INSTALL, build-in-docker.conf, + build-in-docker.sh: distinguish by hw arch + 2015-12-04 07:05 marc * COPYING, ChangeLog, INSTALL, build-in-docker.conf, diff --git a/cordova/platforms/android/AndroidManifest.xml b/cordova/platforms/android/AndroidManifest.xml index 82f0365..26fcc99 100644 --- a/cordova/platforms/android/AndroidManifest.xml +++ b/cordova/platforms/android/AndroidManifest.xml @@ -1,5 +1,5 @@ - + diff --git a/cordova/platforms/android/assets/www/cordova_plugins.js b/cordova/platforms/android/assets/www/cordova_plugins.js index a9fdf5b..69c95dc 100644 --- a/cordova/platforms/android/assets/www/cordova_plugins.js +++ b/cordova/platforms/android/assets/www/cordova_plugins.js @@ -3,33 +3,30 @@ module.exports = [ { "file": "plugins/cordova-plugin-whitelist/whitelist.js", "id": "cordova-plugin-whitelist.whitelist", - "pluginId": "cordova-plugin-whitelist", "runs": true }, - { - "file": "plugins/cordova-plugin-device/www/device.js", - "id": "cordova-plugin-device.device", - "pluginId": "cordova-plugin-device", - "clobbers": [ - "device" - ] - }, { "file": "plugins/de.appplant.cordova.plugin.background-mode/www/background-mode.js", "id": "de.appplant.cordova.plugin.background-mode.BackgroundMode", - "pluginId": "de.appplant.cordova.plugin.background-mode", "clobbers": [ "cordova.plugins.backgroundMode", "plugin.backgroundMode" ] + }, + { + "file": "plugins/cordova-plugin-device/www/device.js", + "id": "cordova-plugin-device.device", + "clobbers": [ + "device" + ] } ]; module.exports.metadata = // TOP OF METADATA { "cordova-plugin-whitelist": "1.0.0", - "cordova-plugin-device": "1.1.0", - "de.appplant.cordova.plugin.background-mode": "0.6.4" + "de.appplant.cordova.plugin.background-mode": "0.6.4", + "cordova-plugin-device": "1.1.0" } // BOTTOM OF METADATA }); \ No newline at end of file diff --git a/cordova/platforms/android/res/xml/config.xml b/cordova/platforms/android/res/xml/config.xml index 76488f0..e5c2c0e 100644 --- a/cordova/platforms/android/res/xml/config.xml +++ b/cordova/platforms/android/res/xml/config.xml @@ -1,17 +1,10 @@ - + - - - - - - - SafeChat diff --git a/html/login.php b/html/login.php index fa718f3..2ffee3a 100644 --- a/html/login.php +++ b/html/login.php @@ -24,12 +24,14 @@ function login($user, $pubkey) { try { require_once("opendb.php"); + if (!$db) error("database access failed"); if ($user=="safechat") error("username safechat is reserved for server"); - $verify = gnupg_import($pgp, $pubkey); - if (!$verify) error("wrong identity"); + //$verify = gnupg_import($pgp, $pubkey); + //if (!$verify) error("wrong identity"); $user = $db->real_escape_string($user); $pubkey = $db->real_escape_string($pubkey); $q = $db->query("select * from user where name='$user' and pubkey='$pubkey';"); + if (!$q) error("database query failed"); if ($q->num_rows==1) { success("user $user found on server"); } elseif ($q->num_rows==0) { diff --git a/html/opendb.php b/html/opendb.php index ebe8da3..e516dfb 100644 --- a/html/opendb.php +++ b/html/opendb.php @@ -11,6 +11,7 @@ mysqli_report(MYSQLI_REPORT_STRICT); require_once("functions.php"); +/* try { if (!isset($pgp)) { $pgp = gnupg_init(); @@ -19,17 +20,23 @@ try { } catch (Exception $e) { error('cannot start pgp on server'); } + */ try { - if (!isset($db)) { - $db = new mysqli("mysql", "root", $_SERVER["MYSQL_ENV_MYSQL_ROOT_PASSWORD"]); - if (!$db) error("database connection failed on server"); - $db->query("create database if not exists safechat;"); - $db->select_db("safechat"); - if (!$db) error("cannot create database for safechat"); - $db->query(file_get_contents("schema.sql")); - if (!$db) error("cannot create database tables"); + $db = new mysqli("mysql", "root", $_SERVER["MYSQL_ENV_MYSQL_ROOT_PASSWORD"]); + if (!$db) error("database connection failed on server"); + $db->query("create database if not exists safechat;"); + if (!$db) error("cannot create database"); + $db->select_db("safechat"); + if (!$db) error("cannot select database"); + $query = file_get_contents("schema.sql"); + if (!$query) error("cannot load database schema"); + foreach (split(";\n", $query) as $create) { + if ($create) { + $db->query($create); + if (!$db) error("cannot create database tables"); + } } } catch (Exception $e) { - error('database error on server'); + error('database error on server: '+$e->getMessage()); } ?> diff --git a/html/safechat.js b/html/safechat.js index efe79b6..9d89bb5 100644 --- a/html/safechat.js +++ b/html/safechat.js @@ -294,7 +294,8 @@ function createkeypair(user, pwd) { localStorage["privKey"] = keyPair.privateKeyArmored; login(); }).catch(function(e) { - error(e); + console.log(e.stack); + error("generating key pairs failed"); }); } @@ -668,20 +669,37 @@ function newuser() { }); } +/// Check if local storage is available +function checkLocalStorage() { + var test = 'test'; + try { + localStorage.setItem(test, test); + localStorage.removeItem(test); + return true; + } catch(e) { + status("

No access to local storage. Please allow "+window.location.hostname + +" to access localhost, i.e. do not block cookies.

"); + error("local storage not available"); + } + return false; +} + /// Initial Function: Startup /** Decide whether to login or to create a new user */ function start() { $("#menu").hide(); - try { - status("Starting up ..."); - if (!userid()) { - newuser(); - } else { - login(); + if (checkLocalStorage()) + try { + status("Starting up ..."); + if (!userid()) { + newuser(); + } else { + login(); + } + } catch (m) { + console.log(m.stack); + error(m); } - } catch (m) { - error(m); - } } /// On Load, Call @ref start diff --git a/html/send.php b/html/send.php index 485bafd..5505ad0 100644 --- a/html/send.php +++ b/html/send.php @@ -29,8 +29,10 @@ function send($user, $msg) { if (strlen($_REQUEST['msg'])>100000) error("message is too long"); $q = $db->query("select pubkey from user where name='$user';"); if (!$q || $q->num_rows!=1) error("user not found on server"); + /* $pubkey = gnupg_import($pgp, $q->fetch_row()[0]); if (!$pubkey) error("wrong identity"); + */ $q = $db->query("insert into message (user, msg) values ('$user', '$msg');"); if (!$q) { error_log("Error storing message: ".$db->error); diff --git a/test/makefile.am b/test/makefile.am index 68d5490..c8ef002 100644 --- a/test/makefile.am +++ b/test/makefile.am @@ -8,8 +8,8 @@ ## 1 2 3 4 5 6 7 8 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 - - -TESTS = +dist_check_DATA = settings.wt testcase.wt +dist_check_SCRIPTS = runtests.sh +TESTS = $(dist_check_SCRIPTS) MAINTAINERCLEANFILES = makefile.in diff --git a/test/runtests.sh b/test/runtests.sh index 828e98a..a74b057 100755 --- a/test/runtests.sh +++ b/test/runtests.sh @@ -1,4 +1,4 @@ -#!/bin/bash -e +#!/bin/bash #check for a text in a docker volume log function check() { @@ -41,17 +41,24 @@ fi # option checks NEED_XVFB=0 -NEED_DOCKER=0 +NEED_DOCKER=1 NEED_WEBTESTER=0 +PORT= while test $# -gt 0; do case "$1" in (--help|-h) - echo "$0 [OPTIONS] [PORTS ]" + echo "$0 [OPTIONS]" echo echo "OPTIONS:" echo + echo " -p don't run, just prepare test on port " + echo exit 0 ;; + (-p|--port) + shift + PORT=$1 + ;; (*) echo "**** ERROR: unknown option '$1', try --help"; exit 1;; esac if test $# -eq 0; then @@ -120,6 +127,18 @@ set -x # Add tests here MYSQL=$(docker run -d -e MYSQL_ROOT_PASSWORD=TopSecretLOL mysql) PHP=$(docker run -d --volume $(pwd)/../html:/usr/share/nginx/html:ro --link ${MYSQL}:mysql mwaeckerlin/php-fpm) -NGINX=$(docker run -d --volumes-from ${PHP} --link ${PHP}:php -p 8080:80 mwaeckerlin/nginx) -trap "docker rm -f ${NGINX} ${PHP} ${MYSQL}" INT TERM EXIT -sleep 60 +if test -z "${PORT}"; then + NGINX=$(docker run -d --volumes-from ${PHP} --link ${PHP}:php mwaeckerlin/nginx) + trap "docker rm -f ${NGINX} ${PHP} ${MYSQL}" INT TERM EXIT + docker pull mwaeckerlin/webtester + set -e + countdown 10 20 wait_for_mysql ${MYSQL} + docker run --rm --link ${NGINX}:safechat -u $(id -u) -v $(pwd):/tests -e WEBRUNNER_SCRIPTS="settings.wt testcase.wt" mwaeckerlin/webtester +else + NGINX=$(docker run -d -p ${PORT}:80 --volumes-from ${PHP} --link ${PHP}:php mwaeckerlin/nginx) + trap "docker rm -f ${NGINX} ${PHP} ${MYSQL}" INT TERM EXIT + set +x + echo "Ready to test; press enter to end" + read + set -x +fi diff --git a/test/settings.wt b/test/settings.wt index 989f455..cdb508c 100644 --- a/test/settings.wt +++ b/test/settings.wt @@ -1 +1,3 @@ -set SAFECHAT-URL=http://localhost:8080 +set SAFECHAT-URL=http://safechat +set SAFECHAT-URL=http://localhost:8888 +offline-storage-path /tmp/safechat-test \ No newline at end of file