Skip to content

Commit dbee33c

Browse files
committed
LPD-72782 Fix and improve test
1 parent bf29c46 commit dbee33c

File tree

3 files changed

+154
-40
lines changed

3 files changed

+154
-40
lines changed

modules/apps/frontend-js/frontend-js-web/src/main/resources/com/liferay/frontend/js/web/internal/servlet/taglib/dependencies/liferay.js.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242

4343
merge(target[key], source[key]);
4444
}
45-
else {
45+
else {
4646
Object.assign(target, { [key]: source[key] });
4747
}
4848
}

modules/apps/frontend-js/frontend-js-web/src/test/java/com/liferay/frontend/js/web/internal/servlet/taglib/LiferayGlobalObjectPreAUIDynamicIncludeTest.java

Lines changed: 153 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@
66
package com.liferay.frontend.js.web.internal.servlet.taglib;
77

88
import com.liferay.exportimport.kernel.staging.Staging;
9+
import com.liferay.frontend.js.web.internal.configuration.LiferayGlobalObjectConfiguration;
910
import com.liferay.layout.seo.kernel.LayoutSEOLink;
1011
import com.liferay.layout.seo.kernel.LayoutSEOLinkManager;
1112
import com.liferay.petra.string.StringBundler;
1213
import com.liferay.petra.string.StringPool;
14+
import com.liferay.portal.configuration.module.configuration.ConfigurationProvider;
15+
import com.liferay.portal.kernel.content.security.policy.ContentSecurityPolicyNonceProviderUtil;
1316
import com.liferay.portal.kernel.feature.flag.FeatureFlag;
1417
import com.liferay.portal.kernel.feature.flag.FeatureFlagManager;
1518
import com.liferay.portal.kernel.language.Language;
@@ -46,8 +49,9 @@
4649
import java.util.TimeZone;
4750
import java.util.function.Predicate;
4851

52+
import org.junit.After;
4953
import org.junit.Assert;
50-
import org.junit.Ignore;
54+
import org.junit.Before;
5155
import org.junit.Test;
5256

