test_closedatabase.js
Go to the documentation of this file.
1 /*
2 //
3 // BEGIN SONGBIRD GPL
4 //
5 // This file is part of the Songbird web player.
6 //
7 // Copyright(c) 2005-2008 POTI, Inc.
8 // http://songbirdnest.com
9 //
10 // This file may be licensed under the terms of of the
11 // GNU General Public License Version 2 (the "GPL").
12 //
13 // Software distributed under the License is distributed
14 // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
15 // express or implied. See the GPL for the specific language
16 // governing rights and limitations.
17 //
18 // You should have received a copy of the GPL along with this
19 // program. If not, go to http://www.gnu.org/licenses/gpl.html
20 // or write to the Free Software Foundation, Inc.,
21 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 //
23 // END SONGBIRD GPL
24 //
25 */
26 
31 function runTest () {
32  var dbe = Cc["@songbirdnest.com/Songbird/DatabaseEngine;1"]
33  .getService(Ci.sbIDatabaseEngine)
34 
35  var dbq = Cc["@songbirdnest.com/Songbird/DatabaseQuery;1"]
36  .createInstance(Ci.sbIDatabaseQuery);
37 
38  var ios = Cc["@mozilla.org/network/io-service;1"]
39  .createInstance(Ci.nsIIOService);
40 
41  var dir = Cc["@mozilla.org/file/directory_service;1"]
42  .createInstance(Ci.nsIProperties);
43 
44  var testdir = dir.get("ProfD", Ci.nsIFile);
45 
46  var actualdir = testdir.clone();
47  actualdir.append("db_tests");
48 
49  if(!actualdir.exists())
50  {
51  try {
52  actualdir.create(Ci.nsIFile.DIRECTORY_TYPE, 0700);
53  } catch(e) {
54  //Some failures might be handled later. Some might be ignored.
55  throw e;
56  }
57  }
58 
59  var uri = ios.newFileURI(actualdir);
60  dbq.databaseLocation = uri;
61 
62  assertEqual(dbq.databaseLocation.spec, uri.spec);
63 
64  dbq.setDatabaseGUID("test_closedatabase");
65 
66  dbq.addQuery("drop table test");
67  dbq.addQuery("create table test (key text, value text)");
68  dbq.addQuery("insert into test values ('mykey', 'myvalue')");
69  dbq.execute();
70 
71  dbq.waitForCompletion();
72  dbq.resetQuery();
73 
74  dbe.closeDatabase("test_closedatabase");
75 
76  var dbfile = actualdir.clone();
77  dbfile.append("test_closedatabase.db")
78 
79  assertTrue(dbfile.exists());
80  assertTrue(dbfile.isFile());
81 
82  dbfile.remove(false);
83 
84  assertFalse(dbfile.exists());
85 
86  return Components.results.NS_OK;
87 }
const Cc
function assertTrue(aTest, aMessage)
function assertEqual(aExpected, aActual, aMessage)
function assertFalse(aTest, aMessage)
var uri
Definition: FeedWriter.js:1135
const Ci
var ios
Definition: head_feeds.js:5
function runTest()
Test file.