www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 7879e5432a9e32a194d97f742e98befc964bb89f
parent 33eaaffd832ad84e4305b8e25a5ff20232cff890
Author: Dan Stillman <dstillman@zotero.org>
Date:   Wed,  6 May 2015 02:49:16 -0400

Fix new attachment charset saving, which I definitely didn't test before

Diffstat:
Mchrome/content/zotero/xpcom/data/cachedTypes.js | 5++---
Mtest/tests/itemTest.js | 25+++++++++++++++++++++++++
2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/chrome/content/zotero/xpcom/data/cachedTypes.js b/chrome/content/zotero/xpcom/data/cachedTypes.js @@ -106,7 +106,6 @@ Zotero.CachedTypes = function() { if (!this._types['_' + idOrName]) { Zotero.debug('Invalid ' + this._typeDesc + ' ' + idOrName, 1); - Zotero.debug((new Error()).stack, 1); return false; } @@ -510,14 +509,14 @@ Zotero.CharacterSets = new function() { name = name.toLowerCase(); // Don't allow too-long or non-ASCII names - if (name.length > 50 || !name.match(/[^a-z0-9\-_]/)) { + if (name.length > 50 || !name.match(/^[a-z0-9\-_]+$/)) { return false; } var sql = "INSERT INTO " + this._table + " (" + this._nameCol + ") VALUES (?)"; yield Zotero.DB.queryAsync(sql, name); - sql = "SELECT id FROM " + this._table + " WHERE " + this._nameCol + "=?"; + sql = "SELECT " + this._idCol + " FROM " + this._table + " WHERE " + this._nameCol + "=?"; var id = yield Zotero.DB.valueQueryAsync(sql, name); this._cacheTypeData({ diff --git a/test/tests/itemTest.js b/test/tests/itemTest.js @@ -201,6 +201,31 @@ describe("Zotero.Item", function () { }); }); + describe("#attachmentCharset", function () { + it("should get and set a value", function* () { + var charset = 'utf-8'; + var item = new Zotero.Item("attachment"); + item.attachmentLinkMode = Zotero.Attachments.LINK_MODE_IMPORTED_FILE; + item.attachmentCharset = charset; + var itemID = yield item.save(); + item = yield Zotero.Items.getAsync(itemID); + assert.equal(item.attachmentCharset, charset); + }) + + it("should not be marked as changed if not changed", function* () { + var charset = 'utf-8'; + var item = new Zotero.Item("attachment"); + item.attachmentLinkMode = Zotero.Attachments.LINK_MODE_IMPORTED_FILE; + item.attachmentCharset = charset; + var itemID = yield item.save(); + item = yield Zotero.Items.getAsync(itemID); + + // Set charset to same value + item.attachmentCharset = charset + assert.isFalse(item.hasChanged()); + }) + }) + describe("#attachmentFilename", function () { it("should get and set a filename for a stored file", function* () { var filename = "test.txt";