[Libreoffice-commits] .: connectivity/qa connectivity/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Nov 20 13:41:07 PST 2012


 connectivity/qa/connectivity/mork/DriverTest.cxx |   22 +++++++++++++
 connectivity/source/drivers/mork/MDriver.cxx     |   38 +++++++++++++++++++++--
 2 files changed, 57 insertions(+), 3 deletions(-)

New commits:
commit 4b9c10e298a5285edbeb87c47303c151209abded
Author: David Ostrovsky <david at ostrovsky.org>
Date:   Tue Nov 20 22:19:51 2012 +0100

    fdo#57285 restore acceptsURL logic
    
    Change-Id: Ib03c7e4a78510eb0300d78a0ae3e83ec6a17f72f

diff --git a/connectivity/qa/connectivity/mork/DriverTest.cxx b/connectivity/qa/connectivity/mork/DriverTest.cxx
index 1db1d9f..33720ac 100644
--- a/connectivity/qa/connectivity/mork/DriverTest.cxx
+++ b/connectivity/qa/connectivity/mork/DriverTest.cxx
@@ -27,6 +27,7 @@ class MorkDriverTest: public test::BootstrapFixture
 public:
     MorkDriverTest() : test::BootstrapFixture(false, false) {};
 
+    void checkAcceptsURL(Reference< XDriver> xDriver, const char* url, bool expected);
     void test_metadata();
     void test_select_default_all();
     void test_select_list_table_joe_doe_5();
@@ -46,6 +47,15 @@ private:
     Reference<XConnection> m_xConnection;
 };
 
+void MorkDriverTest::checkAcceptsURL(Reference< XDriver> xDriver, const char* url, bool expected)
+{
+    sal_Bool res = xDriver->acceptsURL(OUString::createFromAscii(url));
+    if (res != expected)
+    {
+        CPPUNIT_ASSERT_MESSAGE("wrong URL outcome!", true);
+    }
+}
+
 void MorkDriverTest::setUp()
 {
     test::BootstrapFixture::setUp();
@@ -64,6 +74,18 @@ void MorkDriverTest::setUp()
         CPPUNIT_ASSERT_MESSAGE("cannot connect to mork driver!", xDriver.is());
     }
 
+    // bad
+    checkAcceptsURL(xDriver, "sdbc:address:macab",        false);
+    checkAcceptsURL(xDriver, "sdbc:mozab:ldap:",          false);
+    checkAcceptsURL(xDriver, "sdbc:mozab:outlook:",       false);
+    checkAcceptsURL(xDriver, "sdbc:mozab:outlookexp:",    false);
+
+    // good
+    checkAcceptsURL(xDriver, "sdbc:mozab:mozilla:",       true);
+    checkAcceptsURL(xDriver, "sdbc:mozab:thunderbird:",   true);
+    checkAcceptsURL(xDriver, "sdbc:address:mozilla:",     true);
+    checkAcceptsURL(xDriver, "sdbc:address:thunderbird:", true);
+
     m_xConnection = xDriver->connect(url, info);
     if (!m_xConnection.is())
     {
diff --git a/connectivity/source/drivers/mork/MDriver.cxx b/connectivity/source/drivers/mork/MDriver.cxx
index c599892..9e96464 100644
--- a/connectivity/source/drivers/mork/MDriver.cxx
+++ b/connectivity/source/drivers/mork/MDriver.cxx
@@ -95,10 +95,42 @@ sal_Bool MorkDriver::acceptsURL(rtl::OUString const & url)
     throw (css::sdbc::SQLException, css::uno::RuntimeException)
 {
     SAL_INFO("connectivity.mork", "=> MorkDriver::acceptsURL()" );
+    // Skip 'sdbc:mozab: part of URL
+    //
+    sal_Int32 nLen = url.indexOf(':');
+    nLen = url.indexOf(':',nLen+1);
+    OUString aAddrbookURI(url.copy(nLen+1));
+    // Get Scheme
+    nLen = aAddrbookURI.indexOf(':');
+    OUString aAddrbookScheme;
+    if ( nLen == -1 )
+    {
+        // There isn't any subschema: - but could be just subschema
+        if ( !aAddrbookURI.isEmpty() )
+        {
+            aAddrbookScheme= aAddrbookURI;
+        }
+        else if(url == OUString("sdbc:address:") )
+        {
+            return false;
+        }
+        else
+        {
+            return false;
+        }
+    }
+    else
+    {
+        aAddrbookScheme = aAddrbookURI.copy(0, nLen);
+    }
 
-    //... TODO
-    (void) url; // avoid warnings
-    return true;
+    if ((aAddrbookScheme.compareToAscii( "thunderbird" ) == 0) ||
+        (aAddrbookScheme.compareToAscii( "mozilla" ) == 0))
+    {
+        return true;
+    }
+
+    return false;
 }
 
 css::uno::Sequence< css::sdbc::DriverPropertyInfo > MorkDriver::getPropertyInfo(


More information about the Libreoffice-commits mailing list