/* * 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 ifc.drawing; import com.sun.star.beans.XPropertySetInfo; import lib.MultiPropertyTest; import com.sun.star.awt.XBitmap; import com.sun.star.uno.AnyConverter; import com.sun.star.uno.Type; /** * Testing com.sun.star.drawing.FillProperties * service properties : *

* Properties testing is automated by lib.MultiPropertyTest. * @see com.sun.star.drawing.FillProperties */ public class _FillProperties extends MultiPropertyTest { XBitmap the_bitmap = null; XBitmap the_secondBitmap = null; /** * Property tester which changes URL. */ protected PropertyTester URLTester = new PropertyTester() { @Override protected Object getNewValue(String propName, Object oldValue) throws java.lang.IllegalArgumentException { if (oldValue.equals(util.utils.getFullTestURL("space-metal.jpg"))) { return util.utils.getFullTestURL("crazy-blue.jpg"); } else { return util.utils.getFullTestURL("space-metal.jpg"); } } }; /** * Property tester which switches two strings. */ protected PropertyTester StringTester = new PropertyTester() { @Override protected Object getNewValue(String propName, Object oldValue) throws java.lang.IllegalArgumentException { if (oldValue.equals(str1)) { return str2; } else { return str1; } } }; /** * Property tester which switches two XBitmap objects. */ protected PropertyTester BitmapTester = new PropertyTester() { @Override protected Object getNewValue(String propName, Object oldValue) throws java.lang.IllegalArgumentException { if (util.ValueComparer.equalValue(oldValue, the_bitmap)) { return the_secondBitmap; } else { return the_bitmap; } } }; /** * This property must have a URL format */ public void _FillBitmapURL() { log.println("Testing with custom Property tester"); testProperty("FillBitmapURL", URLTester); } public String str1 = ""; public String str2 = ""; /** * This property must have predefined values */ public void _FillGradientName() { log.println("Testing with custom Property tester"); str1 = "Gradient 1"; str2 = "Gradient 3"; testProperty("FillGradientName", StringTester); } /** * This property must have predefined values */ public void _FillBitmapName() { log.println("Testing with custom Property tester"); str1 = "Sky"; str2 = "Blank"; testProperty("FillBitmapName", StringTester); } /** * This property must have predefined values */ public void _FillTransparenceGradientName() { log.println("Testing with custom Property tester"); str1 = "Transparency 2"; str2 = "Transparency 1"; testProperty("FillTransparenceGradientName", StringTester); } /** * This property must have predefined values */ public void _FillHatchName() { log.println("Testing with custom Property tester"); str1 = "Black 0 degrees"; str2 = "Black 45 degrees"; testProperty("FillHatchName", StringTester); } /** * This property is very interesting. After setting URL of bitmap you get * XBitmap interface of the image file specified. * The method first gets two different bitmaps and then tests the property. */ public void _FillBitmap() { String propName = "FillBitmap"; XPropertySetInfo info = oObj.getPropertySetInfo(); if (!info.hasPropertyByName(propName)) { if (isOptional(propName)) { // skipping optional property test log.println("Property '" + propName + "' is optional and not supported"); tRes.tested(propName, true); return; } } else { try { oObj.setPropertyValue("FillBitmapURL", util.utils.getFullTestURL("crazy-blue.jpg")); the_bitmap = (XBitmap) AnyConverter.toObject( new Type(XBitmap.class), oObj.getPropertyValue("FillBitmap")); oObj.setPropertyValue("FillBitmapURL", util.utils.getFullTestURL("space-metal.jpg")); the_secondBitmap = (XBitmap) AnyConverter.toObject( new Type(XBitmap.class), oObj.getPropertyValue("FillBitmap")); testProperty("FillBitmap", BitmapTester); } catch (com.sun.star.beans.PropertyVetoException e) { log.println("Couldn't change Bitmap"); e.printStackTrace(log); tRes.tested("FillBitmap", false); } catch (com.sun.star.beans.UnknownPropertyException e) { log.println("Couldn't change Bitmap"); e.printStackTrace(log); tRes.tested("FillBitmap", false); } catch (com.sun.star.lang.WrappedTargetException e) { log.println("Couldn't change Bitmap"); e.printStackTrace(log); tRes.tested("FillBitmap", false); } catch (com.sun.star.lang.IllegalArgumentException e) { log.println("Couldn't change Bitmap"); e.printStackTrace(log); tRes.tested("FillBitmap", false); } } } }