finished unittests for plugin date

finished unittests for plugin disks
finished unittests for plugin help
finished unittests for plugin language_selection
finished unittests for plugin logs
finished unittests for plugin network
finished unittests for plugin plugin_manager
finished unittests for plugin shutdown
finished unittests for plugin system_preferences
finished unittests for plugin user_manager
added english 'translations' to all plugins (by copying msgid to msgstr)
This commit is contained in:
lars 2006-11-30 14:36:53 +00:00
parent 8dea8e0b0e
commit 76e5366619
60 changed files with 1496 additions and 347 deletions

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
@ -8,7 +28,7 @@ class date(cryptobox.plugins.base.CryptoBoxPlugin):
requestAuth = False
rank = 10
def doAction(self, store=None, year=None, month=None, day=None, hour=None, minute=None):
def doAction(self, store=None, year=0, month=0, day=0, hour=0, minute=0):
import datetime
if store:
try:

View File

@ -4,100 +4,100 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Change date and time"
msgstr ""
msgstr "Change date and time"
#: Link
msgid "Set date/time"
msgstr ""
msgstr "Set date/time"
#: Title.ConfigDate
msgid "Date and time setting"
msgstr ""
msgstr "Date and time setting"
#: Button.ConfigDate
msgid "Set date and time"
msgstr ""
msgstr "Set date and time"
#: Text.Date
msgid "Date"
msgstr ""
msgstr "Date"
#: Text.Time
msgid "Time"
msgstr ""
msgstr "Time"
#: Text.Months.1
msgid "January"
msgstr ""
msgstr "January"
#: Text.Months.2
msgid "February"
msgstr ""
msgstr "February"
#: Text.Months.3
msgid "March"
msgstr ""
msgstr "March"
#: Text.Months.4
msgid "April"
msgstr ""
msgstr "April"
#: Text.Months.5
msgid "May"
msgstr ""
msgstr "May"
#: Text.Months.6
msgid "June"
msgstr ""
msgstr "June"
#: Text.Months.7
msgid "July"
msgstr ""
msgstr "July"
#: Text.Months.8
msgid "August"
msgstr ""
msgstr "August"
#: Text.Months.9
msgid "September"
msgstr ""
msgstr "September"
#: Text.Months.10
msgid "October"
msgstr ""
msgstr "October"
#: Text.Months.11
msgid "November"
msgstr ""
msgstr "November"
#: Text.Months.12
msgid "December"
msgstr ""
msgstr "December"
#: SuccessMessage.DateChanged.Title
msgid "Date changed"
msgstr ""
msgstr "Date changed"
#: SuccessMessage.DateChanged.Text
msgid "The date was changed successfully."
msgstr ""
msgstr "The date was changed successfully."
#: WarningMessage.InvalidDate.Title
msgid "Invalid value"
msgstr ""
msgstr "Invalid value"
#: WarningMessage.InvalidDate.Text
msgid "An invalid value for date or time was supplied. Please try again."
msgstr ""
msgstr "An invalid value for date or time was supplied. Please try again."

View File

@ -1,4 +1,24 @@
#!/usr/bin/env python2.4
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
## necessary: otherwise CryptoBoxRootActions.py will refuse to execute this script
PLUGIN_TYPE = "cryptobox"

View File

@ -1,12 +1,34 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_get_date(self):
"""retrieve the current date"""
date = self._getCurrentDate()
def test_change_date(self):
"""set the date back and forth"""
now = self._getCurrentDate()
## copy current time
new_date = dict(now)
@ -22,6 +44,16 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
self.assertEquals(now, self._getCurrentDate())
def test_try_broken_date(self):
"""expect error messages for invalid dates"""
self._setDate({"hour":12, "minute":40, "year":2004, "month":7, "day":0})
self.cmd.find("invalid value for date")
self._setDate({"hour":12, "minute":40, "year":"x", "month":7, "day":2})
self.cmd.find("invalid value for date")
self._setDate({"hour":12, "minute":40, "year":2004, "month":2, "day":31})
self.cmd.find("invalid value for date")
def _getCurrentDate(self):
date_url = self.URL + "date"
self.register_auth(date_url)
@ -41,13 +73,16 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def _setDate(self, date):
"""for now we have to use this function instead of the one below"""
date_url = self.URL + "date?store=1&year=%d&month=%d&day=%d&hour=%d&minute=%d" % (date["year"], date["month"], date["day"], date["hour"], date["minute"])
date_url = self.URL + "date?weblang=en&store=1&year=%s&month=%s&day=%s&hour=%s&minute=%s"\
% (str(date["year"]), str(date["month"]), str(date["day"]),
str(date["hour"]), str(date["minute"]))
self.register_auth(date_url)
self.cmd.go(date_url)
def _setDateBroken(self, date):
"""this should work, but the parsing of twill seems to be broken"""
"""this should work, but the parsing of twill seems to be broken
as soon as the twill bug is fixed, we should use this function"""
date_url = self.URL + "date"
self.register_auth(date_url)
self.cmd.go(date_url)

View File

@ -4,8 +4,6 @@
<?cs call:handle_messages() ?>
<?cs # TODO: add no-disks-available warning ?>
<?cs if:subcount(Data.Disks) == 0 ?>
<?cs call:hint("Plugins.disks.NoDisksAvailable") ?>
<?cs else ?>

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
class disks(cryptobox.plugins.base.CryptoBoxPlugin):
@ -13,6 +33,6 @@ class disks(cryptobox.plugins.base.CryptoBoxPlugin):
def getStatus(self):
return "TODO"
return ":".join([e.getDevice() for e in self.cbox.getContainerList()])

View File

@ -4,28 +4,28 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Disk overview"
msgstr ""
msgstr "Disk overview"
#: Link
msgid "Disks"
msgstr ""
msgstr "Disks"
#: Title.Disks
msgid "Available disks"
msgstr ""
msgstr "Available disks"
#: AdviceMessage.NoDisksAvailable.Text
msgid "No available disks were found!"
msgstr ""
msgstr "No available disks were found!"

View File

@ -1,9 +1,41 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_read_form(self):
'''display all devices'''
self.register_auth(self.URL)
self.cmd.go(self.URL + "disks?weblang=en")
self.cmd.find("Disks")
self.cmd.find("Available disks")
def test_is_device_in_list(self):
"""check if the device-under-test is in the device list"""
self.register_auth(self.URL)
self.cmd.go(self.URL + "disks?weblang=en")
self.cmd.find("Available disks")
self.cmd.find(u'Data.Status.Plugins.disks=(.*)$', "m")
devices = self.locals["__match__"].split(":")
self.assertTrue(len(devices)>0)
self.assertTrue(("/dev/%s1" % self.device in devices) or ("/dev/%s2" % self.device in devices))

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
class help(cryptobox.plugins.base.CryptoBoxPlugin):
@ -17,7 +37,7 @@ class help(cryptobox.plugins.base.CryptoBoxPlugin):
## check for invalid characters and if the page exists in the default language
if page and \
not re.search(u'\W', page) and \
os.path.isfile(os.path.join(self.cbox.prefs["Locations"]["DocDir"], self.efault_lang, page + '.html')):
os.path.isfile(os.path.join(self.cbox.prefs["Locations"]["DocDir"], self.default_lang, page + '.html')):
## everything is ok
pass
else:
@ -36,10 +56,13 @@ class help(cryptobox.plugins.base.CryptoBoxPlugin):
else:
lang = self.default_lang
self.hdf[self.hdf_prefix + "Language"] = lang
## store the current setting for a later "getStatus" call
self.current_lang = lang
self.current_page = page
return "doc"
def getStatus(self):
return "TODO"
return "%s:%s" % (self.current_lang, self.current_page)

