[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. |