[Ktutorial-commits] SF.net SVN: ktutorial:[216] trunk/ktutorial/ktutorial-editor
Status: Alpha
Brought to you by:
danxuliu
|
From: <dan...@us...> - 2010-03-30 02:32:39
|
Revision: 216
http://ktutorial.svn.sourceforge.net/ktutorial/?rev=216&view=rev
Author: danxuliu
Date: 2010-03-30 02:32:32 +0000 (Tue, 30 Mar 2010)
Log Message:
-----------
Ensure that IOExceptions are thrown when loading, saving and exporting to a directory instead of a file.
Modified Paths:
--------------
trunk/ktutorial/ktutorial-editor/src/serialization/Serialization.cpp
trunk/ktutorial/ktutorial-editor/tests/unit/serialization/SerializationTest.cpp
Modified: trunk/ktutorial/ktutorial-editor/src/serialization/Serialization.cpp
===================================================================
--- trunk/ktutorial/ktutorial-editor/src/serialization/Serialization.cpp 2010-03-29 23:58:59 UTC (rev 215)
+++ trunk/ktutorial/ktutorial-editor/src/serialization/Serialization.cpp 2010-03-30 02:32:32 UTC (rev 216)
@@ -33,6 +33,11 @@
throw (DeserializationException, IOException) {
Q_ASSERT(url.isValid());
+ if (url.fileName(KUrl::ObeyTrailingSlash).isEmpty()) {
+ throw IOException(i18n("A file was expected, but '%1' is a folder",
+ url.prettyUrl()));
+ }
+
QString temporaryFileName;
if (!KIO::NetAccess::download(url, temporaryFileName, 0)) {
throw IOException(KIO::NetAccess::lastErrorString());
Modified: trunk/ktutorial/ktutorial-editor/tests/unit/serialization/SerializationTest.cpp
===================================================================
--- trunk/ktutorial/ktutorial-editor/tests/unit/serialization/SerializationTest.cpp 2010-03-29 23:58:59 UTC (rev 215)
+++ trunk/ktutorial/ktutorial-editor/tests/unit/serialization/SerializationTest.cpp 2010-03-30 02:32:32 UTC (rev 216)
@@ -50,12 +50,14 @@
void testSaveAndLoad();
void testLoadFromUnreadableUrl();
+ void testLoadFromDirectory();
void testLoadNotAnXmlFile();
void testLoadXmlNotWellFormed();
void testLoadXmlWithoutRootTutorialElement();
void testSaveToExistingUrl();
void testSaveToUnwritableUrl();
+ void testSaveToDirectory();
void testAvailableExporterTypes();
@@ -63,6 +65,7 @@
void testExportToExistingUrl();
void testExportToUnwritableUrl();
+ void testExportToDirectory();
private:
@@ -109,6 +112,12 @@
EXPECT_EXCEPTION(Serialization::loadTutorial(url), IOException);
}
+void SerializationTest::testLoadFromDirectory() {
+ KUrl url = KGlobal::dirs()->saveLocation("tmp");
+
+ EXPECT_EXCEPTION(Serialization::loadTutorial(url), IOException);
+}
+
void SerializationTest::testLoadNotAnXmlFile() {
KUrl url = KGlobal::dirs()->saveLocation("tmp") + "/SerializationTest.txt";
mFile = new QFile(url.toLocalFile());
@@ -178,6 +187,16 @@
EXPECT_EXCEPTION(Serialization::saveTutorial(&tutorial, url), IOException);
}
+void SerializationTest::testSaveToDirectory() {
+ Tutorial tutorial;
+ tutorial.setName("The name");
+ tutorial.setDescription("The description");
+
+ KUrl url = KGlobal::dirs()->saveLocation("tmp");
+
+ EXPECT_EXCEPTION(Serialization::saveTutorial(&tutorial, url), IOException);
+}
+
void SerializationTest::testAvailableExporterTypes() {
QString types = Serialization::availableExporterTypes();
@@ -252,6 +271,17 @@
IOException);
}
+void SerializationTest::testExportToDirectory() {
+ Tutorial tutorial;
+ tutorial.setName("The name");
+ tutorial.setDescription("The description");
+
+ KUrl url = KGlobal::dirs()->saveLocation("tmp");
+
+ EXPECT_EXCEPTION(Serialization::exportTutorial(&tutorial, "*.js", url),
+ IOException);
+}
+
/////////////////////////////////// Helpers ////////////////////////////////////
QString SerializationTest::readFile(QFile* file) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|