View File

@ -5,19 +5,19 @@ msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "User manual"
msgstr ""
msgstr "User manual"
#: Link
msgid "Help"
msgstr ""
msgstr "Help"

View File

@ -1,29 +1,92 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
from twill.errors import *
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_help_pages(self):
def test_help_language_texts(self):
'''help pages should be available in different languages'''
## check english help pages
self.cmd.go(self.URL + "help?weblang=en")
self.cmd.find("Table of Contents")
self.cmd.find("Getting started")
(lang,page) = self._getHelpStatus()
self.assertTrue(lang == "en")
self.assertTrue(page == "CryptoBoxUser")
## check german help pages
self.cmd.go(self.URL + "help?weblang=de")
self.cmd.find("Table of Contents")
self.cmd.find("Wie geht es los")
(lang,page) = self._getHelpStatus()
self.assertTrue(lang == "de")
self.assertTrue(page == "CryptoBoxUser")
self.cmd.go(self.URL + "help?weblang=si")
## check slovene help pages
self.cmd.go(self.URL + "help?weblang=sl")
self.assertRaises(TwillAssertionError, self.cmd.notfind, "Table of Contents")
#TODO: add a slovene text here, as soon as the help is translated
## add a slovene text here, as soon as the help is translated
(lang,page) = self._getHelpStatus()
## change this to "sl" as soon as the help is translated
self.assertTrue(lang == "en")
self.assertTrue(page == "CryptoBoxUser")
## check french help pages
self.cmd.go(self.URL + "help?weblang=fr")
self.assertRaises(TwillAssertionError, self.cmd.notfind, "Table of Contents")
#TODO: add a french text here, as soon as the help is translated
## add a french text here, as soon as the help is translated
(lang,page) = self._getHelpStatus()
## change this to "fr" as soon as the help is translated
self.assertTrue(lang == "en")
self.assertTrue(page == "CryptoBoxUser")
## test a random language - it should fall back to english
self.cmd.go(self.URL + "help?weblang=foobar")
self.assertRaises(TwillAssertionError, self.cmd.notfind, "Table of Contents")
(lang,page) = self._getHelpStatus()
self.assertTrue(lang == "en")
self.assertTrue(page == "CryptoBoxUser")
def test_help_pages(self):
"""check invalid page requests"""
self.cmd.go(self.URL + "help?page=foobar")
(lang,page) = self._getHelpStatus()
self.assertTrue(page == "CryptoBoxUser")
self.cmd.go(self.URL + "help?page=CryptoBoxUser")
(lang,page) = self._getHelpStatus()
self.assertTrue(page == "CryptoBoxUser")
def test_help_default_languages(self):
"""check invalid page requests"""
self.cmd.go(self.URL + "help?weblang=foobar")
(lang,page) = self._getHelpStatus()
self.assertTrue(lang == "en")
def _getHelpStatus(self):
self.cmd.find(u'Data.Status.Plugins.help=(.*)$', "m")
return tuple(self.locals["__match__"].split(":"))

View File

@ -5,23 +5,23 @@ msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Choose interface language"
msgstr ""
msgstr "Choose interface language"
#: Link
msgid "Languages"
msgstr ""
msgstr "Languages"
#: Title.Language
msgid "Choose an interface language"
msgstr ""
msgstr "Choose an interface language"

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
@ -13,5 +33,5 @@ class language_selection(cryptobox.plugins.base.CryptoBoxPlugin):
def getStatus(self):
return "TODO"
return ":".join(self.site.langOrder)

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
@ -8,3 +28,13 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
self.cmd.go(url)
self.cmd.find('hoose an interface language')
def test_check_language_list(self):
url = self.URL + "language_selection"
self.register_auth(url)
self.cmd.go(url)
self.cmd.find(u'Data.Status.Plugins.language_selection=(.*)$', "m")
langs = self.locals["__match__"].split(":")
self.assertTrue(len(langs)>1)
self.assertTrue(langs[0] == "en")

View File

@ -4,28 +4,28 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Show the content of the log file"
msgstr ""
msgstr "Show the content of the log file"
#: Link
msgid "Show log file"
msgstr ""
msgstr "Show log file"
#: Title.Log
msgid "CryptoBox logfiles"
msgstr ""
msgstr "CryptoBox logfiles"
#: Text.EmptyLog
msgid "The logfile of the CryptoBox is empty."
msgstr ""
msgstr "The logfile of the CryptoBox is empty."

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
import os
@ -13,12 +33,12 @@ class logs(cryptobox.plugins.base.CryptoBoxPlugin):
## filter input
try:
lines = int(lines)
if lines < 0: raise(ValueError)
if lines <= 0: raise(ValueError)
except ValueError:
lines = 50
try:
size = int(size)
if size < 0: raise(ValueError)
if size <= 0: raise(ValueError)
except ValueError:
size = 3000
if not pattern is None:

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
@ -16,5 +36,22 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
self.cmd.go(log_url + "?pattern=ERROR")
self.cmd.find(log_text)
## TODO: check the filtering functions
def test_invalid_args(self):
log_url = self.URL + "logs"
self.cmd.go(log_url + "?lines=10")
self.cmd.find('class="console"')
self.cmd.go(log_url + "?lines=0")
self.cmd.find('class="console"')
self.cmd.go(log_url + "?lines=x")
self.cmd.find('class="console"')
self.cmd.go(log_url + "?size=1000")
self.cmd.find('class="console"')
self.cmd.go(log_url + "?size=0")
self.cmd.find('class="console"')
self.cmd.go(log_url + "?size=x")
self.cmd.find('class="console"')
self.cmd.go(log_url + "?pattern=foobar")
self.cmd.find('class="console"')
self.cmd.go(log_url + u"?pattern=kfj!^(]")
self.cmd.find('class="console"')

View File

