summaryrefslogtreecommitdiffstats
path: root/cmis-test.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:41:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:41:20 +0000
commit2cd20b3e73d0162e3fa23ebcee8e89a3b967ca6f (patch)
tree754a142de5cd8f987abe255e8a15b5ef94109da4 /cmis-test.sh
parentInitial commit. (diff)
downloadlibcmis-2cd20b3e73d0162e3fa23ebcee8e89a3b967ca6f.tar.xz
libcmis-2cd20b3e73d0162e3fa23ebcee8e89a3b967ca6f.zip
Adding upstream version 0.6.2.upstream/0.6.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'cmis-test.sh')
-rw-r--r--cmis-test.sh139
1 files changed, 139 insertions, 0 deletions
diff --git a/cmis-test.sh b/cmis-test.sh
new file mode 100644
index 0000000..de315ab
--- /dev/null
+++ b/cmis-test.sh
@@ -0,0 +1,139 @@
+#!/bin/sh
+# libcmis
+# Version: MPL 1.1 / GPLv2+ / LGPLv2+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 SUSE <cbosdonnat@suse.com>
+#
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPLv2+"), or
+# the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
+# in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
+# instead of those above.
+
+while [[ $# > 1 ]]
+do
+ key="$1"
+ shift
+
+ case $key in
+ --url)
+ BINDING_URL="$1"
+ shift;;
+ -u)
+ USER="$1"
+ shift;;
+ -p)
+ PASS="$1"
+ shift;;
+ -r)
+ REPO="$1"
+ shift;;
+ --oauth2-client-id)
+ OAUTH2_CLIENT_ID="$1"
+ shift;;
+ --oauth2-client-secret)
+ OAUTH2_CLIENT_SECRET="$1"
+ shift;;
+ --oauth2-scope)
+ OAUTH2_SCOPE="$1"
+ shift;;
+ --oauth2-auth-url)
+ OAUTH2_AUTH_URL="$1"
+ shift;;
+ --oauth2-token-url)
+ OAUTH2_TOKEN_URL="$1"
+ shift;;
+ --oauth2-redirect-uri)
+ OAUTH2_REDIRECT_URI="$1"
+ shift;;
+ --base-folder)
+ BASE_FOLDER="$1"
+ shift;;
+ *)
+ ;;
+ esac
+done
+
+function cmis_client ( )
+{
+ repo_opt=
+ if test "z$REPO" != "z"; then
+ repo_opt=" -r \"$REPO\""
+ fi
+
+ args="--url "$BINDING_URL" -u "$USER" -p "$PASS"$repo_opt"
+ if test "z$OAUTH2_CLIENT_ID" != "z"; then
+ args="$args --oauth2-client-id "$OAUTH2_CLIENT_ID"
+ --oauth2-client-secret "$OAUTH2_CLIENT_SECRET"
+ --oauth2-scope "$OAUTH2_SCOPE"
+ --oauth2-auth-url "$OAUTH2_AUTH_URL"
+ --oauth2-token-url "$OAUTH2_TOKEN_URL"
+ --oauth2-redirect-uri "$OAUTH2_REDIRECT_URI""
+ fi
+
+ args="$args "$@""
+ src/cmis-client $args
+}
+
+function get_versionable_type ( )
+{
+ versionable_type=
+ test_type=$1
+
+ # Is test_type versionable?
+ versionable=`cmis_client type-by-id $test_type | grep ^Versionable: | cut -d ' ' -f 2`
+ if test "z$versionable" == "z1"; then
+ versionable_type=$test_type
+ else
+ # Otherwise, loop over its children
+ children=`cmis_client type-by-id $test_type | sed -n -e '/Children type/,/^[^ ]/ p' | grep -e '^\ ' | tr '()' '\t' | cut -f 2`
+ for type_id in $children; do
+ versionable_type=`get_versionable_type $type_id`
+ if test "z$versionable_type" != "z"; then
+ break
+ fi
+ done
+ fi
+
+ echo -n $versionable_type
+}
+
+#First get the Root Id
+ROOT_ID=`cmis_client show-root | grep '^Id:' | cut -d ' ' -f 2`
+
+# Create a test folder
+test_folder_name=$BASE_FOLDER"/test-$$"
+test_folder_id=`cmis_client create-folder $ROOT_ID $test_folder_name | grep '^Id:' | cut -d ' ' -f 2`
+
+# Get a Versionable document type, not alway cmis:document for all servers
+versionable_type=`get_versionable_type "cmis:document"`
+
+# Create a versionable document
+file_path=NEWS
+file_mime=`file --mime-type $file_path | cut -d ' ' -f 2`
+doc1_id=`cmis_client --object-type $versionable_type --input-file $file_path --input-type $file_mime create-document $test_folder_id doc_1 | grep '^Id:' | cut -d ' ' -f 2`
+
+# Checkout the document
+doc1_pwc=`cmis_client checkout $doc1_id | grep '^Id:' | cut -d ' ' -f 2`
+
+# TODO Checkin the document
+doc1_checkIn=`cmis_client --input-file $file_path --input-type $file_mime --message checkin_message checkin $doc1_id | grep '^Id:' | cut -d ' ' -f 2`
+
+# Cleanup the test folder to remove all traces of the tests
+cmis_client delete $test_folder_id