summaryrefslogtreecommitdiffstats
path: root/smoketest/data/Basic/Standard/Test_DB.xml
diff options
context:
space:
mode:
Diffstat (limited to 'smoketest/data/Basic/Standard/Test_DB.xml')
-rw-r--r--smoketest/data/Basic/Standard/Test_DB.xml138
1 files changed, 138 insertions, 0 deletions
diff --git a/smoketest/data/Basic/Standard/Test_DB.xml b/smoketest/data/Basic/Standard/Test_DB.xml
new file mode 100644
index 000000000..d3452d141
--- /dev/null
+++ b/smoketest/data/Basic/Standard/Test_DB.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_DB" script:language="StarBasic">REM ***** Database Test *****
+
+const cMessageDatabaseService = &quot;Database Service&quot;
+const cMessageDatabaseOpen = &quot;Open Database&quot;
+const cMessageDatabaseInsert = &quot;Insert record into Database&quot;
+const cMessageDatabaseDelete = &quot;Delete record from Database&quot;
+const cMessageDatabaseSeek = &quot;Read other record from Database&quot;
+const cMessageDatabaseClose = &quot;Close Database&quot;
+
+Sub TestDB
+
+ Dim oDBConnection as Object, oDataSource as Object, oDBContext as Object
+ Dim sDBName as String, sTable as String, sCurrentMessage as String
+ Dim nRowCount as Integer
+ Dim bResult as Boolean
+ Const sTestString = &quot;Automatic Test&quot;
+
+ On Local Error GoTo DBERROR
+
+ gCurrentTestCase = cLogfileFailed
+ LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
+
+ gCurrentTestCase = cDBService
+ sCurrentMessage = cMessageDatabaseService + &quot; &quot; + cUnoDatabaseContext
+
+ oDBContext = CreateUnoService(cUnoDatabaseContext)
+ sDBName=&quot;Bibliography&quot; &apos;Names of Databases
+
+ gCurrentTestCase = cDBOpen
+ sCurrentMessage = cMessageDatabaseOpen
+
+ oDataSource = oDBContext.GetByName(sDBName)
+ sTable=oDataSource.Tables.ElementNames(0)
+ oDBConnection = oDBContext.GetByName(sDBName).GetConnection(&quot;&quot;,&quot;&quot;)
+
+ LogTestResult( &quot;Database &quot;+ cMessageDatabaseOpen, not IsNull (oDBConnection) )
+ if (IsNull(oDBConnection)) then
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub
+ End If
+
+ &apos; Database is open now
+
+ gCurrentTestCase = cDBService
+ sCurrentMessage = cMessageDatabaseService + &quot; &quot; + cUnoRowSet
+ oRowSet = createUnoService(cUnoRowSet)
+
+ if (IsNull(oRowSet)) then
+ LogTestResult( &quot;Database &quot;+ cMessageDatabaseService + &quot; &quot; + cUnoRowSet, not IsNull (oRowSet) )
+ Exit Sub
+ else
+ LogTestResult( &quot;Database &quot;+ cMessageDatabaseService, TRUE )
+ End If
+
+ gCurrentTestCase = cDBInsert
+ sCurrentMessage = cMessageDatabaseInsert
+
+ oRowSet.ActiveConnection = oDBConnection
+
+ oRowSet.CommandType = com.sun.star.sdb.CommandType.COMMAND
+ oRowSet.Command = &quot;SELECT * FROM &quot; + sTable
+ oRowSet.execute()
+
+ oRowSet.moveToInsertRow
+ oRowSet.updateString(5, sTestString)
+
+ oRowSet.insertRow()
+ nRowCount=oRowSet.RowCount
+
+ oRowSet.moveToCurrentRow()
+
+ bResult = (oRowSet.getString(5) = sTestString)
+ LogTestResult( &quot;Database &quot;+ cMessageDatabaseInsert, bResult )
+
+ &apos;delete only if insert passed
+
+ if (bResult) Then
+ gCurrentTestCase = cDBDelete
+ sCurrentMessage = cMessageDatabaseDelete
+ oRowSet.deleteRow()
+ bResult = (nRowCount - oRowSet.RowCount = 0)
+ if ( bResult ) Then
+ oRowSet.next()
+ bResult = (nRowCount - oRowSet.RowCount = 1)
+ End If
+ LogTestResult( &quot;Database &quot;+ cMessageDatabaseDelete, bResult )
+ End If
+
+ &apos; read other record
+
+ gCurrentTestCase = cDBSeek
+ sCurrentMessage = cMessageDatabaseSeek
+ oRowSet.first()
+ bResult = not (oRowSet.getString(5) = sTestString)
+ LogTestResult( &quot;Database &quot;+ cMessageDatabaseSeek, bResult )
+
+ gCurrentTestCase = cDBClose
+ sCurrentMessage = cMessageDatabaseClose
+ oDBConnection.Dispose()
+ LogTestResult( &quot;Database &quot;+ cMessageDatabaseClose, True )
+
+ Print #LocalTestLog, &quot;---&quot;
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub &apos; Without error
+
+ DBERROR:
+ If ( gCurrentTestCase = cLogfileFailed ) then
+ LogTestResult( &quot; &quot;, False )
+ Exit Sub
+ else
+ LogTestResult( &quot;Database &quot;+ sCurrentMessage, FALSE )
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ End If
+ Exit Sub &apos; With error
+End Sub
+</script:module>