@ -4,44 +4,48 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Configure network"
msgstr ""
msgstr "Configure network"
#: Title.Network
msgid "Network settings"
msgstr ""
msgstr "Network settings"
#: Button.Network
msgid "Update network settings"
msgstr ""
msgstr "Update network settings"
#: Text.IP
msgid "Network address"
msgstr ""
msgstr "Network address"
#: WarningMessage.InvalidIP.Title
msgid "Invalid value"
msgstr ""
msgstr "Invalid value"
#: WarningMessage.InvalidIP.Text
msgid "An invalid network address (IP) was supplied. Please try again."
msgstr ""
msgstr "An invalid network address (IP) was supplied. Please try again."
#: SuccessMessage.IPChanged.Title
msgid "Network address changed"
msgstr ""
msgstr "Network address changed"
#: SuccessMessage.IPChanged.Text
msgid "The network address has been changed. In a few seconds you will get redirected to the new address."
msgid ""
"The network address has been changed. In a few seconds you will get "
"redirected to the new address."
msgstr ""
"The network address has been changed. In a few seconds you will get "
"redirected to the new address."

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import subprocess
import os
import cryptobox.plugins.base

View File

@ -1,4 +1,24 @@
#!/usr/bin/env python2.4
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#TODO: add netmask and gateway

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
from network import CHANGE_IP_DELAY
@ -13,14 +33,12 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
## extract the current IP from the network plugin output
def getCurrentIP():
self.cmd.go(self.URL + "network")
self.cmd.show()
self.cmd.find(u'Data.Status.Plugins.network=([0-9\.]*)$', "m")
return self.locals["__match__"]
origIPtext = getCurrentIP()
origIPocts = origIPtext.split(".")
## check, if the original IP is valid (contains four octets)
self.assertEquals(4, len(origIPocts))
self.cmd.echo(origIPocts)
wrongIP = "192.168.123.321"
def setIP((ip1, ip2, ip3, ip4)):
self.cmd.go(self.URL + "network")
@ -43,3 +61,10 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
self.assertEquals(origIPtext, getCurrentIP())
def test_inputs(self):
self.register_auth(self.URL + "network")
self.cmd.go(self.URL + "network" + "?redirected=1")
self.cmd.notfind("problem")
self.cmd.go(self.URL + "network" + "?store=1")
self.cmd.find("invalid network address")

View File

@ -4,168 +4,175 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Disk partitioning"
msgstr ""
msgstr "Disk partitioning"
#: Link
msgid "Partition a disk"
msgstr ""
msgstr "Partition a disk"
#: Title.Partition
msgid "Disk partitions"
msgstr ""
msgstr "Disk partitions"
#: Button.SelectDevice
msgid "Manual partitioning"
msgstr ""
msgstr "Manual partitioning"
#: Button.EasySetup
msgid "Automatic setup"
msgstr ""
msgstr "Automatic setup"
#: Button.AddPartition
msgid "Add"
msgstr ""
msgstr "Add"
#: Button.DelPartition
msgid "Remove"
msgstr ""
msgstr "Remove"
#: Button.SavePartitions
msgid "Write new partition table"
msgstr ""
msgstr "Write new partition table"
#: Button.AbortPartitions
msgid "Cancel"
msgstr ""
msgstr "Cancel"
#: Text.FS.Type
msgid "Filesystem type"
msgstr ""
msgstr "Filesystem type"
#: Text.FS.Fat
msgid "FAT (Windows)"
msgstr ""
msgstr "FAT (Windows)"
#: Text.FS.Ext2
msgid "Ext2"
msgstr ""
msgstr "Ext2"
#: Text.FS.Ext3
msgid "Ext3"
msgstr ""
msgstr "Ext3"
#: Text.FS.Reiser
msgid "Reiser"
msgstr ""
msgstr "Reiser"
#: Text.PartNum
msgid "Id"
msgstr ""
msgstr "Id"
#: Text.PartType
msgid "Type"
msgstr ""
msgstr "Type"
#: Text.Size
msgid "Size (MB)"
msgstr ""
msgstr "Size (MB)"
#: Text.SelectDevice
msgid "Choose a disk for partitioning"
msgstr ""
msgstr "Choose a disk for partitioning"
#: Text.ProgressInfo
msgid "Progress of formatting:"
msgstr ""
msgstr "Progress of formatting:"
#: Text.CreateConfigPartition
msgid "Automatically creating a configuration partition."
msgstr ""
msgstr "Automatically creating a configuration partition."
#: Text.RemovalContainers
msgid "These disks will be destroyed, if you continue"
msgstr ""
msgstr "These disks will be destroyed, if you continue"
#: AdviceMessage.DeviceDataIsLost.Text
msgid "If you continue, you will destroy all data on the choosen disk. Please be VERY careful!"
msgid ""
"If you continue, you will destroy all data on the choosen disk. Please be "
"VERY careful!"
msgstr ""
"If you continue, you will destroy all data on the choosen disk. Please be "
"VERY careful!"
#: SuccessMessage.Partitioned.Title
msgid "Partitioning complete"
msgstr ""
msgstr "Partitioning complete"
#: SuccessMessage.Partitioned.Text
msgid "The disk was partitioned successfully."
msgstr ""
msgstr "The disk was partitioned successfully."
#: SuccessMessage.EasySetup.Title
msgid "Initialization completed"
msgstr ""
msgstr "Initialization completed"
#: SuccessMessage.EasySetup.Text
msgid "Automatic initialization was finished successfully."
msgstr ""
msgstr "Automatic initialization was finished successfully."
#: WarningMessage.NoDisksAvailable.Title
msgid "No disks found"
msgstr ""
msgstr "No disks found"
#: WarningMessage.NoDisksAvailable.Text
msgid "No suitable disks found - please check your configuration and hardware setup."
msgid ""
"No suitable disks found - please check your configuration and hardware setup."
msgstr ""
"No suitable disks found - please check your configuration and hardware setup."
#: WarningMessage.PartitioningFailed.Title
msgid "Partitioning failed"
msgstr ""
msgstr "Partitioning failed"
#: WarningMessage.PartitioningFailed.Text
msgid "The partitioning of the device failed for some reason - sorry!"
msgstr ""
msgstr "The partitioning of the device failed for some reason - sorry!"
#: WarningMessage.FormattingFailed.Title
msgid "Formatting failed"
msgstr ""
msgstr "Formatting failed"
#: WarningMessage.FormattingFailed.Text
msgid "The formatting of the filesystems of the device failed - sorry!"
msgstr ""
msgstr "The formatting of the filesystems of the device failed - sorry!"
#: WarningMessage.DiskIsBusy.Title
msgid "This disk is busy"
msgstr ""
msgstr "This disk is busy"
#: WarningMessage.DiskIsBusy.Text
msgid "Please deactivate all containers of this disk before partitioning."
msgstr ""
msgstr "Please deactivate all containers of this disk before partitioning."
#: WarningMessage.DiskIsBusy.Link.Text
msgid "Show all disks"
msgstr ""
msgstr "Show all disks"
#: WarningMessage.PartitionTooBig.Title
msgid "Invalid size"
msgstr ""
msgstr "Invalid size"
#: WarningMessage.PartitionTooBig.Text
msgid "The container size you entered exceeded the available size of the disk."
msgstr ""
"The container size you entered exceeded the available size of the disk."
#: WarningMessage.PartitionTooSmall.Text
msgid "The minimum size of a container is 10 megabytes."
msgstr ""
msgstr "The minimum size of a container is 10 megabytes."
#: WarningMessage.DiskIsBusy.Link.Rel
msgid "disks"
msgstr ""
msgstr "disks"

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import subprocess
import os
import logging

