From e250f340d809d07d8a090f7b2bb308ce25673a77 Mon Sep 17 00:00:00 2001 From: anhefti Date: Thu, 27 Feb 2020 12:18:44 +0100 Subject: [PATCH] add more tests --- .../model/sebconfig/ConfigCreationInfo.java | 220 +- .../weblayer/api/ExamAPI_V1_Controller.java | 2 +- .../integration/UseCasesIntegrationTest.java | 136 +- src/test/resources/importTest.seb | 1944 ++++++++--------- 4 files changed, 1194 insertions(+), 1108 deletions(-) diff --git a/src/main/java/ch/ethz/seb/sebserver/gbl/model/sebconfig/ConfigCreationInfo.java b/src/main/java/ch/ethz/seb/sebserver/gbl/model/sebconfig/ConfigCreationInfo.java index 538924bd..00edbbe3 100644 --- a/src/main/java/ch/ethz/seb/sebserver/gbl/model/sebconfig/ConfigCreationInfo.java +++ b/src/main/java/ch/ethz/seb/sebserver/gbl/model/sebconfig/ConfigCreationInfo.java @@ -1,110 +1,110 @@ -/* - * Copyright (c) 2019 ETH Zürich, Educational Development and Technology (LET) - * - * 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/. - */ - -package ch.ethz.seb.sebserver.gbl.model.sebconfig; - -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import ch.ethz.seb.sebserver.gbl.api.EntityType; -import ch.ethz.seb.sebserver.gbl.model.Domain.CONFIGURATION_NODE; -import ch.ethz.seb.sebserver.gbl.model.Entity; -import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationNode.ConfigurationType; - -public final class ConfigCreationInfo implements Entity { - - public static final String ATTR_COPY_WITH_HISTORY = "with-history"; - - @NotNull - @JsonProperty(CONFIGURATION_NODE.ATTR_ID) - public final Long configurationNodeId; - - @NotNull(message = "configurationNode:name:notNull") - @Size(min = 3, max = 255, message = "configurationNode:name:size:{min}:{max}:${validatedValue}") - @JsonProperty(CONFIGURATION_NODE.ATTR_NAME) - public final String name; - - @Size(max = 4000, message = "configurationNode:description:size:{min}:{max}:${validatedValue}") - @JsonProperty(CONFIGURATION_NODE.ATTR_DESCRIPTION) - public final String description; - - @JsonProperty(ATTR_COPY_WITH_HISTORY) - public final Boolean withHistory; - - @JsonProperty(CONFIGURATION_NODE.ATTR_TYPE) - public final ConfigurationType configurationType; - - protected ConfigCreationInfo( - @JsonProperty(CONFIGURATION_NODE.ATTR_ID) final Long configurationNodeId, - @JsonProperty(CONFIGURATION_NODE.ATTR_NAME) final String name, - @JsonProperty(CONFIGURATION_NODE.ATTR_DESCRIPTION) final String description, - @JsonProperty(ATTR_COPY_WITH_HISTORY) final Boolean withHistory, - @JsonProperty(CONFIGURATION_NODE.ATTR_TYPE) final ConfigurationType configurationType) { - - this.configurationNodeId = configurationNodeId; - this.name = name; - this.description = description; - this.withHistory = withHistory; - this.configurationType = (configurationType != null) - ? configurationType - : ConfigurationType.EXAM_CONFIG; - } - - public Long getConfigurationNodeId() { - return this.configurationNodeId; - } - - @Override - public String getName() { - return this.name; - } - - public String getDescription() { - return this.description; - } - - public Boolean getWithHistory() { - return this.withHistory; - } - - public ConfigurationType getConfigurationType() { - return this.configurationType; - } - - @Override - public String getModelId() { - return (this.configurationNodeId != null) - ? String.valueOf(this.configurationNodeId) - : null; - } - - @Override - public EntityType entityType() { - return EntityType.CONFIGURATION_NODE; - } - - @Override - public String toString() { - final StringBuilder builder = new StringBuilder(); - builder.append("ConfigCopyInfo [configurationNodeId="); - builder.append(this.configurationNodeId); - builder.append(", name="); - builder.append(this.name); - builder.append(", description="); - builder.append(this.description); - builder.append(", withHistory="); - builder.append(this.withHistory); - builder.append(", configurationType="); - builder.append(this.configurationType); - builder.append("]"); - return builder.toString(); - } - -} +/* + * Copyright (c) 2019 ETH Zürich, Educational Development and Technology (LET) + * + * 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/. + */ + +package ch.ethz.seb.sebserver.gbl.model.sebconfig; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import ch.ethz.seb.sebserver.gbl.api.EntityType; +import ch.ethz.seb.sebserver.gbl.model.Domain.CONFIGURATION_NODE; +import ch.ethz.seb.sebserver.gbl.model.Entity; +import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationNode.ConfigurationType; + +public final class ConfigCreationInfo implements Entity { + + public static final String ATTR_COPY_WITH_HISTORY = "with-history"; + + @NotNull + @JsonProperty(CONFIGURATION_NODE.ATTR_ID) + public final Long configurationNodeId; + + @NotNull(message = "configurationNode:name:notNull") + @Size(min = 3, max = 255, message = "configurationNode:name:size:{min}:{max}:${validatedValue}") + @JsonProperty(CONFIGURATION_NODE.ATTR_NAME) + public final String name; + + @Size(max = 4000, message = "configurationNode:description:size:{min}:{max}:${validatedValue}") + @JsonProperty(CONFIGURATION_NODE.ATTR_DESCRIPTION) + public final String description; + + @JsonProperty(ATTR_COPY_WITH_HISTORY) + public final Boolean withHistory; + + @JsonProperty(CONFIGURATION_NODE.ATTR_TYPE) + public final ConfigurationType configurationType; + + public ConfigCreationInfo( + @JsonProperty(CONFIGURATION_NODE.ATTR_ID) final Long configurationNodeId, + @JsonProperty(CONFIGURATION_NODE.ATTR_NAME) final String name, + @JsonProperty(CONFIGURATION_NODE.ATTR_DESCRIPTION) final String description, + @JsonProperty(ATTR_COPY_WITH_HISTORY) final Boolean withHistory, + @JsonProperty(CONFIGURATION_NODE.ATTR_TYPE) final ConfigurationType configurationType) { + + this.configurationNodeId = configurationNodeId; + this.name = name; + this.description = description; + this.withHistory = withHistory; + this.configurationType = (configurationType != null) + ? configurationType + : ConfigurationType.EXAM_CONFIG; + } + + public Long getConfigurationNodeId() { + return this.configurationNodeId; + } + + @Override + public String getName() { + return this.name; + } + + public String getDescription() { + return this.description; + } + + public Boolean getWithHistory() { + return this.withHistory; + } + + public ConfigurationType getConfigurationType() { + return this.configurationType; + } + + @Override + public String getModelId() { + return (this.configurationNodeId != null) + ? String.valueOf(this.configurationNodeId) + : null; + } + + @Override + public EntityType entityType() { + return EntityType.CONFIGURATION_NODE; + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("ConfigCopyInfo [configurationNodeId="); + builder.append(this.configurationNodeId); + builder.append(", name="); + builder.append(this.name); + builder.append(", description="); + builder.append(this.description); + builder.append(", withHistory="); + builder.append(this.withHistory); + builder.append(", configurationType="); + builder.append(this.configurationType); + builder.append("]"); + return builder.toString(); + } + +} diff --git a/src/main/java/ch/ethz/seb/sebserver/webservice/weblayer/api/ExamAPI_V1_Controller.java b/src/main/java/ch/ethz/seb/sebserver/webservice/weblayer/api/ExamAPI_V1_Controller.java index 33ee41bd..6be23906 100644 --- a/src/main/java/ch/ethz/seb/sebserver/webservice/weblayer/api/ExamAPI_V1_Controller.java +++ b/src/main/java/ch/ethz/seb/sebserver/webservice/weblayer/api/ExamAPI_V1_Controller.java @@ -263,7 +263,7 @@ public class ExamAPI_V1_Controller { @RequestParam(required = false) final MultiValueMap formParams, final Principal principal, final HttpServletRequest request, - final HttpServletResponse response) throws IOException { + final HttpServletResponse response) { return CompletableFuture.runAsync( () -> streamExamConfig(connectionToken, formParams, principal, response), diff --git a/src/test/java/ch/ethz/seb/sebserver/gui/integration/UseCasesIntegrationTest.java b/src/test/java/ch/ethz/seb/sebserver/gui/integration/UseCasesIntegrationTest.java index 332feccb..66711c56 100644 --- a/src/test/java/ch/ethz/seb/sebserver/gui/integration/UseCasesIntegrationTest.java +++ b/src/test/java/ch/ethz/seb/sebserver/gui/integration/UseCasesIntegrationTest.java @@ -23,6 +23,8 @@ import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; +import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigCreationInfo; +import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.*; import org.apache.commons.codec.Charsets; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.BooleanUtils; @@ -103,29 +105,6 @@ import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.clientconfig. import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.clientconfig.GetClientConfigPage; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.clientconfig.NewClientConfig; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.clientconfig.SaveClientConfig; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.ExportPlainXML; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetConfigAttributes; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetConfigurationPage; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetConfigurationTableValues; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetConfigurationValuePage; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetConfigurationValues; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetConfigurations; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetExamConfigNode; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetExamConfigNodePage; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetFollowupConfiguration; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetOrientationPage; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetOrientations; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetViewList; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetViewPage; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.GetViews; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.ImportExamConfigOnExistingConfig; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.ImportNewExamConfig; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.NewExamConfig; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.SaveExamConfig; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.SaveExamConfigHistory; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.SaveExamConfigTableValues; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.SaveExamConfigValue; -import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.seb.examconfig.SebExamConfigUndo; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.useraccount.ActivateUserAccount; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.useraccount.ChangePassword; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.useraccount.GetUserAccount; @@ -1342,6 +1321,9 @@ public class UseCasesIntegrationTest extends GuiIntegrationTest { "examAdmin2", "examAdmin2", new GetConfigAttributes(), + new GetConfigurationValues(), + new GetConfigurationValuePage(), + new GetConfigurationTableValues(), new GetExamConfigNodePage(), new SaveExamConfigHistory(), new ExportExamConfig(), @@ -1407,6 +1389,64 @@ public class UseCasesIntegrationTest extends GuiIntegrationTest { assertNotNull(importedConfig); + // Check imported value + final Configuration fallow_up = restService.getBuilder(GetFollowupConfiguration.class) + .withURIVariable(API.PARAM_MODEL_ID, String.valueOf(importedConfig.configurationNodeId)) + .call() + .getOrThrow(); + assertNotNull(fallow_up); + + List values = restService.getBuilder(GetConfigurationValues.class) + .withQueryParam( + ConfigurationValue.FILTER_ATTR_CONFIGURATION_ID, + String.valueOf(fallow_up.id)) + .call() + .getOrThrow(); + + assertNotNull(values); + attributes + .stream() + .filter(attr -> "URLFilterEnable".equals(attr.name)) + .findFirst() + .ifPresentOrElse( + attr -> { + values.stream() + .filter(cv -> cv.attributeId.equals(attr.id)) + .findFirst() + .ifPresentOrElse( + val -> assertEquals(Constants.TRUE_STRING, val.value), + () -> fail("Expect to find one value") + ); + }, + () -> fail("Expect to find one attribute") + ); + + attributes + .stream() + .filter(attr -> "URLFilterRules".equals(attr.name)) + .findFirst() + .ifPresentOrElse( + parent -> { + attributes.stream() + .filter(attr -> parent.id.equals(attr.parentId) && "URLFilterRules.expression".equals(attr.name)) + .findFirst() + .ifPresentOrElse( + tAttr -> { + values.stream() + .filter(tVal -> tVal.attributeId.equals(tAttr.id) && tVal.listIndex == 0) + .findFirst() + .ifPresentOrElse( + firstTVal -> assertEquals("jrtjrtzj", firstTVal.value), + () -> fail("Expect to find one value") + ); + }, + () -> fail("Expect to find one attribute") + ); + + }, + () -> fail("Expect to find one attribute") + ); + // import with the same name should cause an exception try { restService @@ -1488,6 +1528,7 @@ public class UseCasesIntegrationTest extends GuiIntegrationTest { // ************************************* // Use Case 15: Login as examAdmin2 and get views and orientations // - test Views API + // - create configuration template form existing configuration public void testUsecase15() throws IOException { final RestServiceImpl restService = createRestServiceForUser( "examAdmin2", @@ -1495,7 +1536,11 @@ public class UseCasesIntegrationTest extends GuiIntegrationTest { new GetViews(), new GetViewPage(), new GetOrientationPage(), - new GetOrientations()); + new GetOrientations(), + new CopyConfiguration(), + new GetTemplateAttributePage(), + new GetExamConfigNodePage(), + new GetTemplateAttribute()); final List views = restService .getBuilder(GetViews.class) @@ -1503,12 +1548,53 @@ public class UseCasesIntegrationTest extends GuiIntegrationTest { .getOrThrow(); assertNotNull(views); - assertTrue(views.size() == 11); + assertEquals(11, views.size()); + views.forEach(v -> assertEquals(v.templateId, ConfigurationNode.DEFAULT_TEMPLATE_ID)); final List orientations = restService .getBuilder(GetOrientations.class) .call() .getOrThrow(); + orientations.forEach(o -> assertEquals(o.templateId, ConfigurationNode.DEFAULT_TEMPLATE_ID)); + + // get configuration page and first config from the page to copy as template + final Result> pageResponse = restService + .getBuilder(GetExamConfigNodePage.class) + .call(); + + assertNotNull(pageResponse); + assertFalse(pageResponse.hasError()); + final Page page = pageResponse.get(); + assertFalse(page.content.isEmpty()); + + final ConfigurationNode configurationNode = page.content.get(0); + assertEquals("New Exam Config", configurationNode.name); + + ConfigCreationInfo copyInfo = new ConfigCreationInfo( + configurationNode.id, + "Config Template", + "Test Config Template creation", + false, + ConfigurationType.TEMPLATE + ); + + ConfigurationNode template = restService + .getBuilder(CopyConfiguration.class) + .withBody(copyInfo) + .call() + .getOrThrow(); + assertNotNull(template); + // get template page and check new template is available + Page templates = restService + .getBuilder(GetExamConfigNodePage.class) + .withQueryParam(ConfigurationNode.FILTER_ATTR_TYPE, ConfigurationType.TEMPLATE.name()) + .call() + .getOrThrow(); + assertNotNull(templates); + assertFalse(templates.isEmpty()); + ConfigurationNode newTemplate = templates.content.get(0); + assertNotNull(newTemplate); + assertEquals("Config Template", newTemplate.name); assertNotNull(orientations); } diff --git a/src/test/resources/importTest.seb b/src/test/resources/importTest.seb index 383389a2..ee76c280 100644 --- a/src/test/resources/importTest.seb +++ b/src/test/resources/importTest.seb @@ -1,973 +1,973 @@ - - - - - URLFilterEnable - - URLFilterEnableContentFilter - - URLFilterIgnoreList - - URLFilterMessage - 0 - URLFilterRules - - - active - - regex - - expression - jrtjrtzj - action - 0 - - - active - - regex - - expression - rtjrtj - action - 1 - - - allowBrowsingBackForward - - allowDictation - - allowDictionaryLookup - - allowDisplayMirroring - - allowDownUploads - - allowFlashFullscreen - - allowPDFPlugIn - - allowPreferencesWindow - - allowQuit - - allowScreenSharing - - allowSiri - - allowSpellCheck - - allowSwitchToApplications - - allowUserSwitching - - allowVideoCapture - - allowVirtualMachine - - allowWLAN - - allowedDisplayBuiltin - - allowedDisplaysMaxNumber - 3 - allowiOSBetaVersionNumber - 12 - allowiOSVersionNumberMajor - 9 - allowiOSVersionNumberMinor - 0 - allowiOSVersionNumberPatch - 0 - blacklistURLFilter - jrtjrtzj - blockPopUpWindows - - browserExamKey - - browserMessagingPingTime - 120000 - browserMessagingSocket - ws:\localhost:8706 - browserScreenKeyboard - - browserURLSalt - - browserUserAgent - - browserUserAgentMac - 0 - browserUserAgentMacCustom - - browserUserAgentWinDesktopMode - 0 - browserUserAgentWinDesktopModeCustom - - browserUserAgentWinTouchMode - 0 - browserUserAgentWinTouchModeCustom - - browserUserAgentWinTouchModeIPad - Mozilla/5.0 (iPad; CPU OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1 - browserUserAgentiOS - 0 - browserUserAgentiOSCustom - - browserViewMode - 0 - browserWindowAllowReload - - browserWindowShowURL - 1 - chooseFileToUploadPolicy - 0 - createNewDesktop - - downloadAndOpenSebConfig - - downloadDirectoryOSX - /var/mobile/Containers/Data/Application/DE2E302B-36C4-48B7-A29E-804F8B27C2F6/Downloads - downloadDirectoryWin - Desktop - downloadPDFFiles - - embeddedCertificates - - enableAltEsc - - enableAltF4 - - enableAltMouseWheel - - enableAltTab - - enableAppSwitcherCheck - - enableBrowserWindowToolbar - - enableCtrlEsc - - enableDrawingEditor - - enableEsc - - enableF1 - - enableF10 - - enableF11 - - enableF12 - - enableF2 - - enableF3 - - enableF4 - - enableF5 - - enableF6 - - enableF7 - - enableF8 - - enableF9 - - enableJava - - enableJavaScript - - enableLogging - - enablePlugIns - - enablePrintScreen - - enablePrivateClipboard - - enableRightMouse - - enableSebBrowser - - enableStartMenu - - enableTouchExit - - enableURLContentFilter - - enableURLFilter - - enableZoomPage - - enableZoomText - - examConfigKeyContainedKeys - - examKeySalt - sq3GTYYzHLg6MT9b+SAi9vEA3TuMIHDxus8hzwe2KNA= - exitKey1 - 2 - exitKey2 - 10 - exitKey3 - 5 - forceAppFolderInstall - - hashedAdminPassword - - hashedQuitPassword - - hideBrowserWindowToolbar - - hookKeys - - ignoreExitKeys - - ignoreQuitPassword - - insideSebEnableChangeAPassword - - insideSebEnableEaseOfAccess - - insideSebEnableLockThisComputer - - insideSebEnableLogOff - - insideSebEnableShutDown - - insideSebEnableStartTaskManager - - insideSebEnableSwitchUser - - insideSebEnableVmWareClientShade - - killExplorerShell - - logDirectoryOSX - - logDirectoryWin - - logLevel - 3 - mainBrowserWindowHeight - 100% - mainBrowserWindowPositioning - 1 - mainBrowserWindowWidth - 100% - minMacOSVersion - 0 - mobileAllowGuidedAccess - - mobileAllowQRCodeConfig - - mobileAllowSingleAppMode - - mobileEnableASAM - - mobileEnableGuidedAccessLinkTransform - - mobilePreventAutoLock - - mobileShowSettings - - mobileStatusBarAppearance - 1 - mobileStatusBarAppearanceExtended - 1 - mobileSupportedFormFactorsCompact - - mobileSupportedFormFactorsNonTelephonyCompact - - mobileSupportedFormFactorsRegular - - mobileSupportedScreenOrientationsCompactLandscapeLeft - - mobileSupportedScreenOrientationsCompactLandscapeRight - - mobileSupportedScreenOrientationsCompactPortrait - - mobileSupportedScreenOrientationsCompactPortraitUpsideDown - - mobileSupportedScreenOrientationsRegularLandscapeLeft - - mobileSupportedScreenOrientationsRegularLandscapeRight - - mobileSupportedScreenOrientationsRegularPortrait - - mobileSupportedScreenOrientationsRegularPortraitUpsideDown - - monitorProcesses - - newBrowserWindowAllowReload - - newBrowserWindowByLinkBlockForeign - - newBrowserWindowByLinkHeight - 100% - newBrowserWindowByLinkPolicy - 2 - newBrowserWindowByLinkPositioning - 2 - newBrowserWindowByLinkWidth - 1000 - newBrowserWindowByScriptBlockForeign - - newBrowserWindowByScriptPolicy - 2 - newBrowserWindowNavigation - - newBrowserWindowShowReloadWarning - - newBrowserWindowShowURL - 2 - openDownloads - - originatorVersion - SEB_iOS_2.1.12_11838 - oskBehavior - 2 - outsideSebEnableChangeAPassword - - outsideSebEnableEaseOfAccess - - outsideSebEnableLockThisComputer - - outsideSebEnableLogOff - - outsideSebEnableShutDown - - outsideSebEnableStartTaskManager - - outsideSebEnableSwitchUser - - outsideSebEnableVmWareClientShade - - permittedProcesses - - - active - - allowUserToChooseApp - - allowedExecutables - - arguments - - autostart - - description - - executable - firefox.exe - iconInTaskbar - - identifier - Firefox - os - 1 - path - ../xulrunner/ - runInBackground - - strongKill - - title - SEB - windowHandlingProcess - - originalName - firefox.exe - - - active - - autostart - - iconInTaskbar - - runInBackground - - allowUserToChooseApp - - strongKill - - os - 0 - title - eheth - description - etheth - executable - tzjtzjtzj - originalName - eh - windowHandlingProcess - rh - path - rh - identifier - rehreh - arguments - - - active - - argument - erherh - - - active - - argument - eherh - - - active - - argument - rtherhe - - - - - pinEmbeddedCertificates - - prohibitedProcesses - - - active - - currentUser - - strongKill - - os - 1 - executable - join.me - originalName - join.me - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - RPCSuite - originalName - RPCSuite - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - RPCService - originalName - RPCService - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - RemotePCDesktop - originalName - RemotePCDesktop - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - beamyourscreen-host - originalName - beamyourscreen-host - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - AeroAdmin - originalName - AeroAdmin - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - Mikogo-host - originalName - Mikogo-host - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - chromoting - originalName - chromoting - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - vncserverui - originalName - vncserverui - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - vncviewer - originalName - vncviewer - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - vncserver - originalName - vncserver - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - TeamViewer - originalName - TeamViewer - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - GotoMeetingWinStore - originalName - GotoMeetingWinStore - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - g2mcomm.exe - originalName - g2mcomm.exe - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - SkypeHost - originalName - SkypeHost - description - - identifier - - windowHandlingProcess - - user - - - - active - - currentUser - - strongKill - - os - 1 - executable - Skype - originalName - Skype - description - - identifier - - windowHandlingProcess - - user - - - - proxies - - AutoConfigurationEnabled - - AutoConfigurationJavaScript - - AutoConfigurationURL - - AutoDiscoveryEnabled - - ExceptionsList - - ExcludeSimpleHostnames - - FTPEnable - - FTPPassive - - FTPPassword - - FTPPort - 21 - FTPProxy - - FTPRequiresPassword - - FTPUsername - - HTTPEnable - - HTTPPassword - - HTTPPort - 80 - HTTPProxy - - HTTPRequiresPassword - - HTTPSEnable - - HTTPSPassword - zul,.lli - HTTPSPort - 443 - HTTPSProxy - zilzklz - HTTPSRequiresPassword - - HTTPSUsername - luzulz - HTTPUsername - - RTSPEnable - - RTSPPassword - - RTSPPort - 554 - RTSPProxy - - RTSPRequiresPassword - - RTSPUsername - - SOCKSEnable - - SOCKSPassword - - SOCKSPort - 1080 - SOCKSProxy - - SOCKSRequiresPassword - - SOCKSUsername - - - proxySettingsPolicy - 0 - quitURL - - quitURLConfirm - - removeBrowserProfile - - removeLocalStorage - - restartExamPasswordProtected - - restartExamText - - restartExamURL - - restartExamUseStartURL - - sebConfigPurpose - 0 - sebMode - 0 - sebServerFallback - - sebServerURL - - sebServicePolicy - 2 - sendBrowserExamKey - - showBackToStartButton - - showInputLanguage - - showMenuBar - - showNavigationButtons - - showReloadButton - - showReloadWarning - - showScanQRCodeButton - - showSettingsInApp - - showTaskBar - - showTime - - startURL - https://demo.safeexambrowser.org/exams - startURLAllowDeepLink - - startURLAppendQueryParameter - - taskBarHeight - 40 - touchOptimized - - urlFilterRegex - - urlFilterTrustedContent - - whitelistURLFilter - ^.*?:\/\/((((rtjrtj)|(.*?\.rtjrtj)))|(((rtjrtj)|(.*?\.rtjrtj))\/.*?))(()|(\?.*?))$ - zoomMode - 0 - startResource - - useAsymmetricOnlyEncryption - - allowSpellCheckDictionary - - additionalDictionaries - - audioControlEnabled - - audioMute - - audioVolumeLevel - 100 - audioSetVolumeLevel - - allowAudioCapture - - browserWindowTitleSuffix - - backgroundOpenSEBConfig - - additionalResources - - allowWlan - - lockOnMessageSocketClose - - allowUserAppFolderInstall - - detectStoppedProcess - - insideSebEnableEnableNetworkConnectionSelector - - + + + + + URLFilterEnable + + URLFilterEnableContentFilter + + URLFilterIgnoreList + + URLFilterMessage + 0 + URLFilterRules + + + active + + regex + + expression + jrtjrtzj + action + 0 + + + active + + regex + + expression + rtjrtj + action + 1 + + + allowBrowsingBackForward + + allowDictation + + allowDictionaryLookup + + allowDisplayMirroring + + allowDownUploads + + allowFlashFullscreen + + allowPDFPlugIn + + allowPreferencesWindow + + allowQuit + + allowScreenSharing + + allowSiri + + allowSpellCheck + + allowSwitchToApplications + + allowUserSwitching + + allowVideoCapture + + allowVirtualMachine + + allowWLAN + + allowedDisplayBuiltin + + allowedDisplaysMaxNumber + 3 + allowiOSBetaVersionNumber + 12 + allowiOSVersionNumberMajor + 9 + allowiOSVersionNumberMinor + 0 + allowiOSVersionNumberPatch + 0 + blacklistURLFilter + jrtjrtzj + blockPopUpWindows + + browserExamKey + + browserMessagingPingTime + 120000 + browserMessagingSocket + ws:\localhost:8706 + browserScreenKeyboard + + browserURLSalt + + browserUserAgent + + browserUserAgentMac + 0 + browserUserAgentMacCustom + + browserUserAgentWinDesktopMode + 0 + browserUserAgentWinDesktopModeCustom + + browserUserAgentWinTouchMode + 0 + browserUserAgentWinTouchModeCustom + + browserUserAgentWinTouchModeIPad + Mozilla/5.0 (iPad; CPU OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1 + browserUserAgentiOS + 0 + browserUserAgentiOSCustom + + browserViewMode + 0 + browserWindowAllowReload + + browserWindowShowURL + 1 + chooseFileToUploadPolicy + 0 + createNewDesktop + + downloadAndOpenSebConfig + + downloadDirectoryOSX + /var/mobile/Containers/Data/Application/DE2E302B-36C4-48B7-A29E-804F8B27C2F6/Downloads + downloadDirectoryWin + Desktop + downloadPDFFiles + + embeddedCertificates + + enableAltEsc + + enableAltF4 + + enableAltMouseWheel + + enableAltTab + + enableAppSwitcherCheck + + enableBrowserWindowToolbar + + enableCtrlEsc + + enableDrawingEditor + + enableEsc + + enableF1 + + enableF10 + + enableF11 + + enableF12 + + enableF2 + + enableF3 + + enableF4 + + enableF5 + + enableF6 + + enableF7 + + enableF8 + + enableF9 + + enableJava + + enableJavaScript + + enableLogging + + enablePlugIns + + enablePrintScreen + + enablePrivateClipboard + + enableRightMouse + + enableSebBrowser + + enableStartMenu + + enableTouchExit + + enableURLContentFilter + + enableURLFilter + + enableZoomPage + + enableZoomText + + examConfigKeyContainedKeys + + examKeySalt + sq3GTYYzHLg6MT9b+SAi9vEA3TuMIHDxus8hzwe2KNA= + exitKey1 + 2 + exitKey2 + 10 + exitKey3 + 5 + forceAppFolderInstall + + hashedAdminPassword + + hashedQuitPassword + + hideBrowserWindowToolbar + + hookKeys + + ignoreExitKeys + + ignoreQuitPassword + + insideSebEnableChangeAPassword + + insideSebEnableEaseOfAccess + + insideSebEnableLockThisComputer + + insideSebEnableLogOff + + insideSebEnableShutDown + + insideSebEnableStartTaskManager + + insideSebEnableSwitchUser + + insideSebEnableVmWareClientShade + + killExplorerShell + + logDirectoryOSX + + logDirectoryWin + + logLevel + 3 + mainBrowserWindowHeight + 100% + mainBrowserWindowPositioning + 1 + mainBrowserWindowWidth + 100% + minMacOSVersion + 0 + mobileAllowGuidedAccess + + mobileAllowQRCodeConfig + + mobileAllowSingleAppMode + + mobileEnableASAM + + mobileEnableGuidedAccessLinkTransform + + mobilePreventAutoLock + + mobileShowSettings + + mobileStatusBarAppearance + 1 + mobileStatusBarAppearanceExtended + 1 + mobileSupportedFormFactorsCompact + + mobileSupportedFormFactorsNonTelephonyCompact + + mobileSupportedFormFactorsRegular + + mobileSupportedScreenOrientationsCompactLandscapeLeft + + mobileSupportedScreenOrientationsCompactLandscapeRight + + mobileSupportedScreenOrientationsCompactPortrait + + mobileSupportedScreenOrientationsCompactPortraitUpsideDown + + mobileSupportedScreenOrientationsRegularLandscapeLeft + + mobileSupportedScreenOrientationsRegularLandscapeRight + + mobileSupportedScreenOrientationsRegularPortrait + + mobileSupportedScreenOrientationsRegularPortraitUpsideDown + + monitorProcesses + + newBrowserWindowAllowReload + + newBrowserWindowByLinkBlockForeign + + newBrowserWindowByLinkHeight + 100% + newBrowserWindowByLinkPolicy + 2 + newBrowserWindowByLinkPositioning + 2 + newBrowserWindowByLinkWidth + 1000 + newBrowserWindowByScriptBlockForeign + + newBrowserWindowByScriptPolicy + 2 + newBrowserWindowNavigation + + newBrowserWindowShowReloadWarning + + newBrowserWindowShowURL + 2 + openDownloads + + originatorVersion + SEB_iOS_2.1.12_11838 + oskBehavior + 2 + outsideSebEnableChangeAPassword + + outsideSebEnableEaseOfAccess + + outsideSebEnableLockThisComputer + + outsideSebEnableLogOff + + outsideSebEnableShutDown + + outsideSebEnableStartTaskManager + + outsideSebEnableSwitchUser + + outsideSebEnableVmWareClientShade + + permittedProcesses + + + active + + allowUserToChooseApp + + allowedExecutables + + arguments + + autostart + + description + + executable + firefox.exe + iconInTaskbar + + identifier + Firefox + os + 1 + path + ../xulrunner/ + runInBackground + + strongKill + + title + SEB + windowHandlingProcess + + originalName + firefox.exe + + + active + + autostart + + iconInTaskbar + + runInBackground + + allowUserToChooseApp + + strongKill + + os + 0 + title + eheth + description + etheth + executable + tzjtzjtzj + originalName + eh + windowHandlingProcess + rh + path + rh + identifier + rehreh + arguments + + + active + + argument + erherh + + + active + + argument + eherh + + + active + + argument + rtherhe + + + + + pinEmbeddedCertificates + + prohibitedProcesses + + + active + + currentUser + + strongKill + + os + 1 + executable + join.me + originalName + join.me + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + RPCSuite + originalName + RPCSuite + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + RPCService + originalName + RPCService + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + RemotePCDesktop + originalName + RemotePCDesktop + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + beamyourscreen-host + originalName + beamyourscreen-host + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + AeroAdmin + originalName + AeroAdmin + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + Mikogo-host + originalName + Mikogo-host + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + chromoting + originalName + chromoting + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + vncserverui + originalName + vncserverui + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + vncviewer + originalName + vncviewer + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + vncserver + originalName + vncserver + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + TeamViewer + originalName + TeamViewer + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + GotoMeetingWinStore + originalName + GotoMeetingWinStore + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + g2mcomm.exe + originalName + g2mcomm.exe + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + SkypeHost + originalName + SkypeHost + description + + identifier + + windowHandlingProcess + + user + + + + active + + currentUser + + strongKill + + os + 1 + executable + Skype + originalName + Skype + description + + identifier + + windowHandlingProcess + + user + + + + proxies + + AutoConfigurationEnabled + + AutoConfigurationJavaScript + + AutoConfigurationURL + + AutoDiscoveryEnabled + + ExceptionsList + + ExcludeSimpleHostnames + + FTPEnable + + FTPPassive + + FTPPassword + + FTPPort + 21 + FTPProxy + + FTPRequiresPassword + + FTPUsername + + HTTPEnable + + HTTPPassword + + HTTPPort + 80 + HTTPProxy + + HTTPRequiresPassword + + HTTPSEnable + + HTTPSPassword + zul,.lli + HTTPSPort + 443 + HTTPSProxy + zilzklz + HTTPSRequiresPassword + + HTTPSUsername + luzulz + HTTPUsername + + RTSPEnable + + RTSPPassword + + RTSPPort + 554 + RTSPProxy + + RTSPRequiresPassword + + RTSPUsername + + SOCKSEnable + + SOCKSPassword + + SOCKSPort + 1080 + SOCKSProxy + + SOCKSRequiresPassword + + SOCKSUsername + + + proxySettingsPolicy + 0 + quitURL + + quitURLConfirm + + removeBrowserProfile + + removeLocalStorage + + restartExamPasswordProtected + + restartExamText + + restartExamURL + + restartExamUseStartURL + + sebConfigPurpose + 0 + sebMode + 0 + sebServerFallback + + sebServerURL + + sebServicePolicy + 2 + sendBrowserExamKey + + showBackToStartButton + + showInputLanguage + + showMenuBar + + showNavigationButtons + + showReloadButton + + showReloadWarning + + showScanQRCodeButton + + showSettingsInApp + + showTaskBar + + showTime + + startURL + https://demo.safeexambrowser.org/exams + startURLAllowDeepLink + + startURLAppendQueryParameter + + taskBarHeight + 40 + touchOptimized + + urlFilterRegex + + urlFilterTrustedContent + + whitelistURLFilter + ^.*?:\/\/((((rtjrtj)|(.*?\.rtjrtj)))|(((rtjrtj)|(.*?\.rtjrtj))\/.*?))(()|(\?.*?))$ + zoomMode + 0 + startResource + + useAsymmetricOnlyEncryption + + allowSpellCheckDictionary + + additionalDictionaries + + audioControlEnabled + + audioMute + + audioVolumeLevel + 100 + audioSetVolumeLevel + + allowAudioCapture + + browserWindowTitleSuffix + + backgroundOpenSEBConfig + + additionalResources + + allowWlan + + lockOnMessageSocketClose + + allowUserAppFolderInstall + + detectStoppedProcess + + insideSebEnableEnableNetworkConnectionSelector + + \ No newline at end of file