summaryrefslogtreecommitdiff
path: root/sw/qa/complex
diff options
context:
space:
mode:
Diffstat (limited to 'sw/qa/complex')
-rw-r--r--sw/qa/complex/writer/LoadSaveTest.java215
1 files changed, 0 insertions, 215 deletions
diff --git a/sw/qa/complex/writer/LoadSaveTest.java b/sw/qa/complex/writer/LoadSaveTest.java
deleted file mode 100644
index e2ae7ab21b48..000000000000
--- a/sw/qa/complex/writer/LoadSaveTest.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * 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 .
- */
-
-package complex.writer;
-
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.lang.EventObject;
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.lang.XComponent;
-import com.sun.star.beans.PropertyValue;
-import com.sun.star.beans.Pair;
-import com.sun.star.frame.XGlobalEventBroadcaster;
-import com.sun.star.frame.XStorable;
-import com.sun.star.frame.theGlobalEventBroadcaster;
-import com.sun.star.document.DocumentEvent;
-import com.sun.star.document.XDocumentEventListener;
-import org.openoffice.test.OfficeConnection;
-
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import static org.junit.Assert.*;
-
-import java.util.List;
-import java.util.ArrayList;
-import java.io.File;
-
-/**
- * a small program to load documents from one directory (recursively)
- * and store them in another, implemented as a complex test.
- */
-public class LoadSaveTest
-{
- private static final OfficeConnection connection = new OfficeConnection();
-
- @BeforeClass public static void setUpConnection() throws Exception {
- connection.setUp();
- }
-
- @AfterClass public static void tearDownConnection()
- throws InterruptedException, com.sun.star.uno.Exception
- {
- connection.tearDown();
- }
-
- private XMultiServiceFactory m_xMSF = null;
- private XGlobalEventBroadcaster m_xGEB = null;
-
- private static final String m_fileURL = "file://";
- // these should be parameters or something?
- private static final String m_SourceDir = "FIXME";
- private static final String m_TargetDir = "/tmp/out";
-
- @Before public void before() throws Exception
- {
- XComponentContext xContext = connection.getComponentContext();
- assertNotNull("could not get component context.", xContext);
- m_xMSF = UnoRuntime.queryInterface(
- XMultiServiceFactory.class, xContext.getServiceManager());
- m_xGEB = theGlobalEventBroadcaster.get(xContext);
- String sTmpDir = util.utils.getOfficeTemp/*Dir*/(m_xMSF);
- System.out.println("tempdir: " + sTmpDir);
- System.out.println("sourcedir: " + m_SourceDir);
- System.out.println("targetdir: " + m_TargetDir);
- }
-
- @Test public void testLoadStore() throws Exception
- {
- Pair<List<String>, List<String>> dirsFiles =
- getDirAndFileNames(m_SourceDir);
- makeDirs(m_TargetDir, dirsFiles.First);
- for (String fileName : dirsFiles.Second)
- {
- try {
- testDoc(fileName);
- } catch (Exception e) {
- report(e);
- }
- }
- }
-
- public void testDoc(String fileName) throws Exception
- {
- XComponent xDoc = null;
- EventListener xListener = new EventListener();
- try {
- m_xGEB.addDocumentEventListener(xListener);
-
- System.out.println("Loading document: " + fileName + " ...");
-
- PropertyValue[] loadProps = new PropertyValue[1];
- loadProps[0] = new PropertyValue();
- loadProps[0].Name = "ReadOnly";
- loadProps[0].Value = Boolean.TRUE;
-
- String sourceFile = m_fileURL + m_SourceDir + fileName;
-
- xDoc = util.DesktopTools.loadDoc(m_xMSF, sourceFile, loadProps);
-
- System.out.println("... done");
-
- {
- // apparently OnLayoutFinished is not sent for every doc???
- // 10 seconds is evidently not enough for large documents
- int time = 0;
- while (!xListener.IsLayoutFinished() && (time < 30000)) {
- Thread.sleep(100);
- time += 100;
- }
- if (time >= 30000) {
- System.out.println("timeout: no OnLayoutFinished received");
- }
- }
-
- System.out.println("Storing document: " + fileName + " ...");
-
- XStorable xStor = UnoRuntime.queryInterface(
- XStorable.class, xDoc);
-
- String targetFile = m_fileURL + m_TargetDir + fileName;
-
- xStor.storeToURL(targetFile, new PropertyValue[0]);
-
- System.out.println("... done");
-
- } finally {
- if (xDoc != null) {
- util.DesktopTools.closeDoc(xDoc);
- }
- m_xGEB.removeDocumentEventListener(xListener);
- }
- }
-
- private class EventListener implements XDocumentEventListener
- {
- private boolean m_isLayoutFinished = false;
- private boolean IsLayoutFinished() { return m_isLayoutFinished; }
- public void documentEventOccured(DocumentEvent Event)
- {
- if ("OnLayoutFinished".equals(Event.EventName))
- {
- // we only have one doc at any time, so no need to check
- m_isLayoutFinished = true;
- }
- }
- public void disposing(EventObject Event) { }
- }
-
- void report(Exception e) {
- System.out.println("Exception occurred:");
- System.out.println(e.toString());
- e.printStackTrace(System.err);
-// failed();
- }
-
- Pair<List<String>, List<String>> getDirAndFileNames(String dir)
- {
- List<String> dirs = new ArrayList<String>();
- List<String> files = new ArrayList<String>();
- File root = new File(dir);
- getDirAndFileNames(root, "", dirs, files);
- return new Pair<List<String>, List<String>>(dirs, files);
- }
-
- void getDirAndFileNames(File file, String relPath,
- List<String> dirs, List<String> files)
- {
- assertTrue("does not exist: " + relPath, file.exists());
- if (file.isDirectory()) {
- dirs.add(relPath);
- File[] subfiles = file.listFiles();
- for (File subfile : subfiles)
- {
- String subfileName =
- relPath + File.separator + subfile.getName();
- getDirAndFileNames(subfile, subfileName, dirs, files);
- }
- }
- else if (file.isFile()) {
- if (file.getName().endsWith(".odt")) {
- files.add(relPath);
- }
- }
- }
-
- void makeDirs(String target, List<String> dirs) throws Exception
- {
- for (String dir : dirs) {
- File f = new File(target + dir);
- if (!f.exists()) {
- if (!f.mkdir()) {
- throw new Exception("cannot mkdir: " + target + dir);
- }
- }
- }
- }
-}
-