View File

@ -1,4 +1,24 @@
#!/usr/bin/env python2.4
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
## necessary: otherwise CryptoBoxRootActions.py will refuse to execute this script
PLUGIN_TYPE = "cryptobox"

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):

View File

@ -5,71 +5,71 @@ msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Plugin Manager"
msgstr ""
msgstr "Plugin Manager"
#: Link
msgid "Manage plugins"
msgstr ""
msgstr "Manage plugins"
#: Title.VolumePlugins
msgid "Volume plugins"
msgstr ""
msgstr "Volume plugins"
#: Title.SystemPlugins
msgid "System plugins"
msgstr ""
msgstr "System plugins"
#: Button.SaveSettings
msgid "Save settings"
msgstr ""
msgstr "Save settings"
#: Button.Up
msgid "move up"
msgstr ""
msgstr "move up"
#: Button.Down
msgid "move down"
msgstr ""
msgstr "move down"
#: Text.PluginName
msgid "Plugin"
msgstr ""
msgstr "Plugin"
#: Text.PluginRank
msgid "Order"
msgstr ""
msgstr "Order"
#: Text.RequestsAuth
msgid "Requires admin?"
msgstr ""
msgstr "Requires admin?"
#: Text.InMenu
msgid "Main menu"
msgstr ""
msgstr "Main menu"
#: Text.InPreferences
msgid "Preferences"
msgstr ""
msgstr "Preferences"
#: Text.InVolumeRegister
msgid "Register"
msgstr ""
msgstr "Register"
#: Text.InVolumeProperties
msgid "Properties"
msgstr ""
msgstr "Properties"
#: Text.WhereVisible
msgid "Where visible?"
msgstr ""
msgstr "Where visible?"

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
import cryptobox.plugins.manage

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
@ -8,3 +28,53 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
self.cmd.go(url)
self.cmd.find('Plugin Manager')
def test_set_options(self):
url = self.URL + "plugin_manager"
self.register_auth(url)
self.cmd.go(url + u"?plugin_name=t/-!")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?plugin_name=foobar")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?plugin_name=disks&action=up")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?plugin_name=disks&action=down")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?store=1&dis/ks_listed")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_rank=50")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_rank=x")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_auth=1")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_rank=50&disks_auth=1")
self.cmd.find('Plugin Manager')
def test_move_up(self):
## TODO: if we want to be perfect, then we should check the change of the rank
url = self.URL + "plugin_manager"
self.register_auth(url)
self.cmd.go(url + u"?plugin_name=disks&action=up")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_rank=0")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?plugin_name=disks&action=up")
self.cmd.find('Plugin Manager')
def test_move_down(self):
## TODO: if we want to be perfect, then we should check the change of the rank
url = self.URL + "plugin_manager"
self.register_auth(url)
self.cmd.go(url + u"?plugin_name=disks&action=down")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_rank=100")
self.cmd.find('Plugin Manager')
self.cmd.go(url + u"?plugin_name=disks&action=down")
self.cmd.find('Plugin Manager')

View File

@ -4,72 +4,76 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Shutdown or reboot the computer"
msgstr ""
msgstr "Shutdown or reboot the computer"
#: Link
msgid "Shutdown"
msgstr ""
msgstr "Shutdown"
#: Title.Shutdown
msgid "Shutdown computer"
msgstr ""
msgstr "Shutdown computer"
#: Title.ProgressShutdown
msgid "The CryptoBox is shutting down"
msgstr ""
msgstr "The CryptoBox is shutting down"
#: Title.ProgressReboot
msgid "The CryptoBox is rebooting"
msgstr ""
msgstr "The CryptoBox is rebooting"
#: Button.Shutdown
msgid "Poweroff"
msgstr ""
msgstr "Poweroff"
#: Button.Reboot
msgid "Reboot"
msgstr ""
msgstr "Reboot"
#: SuccessMessage.Shutdown.Title
msgid "Shutting down the system"
msgstr ""
msgstr "Shutting down the system"
#: SuccessMessage.Shutdown.Text
msgid "If the computer does not turn off itself within a minute, then you should plug it off manually."
msgid ""
"If the computer does not turn off itself within a minute, then you should "
"plug it off manually."
msgstr ""
"If the computer does not turn off itself within a minute, then you should "
"plug it off manually."
#: SuccessMessage.Reboot.Title
msgid "Rebooting the system"
msgstr ""
msgstr "Rebooting the system"
#: SuccessMessage.Reboot.Text
msgid "This may take a while (depending on your hardware) ..."
msgstr ""
msgstr "This may take a while (depending on your hardware) ..."
#: WarningMessage.ShutdownFailed.Title
msgid "Shutdown failed"
msgstr ""
msgstr "Shutdown failed"
#: WarningMessage.ShutdownFailed.Text
msgid "Shutting down of the system failed for some reason - sorry!"
msgstr ""
msgstr "Shutting down of the system failed for some reason - sorry!"
#: WarningMessage.RebootFailed.Title
msgid "Reboot failed"
msgstr ""
msgstr "Reboot failed"
#: WarningMessage.RebootFailed.Text
msgid "Reboot of the system failed for some reason - sorry!"
msgstr ""
msgstr "Reboot of the system failed for some reason - sorry!"

View File

@ -1,4 +1,24 @@
#!/usr/bin/env python2.4
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
## necessary: otherwise CryptoBoxRootActions.py will refuse to execute this script
PLUGIN_TYPE = "cryptobox"

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
REDIRECT_DELAY = 180

View File

@ -1,11 +1,33 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_read_form(self):
"""just read the form - I do not know of a way how to check success"""
url = self.URL + "shutdown"
self.register_auth(url)
self.cmd.go(url)
self.cmd.find('shutdown\?type=reboot')
self.cmd.find('shutdown\?type=shutdown')
self.cmd.find('shutdown')
self.cmd.find('type=reboot')
self.cmd.find('type=shutdown')

View File

@ -4,20 +4,20 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "System preferences"
msgstr ""
msgstr "System preferences"
#: Link
msgid "Preferences"
msgstr ""
msgstr "Preferences"

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
class system_preferences(cryptobox.plugins.base.CryptoBoxPlugin):
@ -12,6 +32,6 @@ class system_preferences(cryptobox.plugins.base.CryptoBoxPlugin):
def getStatus(self):
return "TODO"
return ":".join([p.getName() for p in self.site.pluginList.getPlugins()])

View File