5357
import org.mockito.MockedStatic;
@@ -65,45 +69,32 @@ public class LiferayGlobalObjectPreAUIDynamicIncludeTest {
6569
public static final LiferayUnitTestRule liferayUnitTestRule =
6670
LiferayUnitTestRule.INSTANCE;
6771

68-
@Ignore
72+
@Before
73+
public void setUp() {
74+
_browserSnifferUtilMockedStatic = _mockBrowserSnifferUtil();
75+
_contentSecurityPolicyNonceProviderUtilMockedStatic =
76+
_mockContentSecurityPolicyNonceProviderUtil();
77+
_portalWebResourcesUtilMockedStatic = _mockPortalWebResourcesUtil();
78+
_shutdownUtilMockedStatic = _mockShutdownUtil();
79+
_timeMockedStatic = _mockTime();
80+
}
81+
82+
@After
83+
public void tearDown() {
84+
_browserSnifferUtilMockedStatic.close();
85+
_contentSecurityPolicyNonceProviderUtilMockedStatic.close();
86+
_portalWebResourcesUtilMockedStatic.close();
87+
_shutdownUtilMockedStatic.close();
88+
_timeMockedStatic.close();
89+
}
90+
6991
@Test
7092
public void test() throws Exception {
7193
LiferayGlobalObjectPreAUIDynamicInclude
7294
liferayGlobalObjectPreAUIDynamicInclude =
7395
new LiferayGlobalObjectPreAUIDynamicInclude();
7496

75-
ReflectionTestUtil.setFieldValue(
76-
liferayGlobalObjectPreAUIDynamicInclude, "_authToken",
77-
_mockAuthToken());
78-
ReflectionTestUtil.setFieldValue(
79-
liferayGlobalObjectPreAUIDynamicInclude, "_fastDateFormatFactory",
80-
_mockFastDateFormatFactory());
81-
ReflectionTestUtil.setFieldValue(
82-
liferayGlobalObjectPreAUIDynamicInclude, "_featureFlagManager",
83-
_mockFeatureFlagManager());
84-
ReflectionTestUtil.setFieldValue(
85-
liferayGlobalObjectPreAUIDynamicInclude, "_language",
86-
_mockLanguage());
87-
ReflectionTestUtil.setFieldValue(
88-
liferayGlobalObjectPreAUIDynamicInclude, "_layoutSEOLinkManager",
89-
_mockLayoutSEOLinkManager());
90-
ReflectionTestUtil.setFieldValue(
91-
liferayGlobalObjectPreAUIDynamicInclude, "_portal", _mockPortal());
92-
ReflectionTestUtil.setFieldValue(
93-
liferayGlobalObjectPreAUIDynamicInclude, "_prefsProps",
94-
Mockito.mock(PrefsProps.class));
95-
ReflectionTestUtil.setFieldValue(
96-
liferayGlobalObjectPreAUIDynamicInclude, "_staging",
97-
_mockStaging());
98-
ReflectionTestUtil.setFieldValue(
99-
liferayGlobalObjectPreAUIDynamicInclude,
100-
"_uploadServletRequestConfigurationProvider",
101-
Mockito.mock(UploadServletRequestConfigurationProvider.class));
102-
103-
_mockBrowserSnifferUtil();
104-
_mockPortalWebResourcesUtil();
105-
_mockShutdownUtil();
106-
_mockTime();
97+
_setupDefaultMocks(liferayGlobalObjectPreAUIDynamicInclude);
10798

10899
MockHttpServletResponse mockHttpServletResponse =
109100
new MockHttpServletResponse();
@@ -117,6 +108,33 @@ public void test() throws Exception {
117108
StringUtil.trim(mockHttpServletResponse.getContentAsString()));
118109
}
119110

111+
@Test
112+
public void testDisableGetRemoteMethodsConfiguration() throws Exception {
113+
LiferayGlobalObjectPreAUIDynamicInclude
114+
liferayGlobalObjectPreAUIDynamicInclude =
115+
new LiferayGlobalObjectPreAUIDynamicInclude();
116+
117+
_setupDefaultMocks(liferayGlobalObjectPreAUIDynamicInclude);
118+
119+
ReflectionTestUtil.setFieldValue(
120+
liferayGlobalObjectPreAUIDynamicInclude, "_configurationProvider",
121+
_mockConfigurationProvider(true));
122+
123+
MockHttpServletResponse mockHttpServletResponse =
124+
new MockHttpServletResponse();
125+
126+
liferayGlobalObjectPreAUIDynamicInclude.include(
127+
_mockHttpServletRequest(), mockHttpServletResponse,
128+
StringPool.BLANK);
129+
130+
String contentAsString = mockHttpServletResponse.getContentAsString();
131+
132+
Assert.assertFalse(
133+
contentAsString.contains("getRemoteAddr: () => '127.0.0.1',"));
134+
Assert.assertFalse(
135+
contentAsString.contains("getRemoteHost: () => '127.0.0.1',"));
136+
}
137+
120138
private AuthToken _mockAuthToken() {
121139
AuthToken authToken = Mockito.mock(AuthToken.class);
122140

@@ -129,7 +147,7 @@ private AuthToken _mockAuthToken() {
129147
return authToken;
130148
}
131149

132-
private void _mockBrowserSnifferUtil() {
150+
private MockedStatic<BrowserSnifferUtil> _mockBrowserSnifferUtil() {
133151
MockedStatic<BrowserSnifferUtil> browserSnifferUtilMockedStatic =
134152
Mockito.mockStatic(BrowserSnifferUtil.class);
135153

@@ -155,6 +173,52 @@ private void _mockBrowserSnifferUtil() {
155173
).thenReturn(
156174
"42.0"
157175
);
176+
177+
return browserSnifferUtilMockedStatic;
178+
}
179+
180+
private ConfigurationProvider _mockConfigurationProvider(
181+
boolean disableGetRemoteMethods)
182+
throws Exception {
183+
184+
ConfigurationProvider configurationProvider = Mockito.mock(
185+
ConfigurationProvider.class);
186+
187+
LiferayGlobalObjectConfiguration liferayGlobalObjectConfiguration =
188+
Mockito.mock(LiferayGlobalObjectConfiguration.class);
189+
190+
Mockito.when(
191+
liferayGlobalObjectConfiguration.disableGetRemoteMethods()
192+
).thenReturn(
193+
disableGetRemoteMethods
194+
);
195+
196+
Mockito.when(
197+
configurationProvider.getCompanyConfiguration(
198+
Mockito.any(), Mockito.anyLong())
199+
).thenReturn(
200+
liferayGlobalObjectConfiguration
201+
);
202+
203+
return configurationProvider;
204+
}
205+
206+
private MockedStatic<ContentSecurityPolicyNonceProviderUtil>
207+
_mockContentSecurityPolicyNonceProviderUtil() {
208+
209+
MockedStatic<ContentSecurityPolicyNonceProviderUtil>
210+
contentSecurityPolicyNonceProviderUtilMockedStatic =
211+
Mockito.mockStatic(
212+
ContentSecurityPolicyNonceProviderUtil.class);
213+
214+
contentSecurityPolicyNonceProviderUtilMockedStatic.when(
215+
() -> ContentSecurityPolicyNonceProviderUtil.getNonceAttribute(
216+
Mockito.any())
217+
).thenReturn(
218+
StringPool.BLANK
219+
);
220+
221+
return contentSecurityPolicyNonceProviderUtilMockedStatic;
158222
}
159223

160224
private FastDateFormatFactory _mockFastDateFormatFactory() {
@@ -322,7 +386,7 @@ private Portal _mockPortal() throws Exception {
322386
return portal;
323387
}
324388

325-
private void _mockPortalWebResourcesUtil() {
389+
private MockedStatic<PortalWebResourcesUtil> _mockPortalWebResourcesUtil() {
326390
MockedStatic<PortalWebResourcesUtil>
327391
portalWebResourcesUtilMockedStatic = Mockito.mockStatic(
328392
PortalWebResourcesUtil.class);
@@ -333,9 +397,11 @@ private void _mockPortalWebResourcesUtil() {
333397
(Answer<String>)
334398
invocationOnMock -> "/o/" + invocationOnMock.getArgument(0)
335399
);
400+
401+
return portalWebResourcesUtilMockedStatic;
336402
}
337403

338-
private void _mockShutdownUtil() {
404+
private MockedStatic<ShutdownUtil> _mockShutdownUtil() {
339405
MockedStatic<ShutdownUtil> shutdownUtilMockedStatic =
340406
Mockito.mockStatic(ShutdownUtil.class);
341407

@@ -344,6 +410,8 @@ private void _mockShutdownUtil() {
344410
).thenReturn(
345411
true
346412
);
413+
414+
return shutdownUtilMockedStatic;
347415
}
348416

349417
private Staging _mockStaging() {
@@ -484,14 +552,16 @@ private ThemeDisplay _mockThemeDisplay() {
484552
return themeDisplay;
485553
}
486554

487-
private void _mockTime() {
555+
private MockedStatic<Time> _mockTime() {
488556
MockedStatic<Time> timeMockedStatic = Mockito.mockStatic(Time.class);
489557

490558
timeMockedStatic.when(
491559
() -> Time.getDate(Mockito.any(Calendar.class))
492560
).thenReturn(
493561
new Date(109, 3, 23)
494562
);
563+
564+
return timeMockedStatic;
495565
}
496566

497567
private String _read(String name) throws Exception {
@@ -503,4 +573,49 @@ private String _read(String name) throws Exception {
503573
}
504574
}
505575

576+
private void _setupDefaultMocks(
577+
LiferayGlobalObjectPreAUIDynamicInclude
578+
liferayGlobalObjectPreAUIDynamicInclude)
579+
throws Exception {
580+
581+
ReflectionTestUtil.setFieldValue(
582+
liferayGlobalObjectPreAUIDynamicInclude, "_authToken",
583+
_mockAuthToken());
584+
ReflectionTestUtil.setFieldValue(
585+
liferayGlobalObjectPreAUIDynamicInclude, "_configurationProvider",
586+
_mockConfigurationProvider(false));
587+
ReflectionTestUtil.setFieldValue(
588+
liferayGlobalObjectPreAUIDynamicInclude, "_fastDateFormatFactory",
589+
_mockFastDateFormatFactory());
590+
ReflectionTestUtil.setFieldValue(
591+
liferayGlobalObjectPreAUIDynamicInclude, "_featureFlagManager",
592+
_mockFeatureFlagManager());
593+
ReflectionTestUtil.setFieldValue(
594+
liferayGlobalObjectPreAUIDynamicInclude, "_language",
595+
_mockLanguage());
596+
ReflectionTestUtil.setFieldValue(
597+
liferayGlobalObjectPreAUIDynamicInclude, "_layoutSEOLinkManager",
598+
_mockLayoutSEOLinkManager());
599+
ReflectionTestUtil.setFieldValue(
600+
liferayGlobalObjectPreAUIDynamicInclude, "_portal", _mockPortal());
601+
ReflectionTestUtil.setFieldValue(
602+
liferayGlobalObjectPreAUIDynamicInclude, "_prefsProps",
603+
Mockito.mock(PrefsProps.class));
604+
ReflectionTestUtil.setFieldValue(
605+
liferayGlobalObjectPreAUIDynamicInclude, "_staging",
606+
_mockStaging());
607+
ReflectionTestUtil.setFieldValue(
608+
liferayGlobalObjectPreAUIDynamicInclude,
609+
"_uploadServletRequestConfigurationProvider",
610+
Mockito.mock(UploadServletRequestConfigurationProvider.class));
611+
}
612+
613+
private MockedStatic<BrowserSnifferUtil> _browserSnifferUtilMockedStatic;
614+
private MockedStatic<ContentSecurityPolicyNonceProviderUtil>
615+
_contentSecurityPolicyNonceProviderUtilMockedStatic;
616+
private MockedStatic<PortalWebResourcesUtil>
617+
_portalWebResourcesUtilMockedStatic;
618+
private MockedStatic<ShutdownUtil> _shutdownUtilMockedStatic;
619+
private MockedStatic<Time> _timeMockedStatic;
620+
506621
}

modules/apps/frontend-js/frontend-js-web/src/test/resources/com/liferay/frontend/js/web/internal/servlet/taglib/dependencies/liferay_test.js.tpl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ type: 'warning'
101101
],
102102
},
103103
FeatureFlags: {
104-
'LPD-00042': true,
105104
},
106105
Language: {
107106
_cache:

0 commit comments

Comments
 (0)