1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #include "HistoryOptTest.hxx"
25 // #include "AccessibilityOptTest.hxx"
26 // #include "PrintOptTest.hxx"
27 #include "UserOptTest.hxx"
28 
29 #include <com/sun/star/uno/XComponentContext.hpp>
30 #include <com/sun/star/lang/XServiceInfo.hpp>
31 #include <com/sun/star/task/XJob.hpp>
32 #include <com/sun/star/beans/NamedValue.hpp>
33 
34 #include <sal/config.h>
35 #include <rtl/ustring.hxx>
36 #include <cppuhelper/implbase2.hxx>
37 #include <cppuhelper/implementationentry.hxx>
38 
39 //=============================================================================
40 namespace css = ::com::sun::star;
41 
42 namespace svl{
43 
44 //=============================================================================
45 static const ::rtl::OUString PROP_TEST                  = ::rtl::OUString::createFromAscii("Test");
46 static const ::rtl::OUString TEST_PICKLIST              = ::rtl::OUString::createFromAscii("checkPicklist");
47 static const ::rtl::OUString TEST_URLHISTORY            = ::rtl::OUString::createFromAscii("checkURLHistory");
48 static const ::rtl::OUString TEST_HELPBOOKMARKS         = ::rtl::OUString::createFromAscii("checkHelpBookmarks");
49 // static const ::rtl::OUString TEST_ACCESSIBILITYOPTIONS  = ::rtl::OUString::createFromAscii("checkAccessibilityOptions");
50 // static const ::rtl::OUString TEST_PRINTOPTIONS          = ::rtl::OUString::createFromAscii("checkPrintOptions");
51 static const ::rtl::OUString TEST_USEROPTIONS           = ::rtl::OUString::createFromAscii("checkUserOptions");
52 
53 //=============================================================================
54 class ConfigItemTest : public ::cppu::WeakImplHelper2< css::task::XJob         ,
55                                                         css::lang::XServiceInfo >
56 {
57     //-------------------------------------------------------------------------
58     // interface
59     public:
60         explicit ConfigItemTest(const css::uno::Reference< css::uno::XComponentContext >& xContext);
61 
62         // css::task::XJob
63         virtual css::uno::Any SAL_CALL execute(const css::uno::Sequence< css::beans::NamedValue >& lArguments)
64             throw (css::uno::RuntimeException         ,
65                    css::lang::IllegalArgumentException,
66                    css::uno::Exception                );
67 
68         // css::lang::XServiceInfo
69         virtual ::rtl::OUString SAL_CALL getImplementationName()
70             throw (css::uno::RuntimeException);
71 
72         virtual ::sal_Bool SAL_CALL supportsService(const ::rtl::OUString& sServiceName)
73             throw (css::uno::RuntimeException);
74 
75         virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
76             throw (css::uno::RuntimeException);
77 
78     //-------------------------------------------------------------------------
79     // internal
80     private:
81         ConfigItemTest(ConfigItemTest &); // not defined
~ConfigItemTest()82         virtual ~ConfigItemTest() {}
83         void operator=(ConfigItemTest &); // not defined
84 
85     //-------------------------------------------------------------------------
86     // helper for registration !
87     public:
88         static ::rtl::OUString SAL_CALL st_getImplementationName();
89         static css::uno::Sequence< ::rtl::OUString > SAL_CALL st_getSupportedServiceNames();
90         static css::uno::Reference< css::uno::XInterface > SAL_CALL st_create(const css::uno::Reference< css::uno::XComponentContext >& XContext);
91 
92     //-------------------------------------------------------------------------
93     // member
94     private:
95         css::uno::Reference< css::uno::XComponentContext >  m_xContext;
96 };
97 
98 //=============================================================================
ConfigItemTest(const css::uno::Reference<css::uno::XComponentContext> & xContext)99 ConfigItemTest::ConfigItemTest(const css::uno::Reference< css::uno::XComponentContext >& xContext)
100     : m_xContext(xContext)
101 {}
102 
103 //=============================================================================
104 // css::task::XJob
execute(const css::uno::Sequence<css::beans::NamedValue> & lArguments)105 css::uno::Any SAL_CALL ConfigItemTest::execute(const css::uno::Sequence< css::beans::NamedValue >& lArguments)
106     throw (css::uno::RuntimeException         ,
107            css::lang::IllegalArgumentException,
108            css::uno::Exception                )
109 {
110     ::rtl::OUString sTest;
111     ::sal_Int32     i    = 0;
112     ::sal_Int32     c    = lArguments.getLength();
113     for (i=0; i<c; ++i)
114     {
115         const css::beans::NamedValue& rArg = lArguments[0];
116         if (rArg.Name.equals(PROP_TEST))
117             rArg.Value >>= sTest;
118     }
119 
120 	if (sTest.equals(TEST_PICKLIST))
121 	{
122 		HistoryOptTest aOptTest;
123 		aOptTest.checkPicklist();
124 	}
125 	else if (sTest.equals(TEST_URLHISTORY))
126 	{
127 		HistoryOptTest aOptTest;
128 		aOptTest.checkURLHistory();
129 	}
130 	else if (sTest.equals(TEST_HELPBOOKMARKS))
131 	{
132 		HistoryOptTest aOptTest;
133 		aOptTest.checkHelpBookmarks();
134 	}
135 // 	else if (sTest.equals(TEST_ACCESSIBILITYOPTIONS))
136 // 	{
137 // 		AccessibilityOptTest aOptTest;
138 // 		aOptTest.impl_checkAccessibilityOptions();
139 // 	}
140 // 	else if (sTest.equals(TEST_PRINTOPTIONS))
141 // 	{
142 //         PrintOptTest aOptTest;
143 //         aOptTest.impl_checkPrint();
144 // 	}
145 	else if (sTest.equals(TEST_USEROPTIONS))
146 	{
147 		UserOptTest aOptTest;
148 		aOptTest.impl_checkUserData();
149 	}
150 
151     return css::uno::Any();
152 }
153 
154 //=============================================================================
155 // com::sun::star::uno::XServiceInfo
getImplementationName()156 ::rtl::OUString SAL_CALL ConfigItemTest::getImplementationName()
157     throw (css::uno::RuntimeException)
158 {
159     return ConfigItemTest::st_getImplementationName();
160 }
161 
162 //=============================================================================
163 // com::sun::star::uno::XServiceInfo
supportsService(const::rtl::OUString & sServiceName)164 ::sal_Bool SAL_CALL ConfigItemTest::supportsService(const ::rtl::OUString& sServiceName)
165     throw (css::uno::RuntimeException)
166 {
167     css::uno::Sequence< ::rtl::OUString > lServiceNames = ConfigItemTest::st_getSupportedServiceNames();
168     for (::sal_Int32 i = 0; i < lServiceNames.getLength(); ++i)
169     {
170         if (lServiceNames[i].equals(sServiceName))
171             return sal_True;
172     }
173     return sal_False;
174 }
175 
176 //=============================================================================
177 // com::sun::star::uno::XServiceInfo
getSupportedServiceNames()178 css::uno::Sequence< ::rtl::OUString > SAL_CALL ConfigItemTest::getSupportedServiceNames()
179     throw (css::uno::RuntimeException)
180 {
181     return ConfigItemTest::st_getSupportedServiceNames();
182 }
183 
184 //=============================================================================
st_getImplementationName()185 ::rtl::OUString SAL_CALL ConfigItemTest::st_getImplementationName()
186 {
187     return ::rtl::OUString::createFromAscii("com.sun.star.comp.svl.ConfigItemTest");
188 }
189 
190 //=============================================================================
st_getSupportedServiceNames()191 css::uno::Sequence< ::rtl::OUString > SAL_CALL ConfigItemTest::st_getSupportedServiceNames()
192 {
193     css::uno::Sequence< ::rtl::OUString > lServices(1);
194     lServices[0] = ::rtl::OUString::createFromAscii("com.sun.star.test.ConfigItems");
195     return lServices;
196 }
197 
198 //=============================================================================
st_create(const css::uno::Reference<css::uno::XComponentContext> & xContext)199 css::uno::Reference< css::uno::XInterface > SAL_CALL ConfigItemTest::st_create(const css::uno::Reference< css::uno::XComponentContext >& xContext)
200 {
201     ConfigItemTest*                            pObject = new ConfigItemTest(xContext);
202     css::uno::Reference< css::uno::XInterface > xObject (static_cast< ::cppu::OWeakObject* >(pObject));
203     return xObject;
204 }
205 
206 } // namespace svl
207 
208 //=============================================================================
209 static ::cppu::ImplementationEntry const lRegEntries[] =
210 {
211     {
212         &::svl::ConfigItemTest::st_create,
213         &::svl::ConfigItemTest::st_getImplementationName,
214         &::svl::ConfigItemTest::st_getSupportedServiceNames,
215         &::cppu::createSingleComponentFactory, 0, 0
216     },
217 
218     { 0, 0, 0, 0, 0, 0 }
219 };
220 
221 //=============================================================================
component_getImplementationEnvironment(const char ** pEnvTypeName,uno_Environment **)222 extern "C" void SAL_CALL component_getImplementationEnvironment(const char**            pEnvTypeName,
223                                                                       uno_Environment**             )
224 {
225     *pEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
226 }
227 
228 //=============================================================================
component_getFactory(const char * sImplName,void * pServiceManager,void * pRegistryKey)229 extern "C" void * SAL_CALL component_getFactory(const char* sImplName      ,
230                                                       void* pServiceManager,
231                                                       void* pRegistryKey   )
232 {
233     return ::cppu::component_getFactoryHelper(sImplName, pServiceManager, pRegistryKey, lRegEntries);
234 }
235 
236 //=============================================================================
component_writeInfo(void * pServiceManager,void * pRegistryKey)237 extern "C" sal_Bool SAL_CALL component_writeInfo(void* pServiceManager,
238                                                  void* pRegistryKey   )
239 {
240     return ::cppu::component_writeInfoHelper(pServiceManager, pRegistryKey, lRegEntries);
241 }
242