@ -1,8 +1,36 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_preferences_overview(self):
self.cmd.go(self.URL + "system_preferences?weblang=en")
def test_read_form(self):
self.cmd.go(self.URL + "system_preferences")
self.cmd.find("Preferences")
def test_check_plugins(self):
self.cmd.go(self.URL + "system_preferences")
self.cmd.find(u'Data.Status.Plugins.system_preferences=(.*)$', "m")
plugins = self.locals["__match__"].split(":")
self.assertTrue(len(plugins) > 1)
self.assertTrue("disks" in plugins)

View File

@ -4,88 +4,88 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "User Manager"
msgstr ""
msgstr "User Manager"
#: Link
msgid "Manage users"
msgstr ""
msgstr "Manage users"
#: Title.AddUser
msgid "Add new user"
msgstr ""
msgstr "Add new user"
#: Title.DelUser
msgid "Remove user"
msgstr ""
msgstr "Remove user"
#: Title.ChangePassword
msgid "Change password"
msgstr ""
msgstr "Change password"
#: Button.DelUser
msgid "Remove"
msgstr ""
msgstr "Remove"
#: Text.NewUser
msgid "Name of the new user"
msgstr ""
msgstr "Name of the new user"
#: Text.DelUser
msgid "User to remove"
msgstr ""
msgstr "User to remove"
#: Text.ChangePasswordUser
msgid "Change user's password"
msgstr ""
msgstr "Change user's password"
#: SuccessMessage.UserAdded.Title
msgid "User added"
msgstr ""
msgstr "User added"
#: SuccessMessage.UserAdded.Text
msgid "The new user was added successfully."
msgstr ""
msgstr "The new user was added successfully."
#: SuccessMessage.UserRemoved.Title
msgid "User removed"
msgstr ""
msgstr "User removed"
#: SuccessMessage.UserRemoved.Text
msgid "The user was removed successfully."
msgstr ""
msgstr "The user was removed successfully."
#: SuccessMessage.PasswordChanged.Title
msgid "Password changed"
msgstr ""
msgstr "Password changed"
#: SuccessMessage.PasswordChanged.Text
msgid "The password was changed successfully."
msgstr ""
msgstr "The password was changed successfully."
#: WarningMessage.InvalidUserName.Title
msgid "Invalid username"
msgstr ""
msgstr "Invalid username"
#: WarningMessage.InvalidUserName.Text
msgid "The choosen username is invalid: only letters and digits are allowed."
msgstr ""
msgstr "The choosen username is invalid: only letters and digits are allowed."
#: WarningMessage.UserAlreadyExists.Title
msgid "User exists"
msgstr ""
msgstr "User exists"
#: WarningMessage.UserAlreadyExists.Text
msgid "The choosen username does already exist. Please choose another one."
msgstr ""
msgstr "The choosen username does already exist. Please choose another one."

View File

