Skip to content

Commit 76a1ee5

Browse files
committed
increased tests coverage
1 parent 56d6875 commit 76a1ee5

File tree

44 files changed

+2159
-726
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+2159
-726
lines changed

logicaldoc-core/src/main/java/com/logicaldoc/core/communication/EMailSender.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,8 @@ public void sendAsync(EMail email, String templateName, Map<String, Object> dict
257257
public void send(EMail email, String templateName, Map<String, Object> dictionary)
258258
throws MessagingException, AutomationException {
259259
if (!RunLevel.current().aspectEnabled("sendingMessages")) {
260-
log.error("Aspect not enabled");
261-
throw new MessagingException("Aspect sendingMessages not enabled");
260+
log.error("Aspect sendingMessages not enabled");
261+
return;
262262
}
263263

264264
MessageTemplateDAO templateDao = (MessageTemplateDAO) Context.get().getBean(MessageTemplateDAO.class);
@@ -306,6 +306,11 @@ public void sendAsync(EMail email) {
306306
* @throws MessagingException raised if the email cannot be sent
307307
*/
308308
public void send(EMail email) throws MessagingException {
309+
if (!RunLevel.current().aspectEnabled("sendingMessages")) {
310+
log.error("Aspect sendingMessages not enabled");
311+
return;
312+
}
313+
309314
cleanAuthorAddress(email);
310315

311316
Session session = newMailSession();

logicaldoc-core/src/main/java/com/logicaldoc/core/metadata/HibernateTemplateDAO.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,8 +304,8 @@ public Template clone(long id, String cloneName) throws PersistenceException {
304304
clonedTemplate.setAttributes(originalTemplate.getAttributes().entrySet().stream()
305305
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));
306306
store(clonedTemplate);
307-
jdbcUpdate("insert into ld_template_acl(ld_templateid, ld_groupid, ld_write) select " + clonedTemplate.getId()
308-
+ ", ld_groupid, ld_write from ld_template_acl where ld_templateid=" + id);
307+
jdbcUpdate("insert into ld_template_acl(ld_templateid, ld_groupid, ld_read, ld_write) select " + clonedTemplate.getId()
308+
+ ", ld_groupid, ld_read, ld_write from ld_template_acl where ld_templateid=" + id);
309309
initialize(clonedTemplate);
310310
return clonedTemplate;
311311
}

logicaldoc-core/src/main/java/com/logicaldoc/core/stats/StatsCollector.java

Lines changed: 61 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,10 @@ public class StatsCollector extends Task {
8080

8181
private static String productName = "LogicalDOC Community";
8282

83+
private boolean uploadStatistics = true;
84+
85+
private List<NameValuePair> statistics = new ArrayList<>();
86+
8387
public StatsCollector() {
8488
super(NAME);
8589
log = LoggerFactory.getLogger(StatsCollector.class);
@@ -240,48 +244,48 @@ protected void runTask() throws TaskException {
240244
log.debug("Package collected statistics");
241245

242246
// Prepare the post parameters
243-
List<NameValuePair> postParams = new ArrayList<>();
247+
statistics.clear();
244248

245249
// Add all statistics as parameters
246-
postParams.add(new BasicNameValuePair("id", StringUtils.defaultString(id)));
247-
postParams.add(new BasicNameValuePair("userno", StringUtils.defaultString(userno)));
248-
postParams.add(new BasicNameValuePair("sid", StringUtils.defaultString(sid)));
249-
250-
postParams.add(new BasicNameValuePair("product_release", StringUtils.defaultString(release)));
251-
postParams.add(new BasicNameValuePair("email", StringUtils.defaultString(email)));
252-
postParams.add(new BasicNameValuePair("product", StringUtils.defaultString(StatsCollector.product)));
253-
postParams
250+
statistics.add(new BasicNameValuePair("id", StringUtils.defaultString(id)));
251+
statistics.add(new BasicNameValuePair("userno", StringUtils.defaultString(userno)));
252+
statistics.add(new BasicNameValuePair("sid", StringUtils.defaultString(sid)));
253+
254+
statistics.add(new BasicNameValuePair("product_release", StringUtils.defaultString(release)));
255+
statistics.add(new BasicNameValuePair("email", StringUtils.defaultString(email)));
256+
statistics.add(new BasicNameValuePair("product", StringUtils.defaultString(StatsCollector.product)));
257+
statistics
254258
.add(new BasicNameValuePair("product_name", StringUtils.defaultString(StatsCollector.productName)));
255259

256-
postParams.add(new BasicNameValuePair("java_version", StringUtils.defaultString(javaversion)));
257-
postParams.add(new BasicNameValuePair("java_vendor", StringUtils.defaultString(javavendor)));
258-
postParams.add(new BasicNameValuePair("java_arch", StringUtils.defaultString(javaarch)));
259-
postParams.add(new BasicNameValuePair("dbms", StringUtils.defaultString(dbms)));
260+
statistics.add(new BasicNameValuePair("java_version", StringUtils.defaultString(javaversion)));
261+
statistics.add(new BasicNameValuePair("java_vendor", StringUtils.defaultString(javavendor)));
262+
statistics.add(new BasicNameValuePair("java_arch", StringUtils.defaultString(javaarch)));
263+
statistics.add(new BasicNameValuePair("dbms", StringUtils.defaultString(dbms)));
260264

261-
postParams.add(new BasicNameValuePair("os_name", StringUtils.defaultString(osname)));
262-
postParams.add(new BasicNameValuePair("os_version", StringUtils.defaultString(osversion)));
263-
postParams.add(new BasicNameValuePair("file_encoding", StringUtils.defaultString(fileencoding)));
265+
statistics.add(new BasicNameValuePair("os_name", StringUtils.defaultString(osname)));
266+
statistics.add(new BasicNameValuePair("os_version", StringUtils.defaultString(osversion)));
267+
statistics.add(new BasicNameValuePair("file_encoding", StringUtils.defaultString(fileencoding)));
264268

265-
postParams.add(new BasicNameValuePair("user_language", StringUtils.defaultString(userlanguage)));
266-
postParams.add(new BasicNameValuePair("user_country", StringUtils.defaultString(usercountry)));
269+
statistics.add(new BasicNameValuePair("user_language", StringUtils.defaultString(userlanguage)));
270+
statistics.add(new BasicNameValuePair("user_country", StringUtils.defaultString(usercountry)));
267271

268272
// Sizing
269-
postParams.add(new BasicNameValuePair("users", Integer.toString(users)));
270-
postParams.add(new BasicNameValuePair("guests", Integer.toString(guests)));
271-
postParams.add(new BasicNameValuePair("groups", Integer.toString(groups)));
272-
postParams.add(new BasicNameValuePair("docs", Long.toString(totaldocs)));
273-
postParams.add(new BasicNameValuePair("pages", Long.toString(totalpages)));
274-
275-
postParams.add(new BasicNameValuePair("archived_docs", Long.toString(archiveddocs)));
276-
postParams.add(new BasicNameValuePair("folders", Long.toString(withdocs + empty + deletedfolders)));
277-
postParams.add(new BasicNameValuePair("tags", Long.toString(tags)));
278-
postParams.add(new BasicNameValuePair("versions", Long.toString(versions)));
279-
postParams.add(new BasicNameValuePair("histories", Long.toString(histories)));
280-
postParams.add(new BasicNameValuePair("user_histories", Long.toString(userHistories)));
281-
postParams.add(new BasicNameValuePair("votes", Long.toString(votes)));
282-
postParams.add(new BasicNameValuePair("wscalls", Long.toString(wsCalls)));
283-
284-
collectFeatureUsageStats(postParams);
273+
statistics.add(new BasicNameValuePair("users", Integer.toString(users)));
274+
statistics.add(new BasicNameValuePair("guests", Integer.toString(guests)));
275+
statistics.add(new BasicNameValuePair("groups", Integer.toString(groups)));
276+
statistics.add(new BasicNameValuePair("docs", Long.toString(totaldocs)));
277+
statistics.add(new BasicNameValuePair("pages", Long.toString(totalpages)));
278+
279+
statistics.add(new BasicNameValuePair("archived_docs", Long.toString(archiveddocs)));
280+
statistics.add(new BasicNameValuePair("folders", Long.toString(withdocs + empty + deletedfolders)));
281+
statistics.add(new BasicNameValuePair("tags", Long.toString(tags)));
282+
statistics.add(new BasicNameValuePair("versions", Long.toString(versions)));
283+
statistics.add(new BasicNameValuePair("histories", Long.toString(histories)));
284+
statistics.add(new BasicNameValuePair("user_histories", Long.toString(userHistories)));
285+
statistics.add(new BasicNameValuePair("votes", Long.toString(votes)));
286+
statistics.add(new BasicNameValuePair("wscalls", Long.toString(wsCalls)));
287+
288+
collectFeatureUsageStats(statistics);
285289
next();
286290
if (interruptRequested)
287291
return;
@@ -290,29 +294,29 @@ protected void runTask() throws TaskException {
290294
* General usage
291295
*/
292296
Date lastLogin = findLastLogin();
293-
postParams.add(new BasicNameValuePair("last_login", formatDate(lastLogin)));
297+
statistics.add(new BasicNameValuePair("last_login", formatDate(lastLogin)));
294298

295299
Date lastCreation = findLastCreation();
296-
postParams.add(new BasicNameValuePair("last_creation", formatDate(lastCreation)));
300+
statistics.add(new BasicNameValuePair("last_creation", formatDate(lastCreation)));
297301

298302
/*
299303
* Quotas
300304
*/
301-
postParams.add(new BasicNameValuePair("docdir", Long.toString(docdir)));
302-
postParams.add(new BasicNameValuePair("trash", Long.toString(trash)));
303-
postParams.add(new BasicNameValuePair("indexdir", Long.toString(indexdir)));
304-
postParams.add(new BasicNameValuePair("quota",
305+
statistics.add(new BasicNameValuePair("docdir", Long.toString(docdir)));
306+
statistics.add(new BasicNameValuePair("trash", Long.toString(trash)));
307+
statistics.add(new BasicNameValuePair("indexdir", Long.toString(indexdir)));
308+
statistics.add(new BasicNameValuePair("quota",
305309
Long.toString(docdir + indexdir + userdir + importdir + exportdir + plugindir + dbdir + logdir)));
306310

307311
/*
308312
* Registration
309313
*/
310-
postParams.add(new BasicNameValuePair("reg_name", regName != null ? regName : ""));
311-
postParams.add(new BasicNameValuePair("reg_email", regEmail != null ? regEmail : ""));
312-
postParams.add(new BasicNameValuePair("reg_organization", regOrganization != null ? regOrganization : ""));
313-
postParams.add(new BasicNameValuePair("reg_website", regWebsite != null ? regWebsite : ""));
314+
statistics.add(new BasicNameValuePair("reg_name", regName != null ? regName : ""));
315+
statistics.add(new BasicNameValuePair("reg_email", regEmail != null ? regEmail : ""));
316+
statistics.add(new BasicNameValuePair("reg_organization", regOrganization != null ? regOrganization : ""));
317+
statistics.add(new BasicNameValuePair("reg_website", regWebsite != null ? regWebsite : ""));
314318

315-
postStatistics(postParams);
319+
uploadStatistics(statistics);
316320

317321
next();
318322
} catch (PersistenceException e) {
@@ -325,14 +329,16 @@ private String formatDate(Date lastLogin) {
325329
return lastLogin != null ? isoDf.format(lastLogin) : "";
326330
}
327331

328-
private void postStatistics(List<NameValuePair> postParams) {
332+
private void uploadStatistics(List<NameValuePair> postParams) {
329333
try {
330334
// Execute request
331335
try (CloseableHttpClient httpClient = HttpUtil.getNotValidatingClient(60)) {
332336
HttpPost post = new HttpPost("http://stat.logicaldoc.com/stats/collect");
333337
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postParams, StandardCharsets.UTF_8);
334338
post.setEntity(entity);
335-
httpClient.execute(post, new StringHttpClientResponseHandler());
339+
340+
if (uploadStatistics)
341+
httpClient.execute(post, new StringHttpClientResponseHandler());
336342
}
337343
log.info("Statistics packaged");
338344
} catch (IOException e) {
@@ -851,4 +857,12 @@ public static void setProduct(String product) {
851857
public static void setProductName(String productName) {
852858
StatsCollector.productName = productName;
853859
}
860+
861+
void setUploadStatistics(boolean uploadStatistics) {
862+
this.uploadStatistics = uploadStatistics;
863+
}
864+
865+
List<NameValuePair> getStatistics() {
866+
return statistics;
867+
}
854868
}

logicaldoc-core/src/test/java/com/logicaldoc/core/CoreWorkbench.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import java.nio.channels.FileChannel;
1111
import java.nio.charset.StandardCharsets;
1212
import java.nio.file.Files;
13-
import java.text.DateFormat;
1413
import java.text.ParseException;
1514
import java.text.SimpleDateFormat;
1615
import java.util.ArrayList;
@@ -38,7 +37,7 @@
3837
import com.talanlabs.avatargenerator.IdenticonAvatar;
3938

4039
public class CoreWorkbench {
41-
40+
4241
/**
4342
* Test sending e-mail with attachments
4443
*

logicaldoc-core/src/test/java/com/logicaldoc/core/automation/DocToolTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public void testLock() {
186186
assertNotNull(doc);
187187
testSubject.lock(doc.getId(), "admin");
188188
doc = testSubject.findById(1);
189-
assertEquals(2, doc.getStatus());
189+
assertEquals(1, doc.getStatus());
190190
assertEquals(1L, doc.getLockUserId().longValue());
191191

192192
// double lock with same user just to check that no exceptions are
@@ -200,7 +200,7 @@ public void testUnlock() {
200200
testSubject.lock(1L, "admin");
201201

202202
Document doc = testSubject.findById(1L);
203-
assertEquals(2, doc.getStatus());
203+
assertEquals(1, doc.getStatus());
204204
assertEquals(1L, doc.getLockUserId().longValue());
205205

206206
// Locked by a different user
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
package com.logicaldoc.core.dashlet;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import static org.junit.Assert.assertTrue;
5+
6+
import java.io.File;
7+
import java.io.IOException;
8+
import java.sql.SQLException;
9+
10+
import org.junit.Before;
11+
import org.junit.Test;
12+
import org.springframework.security.core.context.SecurityContextHolder;
13+
14+
import com.logicaldoc.core.AbstractCoreTestCase;
15+
import com.logicaldoc.core.PersistenceException;
16+
import com.logicaldoc.core.security.Client;
17+
import com.logicaldoc.core.security.Device;
18+
import com.logicaldoc.core.security.Session;
19+
import com.logicaldoc.core.security.SessionManager;
20+
import com.logicaldoc.core.security.spring.LDAuthenticationToken;
21+
import com.logicaldoc.core.security.spring.LDSecurityContextRepository;
22+
import com.logicaldoc.core.security.user.User;
23+
import com.logicaldoc.core.security.user.UserDAO;
24+
import com.logicaldoc.util.Context;
25+
import com.logicaldoc.util.io.FileUtil;
26+
import com.logicaldoc.util.plugin.PluginException;
27+
import com.logicaldoc.util.servlet.MockServletRequest;
28+
import com.logicaldoc.util.servlet.MockServletResponse;
29+
import com.logicaldoc.util.servlet.MockServletSession;
30+
31+
/**
32+
* Test case for {@link DashletContent}
33+
*
34+
* @author Marco Meschieri - LogicalDOC
35+
* @since 9.0.1
36+
*/
37+
public class DashletContentTest extends AbstractCoreTestCase {
38+
39+
// Instance under test
40+
private DashletContent testSubject = new DashletContent();
41+
42+
protected Session session;
43+
44+
protected MockServletSession servletSession = new MockServletSession();
45+
46+
protected final File responseFile = new File("target/documents.xml");
47+
48+
@Before
49+
public void setUp() throws IOException, SQLException, PluginException {
50+
super.setUp();
51+
FileUtil.delete(responseFile);
52+
prepareSession("admin", "admin");
53+
}
54+
55+
@Override
56+
public void tearDown() throws SQLException {
57+
super.tearDown();
58+
FileUtil.delete(responseFile);
59+
}
60+
61+
@Test
62+
public void testService() throws IOException {
63+
MockServletRequest mockRequest = new MockServletRequest(servletSession);
64+
mockRequest.setParameter("locale", "en");
65+
mockRequest.setParameter("dashletId", "21");
66+
67+
MockServletResponse response = new MockServletResponse(responseFile);
68+
testSubject.service(mockRequest, response);
69+
response.flushBuffer();
70+
assertTrue(FileUtil.readFile(responseFile).contains("<id>1</id>"));
71+
72+
FileUtil.delete(responseFile);
73+
mockRequest.setParameter("dashletId", "22");
74+
response = new MockServletResponse(responseFile);
75+
testSubject.service(mockRequest, response);
76+
response.flushBuffer();
77+
assertTrue(FileUtil.readFile(responseFile).contains("<id>1</id>"));
78+
79+
FileUtil.delete(responseFile);
80+
mockRequest.setParameter("dashletId", "23");
81+
response = new MockServletResponse(responseFile);
82+
testSubject.service(mockRequest, response);
83+
response.flushBuffer();
84+
System.out.println(FileUtil.readFile(responseFile));
85+
assertEquals("sample content", FileUtil.readFile(responseFile).trim());
86+
87+
FileUtil.delete(responseFile);
88+
mockRequest.setParameter("dashletId", "6");
89+
response = new MockServletResponse(responseFile);
90+
testSubject.service(mockRequest, response);
91+
response.flushBuffer();
92+
assertTrue(FileUtil.readFile(responseFile).contains("<![CDATA[message for note 1]]>"));
93+
94+
FileUtil.delete(responseFile);
95+
mockRequest.setParameter("dashletId", "9");
96+
response = new MockServletResponse(responseFile);
97+
testSubject.service(mockRequest, response);
98+
response.flushBuffer();
99+
System.out.println(FileUtil.readFile(responseFile));
100+
assertEquals("", FileUtil.readFile(responseFile));
101+
102+
}
103+
104+
protected void prepareSession(String username, String password) throws PersistenceException {
105+
UserDAO userDao = (UserDAO) Context.get().getBean(UserDAO.class);
106+
107+
Client client = new Client("xyz", "192.168.2.231", "ghost");
108+
Device device = new Device();
109+
device.setBrowser("Firefox");
110+
device.setBrowserVersion("18");
111+
device.setOperativeSystem("Windows");
112+
client.setDevice(device);
113+
session = SessionManager.get().newSession(username, password, null, client);
114+
if (session != null) {
115+
User user = userDao.findByUsernameIgnoreCase(username);
116+
userDao.initialize(user);
117+
LDAuthenticationToken token = new LDAuthenticationToken(username);
118+
token.setSid(session.getSid());
119+
SecurityContextHolder.getContext().setAuthentication(token);
120+
LDSecurityContextRepository.bindServletSession(session.getSid(), servletSession);
121+
}
122+
}
123+
}

logicaldoc-core/src/test/java/com/logicaldoc/core/dashlet/HibernateDashletDAOTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,23 @@
2323
public class HibernateDashletDAOTest extends AbstractCoreTestCase {
2424

2525
// Instance under test
26-
private DashletDAO dao;
26+
private DashletDAO testSubject;
2727

2828
@Before
2929
public void setUp() throws IOException, SQLException, PluginException {
3030
super.setUp();
3131
// Retrieve the instance under test from spring context. Make sure that
3232
// it is an HibernateDashletDAO
33-
dao = (DashletDAO) context.getBean("DashletDAO");
33+
testSubject = (DashletDAO) context.getBean("DashletDAO");
3434
}
3535

3636
@Test
3737
public void testFindByName() throws PersistenceException {
38-
Dashlet dashlet = dao.findByName("checkout", 1L);
38+
Dashlet dashlet = testSubject.findByName("checkout", 1L);
3939
assertNotNull(dashlet);
4040
assertEquals(1L, dashlet.getId());
4141

42-
dashlet = dao.findByName("xxxx", 1L);
42+
dashlet = testSubject.findByName("xxxx", 1L);
4343
assertNull(dashlet);
4444
}
4545
}

0 commit comments

Comments
 (0)