Tests for bug 534854
authorSimon Montagu <smontagu@smontagu.org>
Tue, 23 Feb 2010 12:10:58 +0200
changeset 38414 ecfa4eede092ed6c3b1f61b49546621240420471
parent 38413 e12168b7484b380101c2ea307ce7e264fc0301b7
child 38415 0fc982aa8276e0866abc542c5df8eb791baf19b8
push idunknown
push userunknown
push dateunknown
bugs534854
milestone1.9.3a2pre
Tests for bug 534854
toolkit/profile/Makefile.in
toolkit/profile/test/Makefile.in
toolkit/profile/test/test_create_profile.xul
--- a/toolkit/profile/Makefile.in
+++ b/toolkit/profile/Makefile.in
@@ -39,9 +39,13 @@ DEPTH		= ../..
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 DIRS = public src
 
+ifdef ENABLE_TESTS
+	DIRS += test
+endif
+
 include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/profile/test/Makefile.in
@@ -0,0 +1,54 @@
+#
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is mozilla.org code.
+#
+# The Initial Developer of the Original Code is
+# Mozilla.org.
+# Portions created by the Initial Developer are Copyright (C) 2010
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#   Simon Montagu <smontagu@smontagu.org>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either of the GNU General Public License Version 2 or later (the "GPL"),
+# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+DEPTH		= ../../..
+topsrcdir	= @top_srcdir@
+srcdir		= @srcdir@
+VPATH		= @srcdir@
+relativesrcdir = toolkit/profile/test
+
+include $(DEPTH)/config/autoconf.mk
+
+_CHROME_FILES   = \
+                test_create_profile.xul \
+                $(NULL)
+
+libs:: $(_CHROME_FILES)
+	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/chrome/$(relativesrcdir)
+
+include $(topsrcdir)/config/rules.mk
new file mode 100644
--- /dev/null
+++ b/toolkit/profile/test/test_create_profile.xul
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
+<?xml-stylesheet type="text/css" href="/tests/SimpleTest/test.css"?>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=543854
+-->
+<window title="Mozilla Bug 543854"
+        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+   <script type="application/javascript"
+   src="chrome://mochikit/content/MochiKit/packed.js"></script>
+  <script type="application/javascript"
+   src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+   
+    <!-- test results are displayed in the html:body -->
+  <body xmlns="http://www.w3.org/1999/xhtml">
+  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=543854"
+     target="_blank">Mozilla Bug 543854</a>
+  </body>
+
+  <!-- test code goes here -->
+  <script type="application/javascript">
+  <![CDATA[
+
+  /** Test for Bug 543854 **/
+
+  SimpleTest.waitForExplicitFinish();
+
+  const Cc = Components.classes;
+  const Ci = Components.interfaces;
+
+  const ASCIIName = "myprofile";
+  const UnicodeName = "\u09A0\u09BE\u0995\u09C1\u09B0"; // A Bengali name
+
+  var gProfileService;
+
+  gProfileService = Cc["@mozilla.org/toolkit/profile-service;1"].
+    getService(Ci.nsIToolkitProfileService);
+
+  createProfile(ASCIIName);
+  createProfile(UnicodeName);
+  SimpleTest.finish();
+
+function createProfile(profileName)
+{
+  var profile = gProfileService.createProfile(null, null, profileName);
+
+  // check that the directory was created
+  isnot(profile, null, "Profile " + profileName + " created");
+
+  var profileDir = profile.rootDir;
+
+  ok(profileDir.exists(), "Profile dir created");
+  ok(profileDir.isDirectory(), "Profile dir is a directory");
+
+  var profileDirPath = profileDir.path;
+
+  is(profileDirPath.substr(profileDirPath.length - profileName.length),
+     profileName, "Profile dir has expected name");
+
+  // clean up the profile
+  profile.remove(true);
+}
+
+  ]]>
+  </script>
+</window>