@ -44,6 +44,11 @@ WarningMessage {
Text = The choosen username is invalid: only letters and digits are allowed.
}
NeverRemoveReservedUser {
Title = Reserved user
Text = You may not remove a reserved user. Sorry!
}
UserAlreadyExists {
Title = User exists
Text = The choosen username does already exist. Please choose another one.

View File

@ -1,27 +1,194 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
## this user may not be removed
from user_manager import RESERVED_USERS
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_read_users(self):
"""does the 'admin' user exist?"""
cur_users = self._getUsers()
# self.cmd.showforms()
self.cmd.find("Manage users")
self.assertTrue("admin" in cur_users)
def _addUser(self, user, password):
self._gotPage()
## TODO: finish
def test_test_wrong_credentials(self):
"""check if the user_manager is protected"""
url = self.URL + "user_manager"
self.register_auth(url,"foo","bar")
self.cmd.go(url)
self.cmd.notfind("Manage users")
def test_add_existing_user(self):
"""adding an existing user should fail"""
url = self.URL + "user_manager"
self.register_auth(url)
self._add_user("admin","foo","foo")
self.cmd.find("The choosen username does already exist")
def _gotoPage(self):
def test_add_invalid_username(self):
"""adding an invalid username should fail"""
url = self.URL + "user_manager"
self.register_auth(url)
self._add_user("foo/bar","foo","foo")
self.cmd.find("Invalid username")
self.assertFalse("foo/bar" in self._getUsers())
def test_add_without_password(self):
"""adding a user without password should fail"""
url = self.URL + "user_manager"
self.register_auth(url)
self.assertFalse("foo" in self._getUsers())
self._add_user("foo","","foo")
self.cmd.find("Missing new password")
self.assertFalse("foo" in self._getUsers())
def test_add_with_different_passwords(self):
"""adding a user with different passwords should fail"""
url = self.URL + "user_manager"
self.register_auth(url)
self.assertFalse("foo" in self._getUsers())
self._add_user("foo","bar","foo")
self.cmd.find("Different passwords")
self.assertFalse("foo" in self._getUsers())
def test_change_pw_for_invalid_user(self):
"""changing a password of a non existing user should fail"""
url = self.URL + "user_manager"
self.register_auth(url)
self.assertFalse("barfoo" in self._getUsers())
self.cmd.go(url + "?store=change_password&user=foobar&new_pw=foo&new_pw2=foo")
self.cmd.notfind("Password changed")
def test_change_pw_without_password(self):
"""changing a password without a new password should fail"""
url = self.URL + "user_manager"
self.register_auth(url)
self.assertFalse("foo" in self._getUsers())
self._add_user("foo","bar","bar")
self.assertTrue("foo" in self._getUsers())
self._change_password("foo","","foo")
self.cmd.find("Missing new password")
self._del_user("foo")
self.assertFalse("foo" in self._getUsers())
def test_change_pw_wit_different_passwords(self):
"""changing a password while supplying different passwords should fail"""
url = self.URL + "user_manager"
self.register_auth(url)
self.assertFalse("foo" in self._getUsers())
self._add_user("foo","bar","bar")
self.assertTrue("foo" in self._getUsers())
self._change_password("foo","bar","foo")
self.cmd.find("Different passwords")
self._del_user("foo")
self.assertFalse("foo" in self._getUsers())
def _remove_reserved_user(self):
"""removing a reserved user should fail"""
url = self.URL + "user_manager"
self.register_auth(url)
self.assertTrue("admin" in self._getUsers())
self._del_user("admin")
self.cmd.find("may not remove a reserved user")
self.assertTrue("admin" in self._getUsers())
def _remove_non_existing_user(self):
"""removing a non-existing user should fail"""
url = self.URL + "user_manager"
self.register_auth(url)
self.assertFalse("barfoo" in self._getUsers())
self._del_user("barfoo")
self.cmd.notfind("User removed")
def test_manage_users(self):
"""add a new user, change its password and remove the user afterwards"""
url = self.URL + "user_manager"
self.register_auth(url)
## remove the user that should be added - just in case a previous run was unclean
## check its existence before
if "foobar" in self._getUsers(): self._del_user("foobar")
## add a new user
self._add_user("foobar","foo","foo")
self.cmd.find("User added")
users = self._getUsers()
self.assertTrue("foobar" in users)
## change the password of the new user
self.register_auth(url,"foobar","foo")
self._change_password("foobar","bar","bar")
self.cmd.find("Password changed")
## remove the new user
self.register_auth(url,"foobar","bar")
self._del_user("foobar")
self.cmd.find("User removed")
users = self._getUsers()
self.assertFalse("foobar" in users)
def test_invalid_input(self):
"""check all combinations of invalid input"""
url = self.URL + "user_manager"
self.register_auth(url)
self.cmd.go(url + "?store=foobar")
def _add_user(self, username, pw, pw2):
self.cmd.go(self.URL + "user_manager")
self.cmd.formvalue("add_user","user",username)
self.cmd.formvalue("add_user","new_pw",pw)
self.cmd.formvalue("add_user","new_pw2",pw2)
self.cmd.submit()
def _del_user(self, username):
self.cmd.go(self.URL + "user_manager")
self.cmd.formvalue("del_user","user",username)
self.cmd.submit()
def _change_password(self, username, pw, pw2):
self.cmd.go(self.URL + "user_manager")
self.cmd.formvalue("change_password","user",username)
self.cmd.formvalue("change_password","new_pw",pw)
self.cmd.formvalue("change_password","new_pw2",pw2)
self.cmd.submit()
def _getUsers(self):
url = self.URL + "user_manager"
self.register_auth(url)
self.cmd.go(url)
self.cmd.find("Data.Status.Plugins.user_manager=([\w:]+)")
return self.locals["__match__"].split(":")
def _getUsers(self):
self._gotoPage()
self.cmd.find("Data.Status.Plugins.user_manager=([\w/]+)")
return self.locals["__match__"].split("/")

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
RESERVED_USERS = [ "admin" ]
@ -48,9 +68,10 @@ class user_manager(cryptobox.plugins.base.CryptoBoxPlugin):
elif store == "del_user":
if user in RESERVED_USERS:
self.cbox.log.info("user_manager: tried to remove reserved user (%s)" % user)
self.hdf["Data.Warning"] = "NeverRemoveReservedUser"
elif user in adminDict.keys():
del adminDict[user]
self.hdf["Data.Success"] = "Plugins.user_manager.UserAdded"
self.hdf["Data.Success"] = "Plugins.user_manager.UserRemoved"
try:
self.cbox.prefs.userDB.write()
except IOError:
@ -64,7 +85,7 @@ class user_manager(cryptobox.plugins.base.CryptoBoxPlugin):
def getStatus(self):
return "/".join(self.cbox.prefs.userDB["admins"].keys())
return ":".join(self.cbox.prefs.userDB["admins"].keys())
def __cleanHDF(self):

View File

@ -4,56 +4,56 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Automatic activation"
msgstr ""
msgstr "Automatic activation"
#: Title.AutoMountVolume
msgid "Activate during startup"
msgstr ""
msgstr "Activate during startup"
#: Button.AutoMountOn
msgid "Enable automatic activation"
msgstr ""
msgstr "Enable automatic activation"
#: Button.AutoMountOff
msgid "Disable automatic activation"
msgstr ""
msgstr "Disable automatic activation"
#: Text.AutoIsOn
msgid "Currently automatic activation is enabled"
msgstr ""
msgstr "Currently automatic activation is enabled"
#: Text.AutoIsOff
msgid "Currently automatic activation is disabled"
msgstr ""
msgstr "Currently automatic activation is disabled"
#: SuccessMessage.AutoMountEnabled.Title
msgid "Automatic activation enabled"
msgstr ""
msgstr "Automatic activation enabled"
#: SuccessMessage.AutoMountEnabled.Text
msgid "This volume will get activated during startup"
msgstr ""
msgstr "This volume will get activated during startup"
#: SuccessMessage.AutoMountDisabled.Title
msgid "Automatic activation disabled"
msgstr ""
msgstr "Automatic activation disabled"
#: SuccessMessage.AutoMountDisabled.Text
msgid "This volume will not get activated during startup"
msgstr ""
msgstr "This volume will not get activated during startup"
#: AdviceMessage.NoAutoMountForEncryptedVolumes.Text
msgid "Automatic activation is not possible for encrypted volumes."
msgstr ""
msgstr "Automatic activation is not possible for encrypted volumes."

View File

@ -1,9 +1,29 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_read_form(self):
url = self.URL + "volume_automount?weblang=en&device=%2Fdev%2Floop1"
url = self.URL + "volume_automount?weblang=en&device=%2Fdev%2F" + self.device + "1"
self.register_auth(url)
self.cmd.go(url)
self.cmd.find('Activate')

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
from cryptobox.core.exceptions import *

View File

@ -4,60 +4,66 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Change volume password"
msgstr ""
msgstr "Change volume password"
#: Link
msgid "Password"
msgstr ""
msgstr "Password"
#: Title.ChangePassword
msgid "Change the password of this volume"
msgstr ""
msgstr "Change the password of this volume"
#: Button.ChangePassword
msgid "Change password"
msgstr ""
msgstr "Change password"
#: Button.FormatContainer
msgid "Format volume"
msgstr ""
msgstr "Format volume"
#: AdviceMessage.FormatForEncryptionSupport.Text
msgid "This volume is not encrypted. If you want to turn on encryption, then you have to format the volume. Beware: this will destroy all data of this container."
msgid ""
"This volume is not encrypted. If you want to turn on encryption, then you "
"have to format the volume. Beware: this will destroy all data of this "
"container."
msgstr ""
"This volume is not encrypted. If you want to turn on encryption, then you "
"have to format the volume. Beware: this will destroy all data of this "
"container."
#: AdviceMessage.FormatForEncryptionSupport.Link.Text
msgid "Format this volume"
msgstr ""
msgstr "Format this volume"
#: AdviceMessage.SuccessMessage.PasswordChange.Title
msgid "Password changed"
msgstr ""
msgstr "Password changed"
#: AdviceMessage.SuccessMessage.PasswordChange.Text
msgid "The password of this volume was changed successfully."
msgstr ""
msgstr "The password of this volume was changed successfully."
#: AdviceMessage.WarningMessage.PasswordChange.Title
msgid "Could not change password"
msgstr ""
msgstr "Could not change password"
#: AdviceMessage.WarningMessage.PasswordChange.Text
msgid "The password of this volume could not be changed - sorry!"
msgstr ""
msgstr "The password of this volume could not be changed - sorry!"
#: AdviceMessage.FormatForEncryptionSupport.Link.Rel
msgid "volume_format_fs"
msgstr ""
msgstr "volume_format_fs"

View File

@ -1,9 +1,29 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_read_form(self):
url = self.URL + "volume_chpasswd?weblang=en&device=%2Fdev%2Floop1"
url = self.URL + "volume_chpasswd?weblang=en&device=%2Fdev%2F" + self.device + "1"
self.register_auth(url)
self.cmd.go(url)
self.cmd.find('hange')

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
from cryptobox.core.exceptions import *

View File

@ -4,64 +4,64 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Technical details of a volume"
msgstr ""
msgstr "Technical details of a volume"
#: Link
msgid "Details"
msgstr ""
msgstr "Details"
#: Title.Details
msgid "Technical details"
msgstr ""
msgstr "Technical details"
#: Text.DeviceName
msgid "Name of device"
msgstr ""
msgstr "Name of device"
#: Text.Status
msgid "Status"
msgstr ""
msgstr "Status"
#: Text.StatusActive
msgid "active"
msgstr ""
msgstr "active"
#: Text.StatusPassive
msgid "passive"
msgstr ""
msgstr "passive"
#: Text.EncryptionStatus
msgid "Encryption"
msgstr ""
msgstr "Encryption"
#: Text.Yes
msgid "Yes"
msgstr ""
msgstr "Yes"
#: Text.No
msgid "No"
msgstr ""
msgstr "No"
#: Text.Size.All
msgid "Space of volume"
msgstr ""
msgstr "Space of volume"
#: Text.Size.Avail
msgid "Available space of volume"
msgstr ""
msgstr "Available space of volume"
#: Text.Size.Used
msgid "Used space of volume"
msgstr ""
msgstr "Used space of volume"

View File

@ -1,9 +1,29 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_read_form(self):
url = self.URL + "volume_details?weblang=en&device=%2Fdev%2Floop1"
url = self.URL + "volume_details?weblang=en&device=%2Fdev%2F" + self.device + "1"
self.register_auth(url)
self.cmd.go(url)
self.cmd.find('Technical details')

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base

View File

@ -4,104 +4,106 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Create filesystems"
msgstr ""
msgstr "Create filesystems"
#: Link
msgid "Format"
msgstr ""
msgstr "Format"
#: Title.Format
msgid "Initializing filesystem"
msgstr ""
msgstr "Initializing filesystem"
#: Button.Format
msgid "Initialize filesystem"
msgstr ""
msgstr "Initialize filesystem"
#: Text.Confirm
msgid "Yes, I know what I am doing!"
msgstr ""
msgstr "Yes, I know what I am doing!"
#: Text.FSType
msgid "Filesystem type"
msgstr ""
msgstr "Filesystem type"
#: Text.IsEncrypted
msgid "Encryption"
msgstr ""
msgstr "Encryption"
#: Text.Yes
msgid "Yes"
msgstr ""
msgstr "Yes"
#: Text.No
msgid "No"
msgstr ""
msgstr "No"
#: AdviceMessage.FormatWarning.Text
msgid "All data of the selected filesystem will get lost!"
msgstr ""
msgstr "All data of the selected filesystem will get lost!"
#: AdviceMessage.UnmountBeforeInit.Text
msgid "You must deactivate this volume before you may initialize it."
msgstr ""
msgstr "You must deactivate this volume before you may initialize it."
#: AdviceMessage.UnmountBeforeInit.Link.Text
msgid "Deactive volume now"
msgstr ""
msgstr "Deactive volume now"
#: AdviceMessage.UnmountBeforeInit.Link.Attr1.name
msgid "action"
msgstr ""
msgstr "action"
#: AdviceMessage.UnmountBeforeInit.Link.Attr1.value
msgid "umount"
msgstr ""
msgstr "umount"
#: AdviceMessage.UnmountBeforeInit.Link.Attr2.name
msgid "redirect"
msgstr ""
msgstr "redirect"
#: AdviceMessage.UnmountBeforeInit.Link.Attr2.value
msgid "volume_format_fs"
msgstr ""
msgstr "volume_format_fs"
#: SuccessMessage.FormatSuccess.Title
msgid "Formatting successful"
msgstr ""
msgstr "Formatting successful"
#: SuccessMessage.FormatSuccess.Text
msgid "The selected filesystem was successfully formatted."
msgstr ""
msgstr "The selected filesystem was successfully formatted."
#: WarningMessage.FormatNotConfirmed.Title
msgid "Confirmation missing"
msgstr ""
msgstr "Confirmation missing"
#: WarningMessage.FormatNotConfirmed.Text
msgid "You did not confirm this action by activating the checkbox."
msgstr ""
msgstr "You did not confirm this action by activating the checkbox."
#: WarningMessage.FormatFailed.Title
msgid "Formatting failed"
msgstr ""
msgstr "Formatting failed"
#: WarningMessage.FormatFailed.Text
msgid "Formatting of the selected filesystem failed for unknown reasons - sorry!"
msgid ""
"Formatting of the selected filesystem failed for unknown reasons - sorry!"
msgstr ""
"Formatting of the selected filesystem failed for unknown reasons - sorry!"
#: AdviceMessage.UnmountBeforeInit.Link.Rel
msgid "volume_mount"
msgstr ""
msgstr "volume_mount"

View File

@ -1,9 +1,29 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_read_form(self):
url = self.URL + "volume_format_fs?weblang=en&device=%2Fdev%2Floop1"
url = self.URL + "volume_format_fs?weblang=en&device=%2Fdev%2F" + self.device + "1"
self.register_auth(url)
self.cmd.go(url)
self.cmd.find('Initializing filesystem')

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
from cryptobox.core.exceptions import *
import cryptobox.core.container as cbxContainer

View File

@ -5,95 +5,101 @@ msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Mount and umount volumes"
msgstr ""
msgstr "Mount and umount volumes"
#: Link
msgid "Activation"
msgstr ""
msgstr "Activation"
#: Title.Mount
msgid "Activate volume"
msgstr ""
msgstr "Activate volume"
#: Title.Umount
msgid "Deactivate volume"
msgstr ""
msgstr "Deactivate volume"
#: SuccessMessage.MountDone.Title
msgid "Encrypted filesystem activated"
msgstr ""
msgstr "Encrypted filesystem activated"
#: SuccessMessage.MountDone.Text
msgid "The encrypted filesystem is now available."
msgstr ""
msgstr "The encrypted filesystem is now available."
#: SuccessMessage.UmountDone.Title
msgid "Encrypted filesystem deactivated"
msgstr ""
msgstr "Encrypted filesystem deactivated"
#: SuccessMessage.UmountDone.Text
msgid "The encrypted filesystem is now secured from all forms of access."
msgstr ""
msgstr "The encrypted filesystem is now secured from all forms of access."
#: WarningMessage.MountFailed.Title
msgid "Activation failed"
msgstr ""
msgstr "Activation failed"
#: WarningMessage.MountFailed.Text
msgid "The volume could not be activated for some reason. Sorry!"
msgstr ""
msgstr "The volume could not be activated for some reason. Sorry!"
#: WarningMessage.MountCryptoFailed.Text
msgid "Maybe you entered the wrong password?"
msgstr ""
msgstr "Maybe you entered the wrong password?"
#: WarningMessage.InvalidContainerType.Title
msgid "Unknown format"
msgstr ""
msgstr "Unknown format"
#: WarningMessage.InvalidContainerType.Text
msgid "The type of this volume ist not known. Maybe you want to initialize itfirst?"
msgid ""
"The type of this volume ist not known. Maybe you want to initialize itfirst?"
msgstr ""
"The type of this volume ist not known. Maybe you want to initialize itfirst?"
#: WarningMessage.InvalidContainerType.Link.Text
msgid "Format volume"
msgstr ""
msgstr "Format volume"
#: WarningMessage.UmountFailed.Title
msgid "Deactivation failed"
msgstr ""
msgstr "Deactivation failed"
#: WarningMessage.UmountFailed.Text
msgid "The volume could not be deactivated. Probably some files are still in use. In case of emergency just shut down the CryptoBox!"
msgid ""
"The volume could not be deactivated. Probably some files are still in use. "
"In case of emergency just shut down the CryptoBox!"
msgstr ""
"The volume could not be deactivated. Probably some files are still in use. "
"In case of emergency just shut down the CryptoBox!"
#: WarningMessage.IsAlreadyMounted.Title
msgid "Already active"
msgstr ""
msgstr "Already active"
#: WarningMessage.IsAlreadyMounted.Text
msgid "The volume is already active."
msgstr ""
msgstr "The volume is already active."
#: WarningMessage.IsNotMounted.Title
msgid "Inactive"
msgstr ""
msgstr "Inactive"
#: WarningMessage.IsNotMounted.Text
msgid "The volume is currently not active."
msgstr ""
msgstr "The volume is currently not active."
#: WarningMessage.InvalidContainerType.Link.Rel
msgid "volume_format_fs"
msgstr ""
msgstr "volume_format_fs"

View File

@ -1,9 +1,29 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_read_form(self):
url = self.URL + "volume_mount?weblang=en&device=%2Fdev%2Floop1"
url = self.URL + "volume_mount?weblang=en&device=%2Fdev%2F" + self.device + "1"
self.register_auth(url)
self.cmd.go(url)
self.cmd.find('ctivate volume')

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
from cryptobox.core.exceptions import *
import cryptobox.core.container as cbxContainer

View File

@ -4,24 +4,24 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Volume properties"
msgstr ""
msgstr "Volume properties"
#: Link
msgid "Properties"
msgstr ""
msgstr "Properties"
#: AdviceMessage.NoPropertyPlugins.Text
msgid "No volume property plugins are available."
msgstr ""
msgstr "No volume property plugins are available."

View File

@ -1,9 +1,29 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_read_form(self):
url = self.URL + "volume_props?weblang=en&device=%2Fdev%2Floop1"
url = self.URL + "volume_props?weblang=en&device=%2Fdev%2F" + self.device + "1"
self.register_auth(url)
self.cmd.go(url)
self.cmd.find('Properties')

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
import cryptobox.plugins.manage
from cryptobox.core.exceptions import *

View File

@ -4,92 +4,96 @@ msgid ""
msgstr ""
"Project-Id-Version: CryptoBox-Server 0.3\n"
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
"PO-Revision-Date: 2006-11-29 19:31+0100\n"
"Last-Translator: Lars Kruse <devel@sumpfralle.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Translate Toolkit 0.10.1\n"
"X-Generator: Pootle 0.10.1\n"
#: Name
msgid "Rename volume"
msgstr ""
msgstr "Rename volume"
#: Link
msgid "Rename"
msgstr ""
msgstr "Rename"
#: Title.ChangeVolumeName
msgid "Change the name of this volume"
msgstr ""
msgstr "Change the name of this volume"
#: Button.ContainerNameSet
msgid "Change name"
msgstr ""
msgstr "Change name"
#: AdviceMessage.NoRenameIfActive.Text
msgid "You can not rename a volume while it is active."
msgstr ""
msgstr "You can not rename a volume while it is active."
#: AdviceMessage.NoRenameIfActive.Link.Text
msgid "Deactivate volume now"
msgstr ""
msgstr "Deactivate volume now"
#: AdviceMessage.NoRenameIfActive.Link.Attr1.name
msgid "action"
msgstr ""
msgstr "action"
#: AdviceMessage.NoRenameIfActive.Link.Attr1.value
msgid "umount"
msgstr ""
msgstr "umount"
#: AdviceMessage.NoRenameIfActive.Link.Attr2.name
msgid "redirect"
msgstr ""
msgstr "redirect"
#: AdviceMessage.NoRenameIfActive.Link.Attr2.value
msgid "volume_rename"
msgstr ""
msgstr "volume_rename"
#: SuccessMessage.VolumeNameChanged.Title
msgid "Name changed"
msgstr ""
msgstr "Name changed"
#: SuccessMessage.VolumeNameChanged.Text
msgid "The name of this volume was changed successfully."
msgstr ""
msgstr "The name of this volume was changed successfully."
#: WarningMessage.NoRenameIfActive.Title
msgid "Failed to rename the volume"
msgstr ""
msgstr "Failed to rename the volume"
#: WarningMessage.NoRenameIfActive.Text
msgid "You may not rename a volume while it is active."
msgstr ""
msgstr "You may not rename a volume while it is active."
#: WarningMessage.InvalidVolumeName.Title
msgid "Changing of container's name failed"
msgstr ""
msgstr "Changing of container's name failed"
#: WarningMessage.InvalidVolumeName.Text
msgid "The supplied new name of the container was invalid. Please try again!"
msgstr ""
msgstr "The supplied new name of the container was invalid. Please try again!"
#: WarningMessage.SetVolumeNameFailed.Text
msgid "Could not change the name of the container. Take a look at the log files for details."
msgid ""
"Could not change the name of the container. Take a look at the log files for "
"details."
msgstr ""
"Could not change the name of the container. Take a look at the log files for "
"details."
#: WarningMessage.VolumeNameIsInUse.Title
msgid "Could not change volume name"
msgstr ""
msgstr "Could not change volume name"
#: WarningMessage.VolumeNameIsInUse.Text
msgid "The new name is already in use by another volume."
msgstr ""
msgstr "The new name is already in use by another volume."
#: AdviceMessage.NoRenameIfActive.Link.Rel
msgid "volume_mount"
msgstr ""
msgstr "volume_mount"

View File

@ -1,9 +1,29 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.web.testclass
class unittests(cryptobox.web.testclass.WebInterfaceTestClass):
def test_read_form(self):
url = self.URL + "volume_rename?weblang=en&device=%2Fdev%2Floop1"
url = self.URL + "volume_rename?weblang=en&device=%2Fdev%2F" + self.device + "1"
self.register_auth(url)
self.cmd.go(url)
self.cmd.find('name')

View File

@ -1,3 +1,23 @@
#
# Copyright 2006 sense.lab e.V.
#
# This file is part of the CryptoBox.
#
# The CryptoBox is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# The CryptoBox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the CryptoBox; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import cryptobox.plugins.base
from cryptobox.core.exceptions import *