Show
Ignore:
Timestamp:
04/10/06 12:49:58 (3 years ago)
Author:
jordi
Message:

I've changed the way the loadFile() function handles the error. Now all Poppler error are defined under the DocumentError? enumeration. When an error happens we can call the Document::getErrorMessage() static method to get the error message from the error code.

Also I've added the Document domain to the GError.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/tests/DocumentTest.cxx

    r6 r8  
    9393DocumentTest::fileNotFound (void) 
    9494{ 
    95     gchar *error_message; 
    9695    GError *error = NULL;     
    9796 
     
    9998    CPPUNIT_ASSERT (!m_Document->isLoaded ()); 
    10099     
    101     error_message = g_strdup_printf ( 
    102             "Failed to load document '%sNoFile.pdf'. Error 1", TEST_DATA_DIR); 
    103     CPPUNIT_ASSERT_EQUAL (0, g_ascii_strcasecmp (error_message,  
     100    DocumentError errorCode = (DocumentError)error->code; 
     101    gchar *documentError = Document::getErrorMessage(errorCode); 
     102    gchar *errorMessage = g_strdup_printf ( 
     103            "Failed to load document '%sNoFile.pdf'.\n%s\n",  
     104            TEST_DATA_DIR, documentError); 
     105    g_free(documentError); 
     106    CPPUNIT_ASSERT_EQUAL (DocumentErrorOpenFile, errorCode); 
     107    CPPUNIT_ASSERT_EQUAL (0, g_ascii_strcasecmp (errorMessage,  
    104108                                                 error->message)); 
     109    g_free (errorMessage); 
     110    g_error_free (error); 
    105111} 
     112 
     113/// 
     114/// @brief Test that loading an invalid file fails. 
     115/// 
     116/// This test checks the second load failure: the file is not a PDF or  
     117/// is malformed. 
     118/// 
     119void 
     120DocumentTest::invalidFile (void) 
     121{ 
     122    gchar *error_message; 
     123    GError *error = NULL; 
     124 
     125    CPPUNIT_ASSERT (!m_Document->loadFile (TEST_DATA_DIR "DocumentTest.cxx", 
     126                                           &error)); 
     127    CPPUNIT_ASSERT (!m_Document->isLoaded ()); 
     128 
     129    DocumentError errorCode = (DocumentError)error->code; 
     130    gchar *documentError = Document::getErrorMessage(errorCode); 
     131    gchar *errorMessage = g_strdup_printf ( 
     132            "Failed to load document '%sDocumentTest.cxx'.\n%s\n",  
     133            TEST_DATA_DIR, documentError); 
     134    g_free(documentError); 
     135    CPPUNIT_ASSERT_EQUAL (DocumentErrorDamaged, errorCode); 
     136    CPPUNIT_ASSERT_EQUAL (0, g_ascii_strcasecmp (errorMessage,  
     137                                                 error->message)); 
     138    g_free (errorMessage); 
     139    g_error_free (error); 
     140}