diff options
Diffstat (limited to 'it')
1085 files changed, 0 insertions, 72876 deletions
diff --git a/it/it-plugins/access-secured-props-plugin/pom.xml b/it/it-plugins/access-secured-props-plugin/pom.xml deleted file mode 100644 index fcac07498c9..00000000000 --- a/it/it-plugins/access-secured-props-plugin/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>access-secured-props-plugin</artifactId> - <packaging>sonar-plugin</packaging> - <name>Plugins :: Access Secured Properties</name> - <version>1.0.2.42</version> - <description>Access .secured properties</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.18.0.372</version> - <extensions>true</extensions> - <configuration> - <pluginClass>AccessSecuredPropsPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsPlugin.java b/it/it-plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsPlugin.java deleted file mode 100644 index a4e7da75764..00000000000 --- a/it/it-plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsPlugin.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.SonarPlugin; - -import java.util.Arrays; -import java.util.List; - -public class AccessSecuredPropsPlugin extends SonarPlugin { - - public List getExtensions() { - return Arrays.asList(AccessSecuredPropsSensor.class, AccessSecuredPropsTaskExtension.class); - } - -} diff --git a/it/it-plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsSensor.java b/it/it-plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsSensor.java deleted file mode 100644 index 9aca5155bb9..00000000000 --- a/it/it-plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsSensor.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.batch.Sensor; -import org.sonar.api.batch.SensorContext; -import org.sonar.api.config.Settings; -import org.sonar.api.resources.Project; - -@Properties({ - @Property( - key = "accessSecuredFromSensor", - name = "Property to decide if sensor should access secured properties", - defaultValue = "false") -}) -public class AccessSecuredPropsSensor implements Sensor { - - private Settings settings; - - public AccessSecuredPropsSensor(Settings settings) { - this.settings = settings; - } - - public boolean shouldExecuteOnProject(Project project) { - return true; - } - - public void analyse(Project project, SensorContext sensorContext) { - if ("true".equals(settings.getString("accessSecuredFromSensor"))) { - settings.getString("foo.bar.secured"); - } - } -} diff --git a/it/it-plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsTaskExtension.java b/it/it-plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsTaskExtension.java deleted file mode 100644 index 0132b56eefb..00000000000 --- a/it/it-plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsTaskExtension.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.batch.Sensor; -import org.sonar.api.batch.SensorContext; -import org.sonar.api.config.Settings; -import org.sonar.api.task.TaskExtension; -import org.sonar.api.resources.Project; - -@Properties({ - @Property( - key = "accessSecuredFromTask", - name = "Property to decide if task extension should access secured properties", - defaultValue = "false") -}) -public class AccessSecuredPropsTaskExtension implements TaskExtension { - - private Settings settings; - - public AccessSecuredPropsTaskExtension(Settings settings) { - this.settings = settings; - } - - public void start() { - if ("true".equals(settings.getString("accessSecuredFromTask"))) { - settings.getString("foo.bar.secured"); - } - } -} diff --git a/it/it-plugins/base-auth-plugin/pom.xml b/it/it-plugins/base-auth-plugin/pom.xml deleted file mode 100644 index c825b92a94e..00000000000 --- a/it/it-plugins/base-auth-plugin/pom.xml +++ /dev/null @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>base-auth-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <name>Plugins :: Fake Base Authentication Plugin</name> - <description>Test for base authentication plugin (like openid)</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>javax.servlet-api</artifactId> - <version>3.0.1</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - <version>17.0</version> - <exclusions> - <exclusion> - <!-- should be declared with scope provided --> - <groupId>com.google.code.findbugs</groupId> - <artifactId>jsr305</artifactId> - </exclusion> - </exclusions> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <configuration> - <pluginClass>FakeBaseAuthPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/base-auth-plugin/src/main/java/FakeBaseAuthPlugin.java b/it/it-plugins/base-auth-plugin/src/main/java/FakeBaseAuthPlugin.java deleted file mode 100644 index ee04f716930..00000000000 --- a/it/it-plugins/base-auth-plugin/src/main/java/FakeBaseAuthPlugin.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.ArrayList; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public final class FakeBaseAuthPlugin extends SonarPlugin { - - public List getExtensions() { - List extensions = new ArrayList(); - extensions.add(FakeBaseIdProvider.class); - return extensions; - } - -} diff --git a/it/it-plugins/base-auth-plugin/src/main/java/FakeBaseIdProvider.java b/it/it-plugins/base-auth-plugin/src/main/java/FakeBaseIdProvider.java deleted file mode 100644 index 2e191e1e306..00000000000 --- a/it/it-plugins/base-auth-plugin/src/main/java/FakeBaseIdProvider.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.io.IOException; -import org.sonar.api.config.Settings; -import org.sonar.api.server.authentication.BaseIdentityProvider; -import org.sonar.api.server.authentication.Display; -import org.sonar.api.server.authentication.UnauthorizedException; -import org.sonar.api.server.authentication.UserIdentity; - -import static com.google.common.collect.Sets.newHashSet; - -public class FakeBaseIdProvider implements BaseIdentityProvider { - - private static final String ENABLED = "sonar.auth.fake-base-id-provider.enabled"; - private static final String ALLOWS_USERS_TO_SIGN_UP = "sonar.auth.fake-base-id-provider.allowsUsersToSignUp"; - private static final String ENABLED_GROUPS_SYNC = "sonar.auth.fake-base-id-provider.enabledGroupsSync"; - private static final String GROUPS = "sonar.auth.fake-base-id-provider.groups"; - - private static final String USER_INFO = "sonar.auth.fake-base-id-provider.user"; - - private static final String THROW_UNAUTHORIZED_EXCEPTION = "sonar.auth.fake-base-id-provider.throwUnauthorizedMessage"; - - private final Settings settings; - - public FakeBaseIdProvider(Settings settings) { - this.settings = settings; - } - - @Override - public void init(Context context) { - String userInfoProperty = settings.getString(USER_INFO); - if (userInfoProperty == null) { - throw new IllegalStateException(String.format("The property %s is required", USER_INFO)); - } - boolean throwUnauthorizedException = settings.getBoolean(THROW_UNAUTHORIZED_EXCEPTION); - if (throwUnauthorizedException) { - throw new UnauthorizedException("A functional error has happened"); - } - - String[] userInfos = userInfoProperty.split(","); - UserIdentity.Builder builder = UserIdentity.builder() - .setLogin(userInfos[0]) - .setProviderLogin(userInfos[1]) - .setName(userInfos[2]) - .setEmail(userInfos[3]); - - if (settings.getBoolean(ENABLED_GROUPS_SYNC)) { - builder.setGroups(newHashSet(settings.getStringArray(GROUPS))); - } - - context.authenticate(builder.build()); - try { - context.getResponse().sendRedirect("/"); - } catch (IOException e) { - throw new IllegalStateException("Fail to redirect to home", e); - } - } - - @Override - public String getKey() { - return "fake-base-id-provider"; - } - - @Override - public String getName() { - return "Fake base identity provider"; - } - - @Override - public Display getDisplay() { - return Display.builder() - .setIconPath("/static/baseauthplugin/base.png") - .setBackgroundColor("#205081") - .build(); - } - - @Override - public boolean isEnabled() { - return settings.getBoolean(ENABLED); - } - - @Override - public boolean allowsUsersToSignUp() { - if (settings.hasKey(ALLOWS_USERS_TO_SIGN_UP)) { - return settings.getBoolean(ALLOWS_USERS_TO_SIGN_UP); - } - // If property is not defined, default behaviour is not always allow users to sign up - return true; - } -} diff --git a/it/it-plugins/base-auth-plugin/src/main/resources/static/base.png b/it/it-plugins/base-auth-plugin/src/main/resources/static/base.png Binary files differdeleted file mode 100644 index 217d2a0bdf8..00000000000 --- a/it/it-plugins/base-auth-plugin/src/main/resources/static/base.png +++ /dev/null diff --git a/it/it-plugins/base-auth-plugin/src/resources/static/base.png b/it/it-plugins/base-auth-plugin/src/resources/static/base.png Binary files differdeleted file mode 100644 index 217d2a0bdf8..00000000000 --- a/it/it-plugins/base-auth-plugin/src/resources/static/base.png +++ /dev/null diff --git a/it/it-plugins/batch-plugin/pom.xml b/it/it-plugins/batch-plugin/pom.xml deleted file mode 100644 index 084bd61edc9..00000000000 --- a/it/it-plugins/batch-plugin/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>batch-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <name>SonarQube Integration Tests :: Plugins :: Batch</name> - <description>Main plugin for batch tests</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <extensions>true</extensions> - <configuration> - <pluginClass>com.sonarsource.BatchPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/BatchPlugin.java b/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/BatchPlugin.java deleted file mode 100644 index 08f533ecea0..00000000000 --- a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/BatchPlugin.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource; - -import com.sonarsource.decimal_scale_of_measures.DecimalScaleMeasureComputer; -import com.sonarsource.decimal_scale_of_measures.DecimalScaleMetric; -import com.sonarsource.decimal_scale_of_measures.DecimalScaleProperty; -import com.sonarsource.decimal_scale_of_measures.DecimalScaleSensor; -import org.sonar.api.Plugin; - -import static java.util.Arrays.asList; - -public class BatchPlugin implements Plugin { - - @Override - public void define(Context context) { - context.addExtensions(asList( - // SONAR-6939 decimal_scale_of_measures - DecimalScaleMeasureComputer.class, - DecimalScaleMetric.class, - DecimalScaleSensor.class, - DecimalScaleProperty.definition(), - - DumpSettingsInitializer.class, - RaiseMessageException.class, - TempFolderExtension.class, - WaitingSensor.class - )); - } -} diff --git a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/DumpSettingsInitializer.java b/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/DumpSettingsInitializer.java deleted file mode 100644 index 5149d72779c..00000000000 --- a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/DumpSettingsInitializer.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.Map.Entry; -import java.util.Set; -import java.util.TreeMap; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.batch.Initializer; -import org.sonar.api.config.Settings; -import org.sonar.api.resources.Project; - -@Properties({ - @Property( - key = DumpSettingsInitializer.SONAR_SHOW_SETTINGS, - type = PropertyType.STRING, - name = "Property to decide if it should output settings", - multiValues = true, - defaultValue = "") -}) -public class DumpSettingsInitializer extends Initializer { - - public static final String SONAR_SHOW_SETTINGS = "sonar.showSettings"; - private Settings settings; - - public DumpSettingsInitializer(Settings settings) { - this.settings = settings; - } - - @Override - public boolean shouldExecuteOnProject(Project project) { - return true; - } - - @Override - public void execute(Project project) { - Set<String> settingsToDump = new HashSet<>(Arrays.asList(settings.getStringArray(SONAR_SHOW_SETTINGS))); - if (!settingsToDump.isEmpty()) { - TreeMap<String, String> treemap = new TreeMap<String, String>(settings.getProperties()); - for (Entry<String, String> prop : treemap.entrySet()) { - if (settingsToDump.contains(prop.getKey())) { - System.out.println(" o " + project.getKey() + ":" + prop.getKey() + " = " + prop.getValue()); - } - } - } - } -} diff --git a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/RaiseMessageException.java b/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/RaiseMessageException.java deleted file mode 100644 index a1acf47fb39..00000000000 --- a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/RaiseMessageException.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource; - -import org.sonar.api.batch.Sensor; -import org.sonar.api.batch.SensorContext; -import org.sonar.api.config.Settings; -import org.sonar.api.resources.Project; -import org.sonar.api.utils.MessageException; - -public class RaiseMessageException implements Sensor { - - private final Settings settings; - - public RaiseMessageException(Settings settings) { - this.settings = settings; - } - - @Override - public boolean shouldExecuteOnProject(Project project) { - return settings.getBoolean("raiseMessageException"); - } - - @Override - public void analyse(Project project, SensorContext sensorContext) { - throw MessageException.of("Error message from plugin"); - } -}
\ No newline at end of file diff --git a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/TempFolderExtension.java b/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/TempFolderExtension.java deleted file mode 100644 index 1549471ff0f..00000000000 --- a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/TempFolderExtension.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource; - -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.batch.Initializer; -import org.sonar.api.config.Settings; -import org.sonar.api.resources.Project; -import org.sonar.api.utils.TempFolder; - -@Properties({ - @Property( - key = TempFolderExtension.CREATE_TEMP_FILES, - type = PropertyType.BOOLEAN, - name = "Property to decide if it should create temp files", - defaultValue = "false") -}) -public class TempFolderExtension extends Initializer { - - public static final String CREATE_TEMP_FILES = "sonar.createTempFiles"; - private Settings settings; - private TempFolder tempFolder; - - public TempFolderExtension(Settings settings, TempFolder tempFolder) { - this.settings = settings; - this.tempFolder = tempFolder; - } - - @Override - public boolean shouldExecuteOnProject(Project project) { - return true; - } - - @Override - public void execute(Project project) { - if (settings.getBoolean(CREATE_TEMP_FILES)) { - System.out.println("Creating temp directory: " + tempFolder.newDir("sonar-it").getAbsolutePath()); - System.out.println("Creating temp file: " + tempFolder.newFile("sonar-it", ".txt").getAbsolutePath()); - } - } -} diff --git a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/WaitingSensor.java b/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/WaitingSensor.java deleted file mode 100644 index a498e8534aa..00000000000 --- a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/WaitingSensor.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource; - -import org.sonar.api.batch.Sensor; -import org.sonar.api.batch.SensorContext; -import org.sonar.api.config.Settings; -import org.sonar.api.resources.Project; - -public class WaitingSensor implements Sensor { - private Settings settings; - - public WaitingSensor(Settings settings) { - this.settings = settings; - } - - @Override - public boolean shouldExecuteOnProject(Project project) { - return settings.getBoolean("sonar.it.enableWaitingSensor"); - } - - @Override - public void analyse(Project module, SensorContext context) { - try { - Thread.sleep(10_000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - -} diff --git a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMeasureComputer.java b/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMeasureComputer.java deleted file mode 100644 index 38140cd597f..00000000000 --- a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMeasureComputer.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource.decimal_scale_of_measures; - -import org.sonar.api.ce.measure.Measure; -import org.sonar.api.ce.measure.MeasureComputer; - -public class DecimalScaleMeasureComputer implements MeasureComputer { - - @Override - public MeasureComputerDefinition define(MeasureComputerDefinitionContext defContext) { - return defContext.newDefinitionBuilder() - // Output metrics must contains at least one metric - .setOutputMetrics(DecimalScaleMetric.KEY) - - .build(); - } - - @Override - public void compute(MeasureComputerContext context) { - if (context.getMeasure(DecimalScaleMetric.KEY) == null) { - Iterable<Measure> childMeasures = context.getChildrenMeasures(DecimalScaleMetric.KEY); - int count = 0; - double total = 0.0; - for (Measure childMeasure : childMeasures) { - count++; - total += childMeasure.getDoubleValue(); - } - double value = 0.0; - if (count > 0) { - value = total / count; - } - context.addMeasure(DecimalScaleMetric.KEY, value); - } - } -} diff --git a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMetric.java b/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMetric.java deleted file mode 100644 index aa2454b2a89..00000000000 --- a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMetric.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource.decimal_scale_of_measures; - -import java.util.Collections; -import java.util.List; -import org.sonar.api.measures.Metric; -import org.sonar.api.measures.Metrics; - -public class DecimalScaleMetric implements Metrics { - - public static final String KEY = "decimal_scale"; - - private static final Metric METRIC = new Metric.Builder(KEY, "Decimal Scale", Metric.ValueType.FLOAT) - .setDescription("Numeric metric with overridden decimal scale") - .setDecimalScale(4) - .create(); - - @Override - public List getMetrics() { - return Collections.singletonList(definition()); - } - - public static Metric definition() { - return METRIC; - } -} diff --git a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleProperty.java b/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleProperty.java deleted file mode 100644 index c070434eeec..00000000000 --- a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleProperty.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource.decimal_scale_of_measures; - -import org.sonar.api.PropertyType; -import org.sonar.api.config.PropertyDefinition; - -public class DecimalScaleProperty { - - public static final String KEY = "sonar.scanner.feedDecimalScaleMetric"; - - public static PropertyDefinition definition() { - return PropertyDefinition.builder(KEY).name("Enable test decimal_scale_of_measures").type(PropertyType.BOOLEAN).defaultValue(String.valueOf(false)).build(); - } -} diff --git a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleSensor.java b/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleSensor.java deleted file mode 100644 index 788627bb920..00000000000 --- a/it/it-plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleSensor.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource.decimal_scale_of_measures; - -import org.sonar.api.batch.Sensor; -import org.sonar.api.batch.SensorContext; -import org.sonar.api.batch.fs.FilePredicate; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.resources.Project; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -public class DecimalScaleSensor implements Sensor { - private static final Logger LOG = Loggers.get(DecimalScaleSensor.class); - - @Override - public boolean shouldExecuteOnProject(Project project) { - return true; - } - - @Override - public void analyse(Project module, SensorContext context) { - if (context.settings().getBoolean(DecimalScaleProperty.KEY)) { - FilePredicate all = context.fileSystem().predicates().all(); - Iterable<InputFile> files = context.fileSystem().inputFiles(all); - double value = 0.0001; - for (InputFile file : files) { - LOG.info("Value for {}: {}", file.relativePath(), value); - context.newMeasure() - .on(file) - .forMetric(DecimalScaleMetric.definition()) - .withValue(value) - .save(); - value += 0.0001; - } - } - } -} diff --git a/it/it-plugins/extension-lifecycle-plugin/pom.xml b/it/it-plugins/extension-lifecycle-plugin/pom.xml deleted file mode 100644 index a33dc0cbf43..00000000000 --- a/it/it-plugins/extension-lifecycle-plugin/pom.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - <artifactId>extension-lifecycle-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <description>Plugins :: Extension Lifecycle</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>ExtensionLifecyclePlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/extension-lifecycle-plugin/src/main/java/BatchService.java b/it/it-plugins/extension-lifecycle-plugin/src/main/java/BatchService.java deleted file mode 100644 index 3ab267e6f16..00000000000 --- a/it/it-plugins/extension-lifecycle-plugin/src/main/java/BatchService.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.BatchExtension; -import org.sonar.api.batch.InstantiationStrategy; -import org.sonar.api.config.Settings; - -@InstantiationStrategy(InstantiationStrategy.PER_BATCH) -public class BatchService implements BatchExtension { - private boolean started=false; - private int projectServices=0; - private Settings settings; - - public BatchService(Settings settings) { - this.settings = settings; - } - - public void start() { - if (!settings.getBoolean("extension.lifecycle")) { - return; - } - System.out.println("Start BatchService"); - if (started) { - throw new IllegalStateException("Already started"); - } - if (projectServices>0) { - throw new IllegalStateException("BatchService must be started before ProjectServices"); - } - started=true; - } - - public boolean isStarted() { - return started; - } - - public void stop() { - if (!settings.getBoolean("extension.lifecycle")) { - return; - } - System.out.println("Stop BatchService"); - if (!started) { - System.out.println("BatchService is not started !"); - System.exit(1); - } - if (projectServices!=3) { - // there are three maven modules in the project extension-lifecycle (pom + 2 modules) - System.out.println("Invalid nb of ProjectServices: " + projectServices); - System.exit(1); - } - started=false; - } - - public void incrementProjectService() { - projectServices++; - } -} diff --git a/it/it-plugins/extension-lifecycle-plugin/src/main/java/ExtensionLifecyclePlugin.java b/it/it-plugins/extension-lifecycle-plugin/src/main/java/ExtensionLifecyclePlugin.java deleted file mode 100644 index 4c12f9f519b..00000000000 --- a/it/it-plugins/extension-lifecycle-plugin/src/main/java/ExtensionLifecyclePlugin.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.SonarPlugin; - -import java.util.Arrays; -import java.util.List; - -public class ExtensionLifecyclePlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(BatchService.class, ProjectService.class, ServerService.class); - } -} diff --git a/it/it-plugins/extension-lifecycle-plugin/src/main/java/ProjectService.java b/it/it-plugins/extension-lifecycle-plugin/src/main/java/ProjectService.java deleted file mode 100644 index 93fcfe61403..00000000000 --- a/it/it-plugins/extension-lifecycle-plugin/src/main/java/ProjectService.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.BatchExtension; -import org.sonar.api.config.Settings; - -/** - * As many instances as projects (maven modules) - */ -public class ProjectService implements BatchExtension { - - private BatchService batchService; - private Settings settings; - - public ProjectService(BatchService batchService, Settings settings) { - this.batchService = batchService; - this.settings = settings; - } - - public void start() { - if (!settings.getBoolean("extension.lifecycle")) { - return; - } - System.out.println("Start ProjectService"); - - if (!batchService.isStarted()) { - throw new IllegalStateException("ProjectService must be started after BatchService"); - } - batchService.incrementProjectService(); - } - - public void stop() { - if (!settings.getBoolean("extension.lifecycle")) { - return; - } - System.out.println("Stop ProjectService"); - if (!batchService.isStarted()) { - System.out.println("ProjectService must be stopped before BatchService"); - System.exit(1); - } - } -} diff --git a/it/it-plugins/extension-lifecycle-plugin/src/main/java/ServerService.java b/it/it-plugins/extension-lifecycle-plugin/src/main/java/ServerService.java deleted file mode 100644 index f4db1a98555..00000000000 --- a/it/it-plugins/extension-lifecycle-plugin/src/main/java/ServerService.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.ServerExtension; - -public class ServerService implements ServerExtension { -} diff --git a/it/it-plugins/fake-billing-plugin/pom.xml b/it/it-plugins/fake-billing-plugin/pom.xml deleted file mode 100644 index abba2724aac..00000000000 --- a/it/it-plugins/fake-billing-plugin/pom.xml +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>fake-billing-plugin</artifactId> - <packaging>sonar-plugin</packaging> - <description>Plugins :: Fake Billing Plugin</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-server</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>FakeBillingPlugin</pluginClass> - <pluginKey>billing</pluginKey> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/fake-billing-plugin/src/main/java/FakeBillingPlugin.java b/it/it-plugins/fake-billing-plugin/src/main/java/FakeBillingPlugin.java deleted file mode 100644 index 910dfc9998a..00000000000 --- a/it/it-plugins/fake-billing-plugin/src/main/java/FakeBillingPlugin.java +++ /dev/null @@ -1,42 +0,0 @@ - -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import org.sonar.api.Plugin; - -public class FakeBillingPlugin implements Plugin { - - @Override - public void define(Context context) { - // Nothing should be loaded when the plugin is running within by the scanner - if (isRunningInSQ()) { - context.addExtension(FakeBillingValidations.class); - } - } - - private static boolean isRunningInSQ() { - try { - Class.forName("org.sonar.plugin.PrivilegedPluginBridge"); - return true; - } catch (ClassNotFoundException e) { - return false; - } - } -} diff --git a/it/it-plugins/fake-billing-plugin/src/main/java/FakeBillingValidations.java b/it/it-plugins/fake-billing-plugin/src/main/java/FakeBillingValidations.java deleted file mode 100644 index 8ce39311117..00000000000 --- a/it/it-plugins/fake-billing-plugin/src/main/java/FakeBillingValidations.java +++ /dev/null @@ -1,61 +0,0 @@ - -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import org.sonar.api.config.Settings; -import org.sonar.server.organization.BillingValidationsExtension; - -import static java.lang.String.format; - -public class FakeBillingValidations implements BillingValidationsExtension { - - private static final String PREVENT_PROJECT_ANALYSIS_SETTING = "sonar.billing.preventProjectAnalysis"; - private static final String PREVENT_UPDATING_PROJECTS_VISIBILITY_TO_PRIVATE_SETTING = "sonar.billing.preventUpdatingProjectsVisibilityToPrivate"; - - private final Settings settings; - - public FakeBillingValidations(Settings settings) { - this.settings = settings; - } - - @Override - public void checkOnProjectAnalysis(Organization organization) { - boolean preventProjectAnalysis = settings.getBoolean(PREVENT_PROJECT_ANALYSIS_SETTING); - if (preventProjectAnalysis) { - throw new BillingValidationsException(format("Organization %s cannot perform analysis", organization.getKey())); - } - } - - @Override - public void checkCanUpdateProjectVisibility(Organization organization, boolean updateToPrivate) { - boolean preventUpdatingProjectsToPrivate = settings.getBoolean(PREVENT_UPDATING_PROJECTS_VISIBILITY_TO_PRIVATE_SETTING); - if (preventUpdatingProjectsToPrivate) { - throw new BillingValidationsException(format("Organization %s cannot use private project", organization.getKey())); - } - } - - @Override - public boolean canUpdateProjectVisibilityToPrivate(Organization organization) { - if (!settings.hasKey(PREVENT_UPDATING_PROJECTS_VISIBILITY_TO_PRIVATE_SETTING)) { - return true; - } - return !settings.getBoolean(PREVENT_UPDATING_PROJECTS_VISIBILITY_TO_PRIVATE_SETTING); - } -} diff --git a/it/it-plugins/fake-billing-plugin/src/main/resources/org/sonar/l10n/billing.properties b/it/it-plugins/fake-billing-plugin/src/main/resources/org/sonar/l10n/billing.properties deleted file mode 100644 index f8ac8fcaef5..00000000000 --- a/it/it-plugins/fake-billing-plugin/src/main/resources/org/sonar/l10n/billing.properties +++ /dev/null @@ -1,2 +0,0 @@ -billing.upgrade_box.header=The fake billing plugin is installed -billing.upgrade_box.text=It shows how to change the wording and hide the "Upgrade" button.
\ No newline at end of file diff --git a/it/it-plugins/global-property-change-plugin/pom.xml b/it/it-plugins/global-property-change-plugin/pom.xml deleted file mode 100644 index 493e138032a..00000000000 --- a/it/it-plugins/global-property-change-plugin/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>global-property-change-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <description>Plugins :: Global Property Change</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>GlobalPropertyChangePlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/global-property-change-plugin/src/main/java/FakeGlobalPropertyChange.java b/it/it-plugins/global-property-change-plugin/src/main/java/FakeGlobalPropertyChange.java deleted file mode 100644 index 551ed92f676..00000000000 --- a/it/it-plugins/global-property-change-plugin/src/main/java/FakeGlobalPropertyChange.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.config.GlobalPropertyChangeHandler; -import org.sonar.api.utils.log.Loggers; - -@Properties(@Property(key = "globalPropertyChange.received", name = "Check that extension has correctly been notified by global property change", category = "fake")) -public final class FakeGlobalPropertyChange extends GlobalPropertyChangeHandler { - - @Override - public void onChange(PropertyChange propertyChange) { - Loggers.get(FakeGlobalPropertyChange.class).info("Received change: " + propertyChange); - } -} diff --git a/it/it-plugins/global-property-change-plugin/src/main/java/GlobalPropertyChangePlugin.java b/it/it-plugins/global-property-change-plugin/src/main/java/GlobalPropertyChangePlugin.java deleted file mode 100644 index 5332fc9a3a5..00000000000 --- a/it/it-plugins/global-property-change-plugin/src/main/java/GlobalPropertyChangePlugin.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public class GlobalPropertyChangePlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(FakeGlobalPropertyChange.class); - } -} diff --git a/it/it-plugins/issue-filter-plugin/pom.xml b/it/it-plugins/issue-filter-plugin/pom.xml deleted file mode 100644 index 8569a7a3ba3..00000000000 --- a/it/it-plugins/issue-filter-plugin/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>issue-filter-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <name>IT :: Issue Filter</name> - <description>IT :: Issue Filter</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>IssueFilterPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/issue-filter-plugin/src/main/java/IssueFilterBeforeLine5.java b/it/it-plugins/issue-filter-plugin/src/main/java/IssueFilterBeforeLine5.java deleted file mode 100644 index 44d34cba722..00000000000 --- a/it/it-plugins/issue-filter-plugin/src/main/java/IssueFilterBeforeLine5.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.scan.issue.filter.IssueFilterChain; - -import org.sonar.api.scan.issue.filter.FilterableIssue; -import org.sonar.api.config.Settings; -import org.sonar.api.scan.issue.filter.IssueFilter; - -/** - * This filter removes the issues that are on line < 5 - * <p/> - * Issue filters have been introduced in 3.6. - */ -public class IssueFilterBeforeLine5 implements IssueFilter { - - private final Settings settings; - - public IssueFilterBeforeLine5(Settings settings) { - this.settings = settings; - } - - @Override - public boolean accept(FilterableIssue issue, IssueFilterChain chain) { - if (issue.componentKey() == null) { - throw new IllegalStateException("Issue component is not set"); - } - if (issue.ruleKey() == null) { - throw new IllegalStateException("Issue rule is not set"); - } - - boolean b = !settings.getBoolean("enableIssueFilters") || issue.line() == null || issue.line() >= 5; - if (!b) { - return false; - } - - return chain.accept(issue); - } -} diff --git a/it/it-plugins/issue-filter-plugin/src/main/java/IssueFilterPlugin.java b/it/it-plugins/issue-filter-plugin/src/main/java/IssueFilterPlugin.java deleted file mode 100644 index 94d5b87396e..00000000000 --- a/it/it-plugins/issue-filter-plugin/src/main/java/IssueFilterPlugin.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.SonarPlugin; - -@Properties(@Property( - key = "enableIssueFilters", - name = "Enable Issue Filters", - defaultValue = "false", - type = PropertyType.BOOLEAN)) -public class IssueFilterPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(IssueFilterBeforeLine5.class, ModuleIssueFilter.class); - } -} diff --git a/it/it-plugins/issue-filter-plugin/src/main/java/ModuleIssueFilter.java b/it/it-plugins/issue-filter-plugin/src/main/java/ModuleIssueFilter.java deleted file mode 100644 index 48f549a264e..00000000000 --- a/it/it-plugins/issue-filter-plugin/src/main/java/ModuleIssueFilter.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.scan.issue.filter.FilterableIssue; - -import org.sonar.api.scan.issue.filter.IssueFilterChain; -import org.sonar.api.config.Settings; -import org.sonar.api.scan.issue.filter.IssueFilter; -import org.sonar.api.rule.RuleKey; - -/** - * This filter removes the issues that are raised by Xoo plugin on modules. - * <p/> - * Issue filters have been introduced in 3.6. - */ -public class ModuleIssueFilter implements IssueFilter { - - private static final RuleKey ONE_ISSUE_PER_MODULE_RULEKEY = RuleKey.of("xoo", "OneIssuePerModule"); - - private final Settings settings; - - public ModuleIssueFilter(Settings settings) { - this.settings = settings; - } - - @Override - public boolean accept(FilterableIssue issue, IssueFilterChain chain) { - if (issue.componentKey() == null) { - throw new IllegalStateException("Issue component is not set"); - } - if (issue.ruleKey() == null) { - throw new IllegalStateException("Issue rule is not set"); - } - - boolean b = !settings.getBoolean("enableIssueFilters") || !ONE_ISSUE_PER_MODULE_RULEKEY.equals(issue.ruleKey()); - - if (!b) { - return false; - } - - return chain.accept(issue); - } -} diff --git a/it/it-plugins/l10n-fr-pack/pom.xml b/it/it-plugins/l10n-fr-pack/pom.xml deleted file mode 100644 index 33c8472b8b1..00000000000 --- a/it/it-plugins/l10n-fr-pack/pom.xml +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>l10n-fr-pack</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <description>IT :: Simple French Language Pack</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <basePlugin>l10nen</basePlugin> - <pluginClass>SimpleFrenchPackPlugin</pluginClass> - </configuration> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>native2ascii-maven-plugin</artifactId> - <version>1.0-beta-1</version> - <executions> - <execution> - <goals> - <goal>native2ascii</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/l10n-fr-pack/src/main/java/SimpleFrenchPackPlugin.java b/it/it-plugins/l10n-fr-pack/src/main/java/SimpleFrenchPackPlugin.java deleted file mode 100644 index 221e7131a90..00000000000 --- a/it/it-plugins/l10n-fr-pack/src/main/java/SimpleFrenchPackPlugin.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Collections; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public final class SimpleFrenchPackPlugin extends SonarPlugin { - public List getExtensions() { - return Collections.emptyList(); - } -} diff --git a/it/it-plugins/l10n-fr-pack/src/main/resources/org/sonar/l10n/core_fr.properties b/it/it-plugins/l10n-fr-pack/src/main/resources/org/sonar/l10n/core_fr.properties deleted file mode 100644 index 2d28afe84f0..00000000000 --- a/it/it-plugins/l10n-fr-pack/src/main/resources/org/sonar/l10n/core_fr.properties +++ /dev/null @@ -1,6 +0,0 @@ -metric.ncloc.name=Lignes de code -metric.ncloc.description=Lignes de code (non commentaire) -widget.size.lines_of_code=Lignes de code - -layout.login=Se connecter -layout.powered_by=Propulsé par diff --git a/it/it-plugins/license-plugin/pom.xml b/it/it-plugins/license-plugin/pom.xml deleted file mode 100644 index 72b711a3c74..00000000000 --- a/it/it-plugins/license-plugin/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>license-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <description>Plugins :: License</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>LicensePlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/license-plugin/src/main/java/LicensePlugin.java b/it/it-plugins/license-plugin/src/main/java/LicensePlugin.java deleted file mode 100644 index 9bd74374f37..00000000000 --- a/it/it-plugins/license-plugin/src/main/java/LicensePlugin.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Collections; -import java.util.List; -import org.sonar.api.CoreProperties; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.SonarPlugin; - -@Properties({ - @Property( - key = "untyped.license.secured", - name = "Property without license type", - category = CoreProperties.CATEGORY_GENERAL), - @Property( - key = "typed.license.secured", - name = "Typed property", - category = CoreProperties.CATEGORY_GENERAL, - type = PropertyType.LICENSE) -}) -public class LicensePlugin extends SonarPlugin { - public List getExtensions() { - return Collections.emptyList(); - } -} diff --git a/it/it-plugins/oauth2-auth-plugin/pom.xml b/it/it-plugins/oauth2-auth-plugin/pom.xml deleted file mode 100644 index 2fa5a35a102..00000000000 --- a/it/it-plugins/oauth2-auth-plugin/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>oauth2-auth-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <name>Plugins :: Fake OAuth2 Authentication Plugin</name> - <description>Test for OAuth2 authentication plugin (like openid)</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>javax.servlet-api</artifactId> - <version>3.0.1</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <configuration> - <pluginClass>FakeOAuth2AuthPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2AuthPlugin.java b/it/it-plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2AuthPlugin.java deleted file mode 100644 index 5fa419d3289..00000000000 --- a/it/it-plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2AuthPlugin.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.ArrayList; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public final class FakeOAuth2AuthPlugin extends SonarPlugin { - - public List getExtensions() { - List extensions = new ArrayList(); - extensions.add(FakeOAuth2IdProvider.class); - return extensions; - } - -} diff --git a/it/it-plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2IdProvider.java b/it/it-plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2IdProvider.java deleted file mode 100644 index deb426145c4..00000000000 --- a/it/it-plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2IdProvider.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.config.Settings; -import org.sonar.api.server.authentication.Display; -import org.sonar.api.server.authentication.OAuth2IdentityProvider; -import org.sonar.api.server.authentication.UnauthorizedException; -import org.sonar.api.server.authentication.UserIdentity; - -public class FakeOAuth2IdProvider implements OAuth2IdentityProvider { - - private static final String ENABLED = "sonar.auth.fake-oauth2-id-provider.enabled"; - private static final String ALLOWS_USERS_TO_SIGN_UP = "sonar.auth.fake-oauth2-id-provider.allowsUsersToSignUp"; - private static final String URL = "sonar.auth.fake-oauth2-id-provider.url"; - private static final String USER_INFO = "sonar.auth.fake-oauth2-id-provider.user"; - - private static final String THROW_UNAUTHORIZED_EXCEPTION = "sonar.auth.fake-oauth2-id-provider.throwUnauthorizedMessage"; - - private final Settings settings; - - public FakeOAuth2IdProvider(Settings settings) { - this.settings = settings; - } - - @Override - public void init(InitContext context) { - String url = settings.getString(URL); - if (url == null) { - throw new IllegalStateException(String.format("The property %s is required", URL)); - } - context.redirectTo(url); - } - - @Override - public void callback(CallbackContext context) { - String userInfoProperty = settings.getString(USER_INFO); - if (userInfoProperty == null) { - throw new IllegalStateException(String.format("The property %s is required", USER_INFO)); - } - boolean throwUnauthorizedException = settings.getBoolean(THROW_UNAUTHORIZED_EXCEPTION); - if (throwUnauthorizedException) { - throw new UnauthorizedException("A functional error has happened"); - } - - String[] userInfos = userInfoProperty.split(","); - context.authenticate(UserIdentity.builder() - .setLogin(userInfos[0]) - .setProviderLogin(userInfos[1]) - .setName(userInfos[2]) - .setEmail(userInfos[3]) - .build()); - context.redirectToRequestedPage(); - } - - @Override - public String getKey() { - return "fake-oauth2-id-provider"; - } - - @Override - public String getName() { - return "Fake oauth2 identity provider"; - } - - @Override - public Display getDisplay() { - return Display.builder() - .setIconPath("/static/oauth2authplugin/oauth2.png") - .setBackgroundColor("#444444") - .build(); - } - - @Override - public boolean isEnabled() { - return settings.getBoolean(ENABLED); - } - - @Override - public boolean allowsUsersToSignUp() { - if (settings.hasKey(ALLOWS_USERS_TO_SIGN_UP)) { - return settings.getBoolean(ALLOWS_USERS_TO_SIGN_UP); - } - // If property is not defined, default behaviour is not always allow users to sign up - return true; - - } - -} diff --git a/it/it-plugins/oauth2-auth-plugin/src/main/resources/static/oauth2.png b/it/it-plugins/oauth2-auth-plugin/src/main/resources/static/oauth2.png Binary files differdeleted file mode 100644 index 28a3e01698c..00000000000 --- a/it/it-plugins/oauth2-auth-plugin/src/main/resources/static/oauth2.png +++ /dev/null diff --git a/it/it-plugins/pom.xml b/it/it-plugins/pom.xml deleted file mode 100644 index 72c254d4593..00000000000 --- a/it/it-plugins/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - <artifactId>it-plugins</artifactId> - <name>SonarQube Integration Tests :: Plugins</name> - <description>The fake plugins used by integration tests</description> - <packaging>pom</packaging> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <skip>true</skip> - </configuration> - </plugin> - </plugins> - </build> - - <properties> - <apiVersion>${project.parent.version}</apiVersion> - </properties> - - <modules> - <module>access-secured-props-plugin</module> - <module>base-auth-plugin</module> - <module>batch-plugin</module> - <module>extension-lifecycle-plugin</module> - <module>fake-billing-plugin</module> - <module>global-property-change-plugin</module> - <module>issue-filter-plugin</module> - <module>l10n-fr-pack</module> - <module>license-plugin</module> - <module>oauth2-auth-plugin</module> - <module>project-builder-plugin</module> - <module>property-relocation-plugin</module> - <module>property-sets-plugin</module> - <module>security-plugin</module> - <module>server-plugin</module> - <module>settings-encryption-plugin</module> - <module>settings-plugin</module> - <module>sonar-fake-plugin</module> - <module>sonar-subcategories-plugin</module> - <module>ui-extensions-plugin</module> - <module>posttask-plugin</module> - <module>ws-plugin</module> - </modules> -</project> diff --git a/it/it-plugins/posttask-plugin/pom.xml b/it/it-plugins/posttask-plugin/pom.xml deleted file mode 100644 index 14bc046d194..00000000000 --- a/it/it-plugins/posttask-plugin/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>posttask-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <name>SonarQube Integration Tests :: Plugins :: PostTask</name> - <description>Plugin testing the Compute Engine Post Task API</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>PostTaskPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/posttask-plugin/src/main/java/AddScannerContextSensor.java b/it/it-plugins/posttask-plugin/src/main/java/AddScannerContextSensor.java deleted file mode 100644 index 7013a6707a8..00000000000 --- a/it/it-plugins/posttask-plugin/src/main/java/AddScannerContextSensor.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.batch.sensor.Sensor; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.SensorDescriptor; - -public class AddScannerContextSensor implements Sensor { - @Override - public void execute(SensorContext context) { - context.addContextProperty("foo1", "bar1"); - context.addContextProperty("foo2", "bar2"); - } - - @Override - public void describe(SensorDescriptor descriptor) { - - } -} diff --git a/it/it-plugins/posttask-plugin/src/main/java/LogScannerContextPostTask.java b/it/it-plugins/posttask-plugin/src/main/java/LogScannerContextPostTask.java deleted file mode 100644 index 120610a2da2..00000000000 --- a/it/it-plugins/posttask-plugin/src/main/java/LogScannerContextPostTask.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Map; -import org.sonar.api.ce.posttask.PostProjectAnalysisTask; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -public class LogScannerContextPostTask implements PostProjectAnalysisTask { - private static final Logger LOG = Loggers.get(LogScannerContextPostTask.class); - - @Override - public void finished(ProjectAnalysis analysis) { - for (Map.Entry<String, String> prop : analysis.getScannerContext().getProperties().entrySet()) { - LOG.info("POSTASKPLUGIN: ScannerProperty {}={}", - prop.getKey(), - prop.getValue()); - } - } -} diff --git a/it/it-plugins/posttask-plugin/src/main/java/PostProjectAnalysisTaskImpl.java b/it/it-plugins/posttask-plugin/src/main/java/PostProjectAnalysisTaskImpl.java deleted file mode 100644 index 0c288ec01d5..00000000000 --- a/it/it-plugins/posttask-plugin/src/main/java/PostProjectAnalysisTaskImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -/* - * SonarQube - * Copyright (C) 2009-2016 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.ce.posttask.CeTask; -import org.sonar.api.ce.posttask.PostProjectAnalysisTask; -import org.sonar.api.ce.posttask.Project; -import org.sonar.api.ce.posttask.QualityGate; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -public class PostProjectAnalysisTaskImpl implements PostProjectAnalysisTask { - private static final Logger LOG = Loggers.get(PostProjectAnalysisTaskImpl.class); - - @Override - public void finished(ProjectAnalysis analysis) { - CeTask ceTask = analysis.getCeTask(); - Project project = analysis.getProject(); - QualityGate qualityGate = analysis.getQualityGate(); - LOG.info("POSTASKPLUGIN: finished() CeTask[{}][{}] Project[{}] Date[{}] QualityGate[{}]", - ceTask.getStatus(), - ceTask.getId(), - project.getKey(), - analysis.getDate().getTime(), - qualityGate == null ? null : qualityGate.getStatus()); - } -} diff --git a/it/it-plugins/posttask-plugin/src/main/java/PostTaskPlugin.java b/it/it-plugins/posttask-plugin/src/main/java/PostTaskPlugin.java deleted file mode 100644 index 07ce105ff4e..00000000000 --- a/it/it-plugins/posttask-plugin/src/main/java/PostTaskPlugin.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public class PostTaskPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(PostProjectAnalysisTaskImpl.class, - LogScannerContextPostTask.class, AddScannerContextSensor.class); - } -} diff --git a/it/it-plugins/project-builder-plugin/pom.xml b/it/it-plugins/project-builder-plugin/pom.xml deleted file mode 100644 index 69f94355cf5..00000000000 --- a/it/it-plugins/project-builder-plugin/pom.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - <artifactId>project-builder-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <description>Plugins :: Project Builder</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>ProjectBuilderPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/project-builder-plugin/src/main/java/CreateSubProjects.java b/it/it-plugins/project-builder-plugin/src/main/java/CreateSubProjects.java deleted file mode 100644 index e1fe412282d..00000000000 --- a/it/it-plugins/project-builder-plugin/src/main/java/CreateSubProjects.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -/* - * SonarQube - * Copyright (C) 2009-2016 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.io.File; -import org.sonar.api.batch.bootstrap.ProjectBuilder; -import org.sonar.api.batch.bootstrap.ProjectDefinition; -import org.sonar.api.batch.bootstrap.ProjectReactor; -import org.sonar.api.config.Settings; - -/** - * This plugin relates to projects/project-builder sample - */ -public final class CreateSubProjects extends ProjectBuilder { - - private Settings settings; - - public CreateSubProjects(Settings settings) { - // A real implementation should for example use the configuration - this.settings = settings; - } - - @Override - protected void build(ProjectReactor reactor) { - if (!settings.getBoolean("sonar.enableProjectBuilder")) { - return; - } - System.out.println("---> Creating sub-projects"); - ProjectDefinition root = reactor.getRoot(); - - // add two modules - createSubProjectWithSourceDir(root); - createSubProjectWithSourceFiles(root); - } - - private ProjectDefinition createSubProjectWithSourceDir(ProjectDefinition root) { - File baseDir = new File(root.getBaseDir(), "module_a"); - ProjectDefinition subProject = ProjectDefinition.create(); - subProject.setBaseDir(baseDir).setWorkDir(new File(baseDir, "target/.sonar")); - subProject.setKey("com.sonarsource.it.projects.batch:project-builder-module-a"); - subProject.setVersion(root.getVersion()); - subProject.setName("Module A"); - subProject.addSources("src"); - root.addSubProject(subProject); - return subProject; - } - - private ProjectDefinition createSubProjectWithSourceFiles(ProjectDefinition root) { - File baseDir = new File(root.getBaseDir(), "module_b"); - ProjectDefinition subProject = ProjectDefinition.create(); - subProject.setBaseDir(baseDir).setWorkDir(new File(baseDir, "target/.sonar")); - subProject.setKey("com.sonarsource.it.projects.batch:project-builder-module-b"); - subProject.setVersion(root.getVersion()); - subProject.setName("Module B"); - subProject.addSources("src/HelloB.java"); - root.addSubProject(subProject); - return subProject; - } -} diff --git a/it/it-plugins/project-builder-plugin/src/main/java/ProjectBuilderPlugin.java b/it/it-plugins/project-builder-plugin/src/main/java/ProjectBuilderPlugin.java deleted file mode 100644 index f57669929d3..00000000000 --- a/it/it-plugins/project-builder-plugin/src/main/java/ProjectBuilderPlugin.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.SonarPlugin; - -import java.util.Arrays; -import java.util.List; - -public class ProjectBuilderPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(CreateSubProjects.class, RenameProject.class); - } -} diff --git a/it/it-plugins/project-builder-plugin/src/main/java/RenameProject.java b/it/it-plugins/project-builder-plugin/src/main/java/RenameProject.java deleted file mode 100644 index 22d1dd3cccb..00000000000 --- a/it/it-plugins/project-builder-plugin/src/main/java/RenameProject.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -/* - * SonarQube - * Copyright (C) 2009-2016 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.batch.bootstrap.ProjectBuilder; -import org.sonar.api.batch.bootstrap.ProjectDefinition; -import org.sonar.api.batch.bootstrap.ProjectReactor; -import org.sonar.api.config.Settings; - -/** - * This plugin relates to projects/project-builder sample - */ -public final class RenameProject extends ProjectBuilder { - - private Settings settings; - - public RenameProject(Settings settings) { - this.settings = settings; - } - - @Override - protected void build(ProjectReactor reactor) { - if (!settings.getBoolean("sonar.enableProjectBuilder")) { - return; - } - System.out.println("---> Renaming project"); - // change name of root project - ProjectDefinition root = reactor.getRoot(); - root.setName("Name changed by plugin"); - } -} diff --git a/it/it-plugins/property-relocation-plugin/pom.xml b/it/it-plugins/property-relocation-plugin/pom.xml deleted file mode 100644 index 932eaf6f101..00000000000 --- a/it/it-plugins/property-relocation-plugin/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>property-relocation-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <description>Plugins :: Property Relocation</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>PropertyRelocationPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/property-relocation-plugin/src/main/java/CheckProperties.java b/it/it-plugins/property-relocation-plugin/src/main/java/CheckProperties.java deleted file mode 100644 index b4e7ec1b185..00000000000 --- a/it/it-plugins/property-relocation-plugin/src/main/java/CheckProperties.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.BatchExtension; -import org.sonar.api.config.Settings; - -public class CheckProperties implements BatchExtension { - private Settings settings; - - public CheckProperties(Settings settings) { - this.settings = settings; - } - - public void start() { - if (settings.getBoolean("sonar.newKey") != true) { - throw new IllegalStateException("Property not found: sonar.newKey"); - } - } -} diff --git a/it/it-plugins/property-relocation-plugin/src/main/java/PropertyRelocationPlugin.java b/it/it-plugins/property-relocation-plugin/src/main/java/PropertyRelocationPlugin.java deleted file mode 100644 index aa0ebbfae38..00000000000 --- a/it/it-plugins/property-relocation-plugin/src/main/java/PropertyRelocationPlugin.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.SonarPlugin; - -@Properties({ - @Property(key = "sonar.newKey", deprecatedKey = "sonar.deprecatedKey", name = "New Key", category = "general") -}) -public class PropertyRelocationPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(CheckProperties.class); - } -} diff --git a/it/it-plugins/property-sets-plugin/pom.xml b/it/it-plugins/property-sets-plugin/pom.xml deleted file mode 100644 index b2d3e1e166d..00000000000 --- a/it/it-plugins/property-sets-plugin/pom.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>property-sets-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <description>Plugins :: Property Sets</description> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>PropertySetsPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/property-sets-plugin/src/main/java/PropertySetsPlugin.java b/it/it-plugins/property-sets-plugin/src/main/java/PropertySetsPlugin.java deleted file mode 100644 index 357411d6980..00000000000 --- a/it/it-plugins/property-sets-plugin/src/main/java/PropertySetsPlugin.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Collections; -import java.util.List; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyField; -import org.sonar.api.PropertyType; -import org.sonar.api.SonarPlugin; - -@Properties({ - @Property( - key = "sonar.test.jira.servers", - name = "Jira Servers", - description = "List of jira server definitions", - global = true, - project = true, - category = "DEV", - fields = { - @PropertyField( - key = "key", - name = "Key", - type = PropertyType.STRING, - indicativeSize = 10), - @PropertyField( - key = "url", - name = "Url", - description = "l'url du serveur jira", - type = PropertyType.STRING, - indicativeSize = 20), - @PropertyField( - key = "port", - name = "Port", - type = PropertyType.INTEGER, - indicativeSize = 5)}), - @Property( - key = "sonar.demo", - name = "Demo", - global = true, - project = true, - category = "DEV", - fields = { - @PropertyField( - key = "text", - name = "text", - type = PropertyType.TEXT), - @PropertyField( - key = "boolean", - name = "boolean", - type = PropertyType.BOOLEAN), - @PropertyField( - key = "float", - name = "float", - type = PropertyType.FLOAT), - @PropertyField( - key = "license", - name = "license", - type = PropertyType.LICENSE), - @PropertyField( - key = "metric", - name = "metric", - type = PropertyType.METRIC), - @PropertyField( - key = "password", - name = "password", - type = PropertyType.PASSWORD), - @PropertyField( - key = "regexp", - name = "regexp", - type = PropertyType.REGULAR_EXPRESSION), - @PropertyField( - key = "list", - name = "list", - type = PropertyType.SINGLE_SELECT_LIST, - options = {"AAA", "BBB"})}), - @Property( - key = "sonar.autogenerated", - name = "Auto-generated", - global = true, - project = true, - category = "DEV", - fields = { - @PropertyField( - key = "value", - name = "value", - type = PropertyType.STRING)}), - @Property( - key = "sonar.test.jira", - name = "Jira", - project = true, - category = "DEV", - propertySetKey = "sonar.test.jira.servers")}) -public class PropertySetsPlugin extends SonarPlugin { - public List getExtensions() { - return Collections.emptyList(); - } -} diff --git a/it/it-plugins/security-plugin/pom.xml b/it/it-plugins/security-plugin/pom.xml deleted file mode 100644 index c868eaeb5df..00000000000 --- a/it/it-plugins/security-plugin/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>security-plugin</artifactId> - <packaging>sonar-plugin</packaging> - <version>1.0-SNAPSHOT</version> - <description>Plugins :: Security</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>2.6</version> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.12</version> - </dependency> - <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> - <version>2.0.0</version> - </dependency> - <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-guava</artifactId> - <version>1.3.1</version> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>SecurityPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> - -</project> diff --git a/it/it-plugins/security-plugin/src/main/java/FakeAuthenticator.java b/it/it-plugins/security-plugin/src/main/java/FakeAuthenticator.java deleted file mode 100644 index 890263b0fbf..00000000000 --- a/it/it-plugins/security-plugin/src/main/java/FakeAuthenticator.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Splitter; -import com.google.common.base.Strings; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Maps; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.config.Settings; -import org.sonar.api.security.LoginPasswordAuthenticator; -import org.sonar.api.security.UserDetails; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -@Properties({ - @Property( - key = FakeAuthenticator.DATA_PROPERTY, - name = "Fake Users", type = PropertyType.TEXT - ) -}) -public class FakeAuthenticator implements LoginPasswordAuthenticator { - - private static final Logger LOG = Loggers.get(FakeAuthenticator.class); - - /** - * Example: - * <pre> - * evgeny.password=foo - * evgeny.name=Evgeny Mandrikov - * evgeny.email=evgeny@example.org - * evgeny.groups=sonar-users - * - * simon.password=bar - * simon.groups=sonar-users,sonar-developers - * </pre> - */ - public static final String DATA_PROPERTY = "sonar.fakeauthenticator.users"; - - private final Settings settings; - - private Map<String, String> data; - - public FakeAuthenticator(Settings settings) { - this.settings = settings; - } - - public boolean authenticate(String username, String password) { - // Never touch admin - if (isAdmin(username)) { - return true; - } - - reloadData(); - checkExistence(username); - - String expectedPassword = data.get(username + ".password"); - if (StringUtils.equals(password, expectedPassword)) { - LOG.info("user {} with password {}", username, password); - return true; - } else { - LOG.info("user " + username + " expected password " + expectedPassword + " , but was " + password); - return false; - } - } - - private void checkExistence(String username) { - if (!data.containsKey(username + ".password")) { - throw new IllegalArgumentException("No such user : " + username); - } - } - - public UserDetails doGetUserDetails(String username) { - // Never touch admin - if (isAdmin(username)) { - return null; - } - - reloadData(); - checkExistence(username); - - UserDetails result = new UserDetails(); - result.setName(Strings.nullToEmpty(data.get(username + ".name"))); - result.setEmail(Strings.nullToEmpty(data.get(username + ".email"))); - LOG.info("details for user {} : {}", username, result); - return result; - } - - public Collection<String> doGetGroups(String username) { - // Never touch admin - if (isAdmin(username)) { - return null; - } - - reloadData(); - checkExistence(username); - - Collection<String> result = parseList(data.get(username + ".groups")); - LOG.info("groups for user {} : {}", username, result); - return result; - } - - private static boolean isAdmin(String username) { - return StringUtils.equals(username, "admin"); - } - - private void reloadData() { - data = parse(settings.getString(DATA_PROPERTY)); - } - - private static final Splitter LIST_SPLITTER = Splitter.on(',').omitEmptyStrings().trimResults(); - private static final Splitter LINE_SPLITTER = Splitter.on(Pattern.compile("\r?\n")).omitEmptyStrings().trimResults(); - - @VisibleForTesting - static List<String> parseList(String data) { - return ImmutableList.copyOf(LIST_SPLITTER.split(Strings.nullToEmpty(data))); - } - - @VisibleForTesting - static Map<String, String> parse(String data) { - Map<String, String> result = Maps.newHashMap(); - for (String entry : LINE_SPLITTER.split(Strings.nullToEmpty(data))) { - Iterator<String> keyValue = Splitter.on('=').split(entry).iterator(); - result.put(keyValue.next(), keyValue.next()); - } - return result; - } - - public void init() { - // nothing to do - } - -} diff --git a/it/it-plugins/security-plugin/src/main/java/FakeGroupsProvider.java b/it/it-plugins/security-plugin/src/main/java/FakeGroupsProvider.java deleted file mode 100644 index 3ab14818a34..00000000000 --- a/it/it-plugins/security-plugin/src/main/java/FakeGroupsProvider.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Collection; -import org.sonar.api.security.ExternalGroupsProvider; - -public class FakeGroupsProvider extends ExternalGroupsProvider { - - private final FakeAuthenticator instance; - - public FakeGroupsProvider(FakeAuthenticator instance) { - this.instance = instance; - } - - @Override - public Collection<String> doGetGroups(String username) { - return instance.doGetGroups(username); - } - -} diff --git a/it/it-plugins/security-plugin/src/main/java/FakeRealm.java b/it/it-plugins/security-plugin/src/main/java/FakeRealm.java deleted file mode 100644 index 152ea921b21..00000000000 --- a/it/it-plugins/security-plugin/src/main/java/FakeRealm.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.config.Settings; -import org.sonar.api.security.ExternalGroupsProvider; -import org.sonar.api.security.ExternalUsersProvider; -import org.sonar.api.security.LoginPasswordAuthenticator; -import org.sonar.api.security.SecurityRealm; - -public class FakeRealm extends SecurityRealm { - - private FakeAuthenticator instance; - - public FakeRealm(Settings settings) { - this.instance = new FakeAuthenticator(settings); - } - - @Override - public LoginPasswordAuthenticator getLoginPasswordAuthenticator() { - return instance; - } - - @Override - public ExternalGroupsProvider getGroupsProvider() { - return new FakeGroupsProvider(instance); - } - - @Override - public ExternalUsersProvider getUsersProvider() { - return new FakeUsersProvider(instance); - } - -} diff --git a/it/it-plugins/security-plugin/src/main/java/FakeUsersProvider.java b/it/it-plugins/security-plugin/src/main/java/FakeUsersProvider.java deleted file mode 100644 index 90c95de3e1c..00000000000 --- a/it/it-plugins/security-plugin/src/main/java/FakeUsersProvider.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.security.ExternalUsersProvider; -import org.sonar.api.security.UserDetails; - -public class FakeUsersProvider extends ExternalUsersProvider { - - private final FakeAuthenticator instance; - - public FakeUsersProvider(FakeAuthenticator instance) { - this.instance = instance; - } - - @Override - public UserDetails doGetUserDetails(String username) { - return instance.doGetUserDetails(username); - } - -} diff --git a/it/it-plugins/security-plugin/src/main/java/SecurityPlugin.java b/it/it-plugins/security-plugin/src/main/java/SecurityPlugin.java deleted file mode 100644 index c1cf7cd3b9e..00000000000 --- a/it/it-plugins/security-plugin/src/main/java/SecurityPlugin.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public class SecurityPlugin extends SonarPlugin { - - public List getExtensions() { - return Arrays.asList(FakeRealm.class, FakeAuthenticator.class); - } - -} diff --git a/it/it-plugins/security-plugin/src/test/java/FakeAuthenticatorTest.java b/it/it-plugins/security-plugin/src/test/java/FakeAuthenticatorTest.java deleted file mode 100644 index e55aacb9478..00000000000 --- a/it/it-plugins/security-plugin/src/test/java/FakeAuthenticatorTest.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Map; -import org.junit.Before; -import org.junit.Test; -import org.sonar.api.config.MapSettings; -import org.sonar.api.config.Settings; -import org.sonar.api.security.UserDetails; - -import static org.assertj.core.api.Assertions.assertThat; - - -public class FakeAuthenticatorTest { - - private Settings settings; - private FakeAuthenticator authenticator; - - @Before - public void setUp() { - settings = new MapSettings(); - authenticator = new FakeAuthenticator(settings); - authenticator.init(); - } - - @Test - public void shouldNeverTouchAdmin() { - assertThat(authenticator.authenticate("admin", "admin")).isTrue(); - assertThat(authenticator.doGetGroups("admin")).isNull(); - assertThat(authenticator.doGetUserDetails("admin")).isNull(); - } - - @Test - public void shouldAuthenticateFakeUsers() { - settings.setProperty(FakeAuthenticator.DATA_PROPERTY, "evgeny.password=foo"); - - assertThat(authenticator.authenticate("evgeny", "foo")).isTrue(); - assertThat(authenticator.authenticate("evgeny", "bar")).isFalse(); - } - - @Test(expected = RuntimeException.class) - public void shouldNotAuthenticateNotExistingUsers() { - authenticator.authenticate("evgeny", "foo"); - } - - @Test - public void shouldGetUserDetails() { - settings.setProperty(FakeAuthenticator.DATA_PROPERTY, "evgeny.password=foo\n" + - "evgeny.name=Tester Testerovich\n" + - "evgeny.email=evgeny@example.org"); - - UserDetails details = authenticator.doGetUserDetails("evgeny"); - assertThat(details.getName()).isEqualTo("Tester Testerovich"); - assertThat(details.getEmail()).isEqualTo("evgeny@example.org"); - } - - @Test(expected = RuntimeException.class) - public void shouldNotReturnDetailsForNotExistingUsers() { - authenticator.doGetUserDetails("evgeny"); - } - - @Test - public void shouldGetGroups() { - settings.setProperty(FakeAuthenticator.DATA_PROPERTY, "evgeny.password=foo\n" + - "evgeny.groups=sonar-users,sonar-developers"); - - assertThat(authenticator.doGetGroups("evgeny")).containsOnly("sonar-users", "sonar-developers"); - } - - @Test(expected = RuntimeException.class) - public void shouldNotReturnGroupsForNotExistingUsers() { - authenticator.doGetGroups("evgeny"); - } - - @Test - public void shouldParseList() { - assertThat(FakeAuthenticator.parseList(null)).isEmpty(); - assertThat(FakeAuthenticator.parseList("")).isEmpty(); - assertThat(FakeAuthenticator.parseList(",,,")).isEmpty(); - assertThat(FakeAuthenticator.parseList("a,b")).containsOnly("a", "b"); - } - - @Test - public void shouldParseMap() { - Map<String, String> map = FakeAuthenticator.parse(null); - assertThat(map).isEmpty(); - - map = FakeAuthenticator.parse(""); - assertThat(map).isEmpty(); - - map = FakeAuthenticator.parse("foo=bar"); - assertThat(map).hasSize(1); - assertThat(map.get("foo")).isEqualTo("bar"); - - map = FakeAuthenticator.parse("foo=bar\r\nbaz=qux"); - assertThat(map).hasSize(2); - assertThat(map.get("foo")).isEqualTo("bar"); - assertThat(map.get("baz")).isEqualTo("qux"); - - map = FakeAuthenticator.parse("foo=bar\nbaz=qux"); - assertThat(map).hasSize(2); - assertThat(map.get("foo")).isEqualTo("bar"); - assertThat(map.get("baz")).isEqualTo("qux"); - - map = FakeAuthenticator.parse("foo=bar\n\n\nbaz=qux"); - assertThat(map).hasSize(2); - assertThat(map.get("foo")).isEqualTo("bar"); - assertThat(map.get("baz")).isEqualTo("qux"); - } - -} diff --git a/it/it-plugins/server-plugin/pom.xml b/it/it-plugins/server-plugin/pom.xml deleted file mode 100644 index 06e5fe8bb9f..00000000000 --- a/it/it-plugins/server-plugin/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>server-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <name>SonarQube Integration Tests :: Plugins :: Server</name> - <description>Main plugin for Server tests</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>ServerPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/server-plugin/src/main/java/ServerPlugin.java b/it/it-plugins/server-plugin/src/main/java/ServerPlugin.java deleted file mode 100644 index 07aa1f861a2..00000000000 --- a/it/it-plugins/server-plugin/src/main/java/ServerPlugin.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -/* - * SonarQube - * Copyright (C) 2009-2016 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import java.util.Arrays; -import java.util.List; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyField; -import org.sonar.api.SonarPlugin; - -import static org.sonar.api.PropertyType.BOOLEAN; -import static org.sonar.api.PropertyType.FLOAT; -import static org.sonar.api.PropertyType.INTEGER; -import static org.sonar.api.PropertyType.LICENSE; -import static org.sonar.api.PropertyType.LONG; -import static org.sonar.api.PropertyType.METRIC; -import static org.sonar.api.PropertyType.METRIC_LEVEL; -import static org.sonar.api.PropertyType.PASSWORD; -import static org.sonar.api.PropertyType.PROPERTY_SET; -import static org.sonar.api.PropertyType.SINGLE_SELECT_LIST; -import static org.sonar.api.PropertyType.STRING; -import static org.sonar.api.PropertyType.TEXT; -import static org.sonar.api.PropertyType.USER_LOGIN; - -@Properties({ - @Property(key = "some-property", name = "Some Property", defaultValue = "aDefaultValue", global = true, project = false), - @Property(key = "boolean", name = "Boolean", defaultValue = "true", type = BOOLEAN, global = true, project = false), - @Property(key = "user", name = "User", type = USER_LOGIN, global = true, project = false), - @Property(key = "list", name = "List", type = SINGLE_SELECT_LIST, options = {"A", "B", "C"}, global = true, project = false), - @Property(key = "metric", name = "Metric", type = METRIC, global = true, project = false), - @Property(key = "metric_level", name = "Metric Level", type = METRIC_LEVEL, global = true, project = false), - @Property(key = "float", name = "Float", type = FLOAT, global = true, project = false), - @Property(key = "int", name = "Integer", type = INTEGER, global = true, project = false), - @Property(key = "string", name = "String", type = STRING, global = true, project = false), - @Property(key = "setting.license.secured", name = "License", type = LICENSE, global = true, project = false), - @Property(key = "long", name = "Long", type = LONG, global = true, project = false), - @Property(key = "password", name = "Password", type = PASSWORD, global = true, project = false), - @Property(key = "text", name = "Text", type = TEXT, global = true, project = false), - @Property(key = "multi", name = "Multi", type = STRING, multiValues = true, global = true, project = false), - @Property(key = "hidden", name = "Hidden", type = STRING, global = false, project = false), - @Property(key = "project.setting", name = "Project setting", type = STRING, global = false, project = true), - @Property(key = "setting.secured", name = "Secured", type = STRING, global = true, project = false), - @Property(key = "sonar.jira", name = "Jira Server", type = PROPERTY_SET, propertySetKey = "jira", fields = { - @PropertyField(key = "key", name = "Key", description = "Server key"), - @PropertyField(key = "type", name = "Type", options = {"A", "B"}), - @PropertyField(key = "url", name = "URL"), - @PropertyField(key = "port", name = "Port", type = INTEGER)}), -}) -public class ServerPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList( - StartupCrash.class, TempFolderExtension.class); - } -} diff --git a/it/it-plugins/server-plugin/src/main/java/StartupCrash.java b/it/it-plugins/server-plugin/src/main/java/StartupCrash.java deleted file mode 100644 index cf57ccbc653..00000000000 --- a/it/it-plugins/server-plugin/src/main/java/StartupCrash.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.config.Settings; -import org.sonar.api.server.ServerSide; - - -@ServerSide -public class StartupCrash { - - private final Settings settings; - - public StartupCrash(Settings settings) { - this.settings = settings; - } - - public void start() { - if (settings.getBoolean("failAtStartup")) { - throw new IllegalStateException("Error in plugin [server]"); - } - } - - public void stop() { - - } -} diff --git a/it/it-plugins/server-plugin/src/main/java/TempFolderExtension.java b/it/it-plugins/server-plugin/src/main/java/TempFolderExtension.java deleted file mode 100644 index ddddf9d44de..00000000000 --- a/it/it-plugins/server-plugin/src/main/java/TempFolderExtension.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.ServerExtension; -import org.sonar.api.config.Settings; -import org.sonar.api.utils.TempFolder; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -@Properties({ - @Property( - key = TempFolderExtension.CREATE_TEMP_FILES, - type = PropertyType.BOOLEAN, - name = "Property to decide if it should create temp files", - defaultValue = "false") -}) -public class TempFolderExtension implements ServerExtension { - - private static final Logger LOG = Loggers.get(TempFolderExtension.class); - - public static final String CREATE_TEMP_FILES = "sonar.createTempFiles"; - - private Settings settings; - - private TempFolder tempFolder; - - public TempFolderExtension(Settings settings, TempFolder tempFolder) { - this.settings = settings; - this.tempFolder = tempFolder; - start(); - } - - public void start() { - if (settings.getBoolean(CREATE_TEMP_FILES)) { - LOG.info("Creating temp directory: " + tempFolder.newDir("sonar-it").getAbsolutePath()); - LOG.info("Creating temp file: " + tempFolder.newFile("sonar-it", ".txt").getAbsolutePath()); - } - } - -} diff --git a/it/it-plugins/settings-encryption-plugin/pom.xml b/it/it-plugins/settings-encryption-plugin/pom.xml deleted file mode 100644 index 3b51633ad9c..00000000000 --- a/it/it-plugins/settings-encryption-plugin/pom.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - <artifactId>settings-encryption-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <description>Plugins :: Settings Encryption</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>SettingsEncryptionPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/settings-encryption-plugin/src/main/java/EncryptionVerifier.java b/it/it-plugins/settings-encryption-plugin/src/main/java/EncryptionVerifier.java deleted file mode 100644 index 64a5f686a9a..00000000000 --- a/it/it-plugins/settings-encryption-plugin/src/main/java/EncryptionVerifier.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.BatchExtension; -import org.sonar.api.batch.InstantiationStrategy; -import org.sonar.api.config.Settings; - -@InstantiationStrategy(InstantiationStrategy.PER_BATCH) -public class EncryptionVerifier implements BatchExtension { - private Settings settings; - - public EncryptionVerifier(Settings settings) { - this.settings = settings; - } - - public void start() { - if (settings.hasKey("encryptedProperty")) { - System.out.println("Start EncryptionVerifier"); - - String decryptedValue = settings.getString("encryptedProperty"); - if (!"this is a secret".equals(decryptedValue)) { - throw new IllegalStateException("The property 'encryptedProperty' can not be decrypted"); - } - } - } -} diff --git a/it/it-plugins/settings-encryption-plugin/src/main/java/SettingsEncryptionPlugin.java b/it/it-plugins/settings-encryption-plugin/src/main/java/SettingsEncryptionPlugin.java deleted file mode 100644 index f387aa353a1..00000000000 --- a/it/it-plugins/settings-encryption-plugin/src/main/java/SettingsEncryptionPlugin.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.SonarPlugin; - -import java.util.Arrays; -import java.util.List; - -public class SettingsEncryptionPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(EncryptionVerifier.class); - } -} diff --git a/it/it-plugins/settings-plugin/pom.xml b/it/it-plugins/settings-plugin/pom.xml deleted file mode 100644 index fad8e9751f3..00000000000 --- a/it/it-plugins/settings-plugin/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>settings-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <description>Plugins :: Settings</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>SettingsPlugin</pluginClass> - <pluginName>Settings</pluginName> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/settings-plugin/src/main/java/PropertyTypes.java b/it/it-plugins/settings-plugin/src/main/java/PropertyTypes.java deleted file mode 100644 index 6af745cf3a3..00000000000 --- a/it/it-plugins/settings-plugin/src/main/java/PropertyTypes.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.ServerExtension; - -@Properties({ - @Property(key = "boolean", name = "Boolean", type=PropertyType.BOOLEAN), - @Property(key = "integer", name = "Integer", type=PropertyType.INTEGER), - @Property(key = "float", name = "Float", type=PropertyType.FLOAT), - @Property(key = "password", name = "Password", type=PropertyType.PASSWORD, defaultValue = "sonar"), - @Property(key = "text", name = "Text", type=PropertyType.TEXT), - @Property(key = "metric", name = "Metric", type=PropertyType.METRIC), - @Property(key = "single_select_list", name = "Single Select List", type=PropertyType.SINGLE_SELECT_LIST, options = {"de", "en", "nl"}) -}) -public class PropertyTypes implements ServerExtension { -} diff --git a/it/it-plugins/settings-plugin/src/main/java/ServerExtensionWithProperties.java b/it/it-plugins/settings-plugin/src/main/java/ServerExtensionWithProperties.java deleted file mode 100644 index c01936636a5..00000000000 --- a/it/it-plugins/settings-plugin/src/main/java/ServerExtensionWithProperties.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.ServerExtension; -import org.sonar.api.config.Settings; - -@Properties({ - @Property(key = "settings.extension.hidden", name = "Hidden Property", description = "Hidden Property defined on extension but not plugin", global = false, project = false, module = false, defaultValue = "teahupoo"), - @Property(key = "settings.extension.global", name = "Global Property", global = true, project = false, module = false) -}) -public final class ServerExtensionWithProperties implements ServerExtension { - - private Settings settings; - - public ServerExtensionWithProperties(Settings settings) { - this.settings = settings; - } - - public void start() { - System.out.println("Test that the default value of properties are automatically injected by the component Settings"); - if (!"teahupoo".equals(settings.getString("settings.extension.hidden"))) { - throw new IllegalStateException("The property settings.extension.hidden is not registered"); - } - } -} diff --git a/it/it-plugins/settings-plugin/src/main/java/SettingsPlugin.java b/it/it-plugins/settings-plugin/src/main/java/SettingsPlugin.java deleted file mode 100644 index 919c2960f2c..00000000000 --- a/it/it-plugins/settings-plugin/src/main/java/SettingsPlugin.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public class SettingsPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(ServerExtensionWithProperties.class, PropertyTypes.class); - } -} diff --git a/it/it-plugins/sonar-fake-plugin/pom.xml b/it/it-plugins/sonar-fake-plugin/pom.xml deleted file mode 100644 index a7bbe6cf90b..00000000000 --- a/it/it-plugins/sonar-fake-plugin/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>sonar-fake-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <name>Plugins :: Fake</name> - <description>SonarQube Integration Tests :: Fake Plugin</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <configuration> - <pluginClass>FakePlugin</pluginClass> - <pluginKey>fake</pluginKey> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/sonar-fake-plugin/src/main/java/FakePlugin.java b/it/it-plugins/sonar-fake-plugin/src/main/java/FakePlugin.java deleted file mode 100644 index 9cb009a8f1e..00000000000 --- a/it/it-plugins/sonar-fake-plugin/src/main/java/FakePlugin.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.SonarPlugin; - -import java.util.Collections; -import java.util.List; - -public final class FakePlugin extends SonarPlugin { - - public List getExtensions() { - return Collections.emptyList(); - } - -} diff --git a/it/it-plugins/sonar-subcategories-plugin/pom.xml b/it/it-plugins/sonar-subcategories-plugin/pom.xml deleted file mode 100644 index 25423ce116b..00000000000 --- a/it/it-plugins/sonar-subcategories-plugin/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>sonar-subcategories-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - - <name>Plugins :: SubCategories</name> - <description>Plugins :: SubCategories</description> - - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>SubCategoriesPlugin</pluginClass> - </configuration> - </plugin> - - - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>native2ascii-maven-plugin</artifactId> - <version>1.0-beta-1</version> - <executions> - <execution> - <goals> - <goal>native2ascii</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/sonar-subcategories-plugin/src/main/java/SubCategoriesPlugin.java b/it/it-plugins/sonar-subcategories-plugin/src/main/java/SubCategoriesPlugin.java deleted file mode 100644 index 51681289401..00000000000 --- a/it/it-plugins/sonar-subcategories-plugin/src/main/java/SubCategoriesPlugin.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; -import org.sonar.api.config.PropertyDefinition; -import org.sonar.api.resources.Qualifiers; - -public class SubCategoriesPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList( - PropertyDefinition.builder("prop1") - .index(2) - .category("Category 1") - .subCategory("Sub category 1") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop2") - .index(1) - // SONAR-4501 category are case insensitive - .category("category 1") - .subCategory("Sub category 1") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop3") - .category("Category 1") - .subCategory("Sub category 2") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop5") - .category("Category 1") - // SONAR-4501 subcategory are case insensitive - .subCategory("sub category 2") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop4") - .category("Category 1") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop2_1") - .category("Category 2") - .subCategory("Sub category 1 of 2") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop2_2") - .category("Category 2") - .subCategory("Sub category 2 of 2") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop_only_on_project") - .category("project-only") - .description("Foo") - .onlyOnQualifiers(Qualifiers.PROJECT) - .build()); - } -} diff --git a/it/it-plugins/sonar-subcategories-plugin/src/main/resources/org/sonar/l10n/subcategories.properties b/it/it-plugins/sonar-subcategories-plugin/src/main/resources/org/sonar/l10n/subcategories.properties deleted file mode 100644 index c5cba9d826c..00000000000 --- a/it/it-plugins/sonar-subcategories-plugin/src/main/resources/org/sonar/l10n/subcategories.properties +++ /dev/null @@ -1,3 +0,0 @@ -property.category.category\ 1=Category 1 -property.category.category\ 1.sub\ category\ 1=Sub category 1 -property.category.category\ 1.sub\ category\ 2=Sub category 2 diff --git a/it/it-plugins/ui-extensions-plugin/pom.xml b/it/it-plugins/ui-extensions-plugin/pom.xml deleted file mode 100644 index b6202b70b9d..00000000000 --- a/it/it-plugins/ui-extensions-plugin/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>ui-extensions-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <name>SonarQube Integration Tests :: Plugins :: UI extensions</name> - <description>Main plugin for UT extensions tests</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <version>1.15</version> - <extensions>true</extensions> - <configuration> - <pluginClass>UiExtensionsPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/ui-extensions-plugin/src/main/java/UiExtensionsPlugin.java b/it/it-plugins/ui-extensions-plugin/src/main/java/UiExtensionsPlugin.java deleted file mode 100644 index 8c26c046b0b..00000000000 --- a/it/it-plugins/ui-extensions-plugin/src/main/java/UiExtensionsPlugin.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -/* - * SonarQube - * Copyright (C) 2009-2016 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import org.sonar.api.Plugin; - -public class UiExtensionsPlugin implements Plugin { - @Override - public void define(Context context) { - context.addExtension(UiPageDefinition.class); - } -} diff --git a/it/it-plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java b/it/it-plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java deleted file mode 100644 index 6bcddd7c721..00000000000 --- a/it/it-plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -/* - * SonarQube - * Copyright (C) 2009-2016 SonarSource SA - * mailto:contact AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import org.sonar.api.web.page.Context; -import org.sonar.api.web.page.Page; -import org.sonar.api.web.page.PageDefinition; - -import static org.sonar.api.web.page.Page.Scope.COMPONENT; -import static org.sonar.api.web.page.Page.Scope.ORGANIZATION; - -public class UiPageDefinition implements PageDefinition { - @Override - public void define(Context context) { - context - .addPage(Page.builder("uiextensionsplugin/global_page").setName("Global Page").build()) - .addPage(Page.builder("uiextensionsplugin/global_admin_page").setName("Global Admin Page").setAdmin(true).build()) - .addPage(Page.builder("uiextensionsplugin/project_page").setName("Project Page").setScope(COMPONENT).build()) - .addPage(Page.builder("uiextensionsplugin/project_admin_page").setName("Project Admin Page").setScope(COMPONENT).setAdmin(true).build()) - .addPage(Page.builder("uiextensionsplugin/organization_page").setName("Organization Page").setScope(ORGANIZATION).build()) - .addPage(Page.builder("uiextensionsplugin/organization_admin_page").setName("Organization Admin Page").setScope(ORGANIZATION).setAdmin(true).build()); - } -} diff --git a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/cute.jpg b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/cute.jpg Binary files differdeleted file mode 100644 index 20f59bc1c42..00000000000 --- a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/cute.jpg +++ /dev/null diff --git a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/extension.js b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/extension.js deleted file mode 100644 index fd35455a4ea..00000000000 --- a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/extension.js +++ /dev/null @@ -1,2 +0,0 @@ -function hello() { -} diff --git a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/file.html b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/file.html deleted file mode 100644 index 6b0300e5f19..00000000000 --- a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/file.html +++ /dev/null @@ -1,6 +0,0 @@ -<html> - <body> - Text from static resource - <img id="cute-image" src="cute.jpg"/> - </body> -</html> diff --git a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/global_admin_page.js b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/global_admin_page.js deleted file mode 100644 index 18c70548fa8..00000000000 --- a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/global_admin_page.js +++ /dev/null @@ -1,4 +0,0 @@ -window.registerExtension('uiextensionsplugin/global_admin_page', function (options) { - options.el.textContent = 'uiextensionsplugin/global_admin_page'; - return function () {}; -}); diff --git a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/global_page.js b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/global_page.js deleted file mode 100644 index b60b5588c03..00000000000 --- a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/global_page.js +++ /dev/null @@ -1,4 +0,0 @@ -window.registerExtension('uiextensionsplugin/global_page', function (options) { - options.el.textContent = 'uiextensionsplugin/global_page'; - return function () {}; -}); diff --git a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_admin_page.js b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_admin_page.js deleted file mode 100644 index a3f740d8823..00000000000 --- a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_admin_page.js +++ /dev/null @@ -1,4 +0,0 @@ -window.registerExtension('uiextensionsplugin/organization_admin_page', function (options) { - options.el.textContent = 'uiextensionsplugin/organization_admin_page'; - return function () {}; -}); diff --git a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_page.js b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_page.js deleted file mode 100644 index 50c7e242f12..00000000000 --- a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_page.js +++ /dev/null @@ -1,4 +0,0 @@ -window.registerExtension('uiextensionsplugin/organization_page', function (options) { - options.el.textContent = 'uiextensionsplugin/organization_page'; - return function () {}; -});
\ No newline at end of file diff --git a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/project_admin_page.js b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/project_admin_page.js deleted file mode 100644 index bc632ea0a85..00000000000 --- a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/project_admin_page.js +++ /dev/null @@ -1,4 +0,0 @@ -window.registerExtension('uiextensionsplugin/project_admin_page', function (options) { - options.el.textContent = 'uiextensionsplugin/project_admin_page'; - return function () {}; -}); diff --git a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/project_page.js b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/project_page.js deleted file mode 100644 index 1e28dace449..00000000000 --- a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/project_page.js +++ /dev/null @@ -1,4 +0,0 @@ -window.registerExtension('uiextensionsplugin/project_page', function (options) { - options.el.textContent = 'uiextensionsplugin/project_page'; - return function () {}; -});
\ No newline at end of file diff --git a/it/it-plugins/ws-plugin/pom.xml b/it/it-plugins/ws-plugin/pom.xml deleted file mode 100644 index ba9f46755a5..00000000000 --- a/it/it-plugins/ws-plugin/pom.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>ws-plugin</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>sonar-plugin</packaging> - <name>SonarQube Integration Tests :: Plugins :: Ws</name> - <description>Plugin for WS tests</description> - - <dependencies> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-plugin-api</artifactId> - <version>${apiVersion}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-ws</artifactId> - <version>${apiVersion}</version> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> - <artifactId>sonar-packaging-maven-plugin</artifactId> - <extensions>true</extensions> - <configuration> - <pluginClass>WsPlugin</pluginClass> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/it/it-plugins/ws-plugin/src/main/java/LocalCallWebService.java b/it/it-plugins/ws-plugin/src/main/java/LocalCallWebService.java deleted file mode 100644 index 7de752bba25..00000000000 --- a/it/it-plugins/ws-plugin/src/main/java/LocalCallWebService.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; -import org.sonar.api.server.ws.Response; -import org.sonar.api.server.ws.WebService; -import org.sonarqube.ws.MediaTypes; -import org.sonarqube.ws.WsCe; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.LocalWsClientFactory; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsResponse; - -public final class LocalCallWebService implements WebService { - - private final LocalWsClientFactory wsClientFactory; - - public LocalCallWebService(LocalWsClientFactory wsClientFactory) { - this.wsClientFactory = wsClientFactory; - } - - @Override - public void define(Context context) { - NewController controller = context.createController("local_ws_call"); - controller.createAction("protobuf_data").setHandler(new ProtobufHandler()); - controller.createAction("json_data").setHandler(new JsonHandler()); - controller.createAction("require_permission").setHandler(new RequirePermissionHandler()); - controller.done(); - } - - private class ProtobufHandler implements RequestHandler { - @Override - public void handle(Request request, Response response) throws Exception { - WsClient client = wsClientFactory.newClient(request.localConnector()); - - WsCe.TaskTypesWsResponse ceTaskTypes = client.ce().taskTypes(); - response.stream().setStatus(ceTaskTypes.getTaskTypesCount() > 0 ? 200 : 500); - } - } - - private class JsonHandler implements RequestHandler { - @Override - public void handle(Request request, Response response) throws Exception { - WsClient client = wsClientFactory.newClient(request.localConnector()); - - WsResponse jsonResponse = client.wsConnector().call(new GetRequest("api/issues/search")); - boolean ok = jsonResponse.contentType().equals(MediaTypes.JSON) - && jsonResponse.isSuccessful() - && jsonResponse.content().contains("\"issues\":"); - response.stream().setStatus(ok ? 200 : 500); - } - } - - private class RequirePermissionHandler implements RequestHandler { - @Override - public void handle(Request request, Response response) throws Exception { - WsClient client = wsClientFactory.newClient(request.localConnector()); - - WsResponse jsonResponse = client.wsConnector().call(new GetRequest("api/system/info")); - - boolean ok = MediaTypes.JSON.equals(jsonResponse.contentType()) - && jsonResponse.isSuccessful() - && jsonResponse.content().startsWith("{"); - response.stream().setStatus(ok ? 200 : 500); - } - } -} diff --git a/it/it-plugins/ws-plugin/src/main/java/WsPlugin.java b/it/it-plugins/ws-plugin/src/main/java/WsPlugin.java deleted file mode 100644 index e36a8551d0e..00000000000 --- a/it/it-plugins/ws-plugin/src/main/java/WsPlugin.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; -import org.sonarqube.ws.client.WsClientFactories; - -public class WsPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(LocalCallWebService.class, WsClientFactories.getLocal()); - } -} diff --git a/it/it-projects/analysis/case-sensitive-file-extensions/sonar-project.properties b/it/it-projects/analysis/case-sensitive-file-extensions/sonar-project.properties deleted file mode 100644 index 795bbeb5cf9..00000000000 --- a/it/it-projects/analysis/case-sensitive-file-extensions/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=case-sensitive-file-extensions -sonar.projectName=Case Sensitive -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src -sonar.language=xoo diff --git a/it/it-projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO b/it/it-projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO deleted file mode 100644 index 7a7569a867b..00000000000 --- a/it/it-projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO +++ /dev/null @@ -1,2 +0,0 @@ -File extension is upper case. -It should not be ignored since SQ 4.0. diff --git a/it/it-projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO.measures b/it/it-projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO.measures deleted file mode 100644 index 5143bc664f8..00000000000 --- a/it/it-projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:2 diff --git a/it/it-projects/analysis/case-sensitive-file-extensions/src/lower.xoo b/it/it-projects/analysis/case-sensitive-file-extensions/src/lower.xoo deleted file mode 100644 index fd97999fff8..00000000000 --- a/it/it-projects/analysis/case-sensitive-file-extensions/src/lower.xoo +++ /dev/null @@ -1,10 +0,0 @@ -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/analysis/case-sensitive-file-extensions/src/lower.xoo.measures b/it/it-projects/analysis/case-sensitive-file-extensions/src/lower.xoo.measures deleted file mode 100644 index f82c5911efa..00000000000 --- a/it/it-projects/analysis/case-sensitive-file-extensions/src/lower.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:5 diff --git a/it/it-projects/analysis/custom-module-key/module_a/sonar-project.properties b/it/it-projects/analysis/custom-module-key/module_a/sonar-project.properties deleted file mode 100644 index 7c95bd81729..00000000000 --- a/it/it-projects/analysis/custom-module-key/module_a/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module A -sonar.moduleKey=com.sonarsource.it.samples:moduleA diff --git a/it/it-projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/it/it-projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/it/it-projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/it/it-projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/it/it-projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/it/it-projects/analysis/custom-module-key/module_b/sonar-project.properties b/it/it-projects/analysis/custom-module-key/module_b/sonar-project.properties deleted file mode 100644 index 04cd79e2247..00000000000 --- a/it/it-projects/analysis/custom-module-key/module_b/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module B -sonar.moduleKey=com.sonarsource.it.samples:moduleB diff --git a/it/it-projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/it/it-projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/it/it-projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -}
\ No newline at end of file diff --git a/it/it-projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/it/it-projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/analysis/custom-module-key/sonar-project.properties b/it/it-projects/analysis/custom-module-key/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/it/it-projects/analysis/custom-module-key/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/it/it-projects/analysis/duplicate-source/sonar-project.properties b/it/it-projects/analysis/duplicate-source/sonar-project.properties deleted file mode 100644 index cf176850bae..00000000000 --- a/it/it-projects/analysis/duplicate-source/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=com.sonarsource.it.projects.batch:duplicate-source -sonar.projectName=exclusions -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo,src/main/xoo2 -sonar.tests=src/test/xoo -sonar.language=xoo diff --git a/it/it-projects/analysis/duplicate-source/src/main/xoo/org/sonar/tests/ClassOne.xoo b/it/it-projects/analysis/duplicate-source/src/main/xoo/org/sonar/tests/ClassOne.xoo deleted file mode 100644 index 8cf8aec82fe..00000000000 --- a/it/it-projects/analysis/duplicate-source/src/main/xoo/org/sonar/tests/ClassOne.xoo +++ /dev/null @@ -1,5 +0,0 @@ -package org.sonar.tests; - -public class ClassOne { - -} diff --git a/it/it-projects/analysis/duplicate-source/src/main/xoo2/org/sonar/tests/ClassOne.xoo b/it/it-projects/analysis/duplicate-source/src/main/xoo2/org/sonar/tests/ClassOne.xoo deleted file mode 100644 index 8cf8aec82fe..00000000000 --- a/it/it-projects/analysis/duplicate-source/src/main/xoo2/org/sonar/tests/ClassOne.xoo +++ /dev/null @@ -1,5 +0,0 @@ -package org.sonar.tests; - -public class ClassOne { - -} diff --git a/it/it-projects/analysis/duplicate-source/src/test/xoo/org/sonar/tests/ClassOne.xoo b/it/it-projects/analysis/duplicate-source/src/test/xoo/org/sonar/tests/ClassOne.xoo deleted file mode 100644 index 8cf8aec82fe..00000000000 --- a/it/it-projects/analysis/duplicate-source/src/test/xoo/org/sonar/tests/ClassOne.xoo +++ /dev/null @@ -1,5 +0,0 @@ -package org.sonar.tests; - -public class ClassOne { - -} diff --git a/it/it-projects/analysis/extension-lifecycle/module_a/pom.xml b/it/it-projects/analysis/extension-lifecycle/module_a/pom.xml deleted file mode 100644 index 8cc056c4e81..00000000000 --- a/it/it-projects/analysis/extension-lifecycle/module_a/pom.xml +++ /dev/null @@ -1,14 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>module_a</artifactId> - <packaging>jar</packaging> - <name>Module A</name> - - <parent> - <groupId>com.sonarsource.it.projects.batch</groupId> - <artifactId>extension-lifecycle</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> - -</project>
\ No newline at end of file diff --git a/it/it-projects/analysis/extension-lifecycle/module_a/src/main/java/HelloA.java b/it/it-projects/analysis/extension-lifecycle/module_a/src/main/java/HelloA.java deleted file mode 100644 index 847098b9a50..00000000000 --- a/it/it-projects/analysis/extension-lifecycle/module_a/src/main/java/HelloA.java +++ /dev/null @@ -1,10 +0,0 @@ -public class HelloA { - private int i; - private HelloA() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/analysis/extension-lifecycle/module_b/pom.xml b/it/it-projects/analysis/extension-lifecycle/module_b/pom.xml deleted file mode 100644 index 449325b7691..00000000000 --- a/it/it-projects/analysis/extension-lifecycle/module_b/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>module_b</artifactId> - <packaging>jar</packaging> - <name>Module B</name> - - <parent> - <groupId>com.sonarsource.it.projects.batch</groupId> - <artifactId>extension-lifecycle</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> -</project>
\ No newline at end of file diff --git a/it/it-projects/analysis/extension-lifecycle/module_b/src/main/java/HelloB.java b/it/it-projects/analysis/extension-lifecycle/module_b/src/main/java/HelloB.java deleted file mode 100644 index afc7d2c906c..00000000000 --- a/it/it-projects/analysis/extension-lifecycle/module_b/src/main/java/HelloB.java +++ /dev/null @@ -1,10 +0,0 @@ -public class HelloB { - private int i; - private HelloB() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/analysis/extension-lifecycle/pom.xml b/it/it-projects/analysis/extension-lifecycle/pom.xml deleted file mode 100644 index 30de64cef8c..00000000000 --- a/it/it-projects/analysis/extension-lifecycle/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.sonarsource.it.projects.batch</groupId> - <artifactId>extension-lifecycle</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>pom</packaging> - <name>Sonar :: Integration Tests :: Extension Lifecycle Sample</name> - <modules> - <module>module_a</module> - <module>module_b</module> - </modules> -</project>
\ No newline at end of file diff --git a/it/it-projects/analysis/links-project/pom.xml b/it/it-projects/analysis/links-project/pom.xml deleted file mode 100644 index a0bc27aaab6..00000000000 --- a/it/it-projects/analysis/links-project/pom.xml +++ /dev/null @@ -1,31 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.sonarsource.it.samples</groupId> - <artifactId>simple-sample</artifactId> - <version>1.0-SNAPSHOT</version> - <name>Sonar :: Integration Tests :: Simple Sample</name> - - <url>http://www.simplesample.org</url> - - <issueManagement> - <system>jira</system> - <url>http://jira.codehaus.org/browse/SIMPLESAMPLE</url> - </issueManagement> - - <scm> - <connection>scm:git:git@github.com:SonarSource/simplesample.git</connection> - <developerConnection>scm:git:git@github.com:SonarSource/simplesample.git</developerConnection> - <url>https://github.com/SonarSource/simplesample</url> - </scm> - - <ciManagement> - <system>bamboo</system> - <url>http://bamboo.ci.codehaus.org/browse/SIMPLESAMPLE</url> - </ciManagement> - - <properties> - <!-- The following property MUST override the <url> definition of the POM --> - <sonar.links.homepage>http://www.simplesample.org_OVERRIDDEN</sonar.links.homepage> - </properties> - -</project>
\ No newline at end of file diff --git a/it/it-projects/analysis/links-project/sonar-project.properties b/it/it-projects/analysis/links-project/sonar-project.properties deleted file mode 100644 index 4352408bd5c..00000000000 --- a/it/it-projects/analysis/links-project/sonar-project.properties +++ /dev/null @@ -1,11 +0,0 @@ -sonar.projectKey=com.sonarsource.it.samples:simple-sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.projectName=Sonar :: Integration Tests :: Simple Sample - -sonar.sources=src/main/java - -sonar.links.homepage=http://www.simplesample.org_OVERRIDDEN -sonar.links.ci=http://bamboo.ci.codehaus.org/browse/SIMPLESAMPLE -sonar.links.issue=http://jira.codehaus.org/browse/SIMPLESAMPLE -sonar.links.scm=https://github.com/SonarSource/simplesample -sonar.links.scm_dev=scm:git:git@github.com:SonarSource/simplesample.git diff --git a/it/it-projects/analysis/links-project/src/main/java/sample/Sample.java b/it/it-projects/analysis/links-project/src/main/java/sample/Sample.java deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/analysis/links-project/src/main/java/sample/Sample.java +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/analysis/multi-languages/java-module/pom.xml b/it/it-projects/analysis/multi-languages/java-module/pom.xml deleted file mode 100644 index 9b9cb11763f..00000000000 --- a/it/it-projects/analysis/multi-languages/java-module/pom.xml +++ /dev/null @@ -1,15 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>com.sonarsource.it.projects.batch.multi-languages</groupId> - <artifactId>multi-languages</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> - <artifactId>java-module</artifactId> - <name>Java Module</name> - - <properties> - <sonar.language>java</sonar.language> - </properties> -</project> diff --git a/it/it-projects/analysis/multi-languages/java-module/src/main/java/HelloJava.java b/it/it-projects/analysis/multi-languages/java-module/src/main/java/HelloJava.java deleted file mode 100644 index c575aeb9d4c..00000000000 --- a/it/it-projects/analysis/multi-languages/java-module/src/main/java/HelloJava.java +++ /dev/null @@ -1,10 +0,0 @@ -public class HelloJava { - private int i; - private HelloJava() { - - } - - public void hello() { - System.out.println("hello" + " java"); - } -}
\ No newline at end of file diff --git a/it/it-projects/analysis/multi-languages/javascript-module/pom.xml b/it/it-projects/analysis/multi-languages/javascript-module/pom.xml deleted file mode 100644 index f0eb641e9e2..00000000000 --- a/it/it-projects/analysis/multi-languages/javascript-module/pom.xml +++ /dev/null @@ -1,20 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>com.sonarsource.it.projects.batch.multi-languages</groupId> - <artifactId>multi-languages</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> - <artifactId>javascript-module</artifactId> - <name>Javascript Module</name> - - <properties> - <sonar.language>js</sonar.language> - </properties> - - <build> - <sourceDirectory>src</sourceDirectory> - </build> - -</project>
\ No newline at end of file diff --git a/it/it-projects/analysis/multi-languages/javascript-module/src/Person.js b/it/it-projects/analysis/multi-languages/javascript-module/src/Person.js deleted file mode 100644 index d5eb180de72..00000000000 --- a/it/it-projects/analysis/multi-languages/javascript-module/src/Person.js +++ /dev/null @@ -1,14 +0,0 @@ - -var Person = function(first, last, middle) { - this.first = first; - this.middle = middle; - this.last = last; -}; - -Person.prototype = { - - whoAreYou : function() { - return this.first + (this.middle ? ' ' + this.middle: '') + ' ' + this.last; - } - -}; diff --git a/it/it-projects/analysis/multi-languages/pom.xml b/it/it-projects/analysis/multi-languages/pom.xml deleted file mode 100644 index bdde8327393..00000000000 --- a/it/it-projects/analysis/multi-languages/pom.xml +++ /dev/null @@ -1,16 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.sonarsource.it.projects.batch.multi-languages</groupId> - <artifactId>multi-languages</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>pom</packaging> - <name>Multi Languages</name> - <description>One language per module</description> - - <modules> - <module>java-module</module> - <module>javascript-module</module> - <module>python-module</module> - </modules> -</project>
\ No newline at end of file diff --git a/it/it-projects/analysis/multi-languages/python-module/pom.xml b/it/it-projects/analysis/multi-languages/python-module/pom.xml deleted file mode 100644 index 02520cd6de9..00000000000 --- a/it/it-projects/analysis/multi-languages/python-module/pom.xml +++ /dev/null @@ -1,19 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>com.sonarsource.it.projects.batch.multi-languages</groupId> - <artifactId>multi-languages</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> - <artifactId>python-module</artifactId> - <name>Python Module</name> - - <properties> - <sonar.language>py</sonar.language> - </properties> - - <build> - <sourceDirectory>src</sourceDirectory> - </build> -</project>
\ No newline at end of file diff --git a/it/it-projects/analysis/multi-languages/python-module/src/__init__.py b/it/it-projects/analysis/multi-languages/python-module/src/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 --- a/it/it-projects/analysis/multi-languages/python-module/src/__init__.py +++ /dev/null diff --git a/it/it-projects/analysis/multi-languages/python-module/src/badfortune.py b/it/it-projects/analysis/multi-languages/python-module/src/badfortune.py deleted file mode 100644 index b0900dc1695..00000000000 --- a/it/it-projects/analysis/multi-languages/python-module/src/badfortune.py +++ /dev/null @@ -1,92 +0,0 @@ - -# fortune.py -- chooses a random fortune, as the fortune(8) program in -# the BSD-games package does -# -# Copyright (c) 2010, Andrew M. Kuchling -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -import struct, random, string - -# C long variables are different sizes on 32-bit and 64-bit machines, -# so we have to measure how big they are on the machine where this is running. -LONG_SIZE = struct.calcsize('L') -is_64_bit = (LONG_SIZE == 8) - -def get(filename): - "Select a random quotation, using a pregenerated .dat file" - - # First, we open the .dat file, and read the header information. - # The C structure containing this info looks like: - ## typedef struct { /* information table */ - ## #define VERSION 1 - ## unsigned long str_version; /* version number */ - ## unsigned long str_numstr; /* # of strings in the file */ - ## unsigned long str_longlen; /* length of longest string */ - ## unsigned long str_shortlen; /* length of shortest string */ - ## #define STR_RANDOM 0x1 /* randomized pointers */ - ## #define STR_ORDERED 0x2 /* ordered pointers */ - ## #define STR_ROTATED 0x4 /* rot-13'd text */ - ## unsigned long str_flags; /* bit field for flags */ - ## unsigned char stuff[4]; /* long aligned space */ - ## #define str_delim stuff[0] /* delimiting character */ - ## } STRFILE; - - datfile = open(filename+'.dat', 'r') - data = datfile.read(5 * LONG_SIZE) - if is_64_bit: - v1, v2, n1, n2, l1, l2, s1, s2, f1, f2 = struct.unpack('!10L', data) - version = v1 + (v2 << 32) - numstr = n1 + (n2 << 32) - longlen = l1 + (l2 << 32) - shortlen = s1 + (s2 << 32) - flags = f1 + (f2 << 32) - else: - version, numstr, longlen, shortlen, flags = struct.unpack('5l', data) - - delimiter = datfile.read(1) - datfile.read(3) # Throw away padding bytes - if is_64_bit: datfile.read(4) # 64-bit machines align to 8 bytes - - # Pick a random number - r = random.randint(0, numstr) - datfile.seek(LONG_SIZE * r, 1) # Seek to the chosen pointer - data = datfile.read(LONG_SIZE * 2) - - if is_64_bit: - s1, s2, e1, e2 = struct.unpack('!4L', data) - start, end = s1 + (s2 << 32), e1 + (e2 << 32) - else: - start, end = struct.unpack('!ll', data) - datfile.close() - - file = open(filename, 'r') - file.seek(start) - quotation = file.read(end-start) - L=string.split(quotation, '\n') - while string.strip(L[-1]) == delimiter or string.strip(L[-1]) == "": - L=L[:-1] - return string.join(L, '\n') - -if __name__ == '__main__': - import sys - if len(sys.argv) == 1: - print 'Usage: fortune.py <filename>' - sys.exit() - print get(sys.argv[1]) diff --git a/it/it-projects/analysis/multi-languages/sonar-project.properties b/it/it-projects/analysis/multi-languages/sonar-project.properties deleted file mode 100644 index ab848fa49f4..00000000000 --- a/it/it-projects/analysis/multi-languages/sonar-project.properties +++ /dev/null @@ -1,19 +0,0 @@ -sonar.projectKey=multi-languages -sonar.projectName=Multi Languages -sonar.projectVersion=1.0-SNAPSHOT -sonar.modules=java-module,javascript-module,python-module - -# not used but mandatory parameter because of https://jira.codehaus.org/browse/SONARPLUGINS-2297 -sonar.sources=src - -java-module.sonar.projectName=Java Module -java-module.sonar.sources=src/main/java -java-module.sonar.language=java - -javascript-module.sonar.projectName=Javascript Module -javascript-module.sonar.sources=src -javascript-module.sonar.language=js - -python-module.sonar.projectName=Python Module -python-module.sonar.sources=src -python-module.sonar.language=py
\ No newline at end of file diff --git a/it/it-projects/analysis/prevent-common-module/projectAB/module_a/sonar-project.properties b/it/it-projects/analysis/prevent-common-module/projectAB/module_a/sonar-project.properties deleted file mode 100644 index 7c95bd81729..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAB/module_a/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module A -sonar.moduleKey=com.sonarsource.it.samples:moduleA diff --git a/it/it-projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/it/it-projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/it/it-projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/it/it-projects/analysis/prevent-common-module/projectAB/module_b/sonar-project.properties b/it/it-projects/analysis/prevent-common-module/projectAB/module_b/sonar-project.properties deleted file mode 100644 index 04cd79e2247..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAB/module_b/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module B -sonar.moduleKey=com.sonarsource.it.samples:moduleB diff --git a/it/it-projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/it/it-projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -}
\ No newline at end of file diff --git a/it/it-projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/it/it-projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/analysis/prevent-common-module/projectAB/sonar-project.properties b/it/it-projects/analysis/prevent-common-module/projectAB/sonar-project.properties deleted file mode 100644 index e3c23037ee1..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAB/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=projectAB -sonar.projectName=Project AB -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/it/it-projects/analysis/prevent-common-module/projectAC/module_a/sonar-project.properties b/it/it-projects/analysis/prevent-common-module/projectAC/module_a/sonar-project.properties deleted file mode 100644 index 7c95bd81729..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAC/module_a/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module A -sonar.moduleKey=com.sonarsource.it.samples:moduleA diff --git a/it/it-projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/it/it-projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/it/it-projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/it/it-projects/analysis/prevent-common-module/projectAC/module_c/sonar-project.properties b/it/it-projects/analysis/prevent-common-module/projectAC/module_c/sonar-project.properties deleted file mode 100644 index 670f26db1db..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAC/module_c/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module C -sonar.moduleKey=com.sonarsource.it.samples:moduleC diff --git a/it/it-projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/it/it-projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -}
\ No newline at end of file diff --git a/it/it-projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/it/it-projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/analysis/prevent-common-module/projectAC/sonar-project.properties b/it/it-projects/analysis/prevent-common-module/projectAC/sonar-project.properties deleted file mode 100644 index 342fb68ec8f..00000000000 --- a/it/it-projects/analysis/prevent-common-module/projectAC/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=projectAC -sonar.projectName=Project AC -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_c diff --git a/it/it-projects/analysis/project-builder/module_a/src/HelloA.java b/it/it-projects/analysis/project-builder/module_a/src/HelloA.java deleted file mode 100644 index 847098b9a50..00000000000 --- a/it/it-projects/analysis/project-builder/module_a/src/HelloA.java +++ /dev/null @@ -1,10 +0,0 @@ -public class HelloA { - private int i; - private HelloA() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/analysis/project-builder/module_b/src/HelloB.java b/it/it-projects/analysis/project-builder/module_b/src/HelloB.java deleted file mode 100644 index afc7d2c906c..00000000000 --- a/it/it-projects/analysis/project-builder/module_b/src/HelloB.java +++ /dev/null @@ -1,10 +0,0 @@ -public class HelloB { - private int i; - private HelloB() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/analysis/project-builder/module_b/src/IgnoredFile.java b/it/it-projects/analysis/project-builder/module_b/src/IgnoredFile.java deleted file mode 100644 index 9574c15b0ee..00000000000 --- a/it/it-projects/analysis/project-builder/module_b/src/IgnoredFile.java +++ /dev/null @@ -1 +0,0 @@ -this file has been selected by the extension CreateSubProjects.
\ No newline at end of file diff --git a/it/it-projects/analysis/project-builder/pom.xml b/it/it-projects/analysis/project-builder/pom.xml deleted file mode 100644 index e79f785f013..00000000000 --- a/it/it-projects/analysis/project-builder/pom.xml +++ /dev/null @@ -1,15 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.sonarsource.it.projects.batch</groupId> - <artifactId>project-builder</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>pom</packaging> - <name>Sonar :: Integration Tests :: Project Builder Sample</name> - - <!-- modules are not defined in pom but in sonar plugin --> - <!-- <modules> - <module>module_a</module> - <module>module_b</module> - </modules>--> -</project>
\ No newline at end of file diff --git a/it/it-projects/analysis/tracking/v1/sonar-project.properties b/it/it-projects/analysis/tracking/v1/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/it/it-projects/analysis/tracking/v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo b/it/it-projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 7bb5f438500..00000000000 --- a/it/it-projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:8 diff --git a/it/it-projects/analysis/tracking/v2/sonar-project.properties b/it/it-projects/analysis/tracking/v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/it/it-projects/analysis/tracking/v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo b/it/it-projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 3f624a15b08..00000000000 --- a/it/it-projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,14 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - System.out.println("foo"); - } - - private String myMethod() { - System.out.println("foo"); - return "hello"; - } -} diff --git a/it/it-projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 69a10eb19d4..00000000000 --- a/it/it-projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:10 diff --git a/it/it-projects/analysis/xoo-history-v2/sonar-project.properties b/it/it-projects/analysis/xoo-history-v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/it/it-projects/analysis/xoo-history-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo b/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo deleted file mode 100644 index b0fd1087030..00000000000 --- a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassAdded { - - public ClassAdded(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures b/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures deleted file mode 100644 index 66ba834e1ef..00000000000 --- a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures +++ /dev/null @@ -1,3 +0,0 @@ -ncloc:12 -classes:1 - diff --git a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo b/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 393111bbab0..00000000000 --- a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - public String addedMethod() { - return "This method was added in v2"; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures b/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 71d60758637..00000000000 --- a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,3 +0,0 @@ -ncloc:16 -classes:1 - diff --git a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo b/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures b/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/it/it-projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/it/it-projects/analysis/xoo-multi-languages/sonar-project.properties b/it/it-projects/analysis/xoo-multi-languages/sonar-project.properties deleted file mode 100644 index a2941788c41..00000000000 --- a/it/it-projects/analysis/xoo-multi-languages/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=multi-language-sample -sonar.projectName=Multi-Language Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src diff --git a/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo b/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo.measures b/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo.measures deleted file mode 100644 index 5dc0154b75d..00000000000 --- a/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2 b/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2 deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2 +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2.measures b/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2.measures deleted file mode 100644 index 5dc0154b75d..00000000000 --- a/it/it-projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo b/it/it-projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo.measures b/it/it-projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/it/it-projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/analysis/xoo-sample-with-spaces/v1/sonar-project.properties b/it/it-projects/analysis/xoo-sample-with-spaces/v1/sonar-project.properties deleted file mode 100644 index bae5f7f152c..00000000000 --- a/it/it-projects/analysis/xoo-sample-with-spaces/v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=my sources/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo b/it/it-projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo deleted file mode 100644 index 8c91df8b6cf..00000000000 --- a/it/it-projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod_modified() { - return "hello"; - } -} diff --git a/it/it-projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo.measures b/it/it-projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/it/it-projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/analysis/xoo-sample-with-spaces/v2/sonar-project.properties b/it/it-projects/analysis/xoo-sample-with-spaces/v2/sonar-project.properties deleted file mode 100644 index bae5f7f152c..00000000000 --- a/it/it-projects/analysis/xoo-sample-with-spaces/v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=my sources/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/after/module_a/module_a1/sonar-project.properties b/it/it-projects/dbCleaner/files/after/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/it/it-projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo b/it/it-projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo deleted file mode 100644 index f21f75685b5..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class NewHelloA1 { - private int i; - private NewHelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo.measures b/it/it-projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo.measures deleted file mode 100644 index 737b14c6713..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/dbCleaner/files/after/module_a/module_a2/sonar-project.properties b/it/it-projects/dbCleaner/files/after/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/it/it-projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/it/it-projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/it/it-projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/after/module_a/sonar-project.properties b/it/it-projects/dbCleaner/files/after/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/it/it-projects/dbCleaner/files/after/module_b/module_b1/sonar-project.properties b/it/it-projects/dbCleaner/files/after/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/it/it-projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/it/it-projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/it/it-projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/after/module_b/module_b2/sonar-project.properties b/it/it-projects/dbCleaner/files/after/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/it/it-projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/it/it-projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/it/it-projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/after/module_b/sonar-project.properties b/it/it-projects/dbCleaner/files/after/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/it/it-projects/dbCleaner/files/after/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/it/it-projects/dbCleaner/files/after/sonar-project.properties b/it/it-projects/dbCleaner/files/after/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/it/it-projects/dbCleaner/files/after/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/it/it-projects/dbCleaner/files/before/module_a/module_a1/sonar-project.properties b/it/it-projects/dbCleaner/files/before/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/it/it-projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/it/it-projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/it/it-projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 737b14c6713..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/dbCleaner/files/before/module_a/module_a2/sonar-project.properties b/it/it-projects/dbCleaner/files/before/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/it/it-projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/it/it-projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/it/it-projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/before/module_a/sonar-project.properties b/it/it-projects/dbCleaner/files/before/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/it/it-projects/dbCleaner/files/before/module_b/module_b1/sonar-project.properties b/it/it-projects/dbCleaner/files/before/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/it/it-projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/it/it-projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/it/it-projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/before/module_b/module_b2/sonar-project.properties b/it/it-projects/dbCleaner/files/before/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/it/it-projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/it/it-projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/it/it-projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/files/before/module_b/sonar-project.properties b/it/it-projects/dbCleaner/files/before/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/it/it-projects/dbCleaner/files/before/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/it/it-projects/dbCleaner/files/before/sonar-project.properties b/it/it-projects/dbCleaner/files/before/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/it/it-projects/dbCleaner/files/before/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/it/it-projects/dbCleaner/modules/after/module_a/module_a1/sonar-project.properties b/it/it-projects/dbCleaner/modules/after/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/it/it-projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/it/it-projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/it/it-projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 737b14c6713..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/dbCleaner/modules/after/module_a/module_a2/sonar-project.properties b/it/it-projects/dbCleaner/modules/after/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/it/it-projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/it/it-projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/it/it-projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/after/module_a/sonar-project.properties b/it/it-projects/dbCleaner/modules/after/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/it/it-projects/dbCleaner/modules/after/module_c/module_c1/sonar-project.properties b/it/it-projects/dbCleaner/modules/after/module_c/module_c1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_c/module_c1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/it/it-projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/it/it-projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/it/it-projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/after/module_c/module_c2/sonar-project.properties b/it/it-projects/dbCleaner/modules/after/module_c/module_c2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_c/module_c2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/it/it-projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/it/it-projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/it/it-projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/after/module_c/sonar-project.properties b/it/it-projects/dbCleaner/modules/after/module_c/sonar-project.properties deleted file mode 100644 index e379019d264..00000000000 --- a/it/it-projects/dbCleaner/modules/after/module_c/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_c -sonar.projectName=Module C - -sonar.modules=module_c1,module_c2 diff --git a/it/it-projects/dbCleaner/modules/after/sonar-project.properties b/it/it-projects/dbCleaner/modules/after/sonar-project.properties deleted file mode 100644 index 6a6d185f9df..00000000000 --- a/it/it-projects/dbCleaner/modules/after/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_c diff --git a/it/it-projects/dbCleaner/modules/before/module_a/module_a1/sonar-project.properties b/it/it-projects/dbCleaner/modules/before/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/it/it-projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/it/it-projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/it/it-projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 737b14c6713..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/dbCleaner/modules/before/module_a/module_a2/sonar-project.properties b/it/it-projects/dbCleaner/modules/before/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/it/it-projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/it/it-projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/it/it-projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/before/module_a/sonar-project.properties b/it/it-projects/dbCleaner/modules/before/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/it/it-projects/dbCleaner/modules/before/module_b/module_b1/sonar-project.properties b/it/it-projects/dbCleaner/modules/before/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/it/it-projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/it/it-projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/it/it-projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/before/module_b/module_b2/sonar-project.properties b/it/it-projects/dbCleaner/modules/before/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/it/it-projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/it/it-projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/it/it-projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/modules/before/module_b/sonar-project.properties b/it/it-projects/dbCleaner/modules/before/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/it/it-projects/dbCleaner/modules/before/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/it/it-projects/dbCleaner/modules/before/sonar-project.properties b/it/it-projects/dbCleaner/modules/before/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/it/it-projects/dbCleaner/modules/before/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 737b14c6713..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/sonar-project.properties b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/sonar-project.properties b/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/it/it-projects/dbCleaner/xoo-multi-modules-sample/sonar-project.properties b/it/it-projects/dbCleaner/xoo-multi-modules-sample/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/it/it-projects/dbCleaner/xoo-multi-modules-sample/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/it/it-projects/duplications/cross-module/module1/sonar-project.properties b/it/it-projects/duplications/cross-module/module1/sonar-project.properties deleted file mode 100644 index a4b8c4853a5..00000000000 --- a/it/it-projects/duplications/cross-module/module1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=module1 -sonar.projectName=Module 1 -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo b/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo deleted file mode 100644 index 5e494b196ab..00000000000 --- a/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo +++ /dev/null @@ -1,35 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void test() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - } -} diff --git a/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo.measures b/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo.measures deleted file mode 100644 index 5a79b0b5dbb..00000000000 --- a/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:36 diff --git a/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo b/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo deleted file mode 100644 index 00b502d423a..00000000000 --- a/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo +++ /dev/null @@ -1,23 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void otherMethod() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - int nothing = 0; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - int nothing = 1; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - int nothing = 2; - } - } -} diff --git a/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo.measures b/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo.measures deleted file mode 100644 index d90983a3e9f..00000000000 --- a/it/it-projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:24 diff --git a/it/it-projects/duplications/cross-module/module2/sonar-project.properties b/it/it-projects/duplications/cross-module/module2/sonar-project.properties deleted file mode 100644 index 0b71b3d7548..00000000000 --- a/it/it-projects/duplications/cross-module/module2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=module2 -sonar.projectName=Module 2 -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo b/it/it-projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo deleted file mode 100644 index cc0b6612812..00000000000 --- a/it/it-projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo +++ /dev/null @@ -1,35 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void test2() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - } -} diff --git a/it/it-projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo.measures b/it/it-projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo.measures deleted file mode 100644 index 5a79b0b5dbb..00000000000 --- a/it/it-projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:36 diff --git a/it/it-projects/duplications/cross-module/sonar-project.properties b/it/it-projects/duplications/cross-module/sonar-project.properties deleted file mode 100644 index f4c7496f179..00000000000 --- a/it/it-projects/duplications/cross-module/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=cross-module -sonar.projectName=Cross Module Duplication -sonar.projectVersion=1.0-SNAPSHOT -sonar.modules=module1,module2 diff --git a/it/it-projects/duplications/cross-project/duplicate/sonar-project.properties b/it/it-projects/duplications/cross-project/duplicate/sonar-project.properties deleted file mode 100644 index cc020389cbd..00000000000 --- a/it/it-projects/duplications/cross-project/duplicate/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=cross-project -sonar.projectName=Cross project -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo b/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo deleted file mode 100644 index 5e494b196ab..00000000000 --- a/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo +++ /dev/null @@ -1,35 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void test() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - } -} diff --git a/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo.measures b/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo.measures deleted file mode 100644 index 5a79b0b5dbb..00000000000 --- a/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:36 diff --git a/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo b/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo deleted file mode 100644 index 00b502d423a..00000000000 --- a/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo +++ /dev/null @@ -1,23 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void otherMethod() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - int nothing = 0; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - int nothing = 1; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - int nothing = 2; - } - } -} diff --git a/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo.measures b/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo.measures deleted file mode 100644 index d90983a3e9f..00000000000 --- a/it/it-projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:24 diff --git a/it/it-projects/duplications/cross-project/origin/sonar-project.properties b/it/it-projects/duplications/cross-project/origin/sonar-project.properties deleted file mode 100644 index cc020389cbd..00000000000 --- a/it/it-projects/duplications/cross-project/origin/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=cross-project -sonar.projectName=Cross project -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo b/it/it-projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo deleted file mode 100644 index cc0b6612812..00000000000 --- a/it/it-projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo +++ /dev/null @@ -1,35 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void test2() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - } -} diff --git a/it/it-projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo.measures b/it/it-projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo.measures deleted file mode 100644 index 5a79b0b5dbb..00000000000 --- a/it/it-projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:36 diff --git a/it/it-projects/duplications/file-duplications/sonar-project.properties b/it/it-projects/duplications/file-duplications/sonar-project.properties deleted file mode 100644 index ae173196ce4..00000000000 --- a/it/it-projects/duplications/file-duplications/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=file-duplications -sonar.projectName=File duplications -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index 88e610b4a74..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,41 +0,0 @@ -package duplicated_lines_with_other_dir1; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 03005736cf7..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:42 diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index bb3cc734be4..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,41 +0,0 @@ -package duplicated_lines_with_other_dir2; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 03005736cf7..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:42 diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo deleted file mode 100644 index 5f23377bed4..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo +++ /dev/null @@ -1,105 +0,0 @@ -package duplicated_lines_within_dir; - -public class DuplicatedLinesInSameDirectory1 { - - public DuplicatedLinesInSameDirectory1() { - } - - /* - * sddfgdfgfg - */ - public void duplicatedMethodInSameFile1() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - // first - int intergerToBeIncremented3 = 0; - while (intergerToBeIncremented3 < 100) { - intergerToBeIncremented3++; - } - int intergerToBeIncremented4 = 0; - while (intergerToBeIncremented4 < 100) { - intergerToBeIncremented4++; - } - int intergerToBeIncremented5 = 0; - while (intergerToBeIncremented5 < 100) { - intergerToBeIncremented5++; - } - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - int intergerToBeIncremented7 = 0; - while (intergerToBeIncremented7 < 100) { - intergerToBeIncremented7++; - } - } - - - public void duplicatedMethodInSameFile3() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - // test2 - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - int intergerToBeIncremented8 = 0; - while (intergerToBeIncremented8 < 100) { - intergerToBeIncremented8++; - } - int intergerToBeIncremented9 = 0; - while (intergerToBeIncremented9 < 100) { - intergerToBeIncremented9++; - } - // test 1 - int intergerToBeIncremented10 = 0; - while (intergerToBeIncremented10 < 100) { - intergerToBeIncremented10++; - } - int intergerToBeIncremented60 = 0; - while (intergerToBeIncremented60 < 100) { - intergerToBeIncremented60++; - } - int intergerToBeIncremented70 = 0; - while (intergerToBeIncremented70 < 100) { - intergerToBeIncremented70++; - } - } - - public void duplicated2MethodInSameFile3() { - System.out.print("copy test start"); - int intergerToBeIncremented1 = 0; - while (intergerToBeIncremented1 < 100) { - intergerToBeIncremented1++; - } - int intergerToBeIncremented20 = 0; - while (intergerToBeIncremented20 < 100) { - intergerToBeIncremented20++; - } - int intergerToBeIncremented8 = 0; - while (intergerToBeIncremented8 < 100) { - intergerToBeIncremented8++; - } - int intergerToBeIncremented9 = 0; - while (intergerToBeIncremented9 < 100) { - intergerToBeIncremented9++; - } - int intergerToBeIncremented10 = 0; - while (intergerToBeIncremented10 < 100) { - intergerToBeIncremented10++; - } - int intergerToBeIncremented60 = 0; - while (intergerToBeIncremented60 < 100) { - intergerToBeIncremented60++; - } - System.out.print("copy test end"); - } -} diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo.measures b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo.measures deleted file mode 100644 index c71c98ec52e..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:106 diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo deleted file mode 100644 index b565bfd75a2..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo +++ /dev/null @@ -1,71 +0,0 @@ -package duplicated_lines_within_dir; - -public class DuplicatedLinesInSameDirectory2 { - - public DuplicatedLinesInSameDirectory2() { - } - - public void duplicated2MethodInSameFile3() { - System.out.print("copy test start"); - int intergerToBeIncremented1 = 0; - while (intergerToBeIncremented1 < 100) { - intergerToBeIncremented1++; - } - int intergerToBeIncremented20 = 0; - while (intergerToBeIncremented20 < 100) { - intergerToBeIncremented20++; - } - int intergerToBeIncremented8 = 0; - while (intergerToBeIncremented8 < 100) { - intergerToBeIncremented8++; - } - int intergerToBeIncremented9 = 0; - while (intergerToBeIncremented9 < 100) { - intergerToBeIncremented9++; - } - int intergerToBeIncremented10 = 0; - while (intergerToBeIncremented10 < 100) { - intergerToBeIncremented10++; - } - int intergerToBeIncremented60 = 0; - while (intergerToBeIncremented60 < 100) { - intergerToBeIncremented60++; - } - System.out.print("copy test end"); - } - - public void duplicatedMethodInSameFile1() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - // second - int intergerToBeIncremented3 = 0; - while (intergerToBeIncremented3 < 100) { - intergerToBeIncremented3++; - } - int intergerToBeIncremented4 = 0; - while (intergerToBeIncremented4 < 100) { - intergerToBeIncremented4++; - } - int intergerToBeIncremented5 = 0; - while (intergerToBeIncremented5 < 100) { - intergerToBeIncremented5++; - } - // vghgvhz - // bhjjh - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - int intergerToBeIncremented7 = 0; - while (intergerToBeIncremented7 < 100) { - intergerToBeIncremented7++; - } - } - -} diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo.measures b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo.measures deleted file mode 100644 index f175998c7cc..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:72 diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo deleted file mode 100644 index 6a0d3345eb7..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo +++ /dev/null @@ -1,70 +0,0 @@ -package duplicated_lines_within_same_file; - -public class DuplicatedLinesInSameFile { - - public DuplicatedLinesInSameFile() { - } - - public void duplicatedMethodInSameFile1() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - for (int i=0; i<40; i++){ - temp += "really nothing to say "+i; - } - for (int i=0; i<50; i++){ - temp += "really really nothing to say "+i; - } - for (int i=0; i<60; i++){ - temp += ".. "+i; - } - for (int i=0; i<70; i++){ - temp += "you say something? "+i; - } - for (int i=0; i<80; i++){ - temp += "ah no..."+i; - } - for (int i=0; i<90; i++){ - temp += "bye"+i; - } - } - - public void duplicatedMethodInSameFile2() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - for (int i=0; i<40; i++){ - temp += "really nothing to say "+i; - } - for (int i=0; i<50; i++){ - temp += "really really nothing to say "+i; - } - for (int i=0; i<60; i++){ - temp += ".. "+i; - } - for (int i=0; i<70; i++){ - temp += "you say something? "+i; - } - for (int i=0; i<80; i++){ - temp += "ah no..."+i; - } - for (int i=0; i<90; i++){ - temp += "bye"+i; - } - } - -} diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures deleted file mode 100644 index 5e818e5e054..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:71 diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo deleted file mode 100644 index 8083fdec9d6..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo +++ /dev/null @@ -1,41 +0,0 @@ -package duplicated_same_lines_within_3_files; - -public class File1 { - - public void someMethod() { - System.out.println("Test"); - } - - public void duplicatedMethod() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - System.out.println("test"); - int intergerToBeIncremented3 = 0; - while (intergerToBeIncremented3 < 100) { - intergerToBeIncremented3++; - } - System.out.println("test"); - int intergerToBeIncremented4 = 0; - while (intergerToBeIncremented4 < 100) { - intergerToBeIncremented4++; - } - System.out.println("test"); - int intergerToBeIncremented5 = 0; - while (intergerToBeIncremented5 < 100) { - intergerToBeIncremented5++; - } - System.out.println("test"); - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - System.out.println("test"); - int intergerToBeIncremented7 = 0; - while (intergerToBeIncremented7 < 100) { - intergerToBeIncremented7++; - } - } - -} diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo.measures b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo.measures deleted file mode 100644 index 03005736cf7..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:42 diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo deleted file mode 100644 index b76919dbd67..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo +++ /dev/null @@ -1,40 +0,0 @@ -package duplicated_same_lines_within_3_files; - -public class File2 { - - public void duplicatedMethod() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - System.out.println("test"); - int intergerToBeIncremented3 = 0; - while (intergerToBeIncremented3 < 100) { - intergerToBeIncremented3++; - } - System.out.println("test"); - int intergerToBeIncremented4 = 0; - while (intergerToBeIncremented4 < 100) { - intergerToBeIncremented4++; - } - System.out.println("test"); - int intergerToBeIncremented5 = 0; - while (intergerToBeIncremented5 < 100) { - intergerToBeIncremented5++; - } - System.out.println("test"); - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - System.out.println("test"); - int intergerToBeIncremented7 = 0; - while (intergerToBeIncremented7 < 100) { - intergerToBeIncremented7++; - } - } - - public void someOtherMethod() { - System.out.println("Test2"); - } -} diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo.measures b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo.measures deleted file mode 100644 index 076450c97b0..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:41 diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo deleted file mode 100644 index 5db9d2fd221..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo +++ /dev/null @@ -1,43 +0,0 @@ -package duplicated_same_lines_within_3_files; - -public class File3 { - - private String test; - - public void duplicatedMethod() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - System.out.println("test"); - int intergerToBeIncremented3 = 0; - while (intergerToBeIncremented3 < 100) { - intergerToBeIncremented3++; - } - System.out.println("test"); - int intergerToBeIncremented4 = 0; - while (intergerToBeIncremented4 < 100) { - intergerToBeIncremented4++; - } - System.out.println("test"); - int intergerToBeIncremented5 = 0; - while (intergerToBeIncremented5 < 100) { - intergerToBeIncremented5++; - } - System.out.println("test"); - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - System.out.println("test"); - int intergerToBeIncremented7 = 0; - while (intergerToBeIncremented7 < 100) { - intergerToBeIncremented7++; - } - } - - public String getTest() { - return test; - } - -} diff --git a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo.measures b/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo.measures deleted file mode 100644 index 9fd62445ebd..00000000000 --- a/it/it-projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:44 diff --git a/it/it-projects/duplications/new-duplications-v1/sonar-project.properties b/it/it-projects/duplications/new-duplications-v1/sonar-project.properties deleted file mode 100644 index 6f0a3e53d33..00000000000 --- a/it/it-projects/duplications/new-duplications-v1/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=new-duplications -sonar.projectName=New duplications -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo b/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index 366e85ec229..00000000000 --- a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,17 +0,0 @@ -package duplicated_lines_with_other_dir1; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures b/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 57948d5b8c6..00000000000 --- a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:18 diff --git a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm b/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm deleted file mode 100644 index a4f7ca6c8b0..00000000000 --- a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm +++ /dev/null @@ -1,18 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo b/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index 366e85ec229..00000000000 --- a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,17 +0,0 @@ -package duplicated_lines_with_other_dir1; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures b/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 57948d5b8c6..00000000000 --- a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:18 diff --git a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm b/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm deleted file mode 100644 index a4f7ca6c8b0..00000000000 --- a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm +++ /dev/null @@ -1,18 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo b/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo deleted file mode 100644 index 89addba19cf..00000000000 --- a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo +++ /dev/null @@ -1,39 +0,0 @@ -package duplicated_lines_within_same_file; - -public class DuplicatedLinesInSameFile { - - public DuplicatedLinesInSameFile() { - } - - public void duplicatedMethodInSameFile1() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - for (int i=0; i<40; i++){ - temp += "really nothing to say "+i; - } - for (int i=0; i<50; i++){ - temp += "really really nothing to say "+i; - } - for (int i=0; i<60; i++){ - temp += ".. "+i; - } - for (int i=0; i<70; i++){ - temp += "you say something? "+i; - } - for (int i=0; i<80; i++){ - temp += "ah no..."+i; - } - for (int i=0; i<90; i++){ - temp += "bye"+i; - } - } - -} diff --git a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures b/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures deleted file mode 100644 index 9680b5f6c8a..00000000000 --- a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:40 diff --git a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm b/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm deleted file mode 100644 index 50df6bcf039..00000000000 --- a/it/it-projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm +++ /dev/null @@ -1,40 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/it/it-projects/duplications/new-duplications-v2/sonar-project.properties b/it/it-projects/duplications/new-duplications-v2/sonar-project.properties deleted file mode 100644 index 6f0a3e53d33..00000000000 --- a/it/it-projects/duplications/new-duplications-v2/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=new-duplications -sonar.projectName=New duplications -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index 88e610b4a74..00000000000 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,41 +0,0 @@ -package duplicated_lines_with_other_dir1; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 03005736cf7..00000000000 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:42 diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm deleted file mode 100644 index 728006a3575..00000000000 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm +++ /dev/null @@ -1,42 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index 433514f17af..00000000000 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,35 +0,0 @@ -package duplicated_lines_with_other_dir2; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 33a558499a3..00000000000 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:36 - diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm deleted file mode 100644 index 8320f408e7a..00000000000 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm +++ /dev/null @@ -1,36 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo deleted file mode 100644 index a0d79b856c6..00000000000 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo +++ /dev/null @@ -1,80 +0,0 @@ -package duplicated_lines_within_same_file; - -public class DuplicatedLinesInSameFile { - - public DuplicatedLinesInSameFile() { - } - - public void duplicatedMethodInSameFile1() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - for (int i=0; i<40; i++){ - temp += "really nothing to say "+i; - } - for (int i=0; i<50; i++){ - temp += "really really nothing to say "+i; - } - for (int i=0; i<60; i++){ - temp += ".. "+i; - } - for (int i=0; i<70; i++){ - temp += "you say something? "+i; - } - for (int i=0; i<80; i++){ - temp += "ah no..."+i; - } - for (int i=0; i<90; i++){ - temp += "bye"+i; - } - } - - public void duplicatedMethodInSameFile2() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - for (int i=0; i<40; i++){ - temp += "really nothing to say "+i; - } - // Some comment - // Some comment - // Some comment - for (int i=0; i<50; i++){ - temp += "really really nothing to say "+i; - } - for (int i=0; i<60; i++){ - temp += ".. "+i; - } - for (int i=0; i<70; i++){ - temp += "you say something? "+i; - } - for (int i=0; i<80; i++){ - temp += "ah no..."+i; - } - for (int i=0; i<90; i++){ - temp += "bye"+i; - } - } - - public void notDuplicated(){ - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - } - -} diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures deleted file mode 100644 index 2fb2025cb32..00000000000 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:81 - diff --git a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm b/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm deleted file mode 100644 index f3cf9706ffa..00000000000 --- a/it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm +++ /dev/null @@ -1,81 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/it/it-projects/exclusions/exclusions/sonar-project.properties b/it/it-projects/exclusions/exclusions/sonar-project.properties deleted file mode 100644 index 8b26cec2224..00000000000 --- a/it/it-projects/exclusions/exclusions/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=exclusions -sonar.projectName=Exclusions -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.tests=src/test/xoo -sonar.language=xoo diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo b/it/it-projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo deleted file mode 100644 index 52d311f7e38..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo +++ /dev/null @@ -1,10 +0,0 @@ -public class ClassOnDefaultPackage { - - public ClassOnDefaultPackage(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo.measures b/it/it-projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo.measures deleted file mode 100644 index 7bb5f438500..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:8 diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo deleted file mode 100644 index be537077200..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo +++ /dev/null @@ -1,32 +0,0 @@ -package org.sonar.tests; - -public class ClassOne { - public void toto() throws Exception { - int i=0; - i++; - } - public String hello() { - return "hello"; - } - - protected void duplicatedMethod(int i) { - i++; - int j=10; - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - System.out.println("i=" + i); - } -} diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo.measures b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo.measures deleted file mode 100644 index 7f28308edeb..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:30 diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo deleted file mode 100644 index 6e7c3f7ba16..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo +++ /dev/null @@ -1,66 +0,0 @@ -package org.sonar.tests; - -/** - * JAVADOC - * ......... - */ -public class ClassToExclude { - String test = "foo"; - String test2 = "bar"; - String test3 = "toto"; - - public ClassToExclude(){ - String t; - if (true) - t = "sonar"; - } - - public static final String method1(String unused) { - if (true) { - return "foo"; - } - if (false) { - return "foooooo"; - } - String loooooooooooooooooooooooooooooooooooooooooooooongVar = "wantsViolations"; - return loooooooooooooooooooooooooooooooooooooooooooooongVar; - } - - protected void duplicatedMethod(int i) { - // commmmmmmments - // foo.............. - i++; - int j=10; - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - System.out.println("i=" + i); - } -} diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo.measures b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo.measures deleted file mode 100644 index 9c54091bef9..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:59 diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo deleted file mode 100644 index 1db5746a7b5..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo +++ /dev/null @@ -1,4 +0,0 @@ -package org.sonar.tests; - -public class ClassToIgnoreGlobally { -} diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo.measures b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo.measures deleted file mode 100644 index 1fa2c73b3d0..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:3 diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo deleted file mode 100644 index 8d6db94e588..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo +++ /dev/null @@ -1,26 +0,0 @@ -package org.sonar.tests; - -import java.lang.String; - -/** - * THE JAVADOC HEADER - */ -public class ClassTwo { - - public ClassTwo(int i) { - // single comment - int j = i++; - myMethod(); - } - - private String myMethod() { - /* - comment - on - many - lines - */ - int toto = 34; // comment at end of line - return "hello"; - } -} diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo.measures b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo.measures deleted file mode 100644 index 7da3c1fffef..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:12 diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo deleted file mode 100644 index 206d72ba6ac..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo +++ /dev/null @@ -1,13 +0,0 @@ -package org.sonar.tests; - -import java.lang.String;//NOSONAR - -public class NoSonarComment { - - public NoSonarComment(int i) {//NOSONAR - i=3;// NOSONAR - i=4; // ERROR magic number, parameter assignment - String s="foo"; - if (s=="bar") return; // ERROR: compare Strings with equals() - } -} diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo.measures b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo.measures deleted file mode 100644 index 69a10eb19d4..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:10 diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo deleted file mode 100644 index e91881c4ba5..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo +++ /dev/null @@ -1,26 +0,0 @@ -package org.sonar.tests.packageToExclude; - -import java.lang.String; - -/** - * THE JAVADOC HEADER - */ -public class ClassThree { - - public ClassThree(int i) { - // single comment - int j = i++; - myMethod(); - } - - private String myMethod() { - /* - comment - on - many - lines - */ - int toto = 34; // comment at end of line - return "hello"; - } -} diff --git a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo.measures b/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo.measures deleted file mode 100644 index 7da3c1fffef..00000000000 --- a/it/it-projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:12 diff --git a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo b/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo deleted file mode 100644 index 8c0967e496f..00000000000 --- a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo +++ /dev/null @@ -1,11 +0,0 @@ -package org.sonar.tests; - -import org.junit.Test; - -public class ClassOneTest { - - @Test - public void nothing() { - - } -} diff --git a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo.measures b/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo.measures deleted file mode 100644 index 80cbee5aba9..00000000000 --- a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -tests:1 diff --git a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo b/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo deleted file mode 100644 index 712e2ec4a4a..00000000000 --- a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo +++ /dev/null @@ -1,19 +0,0 @@ -package org.sonar.tests; - -import org.junit.Test; -import static org.junit.Assert.fail; - -public class ClassToExcludeTest { - - @Test - public void increaseCodeCoverage() { - new ClassToExclude().duplicatedMethod(222); - } - - @Test - public void shouldFail() { - if (true) { - fail(); - } - } -} diff --git a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo.measures b/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo.measures deleted file mode 100644 index 7424f2634f5..00000000000 --- a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -tests:2 diff --git a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo b/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo deleted file mode 100644 index 1239ee5276c..00000000000 --- a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package org.sonar.tests; - -import org.junit.Test; - - -public class ClassTwoTest { - - @Test - public void increaseCodeCoverage() { - new ClassTwo(67); - } -} diff --git a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo.measures b/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo.measures deleted file mode 100644 index 80cbee5aba9..00000000000 --- a/it/it-projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -tests:1 diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a1/sonar-project.properties b/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 7e61727a85a..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,17 +0,0 @@ -// EXTERMINATE-ALL-ISSUES -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a2/sonar-project.properties b/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 4cf0ec94f03..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,14 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - // MUTE-SONAR - public void hello() { - System.out.println("hello" + " xoo"); - } - // UNMUTE-SONAR -} diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_a/sonar-project.properties b/it/it-projects/exclusions/xoo-multi-modules/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b1/sonar-project.properties b/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b2/sonar-project.properties b/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/exclusions/xoo-multi-modules/module_b/sonar-project.properties b/it/it-projects/exclusions/xoo-multi-modules/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/it/it-projects/exclusions/xoo-multi-modules/sonar-project.properties b/it/it-projects/exclusions/xoo-multi-modules/sonar-project.properties deleted file mode 100644 index 9ba45876d2b..00000000000 --- a/it/it-projects/exclusions/xoo-multi-modules/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-exclusions -sonar.projectName=Sonar :: Integration Tests :: Multi-modules With Exclusions -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/sonar-project.properties b/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/sonar-project.properties deleted file mode 100644 index 8ec6e295138..00000000000 --- a/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-with-highlighting -sonar.projectName=Sample With Highlighting -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo b/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 385b2a549d9..00000000000 --- a/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample;
-
-public class Sample {
-
- public Sample(int i) {
- int j = i++;
- }
-
- private String myMethod() {
- return "hello";
- }
-}
diff --git a/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.highlighting b/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.highlighting deleted file mode 100644 index b4404112cf0..00000000000 --- a/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.highlighting +++ /dev/null @@ -1,15 +0,0 @@ -#package -0:7:k -#public -19:25:k -#class -26:31:k -#public -46:52:k -#private -94:101:k -#return -#Here class is wrong and will be fixed during next analysis -125:131:s -#"hello" -132:139:s
\ No newline at end of file diff --git a/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index f95d11f14d0..00000000000 --- a/it/it-projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:13 - diff --git a/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/sonar-project.properties b/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/sonar-project.properties deleted file mode 100644 index 8ec6e295138..00000000000 --- a/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-with-highlighting -sonar.projectName=Sample With Highlighting -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo b/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 385b2a549d9..00000000000 --- a/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample;
-
-public class Sample {
-
- public Sample(int i) {
- int j = i++;
- }
-
- private String myMethod() {
- return "hello";
- }
-}
diff --git a/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.highlighting b/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.highlighting deleted file mode 100644 index 6acb0fa312e..00000000000 --- a/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.highlighting +++ /dev/null @@ -1,14 +0,0 @@ -#package -0:7:k -#public -19:25:k -#class -26:31:k -#public -46:52:k -#private -94:101:k -#return -125:131:k -#"hello" -132:139:s
\ No newline at end of file diff --git a/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index f95d11f14d0..00000000000 --- a/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:13 - diff --git a/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.symbol b/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.symbol deleted file mode 100644 index a670a2d7b2d..00000000000 --- a/it/it-projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.symbol +++ /dev/null @@ -1,4 +0,0 @@ -#j -60:61 -#i -64:65,80:81 diff --git a/it/it-projects/issue/AutoAssignTest/sonar-project.properties b/it/it-projects/issue/AutoAssignTest/sonar-project.properties deleted file mode 100644 index 3a14309e6c2..00000000000 --- a/it/it-projects/issue/AutoAssignTest/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=AutoAssignTest -sonar.projectName=AutoAssignTest -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src diff --git a/it/it-projects/issue/AutoAssignTest/src/sample.xoo b/it/it-projects/issue/AutoAssignTest/src/sample.xoo deleted file mode 100644 index 83572801d71..00000000000 --- a/it/it-projects/issue/AutoAssignTest/src/sample.xoo +++ /dev/null @@ -1,8 +0,0 @@ -line -line -line -line -line -line -line -line diff --git a/it/it-projects/issue/AutoAssignTest/src/sample.xoo.measures b/it/it-projects/issue/AutoAssignTest/src/sample.xoo.measures deleted file mode 100644 index 7bb5f438500..00000000000 --- a/it/it-projects/issue/AutoAssignTest/src/sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:8 diff --git a/it/it-projects/issue/AutoAssignTest/src/sample.xoo.scm b/it/it-projects/issue/AutoAssignTest/src/sample.xoo.scm deleted file mode 100644 index d469fe05994..00000000000 --- a/it/it-projects/issue/AutoAssignTest/src/sample.xoo.scm +++ /dev/null @@ -1,9 +0,0 @@ -1,user1,2011-12-04 -2,user2,2011-12-04 -3,user3Name,2011-12-04 -4,user4Name,2011-12-04 -5,user5@email.com,2015-12-04 -6,user6@email.com,2015-12-04 -7,user7ScmAccount,2015-12-04 -8,user8ScmAccount,2015-12-04 -9,user8ScmAccount,2015-12-04 diff --git a/it/it-projects/issue/common-rules/sonar-project.properties b/it/it-projects/issue/common-rules/sonar-project.properties deleted file mode 100644 index 6cf4f389266..00000000000 --- a/it/it-projects/issue/common-rules/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=common-rules-project -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src -sonar.tests=test diff --git a/it/it-projects/issue/common-rules/src/Sample.xoo b/it/it-projects/issue/common-rules/src/Sample.xoo deleted file mode 100644 index 33b8509208c..00000000000 --- a/it/it-projects/issue/common-rules/src/Sample.xoo +++ /dev/null @@ -1,8 +0,0 @@ -there are duplications -in this file - -there are duplications -in this file - -there are duplications -in this file diff --git a/it/it-projects/issue/common-rules/src/Sample.xoo.measures b/it/it-projects/issue/common-rules/src/Sample.xoo.measures deleted file mode 100644 index 16cc5ac1540..00000000000 --- a/it/it-projects/issue/common-rules/src/Sample.xoo.measures +++ /dev/null @@ -1,10 +0,0 @@ -lines:120 -ncloc:100 -complexity:7 -comment_lines:3 -public_api:5 -public_undocumented_api:2 -lines_to_cover:80 -uncovered_lines:70 -conditions_to_cover:10 -uncovered_conditions:9 diff --git a/it/it-projects/issue/common-rules/test/SampleTest.xoo b/it/it-projects/issue/common-rules/test/SampleTest.xoo deleted file mode 100644 index 6ec4b534517..00000000000 --- a/it/it-projects/issue/common-rules/test/SampleTest.xoo +++ /dev/null @@ -1 +0,0 @@ -this is the test diff --git a/it/it-projects/issue/common-rules/test/SampleTest.xoo.measures b/it/it-projects/issue/common-rules/test/SampleTest.xoo.measures deleted file mode 100644 index ea3e2796581..00000000000 --- a/it/it-projects/issue/common-rules/test/SampleTest.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -skipped_tests:5 -test_errors:2 -test_failures:1 -tests:10 diff --git a/it/it-projects/issue/creationDateSampleChanged/sonar-project.properties b/it/it-projects/issue/creationDateSampleChanged/sonar-project.properties deleted file mode 100644 index 3a25a96024f..00000000000 --- a/it/it-projects/issue/creationDateSampleChanged/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=creation-date-sample -sonar.projectName=Creation date sample -sonar.projectVersion=SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo b/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo deleted file mode 100644 index 2e3e81d8300..00000000000 --- a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo +++ /dev/null @@ -1,7 +0,0 @@ -/**/package sample; -/**/ -/**/public class ForeverAndModified { -/**/ -/**/ private String myMethod() { -/**/ } -/**/} diff --git a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo.scm b/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo.scm deleted file mode 100644 index f8c205d4d68..00000000000 --- a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 diff --git a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo b/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo deleted file mode 100644 index 3d80cf8da75..00000000000 --- a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo +++ /dev/null @@ -1,7 +0,0 @@ -package sample; - -public class ForeverAndUnmodified { - - private String myMethod() { - } -} diff --git a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm b/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm deleted file mode 100644 index 3272e3e6ed8..00000000000 --- a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 diff --git a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo b/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo deleted file mode 100644 index 0a96b5c9ddb..00000000000 --- a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo +++ /dev/null @@ -1,7 +0,0 @@ -/**/package sample; -/**/ -/**/public class OnlyInChanged { -/**/ -/**/ private String anotherMethod() { -/**/ } -/**/} diff --git a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo.scm b/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo.scm deleted file mode 100644 index 59c11db6b3b..00000000000 --- a/it/it-projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 diff --git a/it/it-projects/issue/creationDateSampleInitial/sonar-project.properties b/it/it-projects/issue/creationDateSampleInitial/sonar-project.properties deleted file mode 100644 index 3a25a96024f..00000000000 --- a/it/it-projects/issue/creationDateSampleInitial/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=creation-date-sample -sonar.projectName=Creation date sample -sonar.projectVersion=SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo b/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo deleted file mode 100644 index 4b6e8b8d818..00000000000 --- a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo +++ /dev/null @@ -1,7 +0,0 @@ -package sample; - -public class ForeverAndModified { - - private String myMethod() { - } -} diff --git a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo.scm b/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo.scm deleted file mode 100644 index 654a775e4ef..00000000000 --- a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 diff --git a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo b/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo deleted file mode 100644 index 3d80cf8da75..00000000000 --- a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo +++ /dev/null @@ -1,7 +0,0 @@ -package sample; - -public class ForeverAndUnmodified { - - private String myMethod() { - } -} diff --git a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm b/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm deleted file mode 100644 index 3272e3e6ed8..00000000000 --- a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 diff --git a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo b/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo deleted file mode 100644 index 969fc44abfe..00000000000 --- a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo +++ /dev/null @@ -1,7 +0,0 @@ -package sample; - -public class IsBuggyThenChangesAndBecomesClean { - - private String myMethod() { - } -} diff --git a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo.scm b/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo.scm deleted file mode 100644 index 65099dbec9b..00000000000 --- a/it/it-projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 diff --git a/it/it-projects/issue/workflow/sonar-project.properties b/it/it-projects/issue/workflow/sonar-project.properties deleted file mode 100644 index fbfcc6930d0..00000000000 --- a/it/it-projects/issue/workflow/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=workflow -sonar.projectName=Workflow -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src diff --git a/it/it-projects/issue/workflow/src/Sample.xoo b/it/it-projects/issue/workflow/src/Sample.xoo deleted file mode 100644 index e2ae9e37278..00000000000 --- a/it/it-projects/issue/workflow/src/Sample.xoo +++ /dev/null @@ -1,3 +0,0 @@ -this is some -xoo -code diff --git a/it/it-projects/issue/workflow/src/Sample.xoo.measures b/it/it-projects/issue/workflow/src/Sample.xoo.measures deleted file mode 100644 index 16cc5ac1540..00000000000 --- a/it/it-projects/issue/workflow/src/Sample.xoo.measures +++ /dev/null @@ -1,10 +0,0 @@ -lines:120 -ncloc:100 -complexity:7 -comment_lines:3 -public_api:5 -public_undocumented_api:2 -lines_to_cover:80 -uncovered_lines:70 -conditions_to_cover:10 -uncovered_conditions:9 diff --git a/it/it-projects/issue/xoo-sample-v2/sonar-project.properties b/it/it-projects/issue/xoo-sample-v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/it/it-projects/issue/xoo-sample-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo b/it/it-projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index df0c06c819a..00000000000 --- a/it/it-projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,15 +0,0 @@ -package sample; - -/** - * Documentation for Sample - */ -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index dfbfb619ed6..00000000000 --- a/it/it-projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:16 -#Used by dashboard/widgets tests -complexity_in_classes:3 -classes:1 -comment_lines:6 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/issue/xoo-tracking-v1/sonar-project.properties b/it/it-projects/issue/xoo-tracking-v1/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/it/it-projects/issue/xoo-tracking-v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo b/it/it-projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 35add5680b9..00000000000 --- a/it/it-projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; // foobar - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index e1f9a919116..00000000000 --- a/it/it-projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:13 diff --git a/it/it-projects/issue/xoo-tracking-v2/sonar-project.properties b/it/it-projects/issue/xoo-tracking-v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/it/it-projects/issue/xoo-tracking-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo b/it/it-projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index cf41280618f..00000000000 --- a/it/it-projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; // foobar - } - - private String myMethod() { - return "hello"; // foobar - } - - private String anotherMethod() { - return "hello"; // foobar - } -} diff --git a/it/it-projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index bbc3f39eb62..00000000000 --- a/it/it-projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:16 diff --git a/it/it-projects/issue/xoo-tracking-v3/sonar-project.properties b/it/it-projects/issue/xoo-tracking-v3/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/it/it-projects/issue/xoo-tracking-v3/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo b/it/it-projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo deleted file mode 100644 index 35add5680b9..00000000000 --- a/it/it-projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; // foobar - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo.measures b/it/it-projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo.measures deleted file mode 100644 index e1f9a919116..00000000000 --- a/it/it-projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:13 diff --git a/it/it-projects/issue/xoo-with-scm/sonar-project.properties b/it/it-projects/issue/xoo-with-scm/sonar-project.properties deleted file mode 100644 index 90da9733771..00000000000 --- a/it/it-projects/issue/xoo-with-scm/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo diff --git a/it/it-projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo b/it/it-projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 592bb930674..00000000000 --- a/it/it-projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -lines:13 -ncloc:13 diff --git a/it/it-projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.scm b/it/it-projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index f77a3b3930f..00000000000 --- a/it/it-projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,13 +0,0 @@ -1,fabrice,2011-12-04 -1,fabrice,2011-12-04 -2,simon,2015-12-04 -2,simon,2015-12-04 -2,simon,2015-12-04 -3,seb,2015-01-01 -4,julien,2015-12-01 -4,julien,2015-12-01 -4,julien,2015-12-01 -4,julien,2015-12-01 -4,julien,2015-12-01 -4,julien,2015-12-01 -4,julien,2015-12-01 diff --git a/it/it-projects/measure/xoo-history-v1/sonar-project.properties b/it/it-projects/measure/xoo-history-v1/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/it/it-projects/measure/xoo-history-v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo b/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures b/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo b/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures b/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/it/it-projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/it/it-projects/measure/xoo-history-v2/sonar-project.properties b/it/it-projects/measure/xoo-history-v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/it/it-projects/measure/xoo-history-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo b/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo deleted file mode 100644 index b0fd1087030..00000000000 --- a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassAdded { - - public ClassAdded(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures b/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures deleted file mode 100644 index 66ba834e1ef..00000000000 --- a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures +++ /dev/null @@ -1,3 +0,0 @@ -ncloc:12 -classes:1 - diff --git a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo b/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 393111bbab0..00000000000 --- a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - public String addedMethod() { - return "This method was added in v2"; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures b/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 71d60758637..00000000000 --- a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,3 +0,0 @@ -ncloc:16 -classes:1 - diff --git a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo b/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures b/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/it/it-projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v1/sonar-project.properties b/it/it-projects/measure/xoo-new-debt-ratio-v1/sonar-project.properties deleted file mode 100644 index 4ea4c91bacb..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v1/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo b/it/it-projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 467e82d8f2c..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,13 +0,0 @@ -package sample; - -// class comment -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String method1() { - return "hello"; - } -} diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 874fe7bfea5..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:9 -comment_lines:5 -ncloc_data:1=1;2=0;3=0;4=1;5=0;6=1;7=1;8=1;9=0;10=1;11=1;12=1;13=1;14=0 -classes:1 diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.scm b/it/it-projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index c838f29021f..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,14 +0,0 @@ -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v2/sonar-project.properties b/it/it-projects/measure/xoo-new-debt-ratio-v2/sonar-project.properties deleted file mode 100644 index 4ea4c91bacb..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v2/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo b/it/it-projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 882793391e0..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,17 +0,0 @@ -package sample; - -// class comment -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String method1() { - return "hello"; - } - - private String method2() { - return "hello2"; - } -} diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 98f63c1fe47..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -comment_lines:6 -ncloc_data:1=1;2=0;3=0;4=1;5=0;6=1;7=1;8=1;9=0;10=1;11=1;12=1;13=0;14=1;15=1;16=1;17=1;18=0 -classes:1 diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.scm b/it/it-projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index bc69cd71308..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,18 +0,0 @@ -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -2,user2,2016-09-17 -2,user2,2016-09-17 -2,user2,2016-09-17 -2,user2,2016-09-17 -1,user1,2016-09-01 -1,user1,2016-09-01 diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v3/sonar-project.properties b/it/it-projects/measure/xoo-new-debt-ratio-v3/sonar-project.properties deleted file mode 100644 index 4ea4c91bacb..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v3/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo b/it/it-projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 0b9e023d079..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,22 +0,0 @@ -package sample; - -// class comment -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String method1() { - return "hello"; - } - - private String method2() { - return "hello2"; - } - - private String method3() { - String e = "hello3"; - return e; - } -} diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index d467f571f3f..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:16 -comment_lines:7 -ncloc_data:1=1;2=0;3=0;4=1;5=0;6=1;7=1;8=1;9=0;10=1;11=1;12=1;13=0;14=1;15=1;16=1;17=0;18=1;19=1;20=1;21=1;22=1;23=0 -classes:1 diff --git a/it/it-projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.scm b/it/it-projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index 09a256f6527..00000000000 --- a/it/it-projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,23 +0,0 @@ -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -2,user2,2016-09-17 -2,user2,2016-09-17 -2,user2,2016-09-17 -2,user2,2016-09-17 -3,user2,2016-09-20 -3,user2,2016-09-20 -3,user2,2016-09-20 -3,user2,2016-09-20 -3,user2,2016-09-20 -1,user1,2016-09-01 -1,user1,2016-09-01 diff --git a/it/it-projects/measureHistory/xoo-multi-files-sample/sonar-project.properties b/it/it-projects/measureHistory/xoo-multi-files-sample/sonar-project.properties deleted file mode 100644 index 59af7dfeaca..00000000000 --- a/it/it-projects/measureHistory/xoo-multi-files-sample/sonar-project.properties +++ /dev/null @@ -1,9 +0,0 @@ -# Root project information -sonar.projectKey=multi-files-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-files Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo diff --git a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo b/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo.measures b/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo b/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo deleted file mode 100644 index 796d90cfad5..00000000000 --- a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo +++ /dev/null @@ -1,20 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - - public HelloA2(int i) { - int j = i++; - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo.measures b/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo.measures deleted file mode 100644 index 63df5add6d4..00000000000 --- a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:15 -classes:1 diff --git a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo b/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo.measures b/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo b/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo.measures b/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/plugins/project/.gitignore b/it/it-projects/plugins/project/.gitignore deleted file mode 100644 index 0d70cc697f5..00000000000 --- a/it/it-projects/plugins/project/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!target diff --git a/it/it-projects/plugins/project/build.sh b/it/it-projects/plugins/project/build.sh deleted file mode 100644 index 4d8d7b14856..00000000000 --- a/it/it-projects/plugins/project/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -mvn package diff --git a/it/it-projects/plugins/project/ext/cobol/copybooks/Attr.cpy b/it/it-projects/plugins/project/ext/cobol/copybooks/Attr.cpy deleted file mode 100755 index bc84af0bc87..00000000000 --- a/it/it-projects/plugins/project/ext/cobol/copybooks/Attr.cpy +++ /dev/null @@ -1,40 +0,0 @@ - 01 ATTRIBUTE-DEFINITIONS. - * - 05 ATTR-UNPROT PIC X VALUE ' '. - 05 ATTR-UNPROT-MDT PIC X VALUE X'C1'. - 05 ATTR-UNPROT-BRT PIC X VALUE X'C8'. - 05 ATTR-UNPROT-BRT-MDT PIC X VALUE X'C9'. - 05 ATTR-UNPROT-DARK PIC X VALUE X'4C'. - 05 ATTR-UNPROT-DARK-MDT PIC X VALUE X'4D'. - 05 ATTR-UNPROT-NUM PIC X VALUE X'50'. - 05 ATTR-UNPROT-NUM-MDT PIC X VALUE X'D1'. - 05 ATTR-UNPROT-NUM-BRT PIC X VALUE X'D8'. - 05 ATTR-UNPROT-NUM-BRT-MDT PIC X VALUE X'D9'. - 05 ATTR-UNPROT-NUM-DARK PIC X VALUE X'5C'. - 05 ATTR-UNPROT-NUM-DARK-MDT PIC X VALUE X'5D'. - 05 ATTR-PROT PIC X VALUE X'60'. - 05 ATTR-PROT-MDT PIC X VALUE X'61'. - 05 ATTR-PROT-BRT PIC X VALUE X'E8'. - 05 ATTR-PROT-BRT-MDT PIC X VALUE X'E9'. - 05 ATTR-PROT-DARK PIC X VALUE '%'. - 05 ATTR-PROT-DARK-MDT PIC X VALUE X'6D'. - 05 ATTR-PROT-SKIP PIC X VALUE X'F0'. - 05 ATTR-PROT-SKIP-MDT PIC X VALUE X'F1'. - 05 ATTR-PROT-SKIP-BRT PIC X VALUE X'F8'. - 05 ATTR-PROT-SKIP-BRT-MDT PIC X VALUE X'F9'. - 05 ATTR-PROT-SKIP-DARK PIC X VALUE X'7C'. - 05 ATTR-PROT-SKIP-DARK-MDT PIC X VALUE X'7D'. - * - 05 ATTR-NO-HIGHLIGHT PIC X VALUE X'00'. - 05 ATTR-BLINK PIC X VALUE '1'. - 05 ATTR-REVERSE PIC X VALUE '2'. - 05 ATTR-UNDERSCORE PIC X VALUE '4'. - * - 05 ATTR-DEFAULT-COLOR PIC X VALUE X'00'. - 05 ATTR-BLUE PIC X VALUE '1'. - 05 ATTR-RED PIC X VALUE '2'. - 05 ATTR-PINK PIC X VALUE '3'. - 05 ATTR-GREEN PIC X VALUE '4'. - 05 ATTR-TURQUOISE PIC X VALUE '5'. - 05 ATTR-YELLOW PIC X VALUE '6'. - 05 ATTR-NEUTRAL PIC X VALUE '7'. diff --git a/it/it-projects/plugins/project/ext/cobol/copybooks/Custmas.cpy b/it/it-projects/plugins/project/ext/cobol/copybooks/Custmas.cpy deleted file mode 100755 index e0b41ae39d5..00000000000 --- a/it/it-projects/plugins/project/ext/cobol/copybooks/Custmas.cpy +++ /dev/null @@ -1,9 +0,0 @@ - 01 CUSTOMER-MASTER-RECORD. - * - 05 CM-CUSTOMER-NUMBER PIC X(6). - 05 CM-FIRST-NAME PIC X(20). - 05 CM-LAST-NAME PIC X(30). - 05 CM-ADDRESS PIC X(30). - 05 CM-CITY PIC X(20). - 05 CM-STATE PIC X(2). - 05 CM-ZIP-CODE PIC X(10). diff --git a/it/it-projects/plugins/project/ext/cobol/copybooks/Errparm.cpy b/it/it-projects/plugins/project/ext/cobol/copybooks/Errparm.cpy deleted file mode 100755 index 3324a1b78a6..00000000000 --- a/it/it-projects/plugins/project/ext/cobol/copybooks/Errparm.cpy +++ /dev/null @@ -1,6 +0,0 @@ - 01 ERROR-PARAMETERS. - * - 05 ERR-RESP PIC S9(8) COMP. - 05 ERR-RESP2 PIC S9(8) COMP. - 05 ERR-TRNID PIC X(4) VALUE IS 99. - 05 ERR-RSRCE PIC X(8). diff --git a/it/it-projects/plugins/project/ext/cobol/copybooks/MNTSET2.CPY b/it/it-projects/plugins/project/ext/cobol/copybooks/MNTSET2.CPY deleted file mode 100755 index b9e18823838..00000000000 --- a/it/it-projects/plugins/project/ext/cobol/copybooks/MNTSET2.CPY +++ /dev/null @@ -1,181 +0,0 @@ - * Micro Focus BMS Screen Painter (ver MFBM 2.0.11) - * MapSet Name MNTSET2 - * Date Created 04/16/2001 - * Time Created 14:38:47 - - * Input Data For Map MNTMAP1 - 01 MNTMAP1I. - 03 FILLER PIC X(12). - 03 TRANID1L PIC S9(4) COMP. - 03 TRANID1F PIC X. - 03 FILLER REDEFINES TRANID1F. - 05 TRANID1A PIC X. - 03 FILLER PIC X(2). - 03 TRANID1I PIC X(4). - 03 CUSTNO1L PIC S9(4) COMP. - 03 CUSTNO1F PIC X. - 03 FILLER REDEFINES CUSTNO1F. - 05 CUSTNO1A PIC X. - 03 FILLER PIC X(2). - 03 CUSTNO1I PIC X(6). - 03 ACTIONL PIC S9(4) COMP. - 03 ACTIONF PIC X. - 03 FILLER REDEFINES ACTIONF. - 05 ACTIONA PIC X. - 03 FILLER PIC X(2). - 03 ACTIONI PIC X(1). - 03 MSG1L PIC S9(4) COMP. - 03 MSG1F PIC X. - 03 FILLER REDEFINES MSG1F. - 05 MSG1A PIC X. - 03 FILLER PIC X(2). - 03 MSG1I PIC X(79). - 03 DUMMY1L PIC S9(4) COMP. - 03 DUMMY1F PIC X. - 03 FILLER REDEFINES DUMMY1F. - 05 DUMMY1A PIC X. - 03 FILLER PIC X(2). - 03 DUMMY1I PIC X(1). - - * Output Data For Map MNTMAP1 - 01 MNTMAP1O REDEFINES MNTMAP1I. - 03 FILLER PIC X(12). - 03 FILLER PIC X(3). - 03 TRANID1C PIC X. - 03 TRANID1H PIC X. - 03 TRANID1O PIC X(4). - 03 FILLER PIC X(3). - 03 CUSTNO1C PIC X. - 03 CUSTNO1H PIC X. - 03 CUSTNO1O PIC X(6). - 03 FILLER PIC X(3). - 03 ACTIONC PIC X. - 03 ACTIONH PIC X. - 03 ACTIONO PIC X(1). - 03 FILLER PIC X(3). - 03 MSG1C PIC X. - 03 MSG1H PIC X. - 03 MSG1O PIC X(79). - 03 FILLER PIC X(3). - 03 DUMMY1C PIC X. - 03 DUMMY1H PIC X. - 03 DUMMY1O PIC X(1). - - * Input Data For Map MNTMAP2 - 01 MNTMAP2I. - 03 FILLER PIC X(12). - 03 TRANID2L PIC S9(4) COMP. - 03 TRANID2F PIC X. - 03 FILLER REDEFINES TRANID2F. - 05 TRANID2A PIC X. - 03 FILLER PIC X(2). - 03 TRANID2I PIC X(4). - 03 INSTR2L PIC S9(4) COMP. - 03 INSTR2F PIC X. - 03 FILLER REDEFINES INSTR2F. - 05 INSTR2A PIC X. - 03 FILLER PIC X(2). - 03 INSTR2I PIC X(79). - 03 CUSTNO2L PIC S9(4) COMP. - 03 CUSTNO2F PIC X. - 03 FILLER REDEFINES CUSTNO2F. - 05 CUSTNO2A PIC X. - 03 FILLER PIC X(2). - 03 CUSTNO2I PIC X(6). - 03 LNAMEL PIC S9(4) COMP. - 03 LNAMEF PIC X. - 03 FILLER REDEFINES LNAMEF. - 05 LNAMEA PIC X. - 03 FILLER PIC X(2). - 03 LNAMEI PIC X(30). - 03 FNAMEL PIC S9(4) COMP. - 03 FNAMEF PIC X. - 03 FILLER REDEFINES FNAMEF. - 05 FNAMEA PIC X. - 03 FILLER PIC X(2). - 03 FNAMEI PIC X(20). - 03 ADDRL PIC S9(4) COMP. - 03 ADDRF PIC X. - 03 FILLER REDEFINES ADDRF. - 05 ADDRA PIC X. - 03 FILLER PIC X(2). - 03 ADDRI PIC X(30). - 03 CITYL PIC S9(4) COMP. - 03 CITYF PIC X. - 03 FILLER REDEFINES CITYF. - 05 CITYA PIC X. - 03 FILLER PIC X(2). - 03 CITYI PIC X(20). - 03 STATEL PIC S9(4) COMP. - 03 STATEF PIC X. - 03 FILLER REDEFINES STATEF. - 05 STATEA PIC X. - 03 FILLER PIC X(2). - 03 STATEI PIC X(2). - 03 ZIPCODEL PIC S9(4) COMP. - 03 ZIPCODEF PIC X. - 03 FILLER REDEFINES ZIPCODEF. - 05 ZIPCODEA PIC X. - 03 FILLER PIC X(2). - 03 ZIPCODEI PIC X(10). - 03 MSG2L PIC S9(4) COMP. - 03 MSG2F PIC X. - 03 FILLER REDEFINES MSG2F. - 05 MSG2A PIC X. - 03 FILLER PIC X(2). - 03 MSG2I PIC X(79). - 03 DUMMY2L PIC S9(4) COMP. - 03 DUMMY2F PIC X. - 03 FILLER REDEFINES DUMMY2F. - 05 DUMMY2A PIC X. - 03 FILLER PIC X(2). - 03 DUMMY2I PIC X(1). - - * Output Data For Map MNTMAP2 - 01 MNTMAP2O REDEFINES MNTMAP2I. - 03 FILLER PIC X(12). - 03 FILLER PIC X(3). - 03 TRANID2C PIC X. - 03 TRANID2H PIC X. - 03 TRANID2O PIC X(4). - 03 FILLER PIC X(3). - 03 INSTR2C PIC X. - 03 INSTR2H PIC X. - 03 INSTR2O PIC X(79). - 03 FILLER PIC X(3). - 03 CUSTNO2C PIC X. - 03 CUSTNO2H PIC X. - 03 CUSTNO2O PIC X(6). - 03 FILLER PIC X(3). - 03 LNAMEC PIC X. - 03 LNAMEH PIC X. - 03 LNAMEO PIC X(30). - 03 FILLER PIC X(3). - 03 FNAMEC PIC X. - 03 FNAMEH PIC X. - 03 FNAMEO PIC X(20). - 03 FILLER PIC X(3). - 03 ADDRC PIC X. - 03 ADDRH PIC X. - 03 ADDRO PIC X(30). - 03 FILLER PIC X(3). - 03 CITYC PIC X. - 03 CITYH PIC X. - 03 CITYO PIC X(20). - 03 FILLER PIC X(3). - 03 STATEC PIC X. - 03 STATEH PIC X. - 03 STATEO PIC X(2). - 03 FILLER PIC X(3). - 03 ZIPCODEC PIC X. - 03 ZIPCODEH PIC X. - 03 ZIPCODEO PIC X(10). - 03 FILLER PIC X(3). - 03 MSG2C PIC X. - 03 MSG2H PIC X. - 03 MSG2O PIC X(79). - 03 FILLER PIC X(3). - 03 DUMMY2C PIC X. - 03 DUMMY2H PIC X. - 03 DUMMY2O PIC X(1). - diff --git a/it/it-projects/plugins/project/lib/c/mylib.h b/it/it-projects/plugins/project/lib/c/mylib.h deleted file mode 100644 index 63e375d712b..00000000000 --- a/it/it-projects/plugins/project/lib/c/mylib.h +++ /dev/null @@ -1,2 +0,0 @@ -#define ADD(X, Y) X + Y - diff --git a/it/it-projects/plugins/project/pom.xml b/it/it-projects/plugins/project/pom.xml deleted file mode 100644 index 41a46c9508a..00000000000 --- a/it/it-projects/plugins/project/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ -<!-- - - Maven is used only to build project when Java files are changed. The generated - classes are stored in Git. - Sources are analyzed with sonar-runner. - ---> - -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.sonarsource.it-all-lang</groupId> - <artifactId>it-all-lang</artifactId> - <version>1.0-SNAPSHOT</version> - <name>All Languages</name> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.10</version> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <sourceDirectory>src/java</sourceDirectory> - <testSourceDirectory>test/java</testSourceDirectory> - </build> -</project> diff --git a/it/it-projects/plugins/project/sonar-project.properties b/it/it-projects/plugins/project/sonar-project.properties deleted file mode 100644 index a0f986a7b67..00000000000 --- a/it/it-projects/plugins/project/sonar-project.properties +++ /dev/null @@ -1,37 +0,0 @@ -sonar.projectKey=all-langs -sonar.projectName=All Languages -sonar.projectVersion=1.0-SNAPSHOT - -sonar.encoding=UTF-8 -sonar.sources=. -sonar.inclusions=src/**,ext/** -sonar.test.inclusions=test/** - -# C -sonar.cfamily.library.directories=lib/c - -# Cobol -sonar.cobol.copy.directories=ext/cobol/copybooks -sonar.cobol.file.suffixes=cbl,cpy -sonar.cobol.copy.suffixes=cpy - -# Java -sonar.junit.reportsPath=reports/java/surefire-reports -sonar.jacoco.reportPath=reports/java/jacoco.exec -sonar.java.binaries=target/classes -sonar.java.test.binaries=target/test-classes - -# JavaScript -sonar.javascript.lcov.reportPath=target/js/lcov.dat - -# Flex -sonar.flex.cobertura.reportPath=reports/flex/coverage.xml - -#PHP -# Reusing PHPUnit reports -sonar.php.coverage.reportPath=target/php/phpunit.coverage.xml -sonar.php.tests.reportPath=target/php/phpunit.xml - -#PLI -sonar.pli.marginLeft=2 -sonar.pli.marginRight=0 diff --git a/it/it-projects/plugins/project/src/abap/ZBCMKZ17.abap b/it/it-projects/plugins/project/src/abap/ZBCMKZ17.abap deleted file mode 100644 index 936119df612..00000000000 --- a/it/it-projects/plugins/project/src/abap/ZBCMKZ17.abap +++ /dev/null @@ -1,147 +0,0 @@ -REPORT ZBCMKZ17. -*----------------------------------------------------------------------* -* Description: Report and Transaction Starter * -* It shows an individual list of reports/Trans. to start* -* * -* Authorization: S_PROGRAM, Reports starten * -* * -* Class: Utility * -* * -* Customizing: Needs Customer Table: ZBCMKZ1 * -* Field: Key Type Length Descr. * -* ZBCMKZ1-BNAME X CHAR C 12 User name * -* ZBCMKZ1-NAME X CHAR C 8 Report/Trans. code * -* ZBCMKZ1-NUMMER INT1 X 1 Priority level * -* * -* R/3 Release: 3.0d * -* * -* Programmer: Bence Toth * -* Date: 1997 April * -* * -*----------------------------------------------------------------------* -INCLUDE: <ICON>. -TABLES: ZBCMKZ1, TRDIR, TSTCT, TSTC. -DATA: BEGIN OF BTAB OCCURS 50, "Hilfstabelle fuer Textpool - CODE(82), - END OF BTAB. -DATA: BEGIN OF T OCCURS 100, - NUMMER LIKE ZBCMKZ1-NUMMER, - NAME LIKE TRDIR-NAME, - CODE(82), -END OF T. -DATA: FI(20). -DATA BEGIN OF BDCDATA OCCURS 100. - INCLUDE STRUCTURE BDCDATA. -DATA END OF BDCDATA. - -DATA BEGIN OF MESSTAB OCCURS 10. - INCLUDE STRUCTURE BDCMSGCOLL. -DATA END OF MESSTAB. - -DATA REPORT. -AUTHORITY-CHECK OBJECT 'S_PROGRAM' - ID 'P_GROUP' FIELD '*' - ID 'P_ACTION' FIELD '*'. -IF SY-SUBRC NE 0. EXIT. ENDIF. -WRITE: /2 'Er. Modus', 12 'Name', 22 'Text'. - - -DETAIL. -SKIP. -SELECT * FROM ZBCMKZ1 WHERE BNAME EQ SY-UNAME. - CHECK ZBCMKZ1-NAME+5(1) EQ ' '. - SELECT SINGLE * FROM TSTC WHERE TCODE EQ ZBCMKZ1-NAME. - CHECK SY-SUBRC EQ 0. - CLEAR TSTCT. - SELECT SINGLE * FROM TSTCT WHERE SPRSL EQ SY-LANGU AND - TCODE EQ ZBCMKZ1-NAME. - T-CODE = TSTCT-TTEXT. - MOVE-CORRESPONDING ZBCMKZ1 TO T. - APPEND T. - CLEAR T. -ENDSELECT. -SORT T BY NUMMER CODE. -REPORT = ' '. -PERFORM LIST USING REPORT. -SELECT * FROM ZBCMKZ1 WHERE BNAME EQ SY-UNAME. - CHECK ZBCMKZ1-NAME+5(1) NE ' '. - READ TEXTPOOL ZBCMKZ1-NAME INTO BTAB LANGUAGE SY-LANGU. - CHECK SY-SUBRC EQ 0. - LOOP AT BTAB. - IF BTAB-CODE(1) EQ 'R'. - EXIT. - ENDIF. - ENDLOOP. - MOVE BTAB-CODE+9(70) TO T-CODE. - MOVE-CORRESPONDING ZBCMKZ1 TO T. - APPEND T. - CLEAR T. -ENDSELECT. -SORT T BY NUMMER CODE. -REPORT = 'X'. -PERFORM LIST USING REPORT. - -AT LINE-SELECTION. - CHECK NOT ( T-NAME IS INITIAL ). - GET CURSOR FIELD FI. - IF T-NAME+5(1) EQ ' '. - REPORT = ' '. - ELSE. - REPORT = 'X'. - ENDIF. - IF FI = 'ICON_EXECUTE_OBJECT'. - PERFORM PERO USING T-NAME REPORT. - ELSEIF REPORT EQ ' '. -* SELECT SINGLE * FROM TSTC WHERE TCODE EQ ZBCMKZ1-NAME. -* IF T+5(1) EQ ' '. - CALL TRANSACTION T-NAME. - ELSE. - SUBMIT (T-NAME) VIA SELECTION-SCREEN AND RETURN. - ENDIF. - CLEAR T-NAME. -*---------------------------------------------------------------------* -* FORM LIST * -*---------------------------------------------------------------------* -* ........ * -*---------------------------------------------------------------------* -FORM LIST USING REPORT. - LOOP AT T. - IF REPORT = ' '. - WRITE: /5 ICON_EXECUTE_OBJECT AS ICON, T-NAME UNDER 'Name', - T-CODE UNDER 'Text'. - ELSE. - WRITE: / T-NAME UNDER 'Name', T-CODE UNDER 'Text'. - ENDIF. - HIDE T. - AT END OF NUMMER. - SKIP. - ENDAT. - ENDLOOP. - SKIP. - CLEAR T. - REFRESH T. -ENDFORM. -*---------------------------------------------------------------------* -* FORM PERO * -*---------------------------------------------------------------------* -* ........ * -*---------------------------------------------------------------------* -* --> T-NAME * -*---------------------------------------------------------------------* -FORM PERO USING T-NAME REPORT. - CHECK REPORT EQ ' '. - MOVE T-NAME TO T-NAME+2(4). - MOVE '/o' TO T-NAME+0(2). - BDCDATA-PROGRAM = 'SAPMS01J'. - BDCDATA-DYNPRO = '0310'. - BDCDATA-DYNBEGIN = 'X'. - APPEND BDCDATA. - CLEAR BDCDATA. - BDCDATA-FNAM = 'BDC_OKCODE'. - BDCDATA-FVAL = T-NAME. - APPEND BDCDATA. - CALL TRANSACTION 'SU50' USING BDCDATA MODE 'N' - MESSAGES INTO MESSTAB. - CLEAR BDCDATA. - REFRESH BDCDATA. -ENDFORM. diff --git a/it/it-projects/plugins/project/src/abap/ZZBGS106.abap b/it/it-projects/plugins/project/src/abap/ZZBGS106.abap deleted file mode 100644 index f0e75a11934..00000000000 --- a/it/it-projects/plugins/project/src/abap/ZZBGS106.abap +++ /dev/null @@ -1,194 +0,0 @@ -REPORT ZZBGS106 MESSAGE-ID Z1. -*----------------------------------------------------------------------* -* Description: Utillity used for downloading abap/4 source code and * -* text elements to the desktop using ws_download. * -* Is useful as backup or for transporting to another site.* -* You must run this program in foreground/online due to * -* the use of ws_download throug the SAPGUI. * -* * -* Implementing The program is client independent. * -* * -* Authoriza. No Authorization check. * -* * -* Submitting: Run by SA38, SE38. * -* * -* Parametre: You can use generic values when filling the parameters * -* except for the Path. * -* * -* Customizing: No need for customization. * -* * -* Change of You only need to do the syntax check at releasechanges. * -* release: * -* * -* R/3 Release: Developed and tested in R/3 Release: * -* 2.2F * -* 3.0D * -* * -* Programmer: Benny G. S�rensen, BGS-Consulting * -* Date: Nov 1996. * -* * -* Version 1 -*-------------------------------Corrections----------------------------* -* Date Userid Correction Text * -* 11.11.1996 BGS :::::::::::::: Start of development * -*----------------------------------------------------------------------* -*----------------------------------------------------------------------* -* Tables * -*----------------------------------------------------------------------* -TABLES: TRDIR "Application Masterdata - . -*----------------------------------------------------------------------* -* Parameters * -*----------------------------------------------------------------------* -SELECT-OPTIONS: REPO FOR TRDIR-NAME. -PARAMETERS: PATH(60) TYPE C DEFAULT 'C:\SAP\'. - -*----------------------------------------------------------------------* -* Work Variables and internal tables * -*----------------------------------------------------------------------* -DATA: BEGIN OF TABSOURCE OCCURS 10 - ,SOURCE(72) TYPE C - ,END OF TABSOURCE. - -DATA: BEGIN OF TABTEXT OCCURS 50 - ,TAB LIKE TEXTPOOL - ,END OF TABTEXT. - -DATA: BEGIN OF TABRDIR OCCURS 100 - ,RDIR LIKE TRDIR - ,END OF TABRDIR. - -DATA: FILENAME LIKE RLGRAP-FILENAME - ,MODE TYPE C VALUE ' ' - ,RDIRROWS TYPE I - ,SOURCEROWS TYPE I - ,RC TYPE I - ,LENGTH TYPE I - . -FIELD-SYMBOLS: <P> . - -*----------------------------------------------------------------------* -* Constants * -*----------------------------------------------------------------------* -DATA: OK TYPE I VALUE 0 - ,FAIL TYPE I VALUE 1. - -*----------------------------------------------------------------------* -* EVENT: validate users entries on the selection screen * -*----------------------------------------------------------------------* -AT SELECTION-SCREEN. -DATA: I TYPE I. - DESCRIBE TABLE REPO LINES I. - IF I <= 0. - SET CURSOR FIELD REPO. - MESSAGE E065 WITH TEXT-101. - ENDIF. - -*----------------------------------------------------------------------* -* EVENT: Start-Of-Selection * -*----------------------------------------------------------------------* -START-OF-SELECTION. -* Set slash at the end of path if not speciefied by user - CONDENSE PATH NO-GAPS. - LENGTH = STRLEN( PATH ) . - SUBTRACT 1 FROM LENGTH. - ASSIGN PATH+LENGTH(1) TO <P>. - IF <P> <> '\'. - ADD 1 TO LENGTH. - ASSIGN PATH+LENGTH TO <P>. - <P> = '\'. - ENDIF. - - SELECT * FROM TRDIR INTO TABLE TABRDIR WHERE NAME IN REPO. - DESCRIBE TABLE TABRDIR LINES RDIRROWS. - CHECK RDIRROWS > 0. - -* For every selected program: - LOOP AT TABRDIR. - MOVE TABRDIR TO TRDIR. - PERFORM DOWNLOAD_SOURCE USING RC. - CHECK RC = OK. - PERFORM DOWNLOAD_TEXTPOOL USING RC. - ENDLOOP. - -*----------------------------------------------------------------------* -* FORM: Download_Sourcecode * -*----------------------------------------------------------------------* -FORM DOWNLOAD_SOURCE USING RC. - RC = FAIL. - CLEAR: TABSOURCE, FILENAME. - REFRESH: TABSOURCE. - READ REPORT TRDIR-NAME INTO TABSOURCE. - DESCRIBE TABLE TABSOURCE LINES SOURCEROWS. - CHECK SOURCEROWS > 0. - - CALL FUNCTION 'STRING_CONCATENATE_3' "R. 2.2F - EXPORTING "R. 2.2F - STRING1 = PATH "R. 2.2F - STRING2 = TRDIR-NAME "R. 2.2F - STRING3 = '.aba' "R. 2.2F - IMPORTING "R. 2.2F - STRING = FILENAME "R. 2.2F - EXCEPTIONS "R. 2.2F - TOO_SMALL = 01. "R. 2.2F - -* CONCATENATE PATH TRDIR-NAME '.ABA' INTO FILENAME. "R. 3.0D - CONDENSE FILENAME NO-GAPS. - PERFORM DOWNLOAD TABLES TABSOURCE USING FILENAME RC. - -ENDFORM. - -*----------------------------------------------------------------------* -* FORM: Download_Textpool * -*----------------------------------------------------------------------* -FORM DOWNLOAD_TEXTPOOL USING RC. - RC = FAIL. - CLEAR: TABTEXT, FILENAME. - REFRESH: TABTEXT. - READ TEXTPOOL TRDIR-NAME INTO TABTEXT LANGUAGE SY-LANGU. - DESCRIBE TABLE TABTEXT LINES SOURCEROWS. - CHECK SOURCEROWS > 0. - - CALL FUNCTION 'STRING_CONCATENATE_3' "R. 2.2F - EXPORTING "R. 2.2F - STRING1 = PATH "R. 2.2F - STRING2 = TRDIR-NAME "R. 2.2F - STRING3 = '.TXT' "R. 2.2F - IMPORTING "R. 2.2F - STRING = FILENAME "R. 2.2F - EXCEPTIONS "R. 2.2F - TOO_SMALL = 01. "R. 2.2F - -* CONCATENATE PATH TRDIR-NAME '.TXT' INTO FILENAME. "R. 3.0x - CONDENSE FILENAME NO-GAPS. - PERFORM DOWNLOAD TABLES TABTEXT USING FILENAME RC. - -ENDFORM. - -*----------------------------------------------------------------------* -* FORM: Download * -*----------------------------------------------------------------------* -FORM DOWNLOAD TABLES TABDATA USING FILENAME RC. - - RC = FAIL. - CALL FUNCTION 'WS_DOWNLOAD' - EXPORTING - FILENAME = FILENAME - FILETYPE = 'ASC' - MODE = MODE - TABLES - DATA_TAB = TABDATA - EXCEPTIONS - FILE_OPEN_ERROR = 1 - FILE_WRITE_ERROR = 2 - INVALID_FILESIZE = 3 - INVALID_TABLE_WIDTH = 4 - INVALID_TYPE = 5 - NO_BATCH = 6 - UNKNOWN_ERROR = 7. - IF SY-SUBRC <> OK. - WRITE:/ SY-SUBRC, TEXT-100. - ENDIF. - RC = SY-SUBRC. - -ENDFORM. diff --git a/it/it-projects/plugins/project/src/c/main.c b/it/it-projects/plugins/project/src/c/main.c deleted file mode 100644 index 2c3bf69a583..00000000000 --- a/it/it-projects/plugins/project/src/c/main.c +++ /dev/null @@ -1,19 +0,0 @@ -#include <stdio.h> /* NOK, according to the MISRA C 2004 20.9 rule, stdio.h must not be used in embedded system's production code */ - -#include <mylib.h> - -/* - * Compile & run from current folder: - * gcc -Wall -pedantic -std=c99 -I../lib -o main main.c && ./main - */ - -int main(void) { - int x = ADD(40, 2); - - if (x != 42) - { /* NOK, empty code blocks generate violations */ - } - - // print something - printf("40 + 2 = %d\n", x); -} diff --git a/it/it-projects/plugins/project/src/cobol/Custmnt2.cbl b/it/it-projects/plugins/project/src/cobol/Custmnt2.cbl deleted file mode 100755 index 662b5ca706f..00000000000 --- a/it/it-projects/plugins/project/src/cobol/Custmnt2.cbl +++ /dev/null @@ -1,581 +0,0 @@ - IDENTIFICATION DIVISION. - * - PROGRAM-ID. CUSTMNT2. - * - ENVIRONMENT DIVISION. - * - DATA DIVISION. - * - WORKING-STORAGE SECTION. - * - 01 SWITCHES. - * - 05 VALID-DATA-SW PIC X(01) VALUE 'Y'. - 88 VALID-DATA VALUE 'Y'. - * - 01 FLAGS. - * - 05 SEND-FLAG PIC X(01). - 88 SEND-ERASE VALUE '1'. - 88 SEND-ERASE-ALARM VALUE '2'. - 88 SEND-DATAONLY VALUE '3'. - 88 SEND-DATAONLY-ALARM VALUE '4'. - * - 01 WORK-FIELDS. - * - 05 RESPONSE-CODE PIC S9(08) COMP. - * - 01 USER-INSTRUCTIONS. - * - 05 ADD-INSTRUCTION PIC X(79) VALUE - 'Type information for new customer. Then Press Enter.'. - 05 CHANGE-INSTRUCTION PIC X(79) VALUE - 'Type changes. Then press Enter.'. - 05 DELETE-INSTRUCTION PIC X(79) VALUE - 'Press Enter to delete this customer or press F12 to canc - - 'el.'. - * - 01 COMMUNICATION-AREA. - * - 05 CA-CONTEXT-FLAG PIC X(01). - 88 PROCESS-KEY-MAP VALUE '1'. - 88 PROCESS-ADD-CUSTOMER VALUE '2'. - 88 PROCESS-CHANGE-CUSTOMER VALUE '3'. - 88 PROCESS-DELETE-CUSTOMER VALUE '4'. - 05 CA-CUSTOMER-RECORD. - 10 CA-CUSTOMER-NUMBER PIC X(06). - 10 FILLER PIC X(112). - * - COPY CUSTMAS. - * - COPY MNTSET2. - * - COPY DFHAID. - * - COPY ATTR. - * - COPY ERRPARM. - * - LINKAGE SECTION. - * - 01 DFHCOMMAREA PIC X(119). - * - PROCEDURE DIVISION. - * - 0000-PROCESS-CUSTOMER-MAINT. - * - IF EIBCALEN > ZERO - MOVE DFHCOMMAREA TO COMMUNICATION-AREA - END-IF. - * - EVALUATE TRUE - * - WHEN EIBCALEN = ZERO - MOVE LOW-VALUE TO MNTMAP1O - MOVE -1 TO CUSTNO1L - SET SEND-ERASE TO TRUE - PERFORM 1500-SEND-KEY-MAP - SET PROCESS-KEY-MAP TO TRUE - * - WHEN EIBAID = DFHPF3 - EXEC CICS - XCTL PROGRAM('INVMENU') - END-EXEC - * - WHEN EIBAID = DFHPF12 - IF PROCESS-KEY-MAP - EXEC CICS - XCTL PROGRAM('INVMENU') - END-EXEC - ELSE - MOVE LOW-VALUE TO MNTMAP1O - MOVE -1 TO CUSTNO1L - SET SEND-ERASE TO TRUE - PERFORM 1500-SEND-KEY-MAP - SET PROCESS-KEY-MAP TO TRUE - END-IF - * - WHEN EIBAID = DFHCLEAR - IF PROCESS-KEY-MAP - MOVE LOW-VALUE TO MNTMAP1O - MOVE -1 TO CUSTNO1L - SET SEND-ERASE TO TRUE - PERFORM 1500-SEND-KEY-MAP - ELSE - MOVE LOW-VALUE TO MNTMAP2O - MOVE CA-CUSTOMER-NUMBER TO CUSTNO2O - EVALUATE TRUE - WHEN PROCESS-ADD-CUSTOMER - MOVE ADD-INSTRUCTION TO INSTR2O - WHEN PROCESS-CHANGE-CUSTOMER - MOVE CHANGE-INSTRUCTION TO INSTR2O - WHEN PROCESS-DELETE-CUSTOMER - MOVE DELETE-INSTRUCTION TO INSTR2O - END-EVALUATE - MOVE -1 TO LNAMEL - SET SEND-ERASE TO TRUE - PERFORM 1400-SEND-DATA-MAP - END-IF - * - WHEN EIBAID = DFHPA1 OR DFHPA2 OR DFHPA3 - CONTINUE - * - WHEN EIBAID = DFHENTER - EVALUATE TRUE - WHEN PROCESS-KEY-MAP - PERFORM 1000-PROCESS-KEY-MAP - WHEN PROCESS-ADD-CUSTOMER - PERFORM 2000-PROCESS-ADD-CUSTOMER - WHEN PROCESS-CHANGE-CUSTOMER - PERFORM 3000-PROCESS-CHANGE-CUSTOMER - WHEN PROCESS-DELETE-CUSTOMER - PERFORM 4000-PROCESS-DELETE-CUSTOMER - END-EVALUATE - * - WHEN OTHER - IF PROCESS-KEY-MAP - MOVE LOW-VALUE TO MNTMAP1O - MOVE 'That key is unassigned.' TO MSG1O - MOVE -1 TO CUSTNO1L - SET SEND-DATAONLY-ALARM TO TRUE - PERFORM 1500-SEND-KEY-MAP - ELSE - MOVE LOW-VALUE TO MNTMAP2O - MOVE 'That key is unassigned.' TO MSG2O - MOVE -1 TO LNAMEL - SET SEND-DATAONLY-ALARM TO TRUE - PERFORM 1400-SEND-DATA-MAP - END-IF - * - END-EVALUATE. - - EXEC CICS - RETURN TRANSID('MNT2') - COMMAREA(COMMUNICATION-AREA) - END-EXEC. - * - 1000-PROCESS-KEY-MAP. - * - PERFORM 1100-RECEIVE-KEY-MAP. - PERFORM 1200-EDIT-KEY-DATA. - IF VALID-DATA - IF NOT PROCESS-DELETE-CUSTOMER - INSPECT CUSTOMER-MASTER-RECORD - REPLACING ALL SPACE BY '_' - END-IF - MOVE CUSTNO1I TO CUSTNO2O - MOVE CM-LAST-NAME TO LNAMEO - MOVE CM-FIRST-NAME TO FNAMEO - MOVE CM-ADDRESS TO ADDRO - MOVE CM-CITY TO CITYO - MOVE CM-STATE TO STATEO - MOVE CM-ZIP-CODE TO ZIPCODEO - MOVE -1 TO LNAMEL - SET SEND-ERASE TO TRUE - PERFORM 1400-SEND-DATA-MAP - ELSE - MOVE LOW-VALUE TO CUSTNO1O - ACTIONO - SET SEND-DATAONLY-ALARM TO TRUE - PERFORM 1500-SEND-KEY-MAP - END-IF. - * - 1100-RECEIVE-KEY-MAP. - * - EXEC CICS - RECEIVE MAP('MNTMAP1') - MAPSET('MNTSET2') - INTO(MNTMAP1I) - END-EXEC. - * - INSPECT MNTMAP1I - REPLACING ALL '_' BY SPACE. - * - 1200-EDIT-KEY-DATA. - * - MOVE ATTR-NO-HIGHLIGHT TO ACTIONH - CUSTNO1H. - * - IF ACTIONI NOT = '1' AND '2' AND '3' AND '4' AND '5' - MOVE ATTR-REVERSE TO ACTIONH - MOVE -1 TO ACTIONL - MOVE 'Action must be 1, 2, or 3.' TO MSG1O - MOVE 'N' TO VALID-DATA-SW - END-IF. - * - IF CUSTNO1L = ZERO - OR CUSTNO1I = SPACE - MOVE ATTR-REVERSE TO CUSTNO1H - MOVE -1 TO CUSTNO1L - MOVE 'You must enter a customer number.' TO MSG1O - MOVE 'N' TO VALID-DATA-SW - END-IF. - * - IF VALID-DATA - MOVE LOW-VALUE TO MNTMAP2O - EVALUATE ACTIONI - WHEN '1' - PERFORM 1300-READ-CUSTOMER-RECORD - IF RESPONSE-CODE = DFHRESP(NOTFND) - MOVE ADD-INSTRUCTION TO INSTR2O - SET PROCESS-ADD-CUSTOMER TO TRUE - MOVE SPACE TO CUSTOMER-MASTER-RECORD - ELSE - IF RESPONSE-CODE = DFHRESP(NORMAL) - MOVE 'That customer already exists.' - TO MSG1O - MOVE 'N' TO VALID-DATA-SW - END-IF - END-IF - WHEN '2' - PERFORM 1300-READ-CUSTOMER-RECORD - IF RESPONSE-CODE = DFHRESP(NORMAL) - MOVE CUSTOMER-MASTER-RECORD TO - CA-CUSTOMER-RECORD - MOVE CHANGE-INSTRUCTION TO INSTR2O - SET PROCESS-CHANGE-CUSTOMER TO TRUE - ELSE - IF RESPONSE-CODE = DFHRESP(NOTFND) - MOVE 'That customer does not exist.' TO - MSG1O - MOVE 'N' TO VALID-DATA-SW - END-IF - END-IF - WHEN '3' - PERFORM 1300-READ-CUSTOMER-RECORD - IF RESPONSE-CODE = DFHRESP(NORMAL) - MOVE CUSTOMER-MASTER-RECORD TO - CA-CUSTOMER-RECORD - MOVE DELETE-INSTRUCTION TO INSTR2O - SET PROCESS-DELETE-CUSTOMER TO TRUE - MOVE ATTR-PROT TO LNAMEA - FNAMEA - ADDRA - CITYA - STATEA - ZIPCODEA - ELSE - IF RESPONSE-CODE = DFHRESP(NOTFND) - MOVE 'That customer does not exist.' TO - MSG1O - MOVE 'N' TO VALID-DATA-SW - END-IF - END-IF - END-EVALUATE. - * - 1300-READ-CUSTOMER-RECORD. - * - EXEC CICS - READ FILE('CUSTMAS') - INTO(CUSTOMER-MASTER-RECORD) - RIDFLD(CUSTNO1I) - RESP(RESPONSE-CODE) - END-EXEC. - * - IF RESPONSE-CODE NOT = DFHRESP(NORMAL) - AND RESPONSE-CODE NOT = DFHRESP(NOTFND) - PERFORM 9999-TERMINATE-PROGRAM - END-IF. - * - 1400-SEND-DATA-MAP. - * - MOVE 'MNT2' TO TRANID2O. - * - EVALUATE TRUE - WHEN SEND-ERASE - EXEC CICS - SEND MAP('MNTMAP2') - MAPSET('MNTSET2') - FROM(MNTMAP2O) - ERASE - CURSOR - END-EXEC - WHEN SEND-DATAONLY-ALARM - EXEC CICS - SEND MAP('MNTMAP2') - MAPSET('MNTSET2') - FROM(MNTMAP2O) - DATAONLY - ALARM - CURSOR - END-EXEC - END-EVALUATE. - * - 1500-SEND-KEY-MAP. - * - MOVE 'MNT2' TO TRANID1O. - * - EVALUATE TRUE - WHEN SEND-ERASE - EXEC CICS - SEND MAP('MNTMAP1') - MAPSET('MNTSET2') - FROM(MNTMAP1O) - ERASE - CURSOR - END-EXEC - WHEN SEND-ERASE-ALARM - EXEC CICS - SEND MAP('MNTMAP1') - MAPSET('MNTSET2') - FROM(MNTMAP1O) - ERASE - ALARM - CURSOR - END-EXEC - WHEN SEND-DATAONLY-ALARM - EXEC CICS - SEND MAP('MNTMAP1') - MAPSET('MNTSET2') - FROM(MNTMAP1O) - DATAONLY - ALARM - CURSOR - END-EXEC - END-EVALUATE. - * - 2000-PROCESS-ADD-CUSTOMER. - * - PERFORM 2100-RECEIVE-DATA-MAP. - PERFORM 2200-EDIT-CUSTOMER-DATA. - IF VALID-DATA - PERFORM 2300-WRITE-CUSTOMER-RECORD - IF RESPONSE-CODE = DFHRESP(NORMAL) - MOVE 'Customer record added.' TO MSG1O - SET SEND-ERASE TO TRUE - ELSE - IF RESPONSE-CODE = DFHRESP(DUPREC) - MOVE 'Another user has added a record with that c - - 'ustomer number.' TO MSG1O - SET SEND-ERASE-ALARM TO TRUE - END-IF - END-IF - MOVE -1 TO CUSTNO1L - PERFORM 1500-SEND-KEY-MAP - SET PROCESS-KEY-MAP TO TRUE - ELSE - MOVE LOW-VALUE TO LNAMEO - FNAMEO - ADDRO - CITYO - STATEO - ZIPCODEO - SET SEND-DATAONLY-ALARM TO TRUE - PERFORM 1400-SEND-DATA-MAP - END-IF. - * - 2100-RECEIVE-DATA-MAP. - * - EXEC CICS - RECEIVE MAP('MNTMAP2') - MAPSET('MNTSET2') - INTO(MNTMAP2I) - END-EXEC. - * - INSPECT MNTMAP2I - REPLACING ALL '_' BY SPACE. - * - 2200-EDIT-CUSTOMER-DATA. - * - MOVE ATTR-NO-HIGHLIGHT TO ZIPCODEH - STATEH - CITYH - ADDRH - FNAMEH - LNAMEH. - - IF ZIPCODEI = SPACE - OR ZIPCODEL = ZERO - MOVE ATTR-REVERSE TO ZIPCODEH - MOVE -1 TO ZIPCODEL - MOVE 'You must enter a zip code.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - - IF STATEI = SPACE - OR STATEL = ZERO - MOVE ATTR-REVERSE TO STATEH - MOVE -1 TO STATEL - MOVE 'You must enter a state.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - - IF CITYI = SPACE - OR CITYL = ZERO - MOVE ATTR-REVERSE TO CITYH - MOVE -1 TO CITYL - MOVE 'You must enter a city.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - - IF ADDRI = SPACE - OR ADDRL = ZERO - MOVE ATTR-REVERSE TO ADDRH - MOVE -1 TO ADDRL - MOVE 'You must enter an address.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - - IF FNAMEI = SPACE - OR FNAMEL = ZERO - MOVE ATTR-REVERSE TO FNAMEH - MOVE -1 TO FNAMEL - MOVE 'You must enter a first name.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - - IF LNAMEI = SPACE - OR LNAMEL = ZERO - MOVE ATTR-REVERSE TO LNAMEH - MOVE -1 TO LNAMEL - MOVE 'You must enter a last name.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - * - 2300-WRITE-CUSTOMER-RECORD. - * - MOVE CUSTNO2I TO CM-CUSTOMER-NUMBER. - MOVE LNAMEI TO CM-LAST-NAME. - MOVE FNAMEI TO CM-FIRST-NAME. - MOVE ADDRI TO CM-ADDRESS. - MOVE CITYI TO CM-CITY. - MOVE STATEI TO CM-STATE. - MOVE ZIPCODEI TO CM-ZIP-CODE. - * - EXEC CICS - WRITE FILE('CUSTMAS') - FROM(CUSTOMER-MASTER-RECORD) - RIDFLD(CM-CUSTOMER-NUMBER) - RESP(RESPONSE-CODE) - END-EXEC. - * - IF RESPONSE-CODE NOT = DFHRESP(NORMAL) - AND RESPONSE-CODE NOT = DFHRESP(DUPREC) - PERFORM 9999-TERMINATE-PROGRAM - END-IF. - * - 3000-PROCESS-CHANGE-CUSTOMER. - * - PERFORM 2100-RECEIVE-DATA-MAP. - PERFORM 2200-EDIT-CUSTOMER-DATA. - IF VALID-DATA - MOVE CUSTNO2I TO CM-CUSTOMER-NUMBER - PERFORM 3100-READ-CUSTOMER-FOR-UPDATE - IF RESPONSE-CODE = DFHRESP(NORMAL) - IF CUSTOMER-MASTER-RECORD = CA-CUSTOMER-RECORD - * Introduce extra nested if as an example of rule violation - IF VALID-DATA - IF RESPONSE-CODE = DFHRESP(NORMAL) - PERFORM 3200-REWRITE-CUSTOMER-RECORD - MOVE 'Customer record updated.' TO MSG1O - SET SEND-ERASE TO TRUE - END-IF - END-IF - ELSE - MOVE 'Another user has updated the record. Try a - - 'gain.' TO MSG1O - SET SEND-ERASE-ALARM TO TRUE - END-IF - ELSE - IF RESPONSE-CODE = DFHRESP(NOTFND) - MOVE 'Another user has deleted the record.' TO - MSG1O - SET SEND-ERASE-ALARM TO TRUE - END-IF - END-IF - MOVE -1 TO CUSTNO1L - PERFORM 1500-SEND-KEY-MAP - SET PROCESS-KEY-MAP TO TRUE - ELSE - MOVE LOW-VALUE TO LNAMEO - FNAMEO - ADDRO - CITYO - STATEO - ZIPCODEO - SET SEND-DATAONLY-ALARM TO TRUE - PERFORM 1400-SEND-DATA-MAP - END-IF. - * - 3100-READ-CUSTOMER-FOR-UPDATE. - * - EXEC CICS - READ FILE('CUSTMAS') - INTO(CUSTOMER-MASTER-RECORD) - RIDFLD(CM-CUSTOMER-NUMBER) - UPDATE - RESP(RESPONSE-CODE) - END-EXEC. - * - IF RESPONSE-CODE NOT = DFHRESP(NORMAL) - AND RESPONSE-CODE NOT = DFHRESP(NOTFND) - PERFORM 9999-TERMINATE-PROGRAM - END-IF. - * - 3200-REWRITE-CUSTOMER-RECORD. - * - MOVE LNAMEI TO CM-LAST-NAME. - MOVE FNAMEI TO CM-FIRST-NAME. - MOVE ADDRI TO CM-ADDRESS. - MOVE CITYI TO CM-CITY. - MOVE STATEI TO CM-STATE. - MOVE ZIPCODEI TO CM-ZIP-CODE. - * - EXEC CICS - REWRITE FILE('CUSTMAS') - FROM(CUSTOMER-MASTER-RECORD) - RESP(RESPONSE-CODE) - END-EXEC. - * - IF RESPONSE-CODE NOT = DFHRESP(NORMAL) - PERFORM 9999-TERMINATE-PROGRAM - END-IF. - * - 4000-PROCESS-DELETE-CUSTOMER. - * - MOVE CA-CUSTOMER-NUMBER TO CM-CUSTOMER-NUMBER. - PERFORM 3100-READ-CUSTOMER-FOR-UPDATE. - IF RESPONSE-CODE = DFHRESP(NORMAL) - ALTER X TO PROCEED TO Y - IF CUSTOMER-MASTER-RECORD = CA-CUSTOMER-RECORD - PERFORM 4100-DELETE-CUSTOMER-RECORD - MOVE 'Customer deleted.' TO MSG1O - SET SEND-ERASE TO TRUE - ELSE - MOVE 'Another user has updated the record. Try again - - '.' TO MSG1O - SET SEND-ERASE-ALARM TO TRUE - END-IF - ELSE - IF RESPONSE-CODE = DFHRESP(NOTFND) - MOVE 'Another user has deleted the record.' TO - MSG1O - SET SEND-ERASE-ALARM TO TRUE - END-IF - END-IF. - MOVE -1 TO CUSTNO1L. - PERFORM 1500-SEND-KEY-MAP. - SET PROCESS-KEY-MAP TO TRUE. - * - 4100-DELETE-CUSTOMER-RECORD. - * TODO Some comment - EXEC CICS - DELETE FILE('CUSTMAS') - RESP(RESPONSE-CODE) - END-EXEC. - * - IF RESPONSE-CODE NOT = DFHRESP(NORMAL) - PERFORM 9999-TERMINATE-PROGRAM - END-IF. - * - 9999-TERMINATE-PROGRAM. - * - MOVE EIBRESP TO ERR-RESP. - MOVE EIBRESP2 TO ERR-RESP2. - MOVE EIBTRNID TO ERR-TRNID. - MOVE EIBRSRCE TO ERR-RSRCE. - * - EXEC CICS - XCTL PROGRAM('SYSERR') - COMMAREA(ERROR-PARAMETERS) - END-EXEC. diff --git a/it/it-projects/plugins/project/src/cobol/TC4E3H0.CBL b/it/it-projects/plugins/project/src/cobol/TC4E3H0.CBL deleted file mode 100644 index da86bbe241d..00000000000 --- a/it/it-projects/plugins/project/src/cobol/TC4E3H0.CBL +++ /dev/null @@ -1,17508 +0,0 @@ - IDENTIFICATION DIVISION. - PROGRAM-ID. TC4E3H0 . - DATE-COMPILED. 02/17/10 - *REMARKS. - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY REMARKS ! - *------------------------------------------------------------------- - * AUTEUR : SOLERI ! - ****************************************************************** ! - * AUTEUR : SOLERI * ! - * LANGAGE : COBOL * ! - * MONITEUR : CICS * ! - * DATE CREATION : 1999/01/15 * ! - * * ! - * * ! - * DESCRIPTIF : ECRAN DE CORRECTION DES MOUVEMENTS EN ANOMALIES * ! - * ------------ CET ECRAN EST PARAMETRE SELON LE CODE APPLICATION* ! - * DU MOUVEMENT A CORRIGER * ! - * * ! - ****************************************************************** ! - * LISTE DES MESSAGES ERREUR UTILISES * ! - ****************************************************************** ! - *000001 TOUCHE DE FONCTION INTERDITE ! - *000010 F5 : VALIDATION ! - *000029 DATE INCORRECTE ! - *000141 CODE INEXISTANT ! - *000148 ZONE OBLIGATOIRE ! - *000193 MODIFICATION EFFECTUEE ! - *000270 CETTE DONNEE DOIT ETRE NUMERIQUE ! - *4E0041 LE CODE BANQUE DOIT ETRE NUMERIQUE ! - *4E0053 CODE PRODUIT INEXISTANT ! - *4E0058 CODE PARTENAIRE INCORRECT ! - *4E0059 CODE RPODUIT INCORRECT ! - *4E0060 NUMERO DE SOUSCRIPTION INCORRECT ! - *4E0061 NUMERO DE CONTRAT INCORRECT ! - *4E0062 NUMERO ADHESION INCORRECT ! - *4E0063 NUMERO DOSSSIER SINITRE INCORRECT ! - *4E0064 PERIODE DGI INCORRECTE ! - *4E0065 CODE TYPE CRO OBLIGATOIRE ! - *4E0066 CODE TYPE CRO INEXISTANT ! - ****************************************************************** ! - * MAINTENANCE * ! - ****************************************************************** ! - * AUTEUR * DATE * DESCRIPTIF * ! - ****************************************************************** ! - * * * * ! - * * * * ! - * * * * ! - ****************************************************************** ! - * SODIFRANCE *25.04.2006* REMPLACER ACCES YSP4EPTN PAR * ! - * * * ACCES MODULE TN4D101 (DB2) * ! - ****************************************************************** ! - *----------------------------------------------! END REMARKS ---- - - ENVIRONMENT DIVISION. - CONFIGURATION SECTION. - SPECIAL-NAMES. - DECIMAL-POINT IS COMMA. - DATA DIVISION. - SKIP2 - WORKING-STORAGE SECTION. - * - * THIS PROGRAM HAS BEEN DEVELOPED WITH THE TELON APPLICATION - * DEVELOPMENT SYSTEM, LICENSED BY: - * - * COMPUTER ASSOCIATES INTERNATIONAL, INC. - * ONE COMPUTER ASSOCIATES PLAZA - * ISLANDIA, NY 11788-7000 - * - * - * ----- LINE EFFICENCY OVERVIEW ----- - * - * THIS PROGRAM INCORPORATES LOGIC WHICH SIGNIFICANTLY - * REDUCES THE AMOUNT OF DATA WHICH IS TRANSMITTED TO AND - * FROM THE TERMINAL. TO PERFORM THIS FUNCTION, A ROUTINE - * NAMED TLRAMRG IS CALLED. IN GENERAL, ONLY MODIFIED - * FIELDS ARE TRANSMITTED TO AND FROM THE TERMINAL. - * SEE SECTIONS C-100 AND C-200 FOR A DESCRIPTION OF THIS - * ROUTINE. THERE ARE TWO DATA AREAS WHICH ARE USED BY - * THIS ROUTINE, THE OUTPUT SCREEN TABLE AND THE SCREEN IMAGE AREA. - * - * THE STEPS TO MODIFY A MESSAGE FORMAT WITHOUT THE USE OF TELON ARE: - * 1. ADD THE FIELD TO THE BMS MAP. - * 2. ADD THE FIELD TO THE TP BUFFER DEFINITION. - * 3. ADD THE FIELD TO THE OUTPUT SCREEN TABLE. - * 4. SET THE SIZE OF THE SCREEN IMAGE AREA. - * - * OUTPUT SCREEN TABLE - * - * THE OUTPUT SCREEN TABLE CONTAINS A DEFINITION OF THE - * SCREEN. IT CONSISTS OF AN 18 BYTE HEADER AREA AND FOUR - * ENTRY TYPES AS DESCRIBED BELOW. - * - * VARIABLE FIELD ENTRY - * ONE ENTRY FOR EVERY VARIABLE FIELD ON THE SCREEN IN - * ORDER OF THE TP-BUFFER FIELDS. - * 1. FILLER PIC X. - * 2. SCT-FIELD-TYPE PIC X VALUE (I/O). - * I - FIELD IS INPUT FROM THE TERMINAL. - * O - FIELD IS OUTPUT ONLY TO THE TERMINAL. - * 3. TPO-FIELDNAME-LTH PIC 9(4) COMP. - * LENGTH OF THE FIELD ON THE SCREEN. - * - * TABLE END ENTRY - * THIS ENTRY IS REQUIRED TO MARK THE END OF THE TABLE. - * 1. SCT-END-ENTRY PIC 9(4) COMP VALUE ZERO. - EJECT - * SEGLOOP ENTRY - * THE SEGLOOP ENTRY IS USED TO MARK THE START OF A LINE - * WHICH IS TO BE REPEATED. IT IS USED IN CONJUNCTION - * WITH THE SEGEND ENTRY TO DELIMIT THE REPETITIVE LINE. - * 1. FILLER PIC X. - * 2. SCT-SEGLOOP-TYPE PIC X VALUE 'S'. - * 3. SCT-ENTRY-LENGTH PIC 9(4) COMP VALUE NNN. - * LENGTH OF SEGLOOP ENTRY. - * 3. SCT-REPEAT-LINES PIC 9(2) COMP-3 VALUE NN. - * NUMBER OF TIMES TO REPEAT LINE ON THE SCREEN. - * THIS VALUE IS 1 LESS THAN THE NUMBER OF LINES TO - * BE DISPLAYED ON THE SCREEN. - * 5. INCREMENTAL VALUE PIC 9(2) COMP-3 VALUE NN. - * SPECIFIES THE NUMBER OF LINES TO SKIP BETWEEN EACH - * LINE WHERE A VALUE OF 1 INDICATES THE NEXT LINE. - * THE NUMBER OF INCREMENTS IS EQUAL TO THE VALUE OF - * SCT-REPEAT-LINES. - * - * SEGEND ENTRY - * THE SEGEND ENTRY IS USED TO MARK THE END OF A LINE - * WHICH IS TO BE REPEATED. IT IS PLACED AFTER THE LAST - * FIELD WHICH IS TO BE REPEATED. - * 1. FILLER PIC X. - * 2. SCT-SEGEND-TYPE PIC X VALUE 'T'. - * 3. SCT-ENTRY-LENGTH PIC 9(4) COMP VALUE 4. - * - * - * SCREEN IMAGE AREA - * - * THE SCREEN IMAGE IS AN AREA APPENDED TO THE SPA AREA - * WHICH CONTAINS A COPY OF THE SCREEN. IT CONSISTS OF A - * 12 BYTE HEADER AND A DATA AREA LARGE ENOUGH TO HOLD THE - * TP-BUFFER. - * 1. SCREEN IMAGE PIC X(NNNN). - * THE SIZE IS DEPENDENT ON THE OUTPUT SCREEN TABLE - * FIELD SCT-REFRESH-OUTPUTS. (Y/N) - * Y - NNNN IS EQUAL TO THE TP-BUFFER LENGTH. - * N - NNNN IS EQUAL TO THE LENGTH OF THE FIELDS AND - * ATTRIBUTES WHICH ARE INPUT FROM THE TERMINAL. - * - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEWSSD ! - *------------------------------------------------------------------- - **************************************************************** ! - * TABLE DES CHAMPS POUR HELP CURSEUR * ! - **************************************************************** ! - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY HELPGEN 2! - *------------------------------------------------------------------- - 01 TAB-POS. 2! - 02 FILLER PIC X(14) VALUE '00000000000000'. 2! - 02 FILLER PIC X(14) VALUE '001002008000OU'. 2! - 02 FILLER PIC X(14) VALUE '001070010000OU'. 2! - 02 FILLER PIC X(14) VALUE '002003004000OU'. 2! - 02 FILLER PIC X(14) VALUE '002073005000OU'. 2! - 02 FILLER PIC X(14) VALUE '004014002000OU'. 2! - 02 FILLER PIC X(14) VALUE '004017027000OU'. 2! - 02 FILLER PIC X(14) VALUE '004071002000OI'. 2! - 02 FILLER PIC X(14) VALUE '004074002000OI'. 2! - 02 FILLER PIC X(14) VALUE '004077004000OI'. 2! - 02 FILLER PIC X(14) VALUE '007020002000OI'. 2! - 02 FILLER PIC X(14) VALUE '007023002000OI'. 2! - 02 FILLER PIC X(14) VALUE '007026004000OI'. 2! - 02 FILLER PIC X(14) VALUE '007057020000OU'. 2! - 02 FILLER PIC X(14) VALUE '007078003000OU'. 2! - 02 FILLER PIC X(14) VALUE '008020005000OU'. 2! - 02 FILLER PIC X(14) VALUE '008026005000OU'. 2! - 02 FILLER PIC X(14) VALUE '008033011000OU'. 2! - 02 FILLER PIC X(14) VALUE '008046002000OU'. 2! - 02 FILLER PIC X(14) VALUE '009020005000OI'. 2! - 02 FILLER PIC X(14) VALUE '009026005000OI'. 2! - 02 FILLER PIC X(14) VALUE '009033011000OI'. 2! - 02 FILLER PIC X(14) VALUE '009046002000OU'. 2! - 02 FILLER PIC X(14) VALUE '009072009000OU'. 2! - 02 FILLER PIC X(14) VALUE '010020001000OU'. 2! - 02 FILLER PIC X(14) VALUE '010022032000OU'. 2! - 02 FILLER PIC X(14) VALUE '010078003000OU'. 2! - 02 FILLER PIC X(14) VALUE '011020007000OI'. 2! - 02 FILLER PIC X(14) VALUE '014002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '014020005000OI'. 2! - 02 FILLER PIC X(14) VALUE '014026020000OU'. 2! - 02 FILLER PIC X(14) VALUE '014047002000OU'. 2! - 02 FILLER PIC X(14) VALUE '014058019000OU'. 2! - 02 FILLER PIC X(14) VALUE '014078003000OU'. 2! - 02 FILLER PIC X(14) VALUE '015002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '015020013000OI'. 2! - 02 FILLER PIC X(14) VALUE '015034007000OU'. 2! - 02 FILLER PIC X(14) VALUE '015042004000OI'. 2! - 02 FILLER PIC X(14) VALUE '015047032000OU'. 2! - 02 FILLER PIC X(14) VALUE '016002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '016020004000OU'. 2! - 02 FILLER PIC X(14) VALUE '016025001000OU'. 2! - 02 FILLER PIC X(14) VALUE '016027006000OI'. 2! - 02 FILLER PIC X(14) VALUE '016034007000OU'. 2! - 02 FILLER PIC X(14) VALUE '016042002000OI'. 2! - 02 FILLER PIC X(14) VALUE '016047032000OU'. 2! - 02 FILLER PIC X(14) VALUE '017002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '017020032000OI'. 2! - 02 FILLER PIC X(14) VALUE '018002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '018020002000OI'. 2! - 02 FILLER PIC X(14) VALUE '018023002000OI'. 2! - 02 FILLER PIC X(14) VALUE '018026004000OI'. 2! - 02 FILLER PIC X(14) VALUE '018058012000OU'. 2! - 02 FILLER PIC X(14) VALUE '018071002000OI'. 2! - 02 FILLER PIC X(14) VALUE '018074002000OI'. 2! - 02 FILLER PIC X(14) VALUE '018077004000OI'. 2! - 02 FILLER PIC X(14) VALUE '019002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '019020002000OI'. 2! - 02 FILLER PIC X(14) VALUE '019023002000OI'. 2! - 02 FILLER PIC X(14) VALUE '019026004000OI'. 2! - 02 FILLER PIC X(14) VALUE '019031003000OI'. 2! - 02 FILLER PIC X(14) VALUE '019035001000OI'. 2! - 02 FILLER PIC X(14) VALUE '019037023000OU'. 2! - 02 FILLER PIC X(14) VALUE '019067012000OU'. 2! - 02 FILLER PIC X(14) VALUE '019080001000OI'. 2! - 02 FILLER PIC X(14) VALUE '021020002000OU'. 2! - 02 FILLER PIC X(14) VALUE '021024032000OU'. 2! - 02 FILLER PIC X(14) VALUE '021063010000OU'. 2! - 02 FILLER PIC X(14) VALUE '022002079000OI'. 2! - 02 FILLER PIC X(14) VALUE '023002079000OU'. 2! - 02 FILLER PIC X(14) VALUE '024002079000OU'. 2! - 01 TAB-POS-NB PIC 999 VALUE 071. 2! - 01 WS-TLN-SPA-LENGTH PIC 9(4) COMP VALUE 8192. 2! - *----------------------------------------------! END HELPGEN ---- - - **************************************************************** ! - * VARIABLES NORMALISEES * ! - **************************************************************** ! - 01 WS-TLNGIE. ! - * TOP PERMETTANT DE DETECTER LA PRESENCE DE LA SECTION M-100 ! - 02 WS-TLN-M100 PIC X VALUE 'N'. ! - * DATE ET HEURE FORMATTEES EN FIN DE SECTION Q-100 ! - 02 WS-TLN-DATE. ! - 05 WS-TLN-JJ PIC X(2). ! - 05 FILLER PIC X VALUE '/'. ! - 05 WS-TLN-MM PIC X(2). ! - 05 FILLER PIC X VALUE '/'. ! - 05 WS-TLN-AA PIC X(2). ! - 02 WS-TLN-DATE-LTH PIC 9(4) COMP VALUE 8. ! - 02 WS-TLN-TIME PIC X(8). ! - 02 WS-TLN-TIME-D REDEFINES WS-TLN-TIME. ! - 05 FILLER PIC X. ! - 05 WS-TLN-HH PIC X(2). ! - 05 WS-TLN-MN PIC X(2). ! - 05 WS-TLN-SS PIC X(2). ! - 05 FILLER PIC X. ! - 02 WS-TLN-DATE-AFF. ! - 05 WS-TLN-JJ-AFF PIC X(2). ! - 05 FILLER PIC X VALUE '/'. ! - 05 WS-TLN-MM-AFF PIC X(2). ! - 05 FILLER PIC X VALUE '/'. ! - 05 WS-TLN-SA-AFF. ! - 07 WS-TLN-SI-AFF PIC X(2). ! - 07 WS-TLN-AA-AFF PIC X(2). ! - 02 WS-TLN-TIME-AFF. ! - 05 WS-TLN-HH-AFF PIC X(2). ! - 05 FILLER PIC X VALUE 'H'. ! - 05 WS-TLN-MN-AFF PIC X(2). ! - * INDICE DE PARCOURS UTILISE DANS GIEPF03I, ET GIEPF03. ! - 02 WS-TLN-IND PIC 9(2) VALUE ZERO. ! - * VARIABLE PERMETTANT L'IDENTIFICATION DU TRAITEMENT ! - * TELON OU PAS . ! - 02 WS-TLN-TYP-PROG PIC X VALUE SPACES. ! - 88 WS-TLN-PROG-TELON VALUE 'T'. ! - * TOP A RENSEIGENER A 'C' POUR UN DEBRANCHEMENT VERS UN ! - * PRGROMME NON TELON. INTERPRETER EN SECTION C-300. ! - 02 WS-TLN-TYP-XCTL PIC X VALUE SPACES. ! - 88 WS-TLN-XCTL-NON-TELON VALUE 'C'. ! - * VARIABLE CONTENANT LA VALEUR EMISE PAR LA SELECTION ! - * D'UN DETAIL (FONCTION ZOOM) ! - 02 WS-TLN-VAL-SELECT PIC X VALUE 'D'. ! - * ZONES D'APPEL AU MODULE ODATAMJ ET IDATAMJ ! - 02 WS-TLN-TYPDATE PIC X(3) VALUE 'D03'. ! - 02 WS-TLN-NB-DEC PIC 9 VALUE ZERO. ! - 02 WS-TLN-SIGNE PIC X VALUE 'N'. ! - * ZONES D'APPEL AU MODULE OSPITAB, ISPITAB, OSPIGRP,ISPIGRP ! - 02 WS-TLN-LTH-KEY PIC 9(4) COMP VALUE ZERO. ! - 02 WS-TLN-LTH-DEBKEY PIC 9(4) COMP VALUE ZERO. ! - 02 WS-TLN-EL-DEMANDES PIC X(6) VALUE SPACES. ! - 02 WS-TLN-CODTAB PIC X(8) VALUE SPACES. ! - * ZONES D'APPEL AU MODULE ILUHNKY ! - 02 WS-TLN-LTH-RAC PIC 9(2) VALUE ZERO. ! - 02 WS-TLN-RAC-LUHN PIC X(20) VALUE SPACES. ! - * ZONES PERMETTANT LA SAUVEGARDE DU CODE HEADER DE ! - * L'APPLICATION EXECUTEE LORS D'UN APPEL DE VALEUR ! - 02 WS-TLN-DEB-SPA PIC X(2). ! - 02 WS-TLN-BIN-SPA REDEFINES WS-TLN-DEB-SPA PIC 9(4) COMP. ! - 02 WS-TLN-BIN-MAX PIC 9(5) COMP VALUE 16447. ! - 02 WS-TLN-BIN-MIN PIC 9(5) COMP VALUE ZERO. ! - * VARIABLE PERMETTANT D'INDIQUER SI UNE CONVERSION DES ! - * LETTRES MINUSCULES ACCENTUEES EN LETTRE MAJUSCULE EST ! - * A EFFECTUER DANS LES FLDTYPES 'ALPHAB' ET 'ALPHABG' ! - 02 WS-TLN-IDC-CONVERSION PIC X VALUE 'O'. ! - * ZONES PERMETTANT LA GESTION DU MESSAGE D'ERREUR POUR ! - * CONTROLE DE PREMIER NIVEAU. ! - 02 WS-TLN-MSG. ! - 05 WS-TLN-DBT-MSG PIC X(2) VALUE SPACES. ! - 05 WS-TLN-NUM-MSG PIC X(4) VALUE SPACES. ! - * ZONE PERMETTANT LA GESTION DES ABENDS ! - 02 WS-TLN-EIB. ! - 05 WS-TLN-EIBFN PIC X(2) VALUE SPACES. ! - 05 WS-TLN-EIBRCODE PIC X(6) VALUE SPACES. ! - 02 WS-TLN-ABT-PGM. ! - 05 WS-TLN-ABT-PGM-HD PIC X(2) VALUE 'TX'. ! - 05 WS-TLN-ABT-PGM-ID PIC X(6) VALUE '00ABD '. ! - * VARIABLE PERMETTANT LE PASSAGE D'INFORMATIONS DU PROGRAMME ! - * APPLICATIF AU PROGRAMME APPEL DE VALEUR. ! - * RECUPERATION DE CETTE VARIABLE DANS LA ZONE DE COMMAREA ! - * HELP-MSG-NAME-KEY(1). ! - 02 WS-TLN-HELP-NAME-KEY. ! - 05 WS-TLN-HELP-DEB-KEY PIC X(10) VALUE SPACES. ! - 05 WS-TLN-HELP-FIN-KEY PIC X(10) VALUE SPACES. ! - 05 FILLER PIC X VALUE SPACE. ! - * ZONE CONTENANT LE LIBELLE COMPLEMENTAIRE A UN MESSAGE ! - * D'ERREUR ! - 02 WS-TLN-LIB-CPL-MES PIC X(32) VALUE SPACES. ! - 02 WS-TLN-ADR-PGM PIC X(6) VALUE SPACES. ! - * TYPE PROVENANCE APPEL (MODE NATIF OU PAS) ! - 02 WS-TLN-TYP-PROV PIC X. ! - 88 APPEL-NATIF VALUE 'N'. ! - 88 APPEL-ALICE VALUE 'A'. ! - * MESSAGE ENVOYE SI APPEL EN MODE NATIF ! - 02 WS-TLN-MES-ERR-PROV PIC X(22) ! - VALUE 'APPEL DIRECT INTERDIT'. ! - 02 WS-TLN-LG-MES PIC 9(4) COMP VALUE 22. ! - 02 WS-TLN-PFKEY-INDICATOR PIC 9(2). ! - 88 ENTREE VALUE 0. ! - 88 AIDE VALUE 1. 88 DOCU VALUE 2. ! - 88 MENUPRE VALUE 3. 88 APPVAL VALUE 4. ! - 88 REFRESH VALUE 5. 88 LIBRE1 VALUE 6. ! - 88 PAGEPRE VALUE 7. 88 PAGESUI VALUE 8. ! - 88 ZOOM VALUE 10. 88 ECRPRE VALUE 12. ! - 88 MESS VALUE 14. 88 MENUGEN VALUE 15. ! - 88 CONVERT VALUE 17. ! - 88 LIBRE2 VALUE 18. 88 DROITE VALUE 19. ! - 88 GAUCHE VALUE 20. 88 TOPPERS VALUE 22. ! - 88 PROFCPT VALUE 23. 88 IMPRDIAM VALUE 24. ! - 88 EFFECR VALUE 25. ! - 02 WS-TLN-FCT-VALIDATION PIC X. ! - 88 VALIDATION VALUE 'O'. ! - * INDICATEUR DEDIE A CHACUNE DES FOCNTIONS PROPOS�ES. ! - * VALEUR POSSIBLE : N --> FONCTION NON UTILIS�E ! - * : O --> FONCTION UTILISEE ! - * : I --> FONCTION NON UTILISEE, MAIS RESERVATION ! - * : EMPLACEMENT TOUCHE DE FONCTION ! - 02 WS-TLN-TABLE-FONCTION. ! - 05 WS-TLN-AIDE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-DOCU-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-ECRPRE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-MENUGEN-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-MENUPRE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-APPVAL-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-PAGEPRE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-PAGESUI-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-GAUCHE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-DROITE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-ZOOM-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-REFRESH-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-MESS-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-TOPPERS-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-CONVERT-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-PROFCPT-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-VALIDATION-UTI REDEFINES ! - WS-TLN-PROFCPT-UTI PIC X. ! - * VARIABLES A RENSEIGNER DANS LE CAS D'UTILISATION ! - * DE FONCTION DIFFERENTES DE CELLES DEJA PROPOSEES. ! - * LES TOUCHES DE FONCTIONS ASSOCIEES DOIVENT ETRE ! - * 'F6' ET 'F18'. ! - 02 WS-TLN-TCH-LIBRE1 PIC X(16) VALUE SPACES. ! - 02 WS-TLN-TCH-LIBRE2 PIC X(16) VALUE SPACES. ! - * VARIABLE PERMETTANT DE PARAMETRER LE MODULE APPELER ! - * POUR UTILISATION DES TOUCHES DE FONCTIONS. ! - 02 WS-TLN-MODULE PIC X(8) VALUE SPACES. ! - * NOM DE LA TS PERMETTANT LA SAUVEGARDE DE LA COMMAREA ! - * APRES LE 'RETURN TRANSID' ! - 02 WS-TLN-HOLD-AREA-KEY. ! - 05 WS-TLN-HOLD-AREA-LTERM PIC X(4). ! - 05 WS-TLN-HOLD-AREA-NAME PIC X(4). ! - 02 WS-TLN-HOLD-AREA-NAME-DFLT PIC X(4) VALUE 'SCOM'. ! - * ZONE DE TRAVAIL PERMETTANT DE RESTAURER L'INDICATEUR ! - * INDIQUANT SI UNE VALEUR A �T� S�LECTIONN�E LORS DE ! - * L'APPEL DE VALEUR. ! - 02 WS-TLN-MODIFY-INDICATOR PIC X. ! - * ZONE DE TRAVAIL PERMETTANT D'INDIQUER SI UN POINT ! - * DE SYNCRONISATION EST NECESSAIRE LORS D'UN CHAINAGE ! - * PAR XCTL. LA VALEUR PAR DEFAUT EST (O)UI ET PEUT ETRE ! - * RENSEIGNE A (N)ON SI ON NE DESIRE PAS EXECUTE L'ORDRE ! - * 'EXEC CICS SYNCPOINT'. ! - 02 WS-TLN-IDC-SYNCPOINT PIC X VALUE 'O'. ! - 88 TRAITER-SYNCPOINT VALUE 'O'. ! - * CARACT�RE UTILIS� POUR MARQUER UN CHAMP PAR LE PROGRAMME ! - * P00740 ! - 02 WS-TLN-CAR-SEL PIC X VALUE 'X'. ! - * ZONES D'APPEL AUX MODULES CONTROLE NO TELEPHONE ! - 02 WS-TLN-APP-TEL. ! - 05 WS-TLN-CD-POST PIC X(5) VALUE SPACES. ! - 05 WS-TLN-TYP-ERR PIC X(1) VALUE SPACES. ! - 05 WS-TLN-IDC-CTRL PIC X(1) VALUE SPACES. ! - ! - * ZONES DE TRAVAIL SUR DATE ET HEURE ! - 02 WS-TLN-ASKTIME PIC X(15). ! - * ZONES PERMETTANT DE RECUPERER ANNEE SUR 4 CAR. ! - 02 WS-TLN-YEAR PIC S9(08) COMP VALUE +0. ! - 02 WS-TLN-YEAR-NUM PIC 9(04) VALUE 0. ! - ! - * VARIABLE PERMETTANT D'INDIQUER SI LES BLANCS SONT AUTORISES ! - * DANS LA DONNEE EN ENTREE ! - 02 WS-TLN-IDC-BLANC PIC X VALUE 'O'. ! - * ZONES UTILISEES DANS LA CONVERSION DEVISES CVMTT ! - 02 WS-TLN-NB-DEC-ORI PIC 9(01). ! - 02 WS-TLN-DEV-ORI PIC X(03). ! - 02 WS-TLN-BOOL-SIGNE PIC X(01). ! - 02 WS-TLN-NB-DEC-CBL PIC 9(01). ! - 02 WS-TLN-DEV-CBL PIC X(03). ! - 02 WS-TLN-NB-DEC-ECT PIC 9(01). ! - 02 WS-TLN-DEV-ECT PIC X(03). ! - 02 WS-TLN-BOOL-ECT PIC X(01). ! - 02 WS-TLN-MT-ECT PIC S9(15)V9(3). ! - * ZONES UTILISEES DANS LA CONVERSION DEVISES CNVMT ! - 02 WS-TLN-ORI-NB-DEC PIC 9(01). ! - 02 WS-TLN-ORI-DVS PIC X(03). ! - 02 WS-TLN-CBL-IDC-SGN PIC X(01) VALUE 'O'. ! - 02 WS-TLN-CBL-NB-DEC PIC 9(01). ! - 02 WS-TLN-CBL-NB-ENT PIC 9(02). ! - 02 WS-TLN-CBL-DVS PIC X(03). ! - 02 WS-TLN-CBL-AFF PIC X(01) VALUE 'O'. ! - 02 WS-TLN-CBL-IDC-SEP PIC X(01) VALUE 'O'. ! - *----------------------------------------------! END GIEWSSD ---- - - ******************************************************** - * T E L O N R E L E A S E D A T A * - ******************************************************** - SKIP1 - 01 TELON-RELEASE-DATA. - 05 TELON-RELEASE-EYECATCH PIC X(10) VALUE 'TELON ID'. - 05 TELON-REL-MOD-ID PIC X(6) VALUE '4.1 '. - 05 TELON-REL-DATE PIC X(6) VALUE '031130'. - 05 TELON-MOD-NO PIC X(4) VALUE '0311'. - 05 TELON-MOD-DATE PIC X(6) VALUE '031130'. - 05 TELON-PGM-ID PIC X(6) VALUE 'CIC'. - 05 TELON-EXECUTION-OPTIONS. - 10 TELON-TRACE-OPTION PIC X VALUE 'N'. - 10 FILLER PIC X(7) VALUE SPACES. - 05 TELON-GEN-DATE PIC X(8) VALUE '02/17/10'. - 05 TELON-GEN-TIME PIC X(5) VALUE '16.56'. - 05 TELON-PROGRAM-FEATURES. - 10 TELON-PGMSTRUCT-FEATURE PIC X VALUE '3'. - 10 TELON-LINEOPT-FEATURE PIC X VALUE '1'. - 10 TELON-ABNORMALT-FEATURE PIC X VALUE '3'. - 10 TELON-COBOL-VERSION PIC X VALUE '3'. - 10 TELON-EATTR-FEATURE PIC X VALUE 'N'. - 10 FILLER PIC X(5) VALUE SPACES. - SKIP1 - EJECT - ******************************************************** - * A B N O R M A L T E R M I N A T I O N A R E A * - ******************************************************** - SKIP1 - 01 ABNORMAL-TERMINATION-AREA. - 05 FILLER PIC X(8) VALUE 'ABT AREA'. - 05 ABT-TEST-FACILITY-AREA. - 10 ABT-TEST-FACILITY-IND PIC X VALUE 'N'. - 88 ABT-TEST-FACILITY-ACTIVE VALUE 'Y'. - 88 ABT-TEST-FACILITY-NOT-ACTIVE VALUE 'N'. - 10 ABT-TEST-MODE-IND PIC X VALUE 'P'. - 88 ABT-TEST-MODE-ABT VALUE 'A'. - 88 ABT-TEST-MODE-PGM VALUE 'P'. - * IF THE TELON TEST FACILITY IS ACTIVE - * AND THE ABT-TEST-MODE IS "P" - * THEN THE ABT-CONTROL-INDICATOR WILL BE FORCED TO SPACE. - 10 FILLER PIC X(2) VALUE LOW-VALUES. - 10 ABT-TEST-FACILITY-RESERVE PIC X(4) VALUE LOW-VALUES. - 05 ABT-CONTROL-INFO. - 10 ABT-CONTROL-INDICATOR PIC X VALUE 'R'. - 88 ABT-DO-ABEND VALUE 'A'. - 88 ABT-DO-WRITE VALUE 'E'. - 88 ABT-DO-TRANSFER VALUE 'R'. - 88 ABT-CONTINUE-PROCESS VALUE ' '. - 10 ABT-IN-PROGRESS PIC X VALUE 'N'. - 10 ABT-DYNAMIC-CONTROL-PGM PIC X(8) VALUE 'ADCCABT'. - 10 ABT-DYNAMIC-CONTROL-RC PIC S9(4) COMP VALUE +0. - 10 ABT-NUMBER-OF-STD-PARMS PIC 9(2) COMP VALUE 9. - 10 ABT-NUMBER-OF-USER-PARMS PIC 9(2) COMP VALUE 1. - 10 ABT-NUMBER-OF-DA-PARMS PIC 9(2) COMP VALUE 0. - 10 ABT-PGM-GEN-TYPE PIC X(4) VALUE 'CICS'. - 88 ABT-PGM-IS-TSOPGM VALUE 'TSO '. - 88 ABT-PGM-IS-IMSDYN VALUE 'IDYN'. - 88 ABT-PGM-IS-IMSSTAT VALUE 'ISTA'. - 88 ABT-PGM-IS-IMSDRVR VALUE 'IDRV'. - 88 ABT-PGM-IS-CICSPGM VALUE 'CICS'. - 88 ABT-PGM-IS-BATCHPGM VALUE 'BATC'. - 88 ABT-PGM-IS-AS400PGM VALUE 'AS4 '. - 88 ABT-PGM-IS-AS400DRV VALUE 'AS4D'. - 88 ABT-PGM-IS-WINCHPGM VALUE 'WINC'. - 88 ABT-PGM-IS-WINCHDRV VALUE 'WIND'. - 88 ABT-PGM-IS-UNIXPGM VALUE 'UNIX'. - 88 ABT-PGM-IS-UNIXDRV VALUE 'UNXD'. - 88 ABT-PGM-IS-STORED VALUE 'STPR'. - 10 ABT-PGM-GEN-REL-LEVEL PIC X(4) VALUE '4.1 '. - 10 ABT-PGM-NAME PIC X(8) VALUE 'TC4E3H0 '. - 10 ABT-PGM-TRAN-CODE PIC X(8) VALUE '4E3H'. - 10 ABT-PGM-MAP-NAME PIC X(8) VALUE 'MC4E3H0'. - 10 ABT-NEXT-PROGRAM-NAME. - 15 ABT-NEXT-PROGRAM-NAME-HDR PIC X(2) VALUE 'TC'. - 15 ABT-NEXT-PROGRAM-NAME-ID PIC X(5) VALUE '00ABD'. - 15 ABT-NEXT-PROGRAM-NAME-TRL PIC X(1) VALUE ' '. - 10 ABT-TPO-ERRMSG1-LTH PIC 9(4) COMP VALUE 79. - 10 ABT-ERROR-MESSAGE PIC X(80) VALUE SPACES. - 10 ABT-SPA-TS-QUEUE-ID PIC X(8) VALUE LOW-VALUES. - SKIP1 - 05 ABT-PGM-ERROR-DATA. - 10 ABT-ERROR-SECTION. - 15 ABT-ERROR-SECTION-NAME PIC X(5) VALUE SPACES. - 15 ABT-ERROR-SECTION-SUB PIC X(3) VALUE SPACES. - 10 ABT-PROGRAM-FUNCTION REDEFINES - ABT-ERROR-SECTION PIC X(8). - * ABT PROGRAM FUNCTION VALUES ARE DOCUMENTED IN THE - * DYNAMICALLY INVOKED ABT ROUTINE. - 10 ABT-ERROR-ACTIVITY PIC X(4). - 88 ABT-ERROR-IS-TP-IMS VALUE 'IMS '. - 88 ABT-ERROR-IS-TP-CICS VALUE 'CICS'. - 88 ABT-ERROR-IS-TP-TSO VALUE 'TSO '. - 88 ABT-ERROR-IS-SEQ VALUE 'SEQ '. - 88 ABT-ERROR-IS-VSAM VALUE 'VSAM'. - 88 ABT-ERROR-IS-DLI VALUE 'DLI '. - 88 ABT-ERROR-IS-EXECDLI VALUE 'XDLI'. - 88 ABT-ERROR-IS-DB2 VALUE 'DB2 '. - 88 ABT-ERROR-IS-CQUEUE VALUE 'CQUE'. - 88 ABT-ERROR-IS-CJOURNAL VALUE 'CJRL'. - 10 ABT-ERROR-ABEND-CODE PIC S9(4) COMP. - 10 FILLER PIC X(16) VALUE LOW-VALUES. - SKIP1 - 05 ABT-DATA-ACCESS-INFO. - 10 ABT-DA-FUNCTION PIC X(8) VALUE SPACES. - 10 ABT-DA-FUNCTION-DLI REDEFINES ABT-DA-FUNCTION. - 15 ABT-DA-FUNC-DLI PIC X(4). - 15 ABT-DA-FUNC-PCB-TYPE PIC X(4). - 10 ABT-U100-SUB PIC X(3) VALUE SPACES. - 10 FILLER PIC X(1) VALUE LOW-VALUE. - 10 ABT-DA-ACCESS-NAME PIC X(8). - 10 ABT-DA-GENERIC-STATUS PIC X(3) VALUE SPACES. - 88 ABT-DA-OK VALUE 'OK '. - 88 ABT-DA-DUPLICATE VALUE 'DUP'. - 88 ABT-DA-NOTAVAIL VALUE 'NAV'. - 88 ABT-DA-NOTFOUND VALUE 'NFD'. - 88 ABT-DA-ENDFILE VALUE 'EOF' 'NFD'. - 88 ABT-DA-LOGICERR VALUE 'LOG'. - 88 ABT-DA-SECURITY VALUE 'SEC'. - 88 ABT-DA-DBMERROR VALUE 'DBM'. - 88 ABT-DA-ANYERROR VALUE 'DUP' 'NAV' - 'NFD' 'EOF' - 'LOG' 'SEC' - 'DBM'. - 10 FILLER PIC X(1) VALUE LOW-VALUE. - 10 ABT-DA-SPECIFIC-STATUS PIC X(6) VALUE LOW-VALUES. - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-DLI-STATUS PIC X(2). - 15 FILLER PIC X(4). - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-DB2-STATUS PIC S9(9) COMP-4. - 15 FILLER PIC X(2). - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-VSAM-CICS-STATUS PIC X(1). - 15 FILLER PIC X(5). - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-BATCH-STATUS PIC X(2). - 15 FILLER PIC X(4). - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-CQUEUE-CICS-STATUS PIC X(1). - 15 FILLER PIC X(5). - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-CJOURNAL-CICS-STATUS PIC X(1). - 15 FILLER PIC X(5). - 10 FILLER PIC X(16) VALUE LOW-VALUES. - EJECT - ******************************************************** - * T P I N P U T S C R E E N T A B L E * - ******************************************************** - 01 TP-INPUT-TABLE. - 05 FILLER PIC X(4) VALUE SPACES. - 05 TPI-DAPECJ-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-DAPECM-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-DAPECA-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-DAECNJ-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-DAECNM-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-DAECNA-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-CDBQE1-LTH PIC 9(4) COMP VALUE 5. - 05 TPI-CDGUI1-LTH PIC 9(4) COMP VALUE 5. - 05 TPI-NOCPT1-LTH PIC 9(4) COMP VALUE 11. - 05 TPI-NOCHQ-LTH PIC 9(4) COMP VALUE 7. - 05 TPI-CDPTN-LTH PIC 9(4) COMP VALUE 5. - 05 TPI-REF1L15-LTH PIC 9(4) COMP VALUE 13. - 05 TPI-REF2L15-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-REF4L16-LTH PIC 9(4) COMP VALUE 6. - 05 TPI-REF1L16-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-REF1L17-LTH PIC 9(4) COMP VALUE 32. - 05 TPI-RF1L18J-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF1L18M-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF1L18A-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-RF2L18J-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF2L18M-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF2L18A-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-RF1L19J-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF1L19M-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF1L19A-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-REF2L19-LTH PIC 9(4) COMP VALUE 3. - 05 TPI-REF3L19-LTH PIC 9(4) COMP VALUE 1. - 05 TPI-REF5L19-LTH PIC 9(4) COMP VALUE 1. - 05 TPI-ERRMSG1-LTH PIC 9(4) COMP VALUE 79. - EJECT - ******************************************************** - * T P O U T P U T S C R E E N T A B L E * - ******************************************************** - 01 TP-OUTPUT-TABLE. - 05 SCT-TABLE-HEADER. - 10 FILLER PIC XX VALUE LOW-VALUES. - * OUTPUT ONLY FIELDS SAVED IN THE SCREEN IMAGE (Y/N). - 10 SCT-REFRESH-OUTPUTS PIC X VALUE 'Y'. - * SOUND THE ALARM ON ERROR ATTRIBUTES (Y/N). - 10 SCT-ALARM-INDICATOR PIC X VALUE 'N'. - * FILL CHARACTER FOR INPUT FIELDS ON OUTPUT. - * (SPACE/LOW-VALUES/'_') - 10 SCT-INPUT-FILL-CHAR PIC X VALUE SPACES. - * BMS BUFFER ALIGNMENT (Y/N). - 10 SCT-BMS-ALIGNMENT PIC X VALUE 'N'. - * LOWER CASE INPUT SUPPORT (Y/N) - 10 SCT-LOWERCASE-INPUT PIC X VALUE 'N'. - 10 SCT-HELP-CHAR PIC X VALUE LOW-VALUES. - 10 FILLER PIC X(6) VALUE LOW-VALUES. - * VARIABLE FIELD ENTRY LENGTH. - 10 SCT-ENTRY-LENGTH PIC 9(4) COMP VALUE 4. - * NUMBER OF ATTRIBUTES FOR EACH FIELD. - 10 SCT-ATTR-COUNT PIC 9(4) COMP VALUE 1. - 05 SCT-NOMMAP. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-NOMMAP-LTH PIC 9(4) COMP VALUE 8. - 05 SCT-DATE. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-DATE-LTH PIC 9(4) COMP VALUE 10. - 05 SCT-NUMECR. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-NUMECR-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-HEURE. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-HEURE-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-CDAPL. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CDAPL-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-LIBAPL. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIBAPL-LTH PIC 9(4) COMP VALUE 27. - 05 SCT-DAPECJ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAPECJ-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-DAPECM. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAPECM-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-DAPECA. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAPECA-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-DAECNJ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAECNJ-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-DAECNM. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAECNM-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-DAECNA. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAECNA-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-MTOPE. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-MTOPE-LTH PIC 9(4) COMP VALUE 20. - 05 SCT-CDDVS. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CDDVS-LTH PIC 9(4) COMP VALUE 3. - 05 SCT-CDBQE. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CDBQE-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-CDGUI. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CDGUI-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-NOCPT. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-NOCPT-LTH PIC 9(4) COMP VALUE 11. - 05 SCT-CLERIB. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CLERIB-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-CDBQE1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-CDBQE1-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-CDGUI1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-CDGUI1-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-NOCPT1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-NOCPT1-LTH PIC 9(4) COMP VALUE 11. - 05 SCT-CLERIB1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CLERIB1-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-NBELT. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-NBELT-LTH PIC 9(4) COMP VALUE 9. - 05 SCT-MODRGL. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-MODRGL-LTH PIC 9(4) COMP VALUE 1. - 05 SCT-LIBRGL. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIBRGL-LTH PIC 9(4) COMP VALUE 32. - 05 SCT-NBPREST. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-NBPREST-LTH PIC 9(4) COMP VALUE 3. - 05 SCT-NOCHQ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-NOCHQ-LTH PIC 9(4) COMP VALUE 7. - 05 SCT-LIB1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB1-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-CDPTN. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-CDPTN-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-LIBPTN. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIBPTN-LTH PIC 9(4) COMP VALUE 20. - 05 SCT-IDCPTN. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-IDCPTN-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-LIB1B. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB1B-LTH PIC 9(4) COMP VALUE 19. - 05 SCT-ECGFIN. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-ECGFIN-LTH PIC 9(4) COMP VALUE 3. - 05 SCT-LIB2. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB2-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-REF1L15. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF1L15-LTH PIC 9(4) COMP VALUE 13. - 05 SCT-LIB3. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB3-LTH PIC 9(4) COMP VALUE 7. - 05 SCT-REF2L15. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF2L15-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-REF3L15. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-REF3L15-LTH PIC 9(4) COMP VALUE 32. - 05 SCT-LIB4A. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB4A-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-REF3L16. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-REF3L16-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-TIRET. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-TIRET-LTH PIC 9(4) COMP VALUE 1. - 05 SCT-REF4L16. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF4L16-LTH PIC 9(4) COMP VALUE 6. - 05 SCT-LIB4. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB4-LTH PIC 9(4) COMP VALUE 7. - 05 SCT-REF1L16. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF1L16-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-REF2L16. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-REF2L16-LTH PIC 9(4) COMP VALUE 32. - 05 SCT-LIB5. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB5-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-REF1L17. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF1L17-LTH PIC 9(4) COMP VALUE 32. - 05 SCT-LIB6. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB6-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-RF1L18J. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L18J-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF1L18M. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L18M-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF1L18A. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L18A-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-LIB6B. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB6B-LTH PIC 9(4) COMP VALUE 12. - 05 SCT-RF2L18J. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF2L18J-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF2L18M. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF2L18M-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF2L18A. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF2L18A-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-LIB7. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB7-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-RF1L19J. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L19J-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF1L19M. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L19M-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF1L19A. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L19A-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-REF2L19. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF2L19-LTH PIC 9(4) COMP VALUE 3. - 05 SCT-REF3L19. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF3L19-LTH PIC 9(4) COMP VALUE 1. - 05 SCT-REF4L19. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-REF4L19-LTH PIC 9(4) COMP VALUE 23. - 05 SCT-LIB8. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB8-LTH PIC 9(4) COMP VALUE 12. - 05 SCT-REF5L19. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF5L19-LTH PIC 9(4) COMP VALUE 1. - 05 SCT-CDREJ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CDREJ-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-LIBREJ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIBREJ-LTH PIC 9(4) COMP VALUE 32. - 05 SCT-DAREJ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-DAREJ-LTH PIC 9(4) COMP VALUE 10. - 05 SCT-ERRMSG1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-ERRMSG1-LTH PIC 9(4) COMP VALUE 79. - 05 SCT-LIG23. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIG23-LTH PIC 9(4) COMP VALUE 79. - 05 SCT-LIG24. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIG24-LTH PIC 9(4) COMP VALUE 79. - 05 SCT-END-ENTRY PIC 9(4) COMP VALUE 0. - EJECT - ******************************************************** - * T P B U F F E R * - ******************************************************** - 01 TP-BUFFER. - 02 FILLER PIC X(12). - 02 TP-OUTPUT-BUFFER-FIELDS. - 05 TPO-NOMMAP-ATTR PIC XXX. - 05 TPO-NOMMAP PIC X(8). - 05 TPO-DATE-ATTR PIC XXX. - 05 TPO-DATE PIC X(10). - 05 TPO-NUMECR-ATTR PIC XXX. - 05 TPO-NUMECR PIC X(4). - 05 TPO-HEURE-ATTR PIC XXX. - 05 TPO-HEURE PIC X(5). - 05 TPO-CDAPL-ATTR PIC XXX. - 05 TPO-CDAPL PIC X(2). - 05 TPO-LIBAPL-ATTR PIC XXX. - 05 TPO-LIBAPL PIC X(27). - 05 TPO-DAPECJ-ATTR PIC XXX. - 05 TPO-DAPECJ PIC X(2). - 05 TPO-DAPECM-ATTR PIC XXX. - 05 TPO-DAPECM PIC X(2). - 05 TPO-DAPECA-ATTR PIC XXX. - 05 TPO-DAPECA PIC X(4). - 05 TPO-DAECNJ-ATTR PIC XXX. - 05 TPO-DAECNJ PIC X(2). - 05 TPO-DAECNM-ATTR PIC XXX. - 05 TPO-DAECNM PIC X(2). - 05 TPO-DAECNA-ATTR PIC XXX. - 05 TPO-DAECNA PIC X(4). - 05 TPO-MTOPE-ATTR PIC XXX. - 05 TPO-MTOPE-CHAR PIC X(20). - 05 TPO-MTOPE REDEFINES TPO-MTOPE-CHAR - PIC -B---B---B---B--9V.99. - 05 TPO-CDDVS-ATTR PIC XXX. - 05 TPO-CDDVS PIC X(3). - 05 TPO-CDBQE-ATTR PIC XXX. - 05 TPO-CDBQE PIC X(5). - 05 TPO-CDGUI-ATTR PIC XXX. - 05 TPO-CDGUI PIC X(5). - 05 TPO-NOCPT-ATTR PIC XXX. - 05 TPO-NOCPT PIC X(11). - 05 TPO-CLERIB-ATTR PIC XXX. - 05 TPO-CLERIB PIC X(2). - 05 TPO-CDBQE1-ATTR PIC XXX. - 05 TPO-CDBQE1 PIC X(5). - 05 TPO-CDGUI1-ATTR PIC XXX. - 05 TPO-CDGUI1 PIC X(5). - 05 TPO-NOCPT1-ATTR PIC XXX. - 05 TPO-NOCPT1 PIC X(11). - 05 TPO-CLERIB1-ATTR PIC XXX. - 05 TPO-CLERIB1 PIC X(2). - 05 TPO-NBELT-ATTR PIC XXX. - 05 TPO-NBELT-CHAR PIC X(9). - 05 TPO-NBELT REDEFINES TPO-NBELT-CHAR - PIC ZZZZZZZZ9. - 05 TPO-MODRGL-ATTR PIC XXX. - 05 TPO-MODRGL PIC X. - 05 TPO-LIBRGL-ATTR PIC XXX. - 05 TPO-LIBRGL PIC X(32). - 05 TPO-NBPREST-ATTR PIC XXX. - 05 TPO-NBPREST-CHAR PIC X(3). - 05 TPO-NBPREST REDEFINES TPO-NBPREST-CHAR - PIC ZZ9. - 05 TPO-NOCHQ-ATTR PIC XXX. - 05 TPO-NOCHQ PIC X(7). - 05 TPO-LIB1-ATTR PIC XXX. - 05 TPO-LIB1 PIC X(17). - 05 TPO-CDPTN-ATTR PIC XXX. - 05 TPO-CDPTN PIC X(5). - 05 TPO-LIBPTN-ATTR PIC XXX. - 05 TPO-LIBPTN PIC X(20). - 05 TPO-IDCPTN-ATTR PIC XXX. - 05 TPO-IDCPTN PIC X(2). - 05 TPO-LIB1B-ATTR PIC XXX. - 05 TPO-LIB1B PIC X(19). - 05 TPO-ECGFIN-ATTR PIC XXX. - 05 TPO-ECGFIN PIC X(3). - 05 TPO-LIB2-ATTR PIC XXX. - 05 TPO-LIB2 PIC X(17). - 05 TPO-REF1L15-ATTR PIC XXX. - 05 TPO-REF1L15 PIC X(13). - 05 TPO-LIB3-ATTR PIC XXX. - 05 TPO-LIB3 PIC X(7). - 05 TPO-REF2L15-ATTR PIC XXX. - 05 TPO-REF2L15 PIC X(4). - 05 TPO-REF3L15-ATTR PIC XXX. - 05 TPO-REF3L15 PIC X(32). - 05 TPO-LIB4A-ATTR PIC XXX. - 05 TPO-LIB4A PIC X(17). - 05 TPO-REF3L16-ATTR PIC XXX. - 05 TPO-REF3L16 PIC X(4). - 05 TPO-TIRET-ATTR PIC XXX. - 05 TPO-TIRET PIC X. - 05 TPO-REF4L16-ATTR PIC XXX. - 05 TPO-REF4L16 PIC X(6). - 05 TPO-LIB4-ATTR PIC XXX. - 05 TPO-LIB4 PIC X(7). - 05 TPO-REF1L16-ATTR PIC XXX. - 05 TPO-REF1L16 PIC X(2). - 05 TPO-REF2L16-ATTR PIC XXX. - 05 TPO-REF2L16 PIC X(32). - 05 TPO-LIB5-ATTR PIC XXX. - 05 TPO-LIB5 PIC X(17). - 05 TPO-REF1L17-ATTR PIC XXX. - 05 TPO-REF1L17 PIC X(32). - 05 TPO-LIB6-ATTR PIC XXX. - 05 TPO-LIB6 PIC X(17). - 05 TPO-RF1L18J-ATTR PIC XXX. - 05 TPO-RF1L18J PIC X(2). - 05 TPO-RF1L18M-ATTR PIC XXX. - 05 TPO-RF1L18M PIC X(2). - 05 TPO-RF1L18A-ATTR PIC XXX. - 05 TPO-RF1L18A PIC X(4). - 05 TPO-LIB6B-ATTR PIC XXX. - 05 TPO-LIB6B PIC X(12). - 05 TPO-RF2L18J-ATTR PIC XXX. - 05 TPO-RF2L18J PIC X(2). - 05 TPO-RF2L18M-ATTR PIC XXX. - 05 TPO-RF2L18M PIC X(2). - 05 TPO-RF2L18A-ATTR PIC XXX. - 05 TPO-RF2L18A PIC X(4). - 05 TPO-LIB7-ATTR PIC XXX. - 05 TPO-LIB7 PIC X(17). - 05 TPO-RF1L19J-ATTR PIC XXX. - 05 TPO-RF1L19J PIC X(2). - 05 TPO-RF1L19M-ATTR PIC XXX. - 05 TPO-RF1L19M PIC X(2). - 05 TPO-RF1L19A-ATTR PIC XXX. - 05 TPO-RF1L19A PIC X(4). - 05 TPO-REF2L19-ATTR PIC XXX. - 05 TPO-REF2L19 PIC X(3). - 05 TPO-REF3L19-ATTR PIC XXX. - 05 TPO-REF3L19 PIC X. - 05 TPO-REF4L19-ATTR PIC XXX. - 05 TPO-REF4L19 PIC X(23). - 05 TPO-LIB8-ATTR PIC XXX. - 05 TPO-LIB8 PIC X(12). - 05 TPO-REF5L19-ATTR PIC XXX. - 05 TPO-REF5L19 PIC X. - 05 TPO-CDREJ-ATTR PIC XXX. - 05 TPO-CDREJ PIC X(2). - 05 TPO-LIBREJ-ATTR PIC XXX. - 05 TPO-LIBREJ PIC X(32). - 05 TPO-DAREJ-ATTR PIC XXX. - 05 TPO-DAREJ PIC X(10). - 05 TPO-ERRMSG1-ATTR PIC XXX. - 05 TPO-ERRMSG1 PIC X(79). - 05 TPO-LIG23-ATTR PIC XXX. - 05 TPO-LIG23 PIC X(79). - 05 TPO-LIG24-ATTR PIC XXX. - 05 TPO-LIG24 PIC X(79). - SKIP2 - ******************************************************** - * T P O I N P U T F I E L D S * - ******************************************************** - 02 TPO-INPUT-FIELDS REDEFINES TP-OUTPUT-BUFFER-FIELDS. - 05 FILLER PIC X(11). - 05 FILLER PIC X(13). - 05 FILLER PIC X(7). - 05 FILLER PIC X(8). - 05 FILLER PIC X(5). - 05 FILLER PIC X(30). - 05 FILLER PIC X(3). - 05 TPI-DAPECJ PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-DAPECM PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-DAPECA PIC X(4). - 05 FILLER PIC X(3). - 05 TPI-DAECNJ PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-DAECNM PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-DAECNA PIC X(4). - 05 FILLER PIC X(23). - 05 FILLER PIC X(6). - 05 FILLER PIC X(8). - 05 FILLER PIC X(8). - 05 FILLER PIC X(14). - 05 FILLER PIC X(5). - 05 FILLER PIC X(3). - 05 TPI-CDBQE1 PIC X(5). - 05 FILLER PIC X(3). - 05 TPI-CDGUI1 PIC X(5). - 05 FILLER PIC X(3). - 05 TPI-NOCPT1 PIC X(11). - 05 FILLER PIC X(5). - 05 FILLER PIC X(12). - 05 FILLER PIC X(4). - 05 FILLER PIC X(35). - 05 FILLER PIC X(6). - 05 FILLER PIC X(3). - 05 TPI-NOCHQ PIC X(7). - 05 FILLER PIC X(20). - 05 FILLER PIC X(3). - 05 TPI-CDPTN PIC X(5). - 05 FILLER PIC X(23). - 05 FILLER PIC X(5). - 05 FILLER PIC X(22). - 05 FILLER PIC X(6). - 05 FILLER PIC X(20). - 05 FILLER PIC X(3). - 05 TPI-REF1L15 PIC X(13). - 05 FILLER PIC X(10). - 05 FILLER PIC X(3). - 05 TPI-REF2L15 PIC X(4). - 05 FILLER PIC X(35). - 05 FILLER PIC X(20). - 05 FILLER PIC X(7). - 05 FILLER PIC X(4). - 05 FILLER PIC X(3). - 05 TPI-REF4L16 PIC X(6). - 05 FILLER PIC X(10). - 05 FILLER PIC X(3). - 05 TPI-REF1L16 PIC X(2). - 05 FILLER PIC X(35). - 05 FILLER PIC X(20). - 05 FILLER PIC X(3). - 05 TPI-REF1L17 PIC X(32). - 05 FILLER PIC X(20). - 05 FILLER PIC X(3). - 05 TPI-RF1L18J PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF1L18M PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF1L18A PIC X(4). - 05 FILLER PIC X(15). - 05 FILLER PIC X(3). - 05 TPI-RF2L18J PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF2L18M PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF2L18A PIC X(4). - 05 FILLER PIC X(20). - 05 FILLER PIC X(3). - 05 TPI-RF1L19J PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF1L19M PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF1L19A PIC X(4). - 05 FILLER PIC X(3). - 05 TPI-REF2L19 PIC X(3). - 05 FILLER PIC X(3). - 05 TPI-REF3L19 PIC X. - 05 FILLER PIC X(26). - 05 FILLER PIC X(15). - 05 FILLER PIC X(3). - 05 TPI-REF5L19 PIC X. - 05 FILLER PIC X(5). - 05 FILLER PIC X(35). - 05 FILLER PIC X(13). - 05 FILLER PIC X(3). - 05 TPI-ERRMSG1 PIC X(79). - 05 FILLER PIC X(82). - 05 FILLER PIC X(82). - 01 TP-OUTPUT-BUFFER REDEFINES TP-BUFFER PIC X(1063). - EJECT - ******************************************************** - * A P P L I C A T I O N W O R K A R E A * - ******************************************************** - 01 APP-WORK-AREA. - 05 FILLER PIC X(12) VALUE 'APP WORK'. - - *TELON-------------------------------------------------------------- - *DS: ECCX.PPO00.SRCTLIB ! COPY TWKAREA ! - *------------------------------------------------------------------- - ************************************************************** ! - * COPY STANDARD GENERE DANS TOUS LES PROGRAMMES * ! - ************************************************************** ! - 01 WORKAREA. ! - * MESSAGES ! - 05 ERROR-MESSAGE-CURSOR PIC X(6) ! - VALUE '000002'. ! - 05 ERROR-MESSAGE-HELPCMB PIC X(6) ! - VALUE '000134'. ! - 05 ERROR-MESSAGE-NOHIT PIC X(6) ! - VALUE '000135'. ! - 05 ERROR-MESSAGE-MULTHIT PIC X(6) ! - VALUE '000136'. ! - 05 ERROR-MESSAGE-HIGHLIGHT PIC X(6) ! - VALUE '000007'. ! - 05 ERROR-MESSAGE-SELECT-LINE-NO PIC X(6) ! - VALUE '000137'. ! - 05 ERROR-MESSAGE-HELP PIC X(79) ! - VALUE SPACES. ! - 05 ERROR-MESSAGE-HOLD PIC X(79) ! - VALUE SPACES. ! - 05 ERROR-MESSAGE-RESUME PIC X(6) ! - VALUE '000138'. ! - 05 ERROR-MESSAGE-HOLD-ISRT PIC X(6) ! - VALUE '000139'. ! - ** VARIABLES ! - 05 MORE-LITERAL PIC X(7) VALUE '.../...'. ! - 05 NO-MORE-LITERAL PIC X(7) VALUE '* FIN *'. ! - 05 ERROR-REQ-CHAR PIC X VALUE '*'. ! - 05 PRINT-ERROR-FLAG PIC X VALUE SPACES. ! - 05 HELP-CHAR PIC X VALUE '?'. ! - 05 HELP-FIELD-PGM-ID PIC X(4) VALUE 'CCVH'. ! - 05 HELP-SCREEN-PGM-ID PIC X(4) VALUE 'CCVH'. ! - 05 HELP-TABLE-LIMIT PIC 9(2) COMP VALUE 1. ! - 05 NO-MAP-FLAG PIC X VALUE 'N'. ! - *----------------------------------------------! END TWKAREA ---- - - SKIP3 - ******************************************************** - * P R O G R A M W O R K A R E A * - ******************************************************** - 01 PROGRAM-WORK-AREA. - 05 FILLER PIC X(12) VALUE 'PGM WORK'. - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY WKAREA ! - *------------------------------------------------------------------- - **************************************************************** ! - * * ! - * ZONE DE TRAVAIL SPECIFIQUE PROGRAMME * ! - * * ! - **************************************************************** ! - ! - 77 WS-CDPTN-N PIC 9(05) VALUE ZERO. ! - ! - *================================================================ ! - * ZONES ECRAN ! - *================================================================ ! - * * ! - 01 TOP-SAISIE PIC X. ! - 88 TOP-SAISIE-OK VALUE 'O'. ! - 88 TOP-SAISIE-KO VALUE 'K'. ! - ! - ! - 01 WS-CHANGEMENT PIC X(01) VALUE 'N'. ! - ! - 01 WS-TIRET PIC X(01). ! - ! - 01 WS-DAFIC. ! - 05 WS-DAFIC-SA. ! - 10 WS-DAFIC-SS PIC X(2). ! - 10 WS-DAFIC-AA PIC X(2). ! - 05 WS-DAFIC-MM PIC X(2). ! - 05 WS-DAFIC-JJ PIC X(2). ! - ! - 01 WS-DA8. ! - 05 WS-DA8-SA. ! - 10 WS-DA8-SS PIC X(2). ! - 10 WS-DA8-AA PIC X(2). ! - 05 WS-DA8-MM PIC X(2). ! - 05 WS-DA8-JJ PIC X(2). ! - ! - 01 WS-DA10. ! - 05 WS-DA10-JJ PIC X(2). ! - 05 FILLER PIC X VALUE ' '. ! - 05 WS-DA10-MM PIC X(2). ! - 05 FILLER PIC X VALUE ' '. ! - 05 WS-DA10-SA. ! - 10 WS-DA10-SS PIC X(2). ! - 10 WS-DA10-AA PIC X(2). ! - ! - * ZONES VARIABLES DE L'ECRAN TC4E3H0 ! - 01 WS-DA-PEC-DEM-SP PIC X(8). ! - 01 WS-DA-ECN-OPE PIC X(8). ! - 01 WS-DA-REJ-OPE PIC X(8). ! - ! - 01 WS-CLE-RIB PIC X(02). ! - 01 WS-CD-BQE-DST1 PIC X(05). ! - 01 WS-CD-GUI-DST1 PIC X(05). ! - 01 WS-NO-CPT-DST1 PIC X(11). ! - 01 WS-CLE-RIB1 PIC X(02). ! - 01 WS-LIB-RGL PIC X(32). ! - 01 WS-NO-CHQ PIC X(07). ! - ! - 01 WS-LIB1 PIC X(18). ! - 01 WS-LIB-PTN PIC X(20). ! - 01 WS-CD-PTN PIC X(05). ! - 01 WS-IDC-PTN PIC X(02). ! - 01 WS-LIB1B PIC X(19). ! - 01 WS-ECG-FIN PIC X(05). ! - ! - 01 WS-LIB2 PIC X(18). ! - 01 WS-REF1L15 PIC X(13). ! - 01 WS-LIB3 PIC X(10). ! - 01 WS-REF2L15 PIC X(04). ! - 01 WS-REF3L15 PIC X(28). ! - ! - 01 WS-LIB4 PIC X(06). ! - 01 WS-REF1L16 PIC X(02). ! - 01 WS-REF2L16 PIC X(32). ! - 01 WS-LIB4A PIC X(18). ! - 01 WS-REF3L16 PIC X(04). ! - 01 WS-REF4L16 PIC X(06). ! - 01 WS-LIB5 PIC X(18). ! - 01 WS-REF1L17 PIC X(32). ! - ! - 01 WS-LIB6 PIC X(18). ! - 01 WS-REF1L18 PIC X(10). ! - 01 WS-LIB6B PIC X(12). ! - 01 WS-REF2L18. ! - 05 WS-REF2L18-JJ PIC X(02). ! - 05 FILLER PIC X(01) VALUE SPACE. ! - 05 WS-REF2L18-MM PIC X(02). ! - 05 FILLER PIC X(01) VALUE SPACE. ! - 05 WS-REF2L18-SA PIC X(04). ! - ! - 01 WS-LIB7 PIC X(18). ! - 01 WS-REF1L19. ! - 05 WS-REF1L19-JJ PIC X(02). ! - 05 FILLER PIC X(01) VALUE SPACE. ! - 05 WS-REF1L19-MM PIC X(02). ! - 05 FILLER PIC X(01) VALUE SPACE. ! - 05 WS-REF1L19-SA PIC X(04). ! - 01 WS-REF2L19 PIC X(03). ! - 01 WS-REF3L19 PIC X(01). ! - 01 WS-REF4L19 PIC X(25). ! - 01 WS-LIB8 PIC X(12). ! - 01 WS-REF5L19 PIC X(01). ! - 01 WS-LIB-REJ-OPE PIC X(32). ! - ! - * CALCUL CLE RIB ! - 01 WS-CPT. ! - 05 WS-CPT-BQE PIC X(05). ! - 05 WS-CPT-GUI PIC X(05). ! - 05 WS-CPT-CPT PIC X(11). ! - 05 WS-CPT-RIB-CLE PIC X(02). ! - ! - ! - *================================================================ ! - * COPY POUR APPEL SPITAB ! - *================================================================ ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YSPIPARA 2! - *------------------------------------------------------------------- - 01 SPI-LONG PIC S9(4) COMP. 2! - 01 SPI-PARMCICS. 2! - 10 SPI-PARAMETRE. 2! - 15 SPI-FONCTION PIC X(2). 2! - 15 SPI-NBPOST PIC S9(8) COMP. 2! - 15 FILLER REDEFINES SPI-NBPOST. 2! - 20 SPI-NBPOST1 PIC X(2). 2! - 20 SPI-NBPOST2 PIC S9(4) COMP. 2! - 15 SPI-RETCOD PIC X(2). 2! - 15 SPI-CODTAB PIC X(8). 2! - 15 SPI-EL-DEMANDES PIC X(60). 2! - 15 SPI-EL-RECHERCHE PIC X(60). 2! - 15 SPI-OPERATEUR PIC X(2). 2! - 15 SPI-REF-POSTE PIC X(50). 2! - 15 SPI-REF-FIN PIC X(50). 2! - 10 SPI-PCB. 2! - 15 SPI-FICHIER PIC X(8). 2! - 15 FILLER PIC X(2). 2! - 15 SPI-STAT PIC X(2). 2! - 15 FILLER PIC X(2). 2! - 15 FILLER PIC X(4). 2! - 10 SPI-IOAREA PIC X(2000). 2! - *----------------------------------------------! END YSPIPARA ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YSP4E013 2! - *------------------------------------------------------------------- -000010* TABLE CROS LIEE PLATEFORME 2! -000020 01 YSP4E013-YSP4E013. 2! -000030* TABLE CROS LIEE PLATEFORME 2! -000040 20 YSP4E013-PAGE-01. 2! -000050* CODE APPL ICATION O PERATIO 2! -000060 25 YSP4E013-CD-APLI-OPE PIC X(02). 2! -000070* CODE TYPE CRO 2! -000080 25 YSP4E013-CD-TY-CRO PIC X(03). 2! -000090* LIBELLE L ONG DU CR O 2! -000100 25 YSP4E013-LIB-TY-VER PIC X(32). 2! -000110* LIBELLE C OURT DU C RO 2! -000120 25 YSP4E013-LIB-INT-CT PIC X(10). 2! -000130* LIBELLE C OMMENTAIR E 2! -000140 25 YSP4E013-LIB-CMT PIC X(32). 2! - * DESCRIPTION STRUCTURE SPITAB -> FORMAT LIGHT *******************2! - *PILOTE MOTPASSE 2! - * CYSP4E013TABLE CROS LIEE PLATEFORME VALR 2! - *ACODE APPLICATION OPERATION CD-APLI-OPE 02X * 2! - *BCODE TYPECRO CD-TY-CRO 03X * 2! - *CLIBELLE LONG DU CRO LIB-TY-VER 32X 2! - *DLIBELLE COURT DU CRO LIB-INT-CT 10X 2! - *ELIBELLE COMMENTAIRE LIB-CMT 32X 2! - *----------------------------------------------! END YSP4E013 ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YSP4E053 2! - *------------------------------------------------------------------- -000010* TABLE MODE REGLEMENT 2! -000020 01 YSP4E053-YSP4E053. 2! -000030* TABLE MODE REGLEMENT 2! -000040 20 YSP4E053-PAGE-01. 2! -000050* CODE MODE REGLEMEN T OPERA 2! -000060 25 YSP4E053-CD-MODE-RGL-OPE PIC X(01). 2! -000070* LIBELLE M ODE REGLE MENT 2! -000080 25 YSP4E053-LIB-MODE-RGL PIC X(32). 2! - * DESCRIPTION STRUCTURE SPITAB -> FORMAT LIGHT *******************2! - *PILOTE MOTPASSE 2! - * CYSP4E053TABLE MODE REGLEMENT R 2! - *ACODE MODE REGLEMENT OPERATICD-MODE-RGL-OPE01X * 2! - *BLIBELLE MODE REGLEMENT LIB-MODE-RGL 32X 2! - *----------------------------------------------! END YSP4E053 ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YSP4E017 2! - *------------------------------------------------------------------- -000010* TABLE CODE REJET 2! -000020 01 YSP4E017-YSP4E017. 2! -000030* TABLE CODE REJET 2! -000040 20 YSP4E017-PAGE-01. 2! -000050* CODE REJE T OPERATI ON 2! -000060 25 YSP4E017-CD-REJ-OPE PIC X(02). 2! -000070* LIBELLE R EJET OPER ATION 2! -000080 25 YSP4E017-LIB-REJ-OPE PIC X(32). 2! - * DESCRIPTION STRUCTURE SPITAB -> FORMAT LIGHT *******************2! - *PILOTE MOTPASSE 2! - * CYSP4E017TABLE CODE REJET R 2! - *ACODE REJET OPERATION CD-REJ-OPE 02X * 2! - *BLIBELLE REJET OPERATION LIB-REJ-OPE 32X 2! - *----------------------------------------------! END YSP4E017 ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YZL00271 2! - *------------------------------------------------------------------- - ******************************************************************2! - * COMPTABILITE GENERALE *2! - * MODULE P00271 - CALCUL DE CLES *2! - * *2! - * COMMAREA 80 CAR. *2! - * *2! - ******************************************************************2! - * 2! - 01 ZL00271-LG-COMM PIC S9(4) COMP VALUE +80. 2! - * 2! - 01 ZL00271-ENR. 2! - *------ NUMERO PROGRAMME 2! - 03 ZL00271-NO-PGM PIC X(08). 2! - *------ CODE CHOIX 2! - * 1= CLE COMPTE 2! - * 2= CLE RIB 2! - 03 ZL00271-CD-CHX PIC X(01). 2! - * 2! - *------ NUMERO RIB 2! - 03 ZL00271-RIB-21-CAR. 2! - 05 ZL00271-RIB-CD-BNQ PIC X(05). 2! - 05 ZL00271-RIB-CD-GUI PIC X(05). 2! - 05 ZL00271-RIB-CPT-11-CAR PIC X(11). 2! - * 2! - *------ RACINE COMPTE 2! - 03 FILLER REDEFINES ZL00271-RIB-21-CAR. 2! - 05 ZL00271-RAC-7-CAR PIC X(07). 2! - 05 FILLER PIC X(14). 2! - * 2! - 03 FILLER PIC X(30). 2! - * 2! - *------ ZONE RETOUR 2! - 03 ZL00271-RETOUR. 2! - 05 FILLER PIC X(16). 2! - * 2! - 05 ZL00271-RIB-CLE. 2! - 07 FILLER PIC X(01). 2! - 07 ZL00271-RAC-CLE PIC X(01). 2! - * 2! - 05 ZL00271-CD-RET PIC X(02). 2! - *----------------------------------------------! END YZL00271 ---- - - *================================================================ ! - * MODULES ! - *================================================================ ! - * * ! - * 01 F PIC X(12) VALUE '**COMMAREA**'. ! - * 01 WS-LNG-COM PIC S9(04) VALUE +8000 COMP. ! - * 01 Y00CIA. ! - * 05 FILLER PIC X(16). ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y00CIA 2! - *------------------------------------------------------------------- -000010*CPG* 00 Y00CIA COMMAREA INTRA APPLICATIONS 2! -000020* LG=04000, STRUCTURE MAJ LE 04/07/94 PAR REPRISE 2! -000030* GENERE LE 28/10/08 A 16H21, PFX : Y00CIA- MEMBRE : Y00CIA 2! -000040 03 Y00CIA-Y00CIA. 2! -000050* COMMAREA INTRA APPLICATIONS 1 31/08/92 2! -000060 05 Y00CIA-ETN-TEC. 2! -000070* ENTETE TECHNIQUE 1 - - 2! -000080 07 Y00CIA-CD-RET-PGM PIC 9(2). 2! -000090* CODE RETOUR PROGRAMME 1 16/02/06 2! -000100 07 Y00CIA-CD-ABEND PIC X(4). 2! -000110* CODE ABEND 3 28/12/94 2! -000120 07 Y00CIA-CD-TY-FIC PIC X(1). 2! -000130* CODE TYPE FICHIER 7 25/08/97 2! -000140 07 Y00CIA-CD-PVN-APP PIC X(1). 2! -010010* CODE PROVENANCE APPEL 8 28/12/94 2! -010020 07 Y00CIA-NO-PGM-CICS-APP PIC X(8). 2! -010030* NUMERO PROGRAMME CICS APPELE 9 - - 2! -010040 07 Y00CIA-NO-PGM-CICS-AT PIC X(8). 2! -010050* NUMERO PROGRAMME CICS APPELANT 17 21/01/04 2! -010060 07 Y00CIA-NO-SAL PIC X(8). 2! -010070* NUMERO SALARIE 25 16/11/04 2! -010080 07 Y00CIA-CD-APLI PIC X(2). 2! -010090* CODE APPLICATION 33 28/12/94 2! -010100 07 Y00CIA-NIV-DLG PIC X(3). 2! -010110* NIVEAU DELEGATION 35 10/11/05 2! -010120 07 Y00CIA-NOM-TS-DBT PIC X(7). 2! -010130* NOM TS ECRAN 38 05/04/01 2! -010140 07 Y00CIA-CD-MES-ERR PIC X(6). 2! -020010* CODE MESSAGE ERREUR 45 28/12/94 2! -020020 07 Y00CIA-LIB-CPL-MES-ERR PIC X(32). 2! -020030* LIBELLE COMPLEMENT MESSAGE ERREUR 51 18/07/03 2! -020040 07 Y00CIA-CD-TY-MES-ERR PIC X(1). 2! -020050* CODE TYPE MESSAGE ERREUR 83 28/12/94 2! -020060 88 Y00CIA-MES-BLOQUANT VALUE 'B'. 2! -020070* DONNEE NIVEAU 88 MESSAGE BLOQUANT 84 - - 2! -020080 88 Y00CIA-MES-INFORMATIF VALUE 'I'. 2! -020090* DONNEE NIVEAU 88 MESSAGE INFORMATIF 84 - - 2! -020100 88 Y00CIA-MES-RETOUR VALUE 'P'. 2! -020110* DONNEE NIVEAU 88 MESSAGE RETOUR 84 - - 2! -020120 07 Y00CIA-CD-SI PIC X(3). 2! -020130* CODE S.I. 84 - - 2! -020140 07 Y00CIA-NO-PGM-CICS-RTG PIC X(8). 2! -030010* NUMERO PROGRAMME CICS ROUTAGE 87 - - 2! -030020 07 Y00CIA-CD-EFS PIC X(2). 2! -030030* CODE ENTITE-FS 95 30/06/00 2! -030040 07 Y00CIA-CD-FCT-DEM-RTG PIC X(3). 2! -030050* CODE FONCTION DEMANDE ROUTAGE 97 05/04/01 2! -030060 06 FILLER PIC X(101). 2! -030070* FIN SS-STR ETN-TEC 100 2! -030080 05 Y00CIA-ETN-APL. 2! -030090* ENTETE COMMAREA APPLICATIVE 201 06/10/92 2! -030100 07 Y00CIA-FCT-DEM PIC X(3). 2! -030110* FONCTION DEMANDE 201 26/09/05 2! -030120 07 Y00CIA-NB-OCC-DEM PIC 9(4) COMP. 2! -030130* NOMBRE OCCURRENCE DEMANDE 204 28/12/94 2! -030140 07 Y00CIA-NB-OCC-RES PIC 9(4) COMP. 2! -040010* NOMBRE OCCURRENCE RESULTAT 206 06/08/96 2! -040020 07 Y00CIA-NB-OCC-TOT PIC 9(7) COMP. 2! -040030* NOMBRE OCCURRENCE TOTALE 208 20/02/06 2! -040040 07 Y00CIA-NO-ITEM-TS PIC 9(4) COMP. 2! -040050* NUMERO ITEM TS 212 13/12/04 2! -040060 07 Y00CIA-NB-PAG-TS PIC 9(3) COMP. 2! -040070* NOMBRE DE PAGES EN TS 214 05/08/04 2! -040080 07 Y00CIA-WK-LG-TS-ECR PIC S9(4) COMP. 2! -040090* LONGUEUR TS ECRAN 216 17/07/03 2! -040100 07 Y00CIA-WK-LG-OCC-APLI PIC 9(4) COMP. 2! -040110* WORKING LONGUEUR OCCURRENCE APPLICATIV 218 - - 2! -040120 07 Y00CIA-WK-LG-ETN-RPN PIC 9(4) COMP. 2! -040130* WORKING LONGUEUR ENTETE REPONSE 220 28/12/94 2! -040140 07 Y00CIA-NB-OCC-PG-ECR PIC 9(4) COMP. 2! -050010* NOMBRE OCCURRENCE PAGE ECRAN 222 16/07/03 2! -050020 07 Y00CIA-IDC-OCC-SPL PIC X(1). 2! -050030* INDICATEUR OCCURRENCE SUPPLEMENTAIRE 224 22/10/07 2! -050040 07 Y00CIA-CD-RET-APLI PIC 9(2). 2! -050050* CODE RETOUR APPLICATIF 225 16/02/06 2! -050060 07 Y00CIA-WK-LG-ZON-ENT PIC S9(4) COMP. 2! -050070* WORKING LONGUEUR ZONE ENTREE 227 28/12/94 2! -050080 07 Y00CIA-WK-LG-ZON-SOR PIC S9(4) COMP. 2! -050090* WORKING LONGUEUR ZONE SORTIE 229 17/07/03 2! -050100 07 Y00CIA-NOM-TS-Q PIC X(16). 2! -050110* NOM TS QUEUE 231 28/10/08 2! -050120 06 FILLER PIC X(54). 2! -050130* FIN SS-STR ETN-APL 247 2! -050140 05 Y00CIA-ZON-APLI. 2! -060010* ZONE APPLICATION 301 06/10/92 2! -060020 07 FILLER PIC X(3700). 2! -060030* 301 2! - *----------------------------------------------! END Y00CIA ---- - - * 05 WS-YN4ESPS-APLI REDEFINES Y00CIA-ZON-APLI. ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YN4ESPS 2! - *------------------------------------------------------------------- -000010*GAR* OS YN4ESPS COPY ACCESSEUR F4EOPSPS 2! -000020* LG=01000, ESD MAJ LE 30/12/98, ELS MAJ LE 27/04/99 PAR CS0135 2! -000030* GENERE LE 27/04/99 A 16H42, PFX : YN4ESP- MEMBRE : YN4ESPS 2! -000040 07 YN4ESP-ZONE-ALLER. 2! -000050* ZONE ALLER ACCESSEUR 1 16/08/96 2! -000060 10 YN4ESP-IDC-PEC-OPE-SP PIC X(1). 2! -000070* INDICATEUR PRISE OPERATION SX:-SP 1 31/08/98 2! -000080 10 YN4ESP-DA-ENT-OPE-SP PIC X(8). 2! -000090* DATE ENTREE OPERATION SX:-SP 2 - - 2! -000100 10 YN4ESP-NO-SEQ-SP PIC X(6). 2! -000110* NUMERO SEQUENCE SX:-SP 10 08/04/98 2! -000120 10 YN4ESP-DA-PEC-DEM-SP PIC X(8). 2! -000130* DATE PRISE DEMANDEE SX:-SP 16 31/08/98 2! -000140 10 YN4ESP-CD-PTN-SP PIC X(5). 2! -010010* CODE PARTENAIRE SX:-SP 24 28/12/94 2! -010020 10 YN4ESP-NO-SAL-SP PIC X(8). 2! -010030* NUMERO SALARIE SX:-SP 29 - - 2! -010040 10 YN4ESP-CD-ORI-REJ-SPS PIC X(3). 2! -010050* CODE ORIGINE REJET SUSPENS 37 07/09/98 2! -010060 10 YN4ESP-CD-REJ-OPE PIC X(2). 2! -010070* CODE REJET OPERATION 40 31/08/98 2! -010080 10 YN4ESP-DA-REJ-OPE PIC X(8). 2! -010090* DATE REJET OPERATION 42 - - 2! -010100 10 YN4ESP-CD-ENT-SRT-OP PIC X(1). 2! -010110* CODE ENTREE SORTIE SX:-OP 50 - - 2! -010120 10 YN4ESP-DA-ECN-OPE PIC X(8). 2! -010130* DATE ECHEANCE OPERATION 51 - - 2! -010140 10 YN4ESP-DA-THR-GEN-OPE PIC X(8). 2! -020010* DATE THEORIQUE GENERATION OPERATION 59 - - 2! -020020 10 YN4ESP-DA-EFF REDEFINES YN4ESP-DA-THR-GEN-OPE. 2! -020030* DATE EFFET 59 28/12/94 2! -020040 12 YN4ESP-DA-EFF-A PIC X(4). 2! -020050* DATE EFFET ANNEE 59 - - 2! -020060 12 YN4ESP-DA-EFF-M PIC X(2). 2! -020070* DATE EFFET MOIS 63 - - 2! -020080 12 YN4ESP-DA-EFF-J PIC X(2). 2! -020090* DATE EFFET JOUR 65 - - 2! -020100 10 YN4ESP-MT-OPE-SIT PIC 9(13)V9(2). 2! -020110* MONTANT OPERATION SIT 67 02/09/98 2! -020120 10 YN4ESP-CD-BQE-DST PIC 9(5). 2! -020130* CODE BANQUE DESTINATAIRE 82 28/12/94 2! -020140 10 YN4ESP-CD-GUI-DST PIC X(5). 2! -030010* CODE GUICHET DESTINATAIRE 87 07/03/96 2! -030020 10 YN4ESP-NO-CPT-DST PIC X(11). 2! -030030* NUMERO COMPTE DESTINATAIRE 92 28/12/94 2! -030040 10 YN4ESP-CD-APLI-OPE PIC X(2). 2! -030050* CODE APPLICATION OPERATION 103 31/08/98 2! -030060 10 YN4ESP-CD-DMN-OPE PIC X(2). 2! -030070* CODE DOMAINE OPERATION 105 - - 2! -030080 10 YN4ESP-CD-DVS-OPE PIC X(3). 2! -030090* CODE DEVISE OPERATION 107 - - 2! -030100 10 YN4ESP-CD-MODE-TT-OPE PIC X(3). 2! -030110* CODE MODE TRAITEMENT OPERATION 110 - - 2! -030120 10 YN4ESP-IDT-CPT-FNC PIC X(4). 2! -030130* IDENTIFIANT COMPTE FINANCIER 113 02/09/98 2! -030140 10 YN4ESP-CD-MODE-RGL-OPE PIC X(1). 2! -040010* CODE MODE REGLEMENT OPERATION 117 31/08/98 2! -040020 10 YN4ESP-CD-SNS-OPE-SIT PIC X(2). 2! -040030* CODE SENS OPERATION SIT 118 02/09/98 2! -040040 10 YN4ESP-DA-CRE-LOT-SIT PIC X(8). 2! -040050* DATE CREATION LOT SIT 120 31/08/98 2! -040060 10 YN4ESP-NO-PTN PIC 9(3) COMP-3. 2! -040070* NUMERO PARTENAIRE 128 28/12/94 2! -040080 10 YN4ESP-NO-PRD-PTN PIC 9(3) COMP-3. 2! -040090* NUMERO PRODUIT PARTENAIRE 130 - - 2! -040100 10 YN4ESP-NO-CLI-PTN PIC 9(7) COMP-3. 2! -040110* NUMERO CLIENT PARTENAIRE 132 - - 2! -040120 10 YN4ESP-NO-ORD-CTR PIC 9(2) COMP-3. 2! -040130* NUMERO ORDRE CONTRAT 136 - - 2! -040140 10 YN4ESP-CD-TY-CRO PIC X(3). 2! -050010* CODE TYPE CRO 138 - - 2! -050020 10 YN4ESP-LIB-NOM PIC X(32). 2! -050030* LIBELLE NOM 141 - - 2! -050040 10 YN4ESP-LIB-PRN PIC X(32). 2! -050050* LIBELLE PRENOM 173 - - 2! -050060 10 YN4ESP-DA-CRE-LOT-COM PIC X(8). 2! -050070* DATE CREATION LOT COMMISSION 205 31/08/98 2! -050080 10 YN4ESP-CD-TY-COM PIC X(1). 2! -050090* CODE TYPE COMMISSION 213 28/12/94 2! -050100 10 YN4ESP-NO-STR-DIS PIC X(6). 2! -050110* NUMERO STRUCTURE DISTRIBUTION 214 26/12/95 2! -050120 10 YN4ESP-CD-TY-DCR-DGI PIC X(4). 2! -050130* CODE TYPE DECLARATION DGI 220 02/09/98 2! -050140 10 YN4ESP-PER-DCR-DGI PIC X(6). 2! -060010* PERIODE DECLARATION DGI 224 - - 2! -060020 10 YN4ESP-IDC-PTN-CM PIC X(1). 2! -060030* INDICATEUR PARTENAIRE CREDIT-MUTUEL 230 28/12/94 2! -060040 10 YN4ESP-CD-TY-ECG-FNC PIC X(5). 2! -060050* CODE TYPE ECHANGE FINANCIER 231 17/04/96 2! -060060 10 YN4ESP-CD-PTN PIC X(5). 2! -060070* CODE PARTENAIRE 236 28/12/94 2! -060080 10 YN4ESP-CD-PRD PIC X(2). 2! -060090* CODE PRODUIT 241 - - 2! -060100 10 YN4ESP-IDC-PRD-UNT-CPT PIC X(1). 2! -060110* INDICATEUR PRODUIT UNITE COMPTE 243 - - 2! -060120 10 YN4ESP-NO-POL-9. 2! -060130* NUM�RO DE POLICE 9 CAR 244 04/11/98 2! -060140 12 YN4ESP-NO-POL PIC X(8). 2! -070010* NUMERO POLICE 244 28/12/94 2! -070020 12 YN4ESP-CLE-POL PIC X(1). 2! -070030* CLE POLICE 252 - - 2! -070040 10 YN4ESP-RAC-CLE. 2! -070050* GROUPE COMPTE 253 - - 2! -070060 12 YN4ESP-RACINE PIC X(7). 2! -070070* RACINE DU CLIENT 253 07/03/96 2! -070080 12 YN4ESP-CLE-RACINE PIC X(1). 2! -070090* Cl� de la racine du client 260 28/12/94 2! -070100 10 YN4ESP-NO-DOS-SIN-DCS PIC 9(13) COMP-3. 2! -070110* NUMERO DOSSIER SINISTRE DECES 261 09/05/96 2! -070120 10 YN4ESP-TXT-MTF-OPE PIC X(32). 2! -070130* TEXTE MOTIF OPERATION 268 02/09/98 2! -070140 10 YN4ESP-DA-SCR-CTR PIC X(8). 2! -080010* DATE SOUSCRIPTION CONTRAT 300 28/12/94 2! -080020 10 YN4ESP-DA-CRE-CRO PIC X(8). 2! -080030* DATE CREATION CRO 308 25/02/98 2! -080040 10 YN4ESP-CD-MTL PIC X(1). 2! -080050* CODE MINITEL 316 31/08/98 2! -080060 10 YN4ESP-NO-CHQ PIC X(7). 2! -080070* NUMERO CHEQUE 317 28/12/94 2! -080080 10 YN4ESP-CD-CLO-ECN PIC X(1). 2! -080090* CODE CLOTURE ECHEANCE 324 19/10/98 2! -080100 10 YN4ESP-LIB-NOM-CRP-COM PIC X(32). 2! -080110* LIBELLE NOM CORRESPONDANT COMMISSION 325 28/12/94 2! -080120 10 YN4ESP-LIB-DET-SIT 2! -080130* LIBELLE DETAIL SIT 357 31/08/98 2! -080140 PIC X(24). 2! -090010 07 YN4ESP-ZONE-RETOUR. 2! -090020* ZONE RETOUR ACCESSEUR 381 16/08/96 2! -090030 10 YN4ESP-DETAIL-SIT. 2! -090040* D�TAIL D'UN MVT � VALIDER 381 16/11/98 2! -090050 15 YN4ESP-CD-STA-OPE PIC X(1). 2! -090060* CODE STATUT OPERATION 381 31/08/98 2! -090070 15 YN4ESP-NO-SEQ-OP PIC X(6). 2! -090080* NUMERO SEQUENCE SX:-OP 382 08/04/98 2! -090090 15 YN4ESP-DA-ENT-OPE PIC X(8). 2! -090100* DATE ENTREE OPERATION 388 31/08/98 2! -090110 15 YN4ESP-DA-THR-GEN-OPE PIC X(8). 2! -090120* DATE THEORIQUE GENERATION OPERATION 396 - - 2! -090130 15 YN4ESP-DA-PEC-DEM-SP PIC X(8). 2! -090140* DATE PRISE DEMANDEE SX:-SP 404 - - 2! -100010 15 YN4ESP-CD-REJ-OPE PIC X(2). 2! -100020* CODE REJET OPERATION 412 - - 2! -100030 15 YN4ESP-MT-OPE-SIT PIC 9(13)V9(2). 2! -100040* MONTANT OPERATION SIT 414 02/09/98 2! -100050 15 YN4ESP-NB-ELT-OPE PIC S9(9) COMP-3. 2! -100060* NOMBRE ELEMENT OPERATION 429 06/11/98 2! -100070 15 YN4ESP-NB-PRT-OPE PIC S9(9) COMP-3. 2! -100080* NOMBRE PRESENTATION OPERATION 434 - - 2! -100090 15 YN4ESP-CD-BQE-DST PIC 9(5). 2! -100100* CODE BANQUE DESTINATAIRE 439 28/12/94 2! -100110 15 YN4ESP-CD-GUI-DST PIC X(5). 2! -100120* CODE GUICHET DESTINATAIRE 444 07/03/96 2! -100130 15 YN4ESP-NO-CPT-DST PIC X(11). 2! -100140* NUMERO COMPTE DESTINATAIRE 449 28/12/94 2! -110010 15 YN4ESP-CD-APLI-OPE PIC X(2). 2! -110020* CODE APPLICATION OPERATION 460 31/08/98 2! -110030 15 YN4ESP-NO-SAL-BP PIC X(8). 2! -110040* NUMERO SALARIE SX:-BP 462 28/12/94 2! -110050 15 YN4ESP-NO-SAL-AP PIC X(8). 2! -110060* NUMERO SALARIE SX:-AP 470 - - 2! -110070 15 YN4ESP-CD-DMN-OPE PIC X(2). 2! -110080* CODE DOMAINE OPERATION 478 31/08/98 2! -110090 15 YN4ESP-CD-DVS-OPE PIC X(3). 2! -110100* CODE DEVISE OPERATION 480 - - 2! -110110 15 YN4ESP-CD-MODE-TT-OPE PIC X(3). 2! -110120* CODE MODE TRAITEMENT OPERATION 483 - - 2! -110130 15 YN4ESP-IDT-CPT-FNC PIC X(4). 2! -110140* IDENTIFIANT COMPTE FINANCIER 486 02/09/98 2! -120010 15 YN4ESP-CD-SNS-OPE-SIT PIC X(2). 2! -120020* CODE SENS OPERATION SIT 490 - - 2! -120030 15 YN4ESP-CD-MODE-RGL-OPE PIC X(1). 2! -120040* CODE MODE REGLEMENT OPERATION 492 31/08/98 2! -120050 15 YN4ESP-DA-CRE-LOT-SIT PIC X(8). 2! -120060* DATE CREATION LOT SIT 493 - - 2! -120070 15 YN4ESP-DA-ECN-OPE PIC X(8). 2! -120080* DATE ECHEANCE OPERATION 501 - - 2! -120090 15 YN4ESP-LIB-LOT-SIT 2! -120100* LIBELLE LOT SIT 509 - - 2! -120110 PIC X(24). 2! -120120 15 YN4ESP-CD-TY-ELT-SIT PIC X(3). 2! -120130* CODE TYPE ELEMENT SIT 533 - - 2! -120140 15 YN4ESP-LIB-DET-SIT 2! -130010* LIBELLE DETAIL SIT 536 - - 2! -130020 PIC X(24). 2! -130030 15 YN4ESP-NO-PTN PIC 9(3) COMP-3. 2! -130040* NUMERO PARTENAIRE 560 28/12/94 2! -130050 15 YN4ESP-NO-PRD-PTN PIC 9(3) COMP-3. 2! -130060* NUMERO PRODUIT PARTENAIRE 562 - - 2! -130070 15 YN4ESP-NO-CLI-PTN PIC 9(7) COMP-3. 2! -130080* NUMERO CLIENT PARTENAIRE 564 - - 2! -130090 15 YN4ESP-NO-ORD-CTR PIC 9(2) COMP-3. 2! -130100* NUMERO ORDRE CONTRAT 568 - - 2! -130110 15 YN4ESP-DA-CRE-CRO PIC X(8). 2! -130120* DATE CREATION CRO 570 25/02/98 2! -130130 15 YN4ESP-CD-TY-CRO PIC X(3). 2! -130140* CODE TYPE CRO 578 28/12/94 2! -140010 15 YN4ESP-CD-MTL PIC X(1). 2! -140020* CODE MINITEL 581 31/08/98 2! -140030 15 YN4ESP-DA-SCR-CTR PIC X(8). 2! -140040* DATE SOUSCRIPTION CONTRAT 582 28/12/94 2! -140050 15 YN4ESP-LIB-NOM PIC X(32). 2! -140060* LIBELLE NOM 590 - - 2! -140070 15 YN4ESP-LIB-PRN PIC X(32). 2! -140080* LIBELLE PRENOM 622 - - 2! -140090 15 YN4ESP-NO-LOT-CHQ PIC 9(3) COMP-3. 2! -140100* NUMERO LOT CHEQUE 654 01/09/98 2! -140110 15 YN4ESP-NO-ORD-LOT-CHQ PIC 9(3) COMP-3. 2! -140120* NUMERO ORDRE LOT CHEQUE 656 - - 2! -140130 15 YN4ESP-DA-CRE-LOT-COM PIC X(8). 2! -140140* DATE CREATION LOT COMMISSION 658 31/08/98 2! -150010 15 YN4ESP-CD-TY-COM PIC X(1). 2! -150020* CODE TYPE COMMISSION 666 28/12/94 2! -150030 15 YN4ESP-NO-STR-DIS PIC X(6). 2! -150040* NUMERO STRUCTURE DISTRIBUTION 667 26/12/95 2! -150050 15 YN4ESP-LIB-NOM-CRP-COM PIC X(32). 2! -150060* LIBELLE NOM CORRESPONDANT COMMISSION 673 28/12/94 2! -150070 15 YN4ESP-CD-TY-DCR-DGI PIC X(4). 2! -150080* CODE TYPE DECLARATION DGI 705 02/09/98 2! -150090 15 YN4ESP-PER-DCR-DGI PIC X(6). 2! -150100* PERIODE DECLARATION DGI 709 - - 2! -150110 15 YN4ESP-CD-DCR-DGI PIC X(1). 2! -150120* CODE DECLARATION DGI 715 - - 2! -150130 15 YN4ESP-IDC-PTN-CM PIC X(1). 2! -150140* INDICATEUR PARTENAIRE CREDIT-MUTUEL 716 28/12/94 2! -160010 15 YN4ESP-CD-TY-ECG-FNC PIC X(5). 2! -160020* CODE TYPE ECHANGE FINANCIER 717 17/04/96 2! -160030 15 YN4ESP-CD-PTN PIC X(5). 2! -160040* CODE PARTENAIRE 722 28/12/94 2! -160050 15 YN4ESP-CD-PRD PIC X(2). 2! -160060* CODE PRODUIT 727 - - 2! -160070 15 YN4ESP-NO-POL-9. 2! -160080* NUM�RO DE POLICE 9 CAR 729 04/11/98 2! -160090 17 YN4ESP-NO-POL PIC X(8). 2! -160100* NUMERO POLICE 729 28/12/94 2! -160110 17 YN4ESP-CLE-POL PIC X(1). 2! -160120* CLE POLICE 737 - - 2! -160130 15 YN4ESP-RAC-CLE. 2! -160140* GROUPE COMPTE 738 - - 2! -170010 17 YN4ESP-RACINE PIC X(7). 2! -170020* RACINE DU CLIENT 738 07/03/96 2! -170030 17 YN4ESP-CLE-RACINE PIC X(1). 2! -170040* Cl� de la racine du client 745 28/12/94 2! -170050 15 YN4ESP-NO-DOS-SIN-DCS PIC 9(13) COMP-3. 2! -170060* NUMERO DOSSIER SINISTRE DECES 746 09/05/96 2! -170070 15 YN4ESP-NO-CHQ PIC X(7). 2! -170080* NUMERO CHEQUE 753 28/12/94 2! -170090 15 YN4ESP-CD-TY-CSN PIC X(1). 2! -170100* CODE TYPE CESSION 760 26/12/95 2! -170110 15 YN4ESP-TXT-MTF-OPE PIC X(32). 2! -170120* TEXTE MOTIF OPERATION 761 02/09/98 2! -170130 15 YN4ESP-CD-CLO-ECN PIC X(1). 2! -170140* CODE CLOTURE ECHEANCE 793 19/10/98 2! -180010 15 YN4ESP-DA-REJ-OPE PIC X(8). 2! -180020* DATE REJET OPERATION 794 31/08/98 2! -180030 15 YN4ESP-DA-EFF. 2! -180040* DATE EFFET 802 28/12/94 2! -180050 17 YN4ESP-DA-EFF-A PIC X(4). 2! -180060* DATE EFFET ANNEE 802 - - 2! -180070 17 YN4ESP-DA-EFF-M PIC X(2). 2! -180080* DATE EFFET MOIS 806 - - 2! -180090 17 YN4ESP-DA-EFF-J PIC X(2). 2! -180100* DATE EFFET JOUR 808 - - 2! -180110 15 YN4ESP-NO-NTL-EM PIC X(6). 2! -180120* NUMERO NATIONAL EMETTEUR 810 - - 2! -180130 07 FILLER PIC X(185). 2! -180140* FIN DE STRUCTURE PRINCIPALE 816 2! - *----------------------------------------------! END YN4ESPS ---- - - * ! - * 01 Y00WIA. ! - * 05 FILLER PIC X(16). ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y00WIA 2! - *------------------------------------------------------------------- -000010*GAR* OS Y00WIA DESC. WORKING COMMAREA GENERALISEE ACC. 2! -000020* LG=04000, ESD MAJ LE 04/07/94, ELS MAJ LE 04/07/94 PAR G6A6 2! -000030* GENERE LE 20/04/01 A 09H43, PFX : Y00WIA- MEMBRE : Y00WIA 2! -000040 03 Y00WIA-Y00CIA. 2! -000050* COMMAREA INTRA APPLICATIONS 1 31/08/92 2! -000060 05 Y00WIA-ETN-TEC. 2! -000070* ENTETE TECHNIQUE 1 - - 2! -000080 07 Y00WIA-CD-RET-PGM PIC 9(2). 2! -000090* CODE RETOUR PROGRAMME 1 28/12/94 2! -000100 07 Y00WIA-CD-ABEND PIC X(4). 2! -000110* CODE ABEND 3 - - 2! -000120 07 Y00WIA-CD-TY-FIC PIC X(1). 2! -000130* CODE TYPE FICHIER 7 25/08/97 2! -000140 07 Y00WIA-CD-PVN-APP PIC X(1). 2! -010010* CODE PROVENANCE APPEL 8 28/12/94 2! -010020 07 Y00WIA-NO-PGM-CICS-APP PIC X(8). 2! -010030* NUMERO PROGRAMME CICS APPELE 9 - - 2! -010040 07 Y00WIA-NO-PGM-CICS-AT PIC X(8). 2! -010050* NUMERO PROGRAMME CICS APPELANT 17 - - 2! -010060 07 Y00WIA-NO-SAL PIC X(8). 2! -010070* NUMERO SALARIE 25 - - 2! -010080 07 Y00WIA-CD-APLI PIC X(2). 2! -010090* CODE APPLICATION 33 - - 2! -010100 07 Y00WIA-NIV-DLG PIC X(3). 2! -010110* NIVEAU DELEGATION 35 16/05/00 2! -010120 07 Y00WIA-NOM-TS-DBT PIC X(7). 2! -010130* NOM TS ECRAN 38 05/04/01 2! -010140 07 Y00WIA-CD-MES-ERR PIC X(6). 2! -020010* CODE MESSAGE ERREUR 45 28/12/94 2! -020020 07 Y00WIA-LIB-CPL-MES-ERR PIC X(32). 2! -020030* LIBELLE COMPLEMENT MESSAGE ERREUR 51 - - 2! -020040 07 Y00WIA-CD-TY-MES-ERR PIC X(1). 2! -020050* CODE TYPE MESSAGE ERREUR 83 - - 2! -020060 88 Y00WIA-MES-BLOQUANT VALUE 'B'. 2! -020070* DONNEE NIVEAU 88 MESSAGE BLOQUANT 84 - - 2! -020080 88 Y00WIA-MES-INFORMATIF VALUE 'I'. 2! -020090* DONNEE NIVEAU 88 MESSAGE INFORMATIF 84 - - 2! -020100 88 Y00WIA-MES-RETOUR VALUE 'P'. 2! -020110* DONNEE NIVEAU 88 MESSAGE RETOUR 84 - - 2! -020120 07 Y00WIA-CD-SI PIC X(3). 2! -020130* CODE S.I. 84 - - 2! -020140 07 Y00WIA-NO-PGM-CICS-RTG PIC X(8). 2! -030010* NUMERO PROGRAMME CICS ROUTAGE 87 - - 2! -030020 07 Y00WIA-CD-EFS PIC X(2). 2! -030030* CODE ENTITE-FS 95 30/06/00 2! -030040 07 Y00WIA-CD-FCT-DEM-RTG PIC X(3). 2! -030050* CODE FONCTION DEMANDE ROUTAGE 97 05/04/01 2! -030060 06 FILLER PIC X(101). 2! -030070* FIN SS-STR ETN-TEC 100 2! -030080 05 Y00WIA-ETN-APL. 2! -030090* ENTETE COMMAREA APPLICATIVE 201 06/10/92 2! -030100 07 Y00WIA-FCT-DEM PIC X(3). 2! -030110* FONCTION DEMANDE 201 05/04/01 2! -030120 07 Y00WIA-NB-OCC-DEM PIC 9(4) COMP. 2! -030130* NOMBRE OCCURRENCE DEMANDE 204 28/12/94 2! -030140 07 Y00WIA-NB-OCC-RES PIC 9(4) COMP. 2! -040010* NOMBRE OCCURRENCE RESULTAT 206 06/08/96 2! -040020 07 Y00WIA-NB-OCC-TOT PIC 9(7) COMP. 2! -040030* NOMBRE OCCURRENCE TOTALE 208 27/02/96 2! -040040 07 Y00WIA-NO-ITEM-TS PIC 9(4) COMP. 2! -040050* NUMERO D'ITEM DE TS 212 28/12/94 2! -040060 07 Y00WIA-NB-PAG-TS PIC 9(3) COMP. 2! -040070* NOMBRE DE PAGES EN TS 214 - - 2! -040080 07 Y00WIA-WK-LG-TS-ECR PIC S9(4) COMP. 2! -040090* LONGUEUR TS ECRAN 216 - - 2! -040100 07 Y00WIA-WK-LG-OCC-APLI PIC 9(4) COMP. 2! -040110* WORKING LONGUEUR OCCURENCE APPLICATIVE 218 - - 2! -040120 07 Y00WIA-WK-LG-ETN-RPN PIC 9(4) COMP. 2! -040130* WORKING LONGUEUR ENTETE REPONSE 220 - - 2! -040140 07 Y00WIA-NB-OCC-PG-ECR PIC 9(4) COMP. 2! -050010* NOMBRE OCCURRENCE PAGE ECRAN 222 - - 2! -050020 07 Y00WIA-IDC-OCC-SPL PIC X(1). 2! -050030* INDICATEUR OCCURENCE SUPPLEMENTAIRE 224 - - 2! -050040 07 Y00WIA-CD-RET-APLI PIC 9(2). 2! -050050* CODE RETOUR APPLICATIF 225 - - 2! -050060 07 Y00WIA-WK-LG-ZON-ENT PIC S9(4) COMP. 2! -050070* WORKING LONGUEUR ZONE ENTREE 227 - - 2! -050080 07 Y00WIA-WK-LG-ZON-SOR PIC S9(4) COMP. 2! -050090* WORKING LONGUEUR ZONE SORTIE 229 - - 2! -050100 06 FILLER PIC X(70). 2! -050110* FIN SS-STR ETN-APL 231 2! -050120 05 Y00WIA-ZON-APLI. 2! -050130* ZONE APPLICATION 301 06/10/92 2! -050140 07 FILLER PIC X(3700). 2! -060010* 301 2! - *----------------------------------------------! END Y00WIA ---- - - * 05 WS-TN4D101-APLI REDEFINES Y00WIA-ZON-APLI. ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y4DN101 2! - *------------------------------------------------------------------- -000010*GAR* OS Y4DN101 TN4D101:ACCESSEUR TABLE V4D01010 2! -000020* LG=00600, ESD MAJ LE 13/02/03, ELS MAJ LE 13/02/03 PAR C13447 2! -000030* GENERE LE 13/02/03 A 16H01, PFX : Y4D101- MEMBRE : Y4DN101 2! -000040 10 Y4D101-Y4DN101. 2! -000050* TN4D101:ACCESSEUR TABLE V4D01010 1 21/09/94 2! -000060 20 Y4D101-TM-STP PIC X(26). 2! -000070* TIME STAMP 1 14/04/00 2! -000080 20 Y4D101-NO-PTN PIC 9(3) COMP-3. 2! -000090* NUMERO PARTENAIRE 27 28/12/94 2! -000100 20 Y4D101-CD-PTN PIC X(5). 2! -000110* CODE PARTENAIRE 29 - - 2! -000120 20 Y4D101-NOM-PTN PIC X(32). 2! -000130* NOM PARTENAIRE 34 11/05/00 2! -000140 20 Y4D101-LA-PTN PIC X(16). 2! -010010* LIBELLE-ABREGE PARTENAIRE 66 28/12/94 2! -010020 20 Y4D101-NO-TEL PIC X(11). 2! -010030* NUMERO TELEPHONE 82 - - 2! -010040 20 Y4D101-NO-NTL-EM PIC X(6). 2! -010050* NUMERO NATIONAL EMETTEUR 93 - - 2! -010060 20 Y4D101-IDC-PTN-CM PIC X(1). 2! -010070* INDICATEUR PARTENAIRE CREDIT-MUTUEL 99 - - 2! -010080 20 Y4D101-IDC-AUT-GTN-CLI PIC X(1). 2! -010090* INDICATEUR AUTORISATION GESTION CLIENT 100 - - 2! -010100 20 Y4D101-NB-QZ-DRG-AV PIC 9(2) COMP-3. 2! -010110* NOMBRE QUINZAINE DEROGATION SX:-AV 101 - - 2! -010120 20 Y4D101-NB-QZ-DRG-AP PIC 9(2) COMP-3. 2! -010130* NOMBRE QUINZAINE DEROGATION SX:-AP 103 - - 2! -010140 20 Y4D101-CD-NAF PIC X(4). 2! -020010* CODE N.A.F. 105 - - 2! -020020 20 Y4D101-NO-IDT-EPS-SIT PIC 9(9). 2! -020030* NUMERO IDENTIFICATION ENTREPRISE SIRET 109 - - 2! -020040 20 Y4D101-NO-IDT-CPL-SIT PIC 9(5). 2! -020050* NUMERO IDENTIFICATION COMPLEMENTAIRE S 118 - - 2! -020060 20 Y4D101-CD-MODE-RGL-COM PIC X(1). 2! -020070* CODE MODE REGLEMENT COMMISSION 123 - - 2! -020080 20 Y4D101-LIB-NOM-CRP-COM PIC X(32). 2! -020090* LIBELLE NOM CORRESPONDANT COMMISSION 124 - - 2! -020100 20 Y4D101-CD-PER-COM-PTN PIC X(1). 2! -020110* CODE PERIODICITE COMMISSION PARTENAIRE 156 - - 2! -020120 20 Y4D101-CD-INT PIC X(2). 2! -020130* CODE INTITULE 157 - - 2! -020140 20 Y4D101-LIB-NOM-CRP-SF PIC X(32). 2! -030010* LIBELLE NOM CORRESPONDANT SX:-SF 159 - - 2! -030020 20 Y4D101-IDC-PTN-ITN PIC X(1). 2! -030030* INDICATEUR PARTENAIRE INTERNET 191 31/08/98 2! -030040 20 Y4D101-LIB-MTN-LGL 2! -030050* LIBELLE MENTION LEGALE 192 02/10/98 2! -030060 PIC X(72). 2! -030070 20 Y4D101-CD-GRP-PTN PIC X(3). 2! -030080* CODE GROUPE PARTENAIRE 264 25/07/95 2! -030090 20 Y4D101-CD-TY-ECG-FNC PIC X(5). 2! -030100* CODE TYPE ECHANGE FINANCIER 267 17/04/96 2! -030110 20 Y4D101-IDC-PEC PIC X(1). 2! -030120* INDICATEUR PRISE-EN-CHARGE 272 28/12/94 2! -030130 20 Y4D101-LIB-VIL PIC X(32). 2! -030140* LIBELLE VILLE 273 - - 2! -040010 20 Y4D101-IDC-AFG-AGT PIC X(1). 2! -040020* INDICATEUR AFFICHAGE AGENT 305 14/09/95 2! -040030 20 Y4D101-NB-EDI-EX PIC S9(4) COMP-3. 2! -040040* NOMBRE EDITION SX:-EX 306 02/03/95 2! -040050 20 Y4D101-CD-TY-ARC PIC X(1). 2! -040060* CODE TYPE ARCHIVAGE 309 10/07/00 2! -040070 20 Y4D101-CD-SI-DI PIC X(3). 2! -040080* CODE S.I. SX:-DI 310 28/12/94 2! -040090 20 Y4D101-DA-DNN-PTN PIC X(8). 2! -040100* DATE DENONCIATION PARTENAIRE 313 01/08/00 2! -040110 20 Y4D101-IDC-VSU-DO PIC X(1). 2! -040120* INDICATEUR VISUALISATION SX:-DO 321 27/02/96 2! -040130 20 Y4D101-IDC-TT-ACT-AG PIC X(1). 2! -040140* INDICATEUR TRAITEMENT ACTION SX:-AG 322 24/07/95 2! -050010 20 Y4D101-IDC-AFG-PT PIC X(1). 2! -050020* INDICATEUR AFFICHAGE SX:-PT 323 30/04/99 2! -050030 10 FILLER PIC X(277). 2! -050040* FIN DE STRUCTURE PRINCIPALE 324 2! - *----------------------------------------------! END Y4DN101 ---- - - ! - * COPY ACCESSEUR LIBELLE STRUCTURE ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y4DSTRG 2! - *------------------------------------------------------------------- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2! - * !!!!!!! !!!!!!! 2! - * !!!!!!! NE PAS UTILISER COPYGEN !!!!!!! 2! - * !!!!!!! PROBLEME AVEC LE SUFFIXE : -XX !!!!!!! 2! - * !!!!!!! !!!!!!! 2! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2! -000010*GAR* OS Y4DSTRG RECUPERATION INFORMATIONS SUR STRUCTURES 2! -000020* LG=00402, ESD MAJ LE 10/07/01, ELS MAJ LE 10/07/01 PAR CS0586 2! -000030* GENERE LE 10/07/01 A 10H29, PFX : Y4DSTR- MEMBRE : Y4DSTRG 2! -000040 01 Y4DSTR-Y4DSTRG. 2! -000050* RECUPERATION INFORMATIONS SUR STRUCTUR 1 14/06/93 2! -000060 02 Y4DSTR-Y4DSTRG-XX. 2! -000070* RECUPERATION INFORMATIONS SUR S SX:-XX 1 - - 2! -000080 05 FILLER PIC X(400). 2! -000090* 1 2! -000100 02 Y4DSTR-Y4DSTRG-IN REDEFINES Y4DSTR-Y4DSTRG-XX. 2! -000110* RECUPERATION INFORMATIONS SUR S SX:-IN 1 - - 2! -000120 05 Y4DSTR-TY-FCT-IN PIC X(4). 2! -000130* TYPE FONCTION SX:-IN 1 12/09/00 2! -000140 05 Y4DSTR-CD-PTN-IN PIC X(5). 2! -010010* CODE PARTENAIRE SX:-IN 5 28/12/94 2! -010020 05 Y4DSTR-NO-PTN-IN PIC 9(3). 2! -010030* NUMERO PARTENAIRE SX:-IN 10 - - 2! -010040 05 Y4DSTR-NO-STR-DIS-IN PIC X(6). 2! -010050* NUMERO STRUCTURE DISTRIBUTION SX:-IN 13 26/12/95 2! -010060 05 Y4DSTR-CD-AUT-OPT-IN PIC X(1). 2! -010070* CODE AUTORISATION OPTION SX:-IN 19 28/12/94 2! -010080 05 FILLER PIC X(381). 2! -010090* 20 2! -010100 02 Y4DSTR-Y4DSTRG-OU REDEFINES Y4DSTR-Y4DSTRG-IN. 2! -010110* RECUPERATION INFORMATIONS SUR S SX:-OU 1 14/06/93 2! -010120 05 Y4DSTR-CD-RET PIC X(4). 2! -010130* CODE RETOUR 1 04/04/00 2! -010140 05 Y4DSTR-CD-RET-SQL PIC S9(4) COMP. 2! -020010* CODE RETOUR SQL 5 28/12/94 2! -020020 05 Y4DSTR-LIB-MES PIC X(79). 2! -020030* LIBELLE MESSAGE 7 - - 2! -020040 05 Y4DSTR-NO-PTN PIC 9(3). 2! -020050* NUMERO PARTENAIRE 86 - - 2! -020060 05 Y4DSTR-NO-STR-DIS PIC X(6). 2! -020070* NUMERO STRUCTURE DISTRIBUTION 89 26/12/95 2! -020080 05 Y4DSTR-CD-FCT 2! -020090* CODE FONCTIONNALITE 95 07/03/96 2! -020100 PIC X(01). 2! -020110 05 Y4DSTR-LIB-NOM-TY 2! -020120* LIBELLE NOM SX:-TY 96 28/12/94 2! -020130 PIC X(07). 2! -020140 05 Y4DSTR-LIB-STR PIC X(32). 2! -030010* LIBELLE STRUCTURE 103 - - 2! -030020 05 Y4DSTR-LIB-RUE-1 PIC X(32). 2! -030030* LIBELLE RUE SX:-1 135 - - 2! -030040 05 Y4DSTR-LIB-RUE-2 PIC X(32). 2! -030050* LIBELLE RUE SX:-2 167 - - 2! -030060 05 Y4DSTR-LIB-COMMUNE PIC X(32). 2! -030070* LIBELLE DE LA COMMUNE 199 10/07/01 2! -030080 05 Y4DSTR-CD-POST PIC X(5). 2! -030090* CODE POSTAL 231 28/12/94 2! -030100 05 Y4DSTR-LIB-BUR-DIST 2! -030110* Libell� du bureau distributeur 236 - - 2! -030120 PIC X(26). 2! -030130 05 Y4DSTR-NO-TEL PIC X(11). 2! -030140* NUMERO TELEPHONE 262 - - 2! -040010 05 Y4DSTR-CD-BQE PIC X(5). 2! -040020* CODE BANQUE 273 - - 2! -040030 05 Y4DSTR-CD-GUICHET PIC X(5). 2! -040040* Code guichet 278 - - 2! -040050 05 Y4DSTR-NO-IDT-EPS-SIT PIC 9(9). 2! -040060* NUMERO IDENTIFICATION ENTREPRISE SIRET 283 - - 2! -040070 05 Y4DSTR-NO-IDT-CPL-SIT PIC 9(5). 2! -040080* NUMERO IDENTIFICATION COMPLEMENTAIRE S 292 - - 2! -040090 05 Y4DSTR-CD-MODE-RGL-COM PIC X(1). 2! -040100* CODE MODE REGLEMENT COMMISSION 297 - - 2! -040110 05 Y4DSTR-LIB-NOM-CRP-COM PIC X(32). 2! -040120* LIBELLE NOM CORRESPONDANT COMMISSION 298 - - 2! -040130 05 Y4DSTR-GRP-CCM PIC X(3). 2! -040140* GROUPE CAISSE 330 10/07/01 2! -050010 05 Y4DSTR-NO-FAX PIC X(12). 2! -050020* NUMERO FAX 333 27/02/96 2! -050030 05 Y4DSTR-CD-RGT-CC PIC X(1). 2! -050040* CODE REGISTRE COMMERCE 345 28/12/94 2! -050050 05 Y4DSTR-CD-INSEE-DPT PIC X(2). 2! -050060* CODE INSEE DEPARTEMENT 346 - - 2! -050070 05 Y4DSTR-CD-GRF-RGT-CC PIC X(2). 2! -050080* CODE GREFFE REGISTRE COMMERCE 348 - - 2! -050090 05 Y4DSTR-LIB-VIL-GRF-R-C PIC X(32). 2! -050100* LIBELLE VILLE GREFFE REGISTRE COMMERCE 350 - - 2! -050110 05 FILLER PIC X(19). 2! -050120* 382 2! - 02 Y4DSTR-Y4DSTRG-003 REDEFINES Y4DSTR-Y4DSTRG-IN. 2! -000110* RECUPERATION INFORMATIONS SUR S SX:-IN 1 - - 2! - 05 Y4DSTR-CD-RET-003 PIC X(4). 2! - * CODE RETOUR 1 2! - 05 Y4DSTR-CD-RET-SQL-003 PIC S9(4) COMP. 2! - * CODE RETOUR SQL 5 2! - 05 Y4DSTR-LIB-MES-ERR PIC X(79). 2! - * LIBELLE MESSAGE 84 2! - 05 Y4DSTR-MT-CAP-SOC PIC S9(13)V9(2) COMP-3. 2! - * CAPITAL SOCIAL 92 2! - 05 Y4DSTR-LIB-FRM-SOC-1 PIC X(50). 2! - * LIBELLE FORME SOCIALE UN 142 2! - 05 Y4DSTR-LIB-FRM-SOC-2 PIC X(50). 2! - * LIBELLE FORME SOCIALE DEUX 192 2! - * 2! -050130 01 Y4DSTR-LG-COMM PIC S9(4) COMP VALUE +400. 2! -050140* LONGUEUR COMMAREA 1 10/07/01 2! - *----------------------------------------------! END Y4DSTRG ---- - - ! - * COPY ACCESSEUR LIBELLE PRODUIT ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y4DTRAN 2! - *------------------------------------------------------------------- -000010*GAR* OS Y4DTRAN TRANSCO CLE EXT. EN CLE INT. ( TP ) 2! -000020* LG=00300, ESD MAJ LE 15/12/93, ELS MAJ LE 19/12/95 PAR CS0108 2! -000030* GENERE LE 19/12/95 A 08H55, PFX : Y4DTRA- MEMBRE : Y4DTRAN 2! -000040 01 Y4DTRA-LONG-SEG PIC S9(4) COMP VALUE 300. 2! -000050* LONGUEUR DU SEGMENT 1 28/12/94 2! -000060 01 Y4DTRA-Y4DTRAN. 2! -000070* TRANSCO CLE EXTERNE EN CLE INTERNE 1 11/03/93 2! -000080 05 FILLER PIC X(2). 2! -000090* 1 2! -000100 05 Y4DTRA-CD-TY-CTRL-E PIC X(1). 2! -000110* CODE TYPE CONTROLE SX:-E 3 28/12/94 2! -000120 05 Y4DTRA-NO-PTN-E PIC 9(3). 2! -000130* NUMERO PARTENAIRE SX:-E 4 - - 2! -000140 05 Y4DTRA-CD-PTN-E PIC X(5). 2! -010010* CODE PARTENAIRE SX:-E 7 - - 2! -010020 05 Y4DTRA-CD-CLI-PTN-E PIC X(15). 2! -010030* CODE CLIENT PARTENAIRE SX:-E 12 - - 2! -010040 05 Y4DTRA-CD-PRD-E PIC X(2). 2! -010050* CODE PRODUIT SX:-E 27 - - 2! -010060 05 Y4DTRA-NO-CTR-PTN-E PIC X(15). 2! -010070* NUMERO CONTRAT PARTENAIRE SX:-E 29 - - 2! -010080 05 Y4DTRA-NO-CLI-PTN-E PIC 9(7) COMP-3. 2! -010090* NUMERO CLIENT PARTENAIRE SX:-E 44 - - 2! -010100 05 Y4DTRA-NO-PRD-PTN-E PIC 9(3) COMP-3. 2! -010110* NUMERO PRODUIT PARTENAIRE SX:-E 48 - - 2! -010120 05 Y4DTRA-NO-ORD-CTR-E PIC 9(2) COMP-3. 2! -010130* NUMERO ORDRE CONTRAT SX:-E 50 - - 2! -010140 05 Y4DTRA-IDC-PTN-CM-E PIC X(1). 2! -020010* INDICATEUR PARTENAIRE CREDIT-MU SX:-E 52 - - 2! -020020 05 FILLER PIC X(5). 2! -020030* 53 2! -020040 05 Y4DTRA-CD-RET-S PIC X(4). 2! -020050* CODE RETOUR SX:-S 58 - - 2! -020060 05 Y4DTRA-LIB-MES-S PIC X(79). 2! -020070* LIBELLE MESSAGE SX:-S 62 - - 2! -020080 05 Y4DTRA-NOM-FIC-S PIC X(8). 2! -020090* NOM FICHIER SX:-S 141 - - 2! -020100 05 Y4DTRA-NOM-PROC-S PIC X(8). 2! -020110* NOM PROCEDURE SX:-S 149 - - 2! -020120 05 Y4DTRA-LIB-ACT-S PIC X(32). 2! -020130* LIBELLE ACTION SX:-S 157 - - 2! -020140 05 Y4DTRA-CD-RET-PGM-S PIC 9(2). 2! -030010* CODE RETOUR PROGRAMME SX:-S 189 - - 2! -030020 05 Y4DTRA-CD-RET-SQL-S PIC S9(4) COMP. 2! -030030* CODE RETOUR SQL SX:-S 191 - - 2! -030040 05 Y4DTRA-NO-PTN-S PIC 9(3). 2! -030050* NUMERO PARTENAIRE SX:-S 193 - - 2! -030060 05 Y4DTRA-NOM-PTN-S PIC X(32). 2! -030070* NOM PARTENAIRE SX:-S 196 - - 2! -030080 05 Y4DTRA-NO-CLI-PTN-S PIC 9(7). 2! -030090* NUMERO CLIENT PARTENAIRE SX:-S 228 - - 2! -030100 05 Y4DTRA-NO-PRD-PTN-S PIC 9(3). 2! -030110* NUMERO PRODUIT PARTENAIRE SX:-S 235 - - 2! -030120 05 Y4DTRA-LIB-PRD-S PIC X(32). 2! -030130* LIBELLE PRODUIT SX:-S 238 - - 2! -030140 05 Y4DTRA-NO-ORD-CTR-S PIC 9(2). 2! -040010* NUMERO ORDRE CONTRAT SX:-S 270 - - 2! -040020 05 Y4DTRA-LA-PRD-S PIC X(10). 2! -040030* LIBELLE-ABREGE PRODUIT SX:-S 272 - - 2! -040040 05 Y4DTRA-NO-TY-PRD-S PIC 9(2) COMP-3. 2! -040050* NUMERO TYPE PRODUIT SX:-S 282 - - 2! -040060 05 Y4DTRA-NO-POL-PRB-S PIC X(9). 2! -040070* NUMERO POLICE PREVI-B SX:-S 284 - - 2! -040080 05 Y4DTRA-CD-PRD-S PIC X(2). 2! -040090* CODE PRODUIT SX:-S 293 - - 2! -040080 05 Y4DTRA-CD-PRD-OR-S PIC X(2). 2! -040090* CODE PRODUIT AUT. POUR PEP SX:-S 293 - - 2! -040100 05 FILLER PIC X(2). 2! -040110* 295 2! - *----------------------------------------------! END Y4DTRAN ---- - - ! - *----------------------------------------------! END WKAREA ---- - - SKIP1 - EJECT - ******************************************************** - * S Y S T E M W O R K A R E A * - ******************************************************** - SKIP2 - 01 SYS-WORK-AREA. - 05 FILLER PIC X(12) VALUE 'SYS WORK '. - 05 IDENTIFICATION-DATA. - 10 CURRENT-PROGRAM-NAME PIC X(8) VALUE 'TC4E3H0 '. - 10 PROGRAM-NAME PIC X(5) VALUE '4E3H0'. - 10 FILLER PIC X(3) VALUE SPACES. - 10 NEXT-PROGRAM-NAME. - 15 NEXT-PROGRAM-NAME-HDR PIC X(2) VALUE 'TC'. - 15 NEXT-PROGRAM-NAME-ID PIC X(5) VALUE '4E3H0'. - 15 NEXT-PROGRAM-NAME-TRL PIC X(1) VALUE ' '. - 10 PROGRAM-TRANSACTION-CODE PIC X(4) VALUE '4E3H'. - SKIP1 - SKIP1 - * CURSOR-ATTR X'FFFFC0' - CURSOR - * ERROR-ATTR X'FFFFC8' - CURSOR, HIGHLIGHT - * OK-ATTR X'0000C0' - DEFAULT - * PROT-ATTR X'0000F0' - PROT, NUMERIC - * OUTPUT-ATTR X'0000F0' - PROT, NUMERIC - * OUTPUT-BLANK-ATTR X'0000FC' - PROT, NUMERIC, BLANK - * BLANK-ATTR X'0000FC' - PROT, NUMERIC, BLANK - * CURSOR-BLANK-ATTR X'FFFFCC' - CURSOR, BLANK - * INPUT-BLANK-ATTR X'0000CC' - BLANK - * OUTPUT-HIGH-ATTR X'0000F8' - PROT, NUMERIC, HIGLIGHT - * INPUT-HIGH-ATTR X'0000C8' - HIGHLIGHT - SKIP1 - 05 ATTRIBUTE-VARIABLES. - 10 CURSOR-ATTR-B PIC S9(9) COMP VALUE +16777152. - 10 FILLER REDEFINES CURSOR-ATTR-B. - 15 FILLER PIC X. - 15 CURSOR-ATTR PIC X(3). - 10 ERROR-ATTR-B PIC S9(9) COMP VALUE +16777160. - 10 FILLER REDEFINES ERROR-ATTR-B. - 15 FILLER PIC X. - 15 ERROR-ATTR PIC X(3). - 10 OK-ATTR-B PIC S9(9) COMP VALUE +192. - 10 FILLER REDEFINES OK-ATTR-B. - 15 FILLER PIC X. - 15 OK-ATTR PIC X(3). - 10 PROT-OUTPUT-ATTR-B PIC S9(9) COMP VALUE +240. - 10 FILLER REDEFINES PROT-OUTPUT-ATTR-B. - 15 FILLER PIC X. - 15 PROT-ATTR PIC X(3). - 10 FILLER REDEFINES PROT-OUTPUT-ATTR-B. - 15 FILLER PIC X. - 15 OUTPUT-ATTR PIC X(3). - 10 OUTPUT-BLANK-ATTR-B PIC S9(9) COMP VALUE +252. - 10 FILLER REDEFINES OUTPUT-BLANK-ATTR-B. - 15 FILLER PIC X. - 15 OUTPUT-BLANK-ATTR PIC X(3). - 10 FILLER REDEFINES OUTPUT-BLANK-ATTR-B. - 15 FILLER PIC X. - 15 BLANK-ATTR PIC X(3). - 10 CURSOR-BLANK-ATTR-B PIC S9(9) COMP VALUE +16777164. - 10 FILLER REDEFINES CURSOR-BLANK-ATTR-B. - 15 FILLER PIC X. - 15 CURSOR-BLANK-ATTR PIC X(3). - 10 INPUT-BLANK-ATTR-B PIC S9(9) COMP VALUE +204. - 10 FILLER REDEFINES INPUT-BLANK-ATTR-B. - 15 FILLER PIC X. - 15 INPUT-BLANK-ATTR PIC X(3). - 10 OUTPUT-HIGH-ATTR-B PIC S9(9) COMP VALUE +248. - 10 FILLER REDEFINES OUTPUT-HIGH-ATTR-B. - 15 FILLER PIC X. - 15 OUTPUT-HIGH-ATTR PIC X(3). - 10 INPUT-HIGH-ATTR-B PIC S9(9) COMP VALUE +200. - 10 FILLER REDEFINES INPUT-HIGH-ATTR-B. - 15 FILLER PIC X. - 15 INPUT-HIGH-ATTR PIC X(3). - SKIP1 - EJECT - 05 CONTROL-VARIABLES. - * - * THE CONTROL INDICATOR CONTROLS THE PROGRAM FLOW - * - 10 CONTROL-INDICATOR PIC X VALUE LOW-VALUE. - 88 PROCESS-OUTPUT VALUE 'O'. - 88 DO-WRITE VALUE 'E'. - 88 PROCESS-INPUT VALUE 'I'. - 88 DO-TRANSFER VALUE 'R'. - 88 TRANSACTION-COMPLETE VALUE 'C'. - 88 CONTINUE-PROCESS VALUE SPACE. - SKIP1 - * - * CONTROL INDICATOR ON ENTRY TO PROGRAM - * - 10 ENTRY-CONTROL-INDICATOR PIC X VALUE LOW-VALUE. - 88 ENTRY-PROCESS-OUTPUT VALUE 'O'. - 88 ENTRY-PROCESS-INPUT VALUE 'I'. - SKIP1 - * - * LITERALS USED TO SET THE CONTROL INDICATOR - * - 10 CONTROL-INDICATOR-LITERALS. - 15 PROCESS-OUTPUT-LIT PIC X VALUE 'O'. - 15 DO-WRITE-LIT PIC X VALUE 'E'. - 15 PROCESS-INPUT-LIT PIC X VALUE 'I'. - 15 DO-TRANSFER-LIT PIC X VALUE 'R'. - 15 TRANSACTION-COMPLETE-LIT PIC X VALUE 'C'. - 15 CONTINUE-PROCESS-LIT PIC X VALUE SPACE. - SKIP1 - 10 SELECT-DONE PIC X VALUE SPACES. - 10 SELECT-COUNT PIC 999 COMP-3 VALUE ZERO. - 10 HEX-3F-VALUE PIC 9(4) COMP VALUE 63. - 10 HEX-3F-REDEF REDEFINES HEX-3F-VALUE. - 15 FILLER PIC X. - 15 HEX-3F PIC X. - 10 BMSMAP-NAME PIC X(7) VALUE 'MC4E3H0'. - 10 SEGLOOP-CONTROL. - 15 SEGLOOP-COUNT PIC 999 COMP-3 VALUE ZERO. - 15 SEGLOOP-COUNT-MAX PIC 999 COMP-3 VALUE 0. - 15 INPUT-LINE-COUNT PIC 999 COMP-3 VALUE ZERO. - 15 INPUT-LINE-EDIT PIC X VALUE SPACE. - 88 NO-LINE-ERRORS VALUE ' '. - 88 LINE-ERRORS VALUE 'E'. - 88 NO-LINE-EDIT VALUE 'N'. - 15 SEGLOOP-ERROR-SW PIC X. - 88 SEGLOOP-ERROR-FOUND VALUE 'Y'. - 15 FINISH-COUNT PIC 999 COMP-3 VALUE ZERO. - 15 PAGE-REQUEST-INDICATOR PIC X VALUE LOW-VALUE. - 88 PAGE-FORWARD VALUE '1'. - 88 PAGE-BACKWARD VALUE '2'. - SKIP1 - 05 PFKEY-INDICATOR VALUE 00 PIC 99. - 88 ENTER-KEY VALUE 00. 88 CLEAR VALUE 93. - 88 PA1 VALUE 92. 88 PA2 VALUE 94. 88 PA3 VALUE 91. - 88 PFK1 VALUE 1. 88 PFK2 VALUE 2. 88 PFK3 VALUE 3. - 88 PFK4 VALUE 4. 88 PFK5 VALUE 5. 88 PFK6 VALUE 6. - 88 PFK7 VALUE 7. 88 PFK8 VALUE 8. 88 PFK9 VALUE 9. - 88 PFK10 VALUE 10. 88 PFK11 VALUE 11. 88 PFK12 VALUE 12. - 88 PFK13 VALUE 13. 88 PFK14 VALUE 14. 88 PFK15 VALUE 15. - 88 PFK16 VALUE 16. 88 PFK17 VALUE 17. 88 PFK18 VALUE 18. - 88 PFK19 VALUE 19. 88 PFK20 VALUE 20. 88 PFK21 VALUE 21. - 88 PFK22 VALUE 22. 88 PFK23 VALUE 23. 88 PFK24 VALUE 24. - 88 PFK1-13 VALUE 1 13. 88 PFK2-14 VALUE 2 14. - 88 PFK3-15 VALUE 3 15. 88 PFK4-16 VALUE 4 16. - 88 PFK5-17 VALUE 5 17. 88 PFK6-18 VALUE 6 18. - 88 PFK7-19 VALUE 7 19. 88 PFK8-20 VALUE 8 20. - 88 PFK9-21 VALUE 9 21. 88 PFK10-22 VALUE 10 22. - 88 PFK11-23 VALUE 11 23. 88 PFK12-24 VALUE 12 24. - SKIP1 - EJECT - 05 WORKFLD-NUMERIC-INSTALL. - 10 WORKFLD-NUMERIC-1 PIC S9(15)V9(3). - SKIP1 - 05 TRACE-VARIABLES. - 10 SECTION-TABLE. - 15 SECTION-NAME-TABLE PIC X(8) OCCURS 9 TIMES - INDEXED BY SEC-INDEX. - 10 TRACE-SECTION-AREA. - 15 FILLER PIC X(6) VALUE 'TRACE '. - 15 FILLER PIC S9(4) COMP VALUE -1286. - 15 TRACE-SECTION-NAME PIC X(8) VALUE SPACES. - 15 TRACE-SEGMENT-NAME PIC X(8) VALUE SPACES. - 15 TRACE-FIELD-NAME PIC X(8) VALUE SPACES. - SKIP1 - 05 FIELD-EDIT-VARIABLES. - 10 FIELD-EDIT-ERROR PIC X(4) VALUE SPACES. - 88 FIELD-EDIT-GOOD VALUE SPACES. - 10 WORKFLD-INDEX PIC 9(4) COMP VALUE ZERO. - 10 WORKFLD-NUMERIC PIC S9(11)V9(7) VALUE ZERO. - 10 WORKFLD-VCHAR. - 15 WORKFLD-LTH PIC S9(4) COMP VALUE ZERO. - 15 WORKFLD-ALPHA PIC X(256) VALUE SPACES. - 10 WORKFLD-SEGLTH PIC 9(4) COMP VALUE ZERO. - 10 WORKFLD-NUMREC PIC 9(4) COMP VALUE ZERO. - 10 WORKFLD-RBA-RRN PIC 9(8) COMP VALUE ZERO. - 05 OPERATOR-ID PIC X(8) VALUE SPACES. - 05 HOLD-AREA-SIZE PIC 9(4) COMP. - 05 HOLD-AREA-APPLID-DFLT PIC X(3) VALUE 'TC4'. - 05 UPDATE-PTR POINTER. - 05 SPA-TS-ITEM PIC 9(4) COMP VALUE 1. - 05 FALLOUT-ABEND-CODE PIC 9(4) VALUE 4002. - 05 CNTLERR-ABEND-CODE PIC 9(4) VALUE 4001. - * THE FOLLOWING FIELDS ARE DEFINED FOR COMPATIBILITY - * BETWEEN TELON IMS AND TELON CICS PROGRAMS. - 05 PROGRAM-TYPE PIC X VALUE 'C'. - 05 IO-PCB PIC X VALUE SPACE. - 05 XFER-PCB PIC X VALUE SPACE. - 05 SOUND-THE-ALARM PIC X VALUE SPACE. - 05 TPO-SCA-FIELD PIC X VALUE SPACE. - 05 SPA-CMPAT PIC X VALUE SPACE. - SKIP3 - 01 SEGMENT-IO-AREA. - 02 SEGMENT-IO-AREA-HEADER PIC X(12) VALUE 'SEGMENT AREA'. - 02 SEGMENT-IO-AREA-END PIC X. - EJECT - ******************************************************** - * H O L D A R E A B E G I N N I N G * - ******************************************************** - 01 HOLD-AREA. - 05 HOLD-AREA-KEY. - 10 HOLD-AREA-LTERM PIC X(4). - 10 HOLD-AREA-APPLID PIC X(3). - 10 HOLD-AREA-TYPE PIC X. - 05 HOLD-RESUME-PGM-ID PIC X(5). - 05 FILLER PIC X(3). - SKIP2 - ******************************************************** - * S P A A R E A * - ******************************************************** - 01 SPA-AREA PIC X(08192). - 01 FILLER REDEFINES SPA-AREA. - 02 SPA-HEADER. - 05 SPA-LENGTH PIC 9(4) COMP. - 05 SPA-NEXT-PROGRAM-NAME PIC X(8). - 05 SPA-TRANSACTION-CODE PIC X(4). - 05 FILLER PIC XX. - 02 SPA-XFER-WORK-AREA. - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIESPA ! - *------------------------------------------------------------------- - **------------------------------------------------------------** ! - ** ZONES REQUISES POUR L APPEL DE VALEUR : FONCTION HELP ** ! - ** 08/10/1999 PIRIOU ** ! - **------------------------------------------------------------** ! - ** ! - 03 XFER-HELP-CUR. ! - 05 XFER-HELP-AREA-HDR PIC X(4). ! - 05 XFER-HELP-MAP-NAME PIC X(8). ! - 05 XFER-HELP-POS-COD PIC 9(4) COMP. ! - 05 XFER-HELP-LTH-COD PIC 9(4) COMP. ! - 05 XFER-HELP-POS-LIB PIC 9(4) COMP. ! - 05 XFER-HELP-LTH-LIB PIC 9(4) COMP. ! - 05 XFER-HELP-DATA PIC X(80). ! - 05 XFER-HELP-DATA-LIB1 REDEFINES XFER-HELP-DATA. ! - 07 FILLER PIC X(74). ! - 07 XFER-HELP-POS-LIB1 PIC 9(4) COMP. ! - 07 XFER-HELP-LTH-LIB1 PIC 9(4) COMP. ! - 07 XFER-HELP-IDC-LIB1 PIC X(02). ! - 03 XFER-HELP-STD. ! - 05 XFER-HOLD-INDICATOR PIC X. ! - 05 HELP-CURR-MSG-COUNT PIC 99 COMP. ! - 05 HELP-MSG-COUNT PIC 99 COMP. ! - 05 HELP-MSG-NAME OCCURS 1. ! - 07 HELP-MSG-NAME-PROG PIC X(8). ! - 07 FILLER PIC X. ! - 07 HELP-MSG-NAME-KEY PIC X(21). ! - **------------------------------------------------------------** ! - ** ZONES REQUISES POUR LA FONCTION CHAINAGE PF03, PF04 ** ! - **------------------------------------------------------------** ! - 03 XFER-CHAINAGE. ! - 05 XFER-NB PIC 99. ! - 05 XFER-NB-MAX PIC 99. ! - 05 XFER-TABLE-PROG. ! - 07 XFER-TABLE-PROG1 PIC X(8). ! - 07 XFER-TABLE-PROG2 PIC X(72). ! - 05 FILLER REDEFINES XFER-TABLE-PROG. ! - 07 XFER-PROGRAMME OCCURS 10. ! - 09 XFER-PROG PIC X(7). ! - 09 XFER-MENU PIC X. ! - 05 FILLER REDEFINES XFER-TABLE-PROG. ! - 07 XFER-PROG1 PIC X(16). ! - 07 XFER-PROG2 PIC X(64). ! - **------------------------------------------------------------** ! - ** ZONE STOCKAGE LONGEUR COMMAREA DE PROVENANCE POUR ** ! - ** NON TELON (CICS NATIF) ** ! - **------------------------------------------------------------** ! - 03 XFER-LG-SPA-PVN-TLN PIC 9(4) COMP-5. ! - 03 XFER-MODIFY-INDICATOR PIC X(1). ! - **------------------------------------------------------------** ! - ** ZONE STOCKAGE NUMERO DE SI POUR ROUTAGE LORS D'UN ** ! - ** APPEL DE VALEUR ** ! - **------------------------------------------------------------** ! - 03 XFER-CD-SI PIC X(3). ! - 03 FILLER PIC X(177). ! - **------------------------------------------------------------** ! - ** DEBUT ZONE UTILISATEUR ** ! - **------------------------------------------------------------** ! - 02 XFER-DBT-ZON-APL. ! - *----------------------------------------------! END GIESPA ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y00CTLN ! - *------------------------------------------------------------------- -000010*GAR* OS Y00CTLN COMMAREA MENU D'ACCUEIL CAISSE LOCAL ! -000020* LG=00024, ESD MAJ LE 05/10/92, ELS MAJ LE 05/10/92 PAR G6A6 ! -000030* GENERE LE 05/10/92 A 17H52, PFX : Y00TLN- MEMBRE : Y00CTLN ! -000040 03 Y00TLN-Y00CTLN. ! -000050* COMMAREA MENU D'ACCUEIL CAISSE LOCAL 1 05/10/92 ! -000060 05 Y00TLN-CD-TRANS-PROV PIC X(4). ! -000070* CODE TRANSACTION DE PROVENANCE 1 25/01/89 ! -000080 05 Y00TLN-CD-HABILIT PIC X(2). ! -000090* CODE HABILITATION 5 - - ! -000100 05 Y00TLN-NO-CLI-CRC. ! -000110* Num�ro de client Caisse Racine Cl� 7 24/05/89 ! -000120 10 Y00TLN-NO-CCM PIC X(4). ! -000130* NUMERO CAISSE 7 14/08/92 ! -000140 10 Y00TLN-RAC-CLE. ! -010010* GROUPE COMPTE 11 23/05/89 ! -010020 15 Y00TLN-RACINE PIC X(7). ! -010030* Racine du client 11 15/06/89 ! -010040 15 Y00TLN-CLE-RACINE PIC X(1). ! -010050* Cl� de la racine du client 18 02/10/89 ! -010060 05 Y00TLN-NO-DOMAINE PIC 9(2). ! -010070* Num�ro de domaine 19 24/05/89 ! -010080 05 Y00TLN-CD-TRANS-DEST PIC X(4). ! -010090* CODE TRANSACTION DE DESTINATION 21 25/01/89 ! - *----------------------------------------------! END Y00CTLN ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y4DFIXE ! - *------------------------------------------------------------------- -000100****************************************************************** ! -000200* * ! -000300* G E O D E / S U R A V E N I R * ! -000400* * ! -000500****************************************************************** ! -000600 03 WS-4DCO-COMMAREA-FIXE. ! -000700*================================================================= ! -000800*= = ! -000900*= APPLICATION : COMMAREA COMMUNE GENERALE = ! -001000*= = ! -001100*= LONGUEUR : 1270 = ! -001200*= PREFIXE : WS-4DCO- = ! -001300*= = ! -001400*= ATTENTION : Les 56 premiers caract�res de cette = ! -001500*= commarea sont utiles pour le retour = ! -001600*= apr�s ABEND. (+ 24 Y4DCTLN = 80). = ! -001700*= = ! -001800*================================================================= ! -001900 ! -002000 05 WS-4DCO-ACCUEIL. ! -002100* ================ ! -002200*--------------------------------------------------------------- * ! -002300* COMMAREA : PARTIE COMMUNE ==> ACCUEIL GEODES * ! -002400* LONGUEUR : 550 * ! -002500* PREFIXE : WS-4DCO- * ! -002600*--------------------------------------------------------------- * ! -002700* ! -002800* ------------------------------------------------------------ ! -002900* LONGUEUR : 56 ! -003000* INFORMATIONS NECESSAIRES AU RETOUR APRES ABEND ! -003100* ------------------------------------------------------------ ! -003200* ! -003300 10 WS-4DCO-INITIAL. ! -003400 15 WS-4DCO-ACCUEIL-IDENT PIC X(008). ! -003500* IDENTIFIANT EN LIGNE ! -003600* correspond au no salarie r�seau credit mutuel ! -003700* ou au no identificateur ptn ext ! -003800 15 WS-4DCO-CD-PTN-LIGNE PIC X(005). ! -003900* CODE EXTERNE PARTENAIRE EN LIGNE ! -004000 15 WS-4DCO-CD-PTN PIC X(005). ! -004100* CODE EXTERNE PARTENAIRE TRAITE ! -004200 15 WS-4DCO-LIB-PTN PIC X(032). ! -004300* LIBELLE PARTENAIRE ! -004400 15 WS-4DCO-NO-PTN-LIGNE PIC 9(003). ! -004500* NO INTERNE DU PARTENAIRE EN LIGNE ! -004600 15 WS-4DCO-IDC-ITN PIC X(001). ! -004700* INDICATEUR INTERNET DE L'IDENTIFIANT EN LIGNE ! -004800* (POUR CONTROLE D'ENTREE DANS GEODES SEULEMENT) ! -004900 15 WS-4DCO-IDC-CMLACO-EXT PIC X(001). ! -005000* INDICATEUR EXTRANET CMLACO ! -005100 15 WS-4DCO-TYPE-CNX PIC X(001). ! -005200* TYPE DE CONNEXION PHYSIQUE ! -005300 88 CNX-EXTRANET VALUE '1'. ! -005400* Connexion par extranet (terminal EXtranet) ! -005500* ! -005600* ------------------------------------------------------------ ! -005700* LONGUEUR : 1 ! -005800* PROVENANCE DE LA CONNECTION PERMET : ! -005900* * D'IDENTIFIER L'ENVIRONNEMENT D'ORIGINE ! -006000* * D'ASSURER LE RETOUR A CET ENVIRONNEMENT ! -006100* * DE PREVOIR LA SAISIE SELON L'ACTEUR ! -006200* ------------------------------------------------------------ ! -006300* ! -006400 10 WS-4DCO-CD-PROV PIC X(001). ! -006500* CODE PROVENANCE ! -006600* PEUT PRENDRE LES VALEURS : ! -006700 88 PROV-CCM VALUE '1'. ! -006800* Provenance = environnement CCM ! -006900 88 PROV-SURA-CCM VALUE '2'. ! -007000* Provenance = environnement SURA pour CCM ! -007100 88 PROV-SURA-PEXT VALUE '3'. ! -007200* Provenance = environnement SURA pour P. EXT. ! -007300 88 PROV-SURA-CMLACO VALUE '4'. ! -007400* Provenance = environnement SURA pour CMLACO ! -007500 88 PROV-CCM-SIMU VALUE '5'. ! -007600* Provenance = environnement CCM pour simulation ! -007700 88 PROV-SURA-SIMU VALUE '6'. ! -007800* Provenance = environnement SURA pour simulation ! -007810 88 PROV-SURA-EXTPSE VALUE '7'. ! -007820* Provenance = extranet personne ! -007900* ! -008000* ------------------------------------------------------------ ! -008100* LONGUEUR : 30 ! -008200* INFORMATIONS COMPLEMENTAIRES PARTENAIRE EN LIGNE ! -008300* ------------------------------------------------------------ ! -008400* ! -008500 10 WS-4DCO-IDENTIFICATION. ! -008600 15 WS-4DCO-ACCUEIL-NO-STR-DIS PIC X(006). ! -008700* STRUCTURE DE DISTRIBUTION DU PTN EN LIGNE ! -008800* correspond au no caisse r�seau cr�dit mutuel ! -008900* ou au no agence reseau ptn ext ! -009000 15 WS-4DCO-ACCUEIL-NO-AGT-PTN PIC X(008). ! -009100* NO AGENT PARTENAIRE EN LIGNE ! -009200* correspond au no agent chez le partenaire ext. ! -009300* (num�ro propre au partenaire) ! -009400 15 WS-4DCO-CD-PFL PIC X(003). ! -009500* CODE PROFIL IDENTIFICATEUR EN LIGNE ! -009600 15 WS-4DCO-IDC-PEC PIC X(001). ! -009700* PARTENAIRE EN PRISE EN CHARGE AUTOMATIQUE ! -009800* PEUT PRENDRE LES VALEURS : ! -009900 88 IDC-PEC-AUT VALUE 'O'. ! -010000* Prise en charge automatique : pas de ! -010100* pr�-saisie ! -010200 88 IDC-PEC-MAN VALUE 'N'. ! -010300* Partenaire avec pr�-saisie (souscription, ! -010400* versement ...) ! -010500 15 WS-4DCO-IDC-AFG-AGT PIC X(001). ! -010600* Autorisation affichage numero d'agent ! -010700* ! -010800 15 WS-4DCO-VLR-NIV-DRG PIC S9(03) COMP-3. ! -010900* Niveau de d�rogation de l'identifiant ! -011000* ! -011100* ! -011200* TOP DE PROVENANCE TRANSFERT RACHAT ! -011300* ! -011400 15 WS-4DCO-TRANSFERT PIC X(02). ! -011500 88 RAC-TOT-SOUS-POPT VALUE '30'. ! -011600 88 RAC-TOT-VERS-POPT VALUE '35'. ! -011700 88 RAC-PAR-SOUS-POPT VALUE '40'. ! -011800 88 RAC-PAR-VERS-POPT VALUE '45'. ! -011900 88 RAC-TOT-SOUS-PRAC VALUE '50'. ! -012000 88 RAC-TOT-VERS-PRAC VALUE '55'. ! -012100 88 RAC-PAR-SOUS-PRAC VALUE '60'. ! -012200 88 RAC-PAR-VERS-PRAC VALUE '65'. ! -012300* ! -012400 15 WS-4DCO-IDC-VISU-DOC-ARCH PIC X(001). ! -012500* Autorisation consultation documents archiv�s ! -012600* ! -012700 15 FILLER PIC X(001). ! -012800* ZONES DISPONIBLES (Partenaire en ligne) ! -012900* ! -013000* ------------------------------------------------------------ ! -013100* LONGUEUR : 005 ! -013200* informations identifiantes de la personne (nvelle base) ! -013900* ------------------------------------------------------------ ! -014000* ! -014100 10 WS-4DCO-IDENTIFIANT-PERSONNE. ! -014200* infos indentifiantes personnes ! -014300 15 WS-4DCO-NO-PSE PIC 9(8) COMP. ! -014400* n� de la personne ! -014401 15 FILLER PIC X(001). ! -014402* ZONES DISPONIBLES (Personne) ! -014403* ! -014404* ------------------------------------------------------------ ! -014405* LONGUEUR : 430 ! -014406* INFORMATIONS CLIENT PERMET : ! -014407* * DE CONSERVER LES INFORMATIONS GLOBALES D'UN CLIENT ! -014408* SURAVENIR (PERSONNE PHYSIQUE OU MORALE) ! -014409* * DE SAUVEGARDE DES DONNEES VENANT DE L'INTERFACE CCM ! -014410* POUR LA MISE A JOUR DE LA BASE PERSONNE ! -014411* * DE DISTINGUER LES INFORMATIONS PROPRES A UN CLIENT ! -014412* DE TYPE PERSONNE PHYSIQUE OU MORALE ! -014413* ------------------------------------------------------------ ! -014414* ! -014415 10 WS-4DCO-CLIENT-GLOBAL. ! -014416* INFOS GLOBALES CLIENT ! -014417 15 WS-4DCO-CD-CLI-PTN PIC X(015). ! -014418* CODE EXTERNE DU CLIENT ! -014500 15 WS-4DCO-CREAT-CLIENT PIC X(001). ! -014600* TOP POSSIBILITE CREATION CLIENT (O/N) ! -014700 15 WS-4DCO-CNTU PIC X(001). ! -014800* CODE TYPE DE PERSONNE (P:Phys, M:Morale) ! -014900 15 WS-4DCO-CLI-ADR. ! -015000* ADRESSE DU CLIENT ! -015100 20 WS-4DCO-RUE-DEB PIC X(032). ! -015200* RUE (LIGNE 1) ! -015300 20 WS-4DCO-RUE PIC X(032). ! -015400* RUE (LIGNE 2) ! -015500 20 WS-4DCO-COMMU PIC X(032). ! -015600* COMMUNE ! -015700 20 WS-4DCO-CODPOS PIC X(005). ! -015800* CODE POSTAL ! -015900 20 WS-4DCO-LIB-BUR-DIST PIC X(032). ! -016000* BUREAU DISTRIBUTEUR ! -016100 20 WS-4DCO-CD-DPT PIC X(002). ! -016200* CODE DEPARTEMENT ! -016300 20 WS-4DCO-CD-COMM PIC X(003). ! -016400* CODE INSEE COMMUNE ! -016500 20 WS-4DCO-NO-TEL PIC X(011). ! -016600* NUMERO TELEPHONE ! -016700 20 WS-4DCO-DA-DNR-MAJ-ADR PIC X(008). ! -016800* DATE DE DERNIERE MAJ ADRESSE ! -016900 15 WS-4DCO-CLIENT-NO-STR-DIS PIC X(006) ! -017000 OCCURS 10. ! -017100* STRUCTURE PRESENCE DU CLIENT ! -017200 15 WS-4DCO-DOM-NO-STR-DIS PIC X(006). ! -017300* STRUCTURE DU COMPTE DOMICILIATION ! -017400 15 WS-4DCO-CAT-DOM PIC X(002). ! -017500* CATEGORIE DU COMPTE DOMICILIATION ! -017600 15 WS-4DCO-LIB-CD-INT-CT PIC X(010). ! -017700* LIBELLE COURT DU CODE INTITULE ! -017800 15 WS-4DCO-NO-ORD-ADR-POST PIC 9(002). ! -017900* NUMERO D ADRESSE POSTALE ! -017901* ! -017902* ------------------------------------------------------------ ! -017903* LONGUEUR : 006 ! -017904* informations identifiantes de la relation ! -017905* personne/partenaire (nouvelle base) ! -017906* ------------------------------------------------------------ ! -017907* ! -017908 10 WS-4DCO-IDENTIFIANT-PSE-PTN. ! -017909* infos indentifiantes relation personne/partenaire ! -017910 15 WS-4DCO-NO-IDT-PSE-PTN PIC 9(9) COMP-3. ! -017911* n� personne/partenaire ! -017912 15 FILLER PIC X(001). ! -017913* ZONE DISPONIBLE ! -018200* ! -018300 10 WS-4DCO-CLIENT-PPPM PIC X(170). ! -018400* DISTINCTION INFOS PP OU PM ! -018500* ! -018600 10 WS-4DCO-CLIP REDEFINES WS-4DCO-CLIENT-PPPM. ! -018700* INFOS CLIENT TYPE PERSONNE PHYSIQUE ! -018800 15 WS-4DCO-CINT PIC X(002). ! -018900* CODE INTITULE DE LA PERSONNE PHYSIQUE ! -019000 15 WS-4DCO-NOM PIC X(032). ! -019100* NOM DU CLIENT ! -019200 15 WS-4DCO-PRENOM PIC X(032). ! -019300* PRENOM DU CLIENT ! -019400 15 WS-4DCO-AANAI. ! -019500* DATE DE NAISSANCE DU CLIENT ! -019600 20 WS-4DCO-DNAISSA. ! -019700* SIECLE ET ANNEE DATE DE NAISSANCE ! -019800 25 WS-4DCO-DNAISS PIC X(002). ! -019900* SIECLE DATE DE NAISSANCE ! -020000 25 WS-4DCO-DNAISA PIC X(002). ! -020100* ANNEE DATE DE NAISSANCE ! -020200 20 WS-4DCO-DNAISM PIC X(002). ! -020300* MOIS DATE DE NAISSANCE ! -020400 20 WS-4DCO-DNAISJ PIC X(002). ! -020500* JOUR DATE DE NAISSANCE ! -020600 15 WS-4DCO-LIEUNAIS PIC X(032). ! -020700* LIEU DE NAISSANCE ! -020800 15 WS-4DCO-CD-INS-COM-NAI. ! -020900* CODE INSEE COMMUNE NAISSANCE ! -021000 20 WS-4DCO-CD-INS-DPT-NAIS PIC X(002). ! -021100* CODE INSEE DEPARTEMENT NAISSANCE ! -021200 20 WS-4DCO-CD-INS-VIL-NAIS PIC X(003). ! -021300* CODE INSEE VILLE NAISSANCE ! -021400 15 WS-4DCO-NOM-PATRO PIC X(032). ! -021500* NOM PATRONYMIQUE ! -021600 15 WS-4DCO-CD-SIT-FAM PIC X(001). ! -021700* CODE SITUATION FAMILIALE ! -021800 15 FILLER PIC X(002). ! -021900* ! -022000 15 WS-4DCO-CD-SEX PIC X(001). ! -022100* CODE SEXE ! -022200 15 WS-4DCO-CFRS PIC X(006). ! -022300* CENTRE DE FRAIS ! -022400* 15 WS-4DCO-RANG-PEPB PIC X(002). ! -022500* RANG DU DERNIER PEP BANQUE ! - 15 WS-4DCO-CD-CPC-JUR PIC X(002). ! - * code juridique ! -022600* 15 WS-4DCO-FCT-PEPB PIC X(001). ! -022700* FONCTIONNEMENT DU PEP BANQUE ! - 15 WS-4DCO-CD-RGM-MAT PIC X(001). ! - * code regime matrimonial ! -022800 15 WS-4DCO-CD-INSEE-CSP PIC X(004). ! -022900* CODE CATEGORIE SOCIO PROFESS. INSEE ! -023000 15 WS-4DCO-DA-LIQ-RTRT PIC X(008). ! -023100* DATE DEPART EN RETRAITE (GESTION PERP) ! -023101 15 WS-4DCO-CD-RSD-ETG-P PIC X(002). ! -023102* CODE RESIDENT ETRANGER ! -023200* ! -023300 10 WS-4DCO-CLIM REDEFINES WS-4DCO-CLIENT-PPPM. ! -023400* INFOS CLIENT TYPE PERSONNE MORALE ! -023500 15 WS-4DCO-CD-INT PIC X(002). ! -023600* CODE INTITULE DE LA PERSONNE MORALE ! -023700 15 WS-4DCO-RAI-SOC PIC X(032). ! -023800* RAISON SOCIALE ! -023900 15 WS-4DCO-LIB-ENS PIC X(032). ! -024000* ENSEIGNE COMMERCIALE ! -024100 15 WS-4DCO-DA-CRE-EPS. ! -024200* DATE DE CREATION DE L'ENTREPRISE ! -024300 20 WS-4DCO-DA-CRE-EPS-SSAA. ! -024400* SIECLE ET ANNEE DATE DE CREATION ! -024500 25 WS-4DCO-DA-CRE-EPS-SS PIC X(002). ! -024600* SIECLE DATE DE CREATIO ! -024700 25 WS-4DCO-DA-CRE-EPS-AA PIC X(002). ! -024800* ANNEE DATE DE CREATION ! -024900 20 WS-4DCO-DA-CRE-EPS-MM PIC X(002). ! -025000* MOIS DATE DE CREATION ! -025100 20 WS-4DCO-DA-CRE-EPS-JJ PIC X(002). ! -025200* JOUR DATE DE CREATION ! -025300 15 WS-4DCO-LIB-NOM PIC X(032). ! -025400* NOM DU REPRESENTANT LEGAL ! -025500 15 WS-4DCO-CD-TY-PSE-EN PIC X. ! -025600* TYPE D'ENTREPRISE ! -025700 15 WS-4DCO-CD-INT-REP PIC X(002). ! -025800* CODE INTITULE DU REPRESENTANT LEGAL ! -025900 15 FILLER PIC X(002). ! -026000* ZONE LIBRE ! -026100 15 WS-4DCO-NOM-PATRO-EN PIC X(032). ! -026200* RAISON SOCIALE + LIBELLE ENSEIGNE ! -026300 15 WS-4DCO-NO-SIRET. ! -026400* NUMERO DE SIRET ! -026500 20 WS-4DCO-NO-IDT-EPS-SIT PIC X(009). ! -026600* NUMERO DE SIREN ! -026700 20 WS-4DCO-NO-IDT-CPL-SIT PIC X(005). ! -026800* COMPLEMENT AU SIREN ! -026900 15 WS-4DCO-JURID. ! -027000* CLASSIFICATION JURIDIQUE DE L'ENTREPRISE ! -027100 20 WS-4DCO-CD-DIV-FRM-JUR PIC X(002). ! -027200* CODE DIVISION FORME JURIDIQUE ! -027300 20 WS-4DCO-CD-SUB-FRM-JUR PIC X(002). ! -027400* CODE SUBDIVISION FORME JURIDIQUE ! -027500 15 WS-4DCO-NAF. ! -027600* CODE NORME ACTIVITE FRANCAISE ! -027700 20 WS-4DCO-CD-DIV-NAF PIC X(002). ! -027800* CODE DIVISION NAF ! -027900 20 WS-4DCO-CD-CLS-NAF PIC X(002). ! -028000* CODE VLASSIFICATION NAF ! -028010 15 WS-4DCO-CD-RSD-ETG-M PIC X(002). ! -028020* CODE RESIDENT ETRANGER ! -028100 15 FILLER PIC X(003). ! -028200* ZONE DISPONIBLE (P. Morale) ! -028300* ! -028400* ------------------------------------------------------------ ! -028500* LONGUEUR : 33 ! -028600* FIN DE LA PARTIE ACCUEIL (ZONE DISPONIBLE) ! -028700* ------------------------------------------------------------ ! -028800 10 WS-4DCO-TRAN-PROV PIC X(004). ! -028900* TRANSACTION APPELANTE ! -029000 10 WS-4DCO-HABI-CCM-GRP PIC X(003). ! -029100* groupe habilitation ccm ! -029200 10 WS-4DCO-HABI-CCM-NIV-DLG PIC X(003). ! -029300* Niveau delegation habilitation ccm ! -029400* ------------------------------------------------------------ ! -029500* LONGUEUR : 1 ! -029600* MODE DE CONNEXION / ZONE SPECIFIQUE CONNEXION CMLACO ! -029700* ------------------------------------------------------------ ! -029800* ! -029900 10 WS-4DCO-MOD-CNX PIC X(001). ! -030000* MODE CONNEXION ! -030100* PEUT PRENDRE LES VALEURS : ! -030200 88 MOD-CNX-ANC VALUE '0'. ! -030300* ANCIEN MODE DE CONNEXION PARTENAIRE '00028' ! -030400 88 MOD-CNX-NV-SS-INF-CLI VALUE '1'. ! -030500* NOUVEAU MODE DE CONNEXION PARTENAIRE '15749' ! -030600* SANS INFOS CLIENT ! -030700 88 MOD-CNX-NV-AVC-INF-CLI VALUE '2'. ! -030800* NOUVEAU MODE DE CONNEXION PARTENAIRE '15749' ! -030900* AVEC INFOS CLIENT ! -030700 88 MOD-CNX-ORIADYS VALUE '3'. ! -030800* NOUVEAU MODE DE CONNEXION ! -031000* ! -031100 10 WS-4DCO-NO-BUR-STR-OPE-GE PIC X(006). ! -031200* NUMERO DE BUREAU DE GESTION ! -031201* ! -031202 10 WS-4DCO-PARAMETRE-FPOINT PIC X(001). ! -031203* INDICATEUR FOURNI PAR FPOINT ! -031204* ! -031205 10 WS-4DCO-NB-QZ-DRG PIC 9(002). ! -031206* NOMBRE DE QUINZAINES DEROGEABLES ! -031300* ! -031400 10 WS-4DCO-DATE-SELECTION. ! -031401 15 WS-4DCO-DATE-SEL-SSAA PIC 9(004). ! -031402 15 WS-4DCO-DATE-SEL-MM PIC 9(002). ! -031403 15 WS-4DCO-DATE-SEL-JJ PIC 9(002). ! -031404* date pour selection dans liste ! -031405* (voir WS-4DCO-DATE-FIN plus bas) ! -031406 10 WS-4DCO-TOP-MODIF PIC X. ! -031410* ! -031420 10 FILLER PIC X(004). ! -031500* ZONE DISPONIBLE (partie accueil) ! -031600 ! -031700 05 WS-4DCO-TRAITE. ! -031800* =============== ! -031900*--------------------------------------------------------------- * ! -032000* COMMAREA : PARTIE COMMUNE ==> INFOS TRAITEES * ! -032100* LONGUEUR : 350 * ! -032200* PREFIXE : WS-4DCO- * ! -032300*--------------------------------------------------------------- * ! -032400* ! -032500* ------------------------------------------------------------ ! -032600* INFORMATIONS CONTRAT (NUMERO INTERNE) ! -032700* ------------------------------------------------------------ ! -032800 10 WS-4DCO-GEODE. ! -032900* CLE INTERNE GEODE ! -033000* correspond a la r�f�rence interne qui est ! -033100* utilis�e pour la lecture des fichiers ! -033200 15 WS-4DCO-GEO-PTN PIC 9(003). ! -033300* PARTENAIRE INTERNE ! -033400 15 WS-4DCO-GEO-CLI PIC 9(007). ! -033500* CLIENT INTERNE ! -033600 15 WS-4DCO-GEO-PRD PIC 9(003). ! -033700* PRODUIT INTERNE ! -033800 15 WS-4DCO-GEO-RANG PIC X(002). ! -033900* RANG INTERNE ! -034000 15 WS-4DCO-GEO-ENR PIC X(002). ! -034100* NO ENREGISTREMENT (fichier) ! -034200 15 WS-4DCO-GEO-SEQ PIC X(003). ! -034300* NO SEQUENCE (fichier) ! -034400* ! -034500* ------------------------------------------------------------ ! -034600* INFORMATIONS CONTRAT (NUMERO EXTERNE) ! -034700* ------------------------------------------------------------ ! -034800 10 WS-4DCO-EXTERNE PIC X(020). ! -034900* IMAGE COMPLETE DU CONTRAT EXTERNE ! -035000* A utiliser uniquement pour les affichages ! -035100* ! -035200 10 WS-4DCO-CLE-CCM REDEFINES WS-4DCO-EXTERNE. ! -035300 15 WS-4DCO-CCM-PTN PIC X(005). ! -035400* PARTENAIRE CCM ! -035500 15 WS-4DCO-CCM-CPT. ! -035600* CONTRAT EXTERNE CREDIT MUTUEL ! -035700* Correspond � la r�f�rence externe (T4D0108) ! -035800* d'un num�ro de contrat pour le cr�dit mutuel ! -035900 20 WS-4DCO-CCM-CLIENT. ! -036000 25 WS-4DCO-CCM-RAC PIC X(007). ! -036100* RACINE ! -036200 25 WS-4DCO-CCM-CLE PIC X(001). ! -036300* CLE ! -036400 20 WS-4DCO-CCM-CAT PIC X(002). ! -036500* CATEGORIE ! -036600 20 WS-4DCO-CCM-RANG PIC X(002). ! -036700* RANG ! -036800 20 FILLER PIC X(003). ! -036900* ! -037000 10 WS-4DCO-CLE-EXT REDEFINES WS-4DCO-EXTERNE. ! -037100 15 WS-4DCO-EXT-PTN PIC X(005). ! -037200* PARTENAIRE EXTERIEUR ! -037300 15 WS-4DCO-EXT-CPT. ! -037400* CONTRAT EXTERNE PARTENAIRE EXTERIEUR ! -037500* Correspond � la r�f�rence externe (T4D0108) ! -037600* d'un contrat pour les partenaires ext�rieurs ! -037700 20 WS-4DCO-EXT-PRD PIC X(002). ! -037800* PRODUIT ! -037900 20 WS-4DCO-EXT-POL PIC X(009). ! -038000* NO POLICE ! -038100 20 FILLER PIC X(004). ! -038200* ! -038300* ------------------------------------------------------------ ! -038400* INFORMATIONS PROPRES AU CMLACO (Table T4D0109) ! -038500* ------------------------------------------------------------ ! -038600 10 WS-4DCO-CMLACO. ! -038700* NUMERO DE COMPTE DU CMLACO ! -038800 15 WS-4DCO-CMLACO-CAISSE PIC X(003). ! -038900* CAISSE CMLACO ! -039000 15 WS-4DCO-CMLACO-CPT PIC X(008). ! -039100* COMPTE CMLACO ! -039200* ! -039300* ------------------------------------------------------------ ! -039400* LONGUEUR : 30 ! -039500* INFORMATIONS COMPLEMENTAIRES DU PARTENAIRE TRAITE ! -039600* ------------------------------------------------------------ ! -039700 10 WS-4DCO-PARTENAIRE. ! -039800 15 WS-4DCO-IDC-CMB-EXT PIC X(001). ! -039900* INDICATEUR DU TYPE DE PARTENAIRE ! -040000* Pr�cise si le partenaire est de type CMB (O) ! -040100* ou de type partenaire ext�rieur (N) ! -040200 88 IDC-CMB VALUE 'O'. ! -040300* Type CMB ! -040400 88 IDC-EXT VALUE 'N'. ! -040500* Type partenaire ext�rieur ! -040600 15 WS-4DCO-LA-PTN PIC X(016). ! -040700* LIBELLE ABREGE PARTENAIRE ! -040800 15 WS-4DCO-IDC-SOC-FDL-GT PIC X(001). ! -040900* INDICATEUR GESTION OPERATIONS SOC. FIDELES ! -041000 15 WS-4DCO-TX-DRG-FRS-DOS-SF PIC 9(3)V9(4). ! -041100* TAUX DE FRAIS OPERATIONS SOC. FIDELES ! -041200 15 WS-4DCO-IDC-CTR-FDL-GT PIC X(001). ! -041300* INDICATEUR GESTION OPERATIONS SOC. FIDELES ! -041400* POUR LE CONTRAT TRAITE ! -041500 15 WS-4DCO-IDC-PTN-ITN PIC X(001). ! -041600* INDICATEUR INTERNET GENERAL (PTN OU IDENTIFIANT) ! -041700 15 WS-4DCO-TOPDIS PIC X(001). ! -041800* INDICATEUR RECHERCHE CONTRAT (CF. YS) ! -041900 15 WS-4DCO-PARTN-IDC-PTN-ITN PIC X(001). ! -042000* TOP "PARTENAIRE INTERNET" DU PARTENAIRE TRAIT� ! -042010 15 WS-4DCO-IDC-GTN-MG PIC X(001). ! -042200* indicateur gestion sous mandat ! -042300* ! -042400* ------------------------------------------------------------ ! -042500* INFOS STRUCTURE DE DISTRIBUTION GESTIONNAIRE DU CONTRAT ! -042600* ------------------------------------------------------------ ! -042700 10 WS-4DCO-FIX-STRUCTURE-GTN. ! -042800 15 WS-4DCO-FIX-NO-STR-GTN PIC X(006). ! -042900* STRUCTURE DE DISTRIBUTION DU CONTRAT ! -043000* correspond au no caisse r�seau credit mutuel ! -043100* ou au no agence reseau ptn ext ! -043200 15 WS-4DCO-FIX-LIB-STR-GTN PIC X(032). ! -043300* LIBELLE STRUCTURE DU CONTRAT ! -043400 15 WS-4DCO-FIX-NO-AGT-GTN PIC X(008). ! -043500* NUMERO D AGENT DU CONTRAT ! -043600* correspond au no salarie r�seau credit mutuel ! -043700* ou au no identificateur ptn ext ! -043800* ! -043900* ------------------------------------------------------------ ! -044000* INFORMATIONS PRODUIT (+ TYPE, + GAMME) TRAITE ! -044100* ------------------------------------------------------------ ! -044200 10 WS-4DCO-PRODUIT. ! -044300 15 WS-4DCO-CD-PRD PIC X(002). ! -044400* CODE EXTERNE DU PRODUIT ! -044500 15 WS-4DCO-GEN-PRD PIC X(003). ! -044600* NUMERO DE GENERATION DU PRODUIT ! -044700 15 WS-4DCO-LIB-PROD PIC X(032). ! -044800* LIBELLE PRODUIT ! -044900 15 WS-4DCO-LIB-PROD-CENTRE PIC X(032). ! -045000* LIBELLE <CENTRE> DU PRODUIT ! -045100 15 WS-4DCO-TY-PRD PIC 9(002). ! -045200* TYPE DE PRODUIT ! -045300 15 WS-4DCO-LIB-TY-PRD PIC X(032). ! -045400* LIBELLE TYPE DE PRODUIT ! -045500 15 WS-4DCO-GEN-TY PIC X(003). ! -045600* NUMERO DE GENERATION DU TYPE DE PRODUIT ! -045700 15 WS-4DCO-GAM-PRD PIC 9(002). ! -045800* GAMME DE PRODUIT ! -045900 15 WS-4DCO-LIB-GAM-PRD PIC X(032). ! -046000* LIBELLE GAMME DE PRODUIT ! -046100* ! -046200* ------------------------------------------------------------ ! -046300* INFORMATIONS DERNIERE MISE A JOUR ! -046400* ------------------------------------------------------------ ! -046500 10 WS-4DCO-DERN-MAJ. ! -046600* DATE ET HEURE DE DERNIERE MAJ ! -046700* correspond � la date de derniere maj ! -046800* correspond � l'heure de derniere maj ! -046900 15 WS-4DCO-DATE-DERN-MAJ. ! -047000* DATE DE DERNIERE MAJ ! -047100 20 WS-4DCO-DMAJ-SS PIC X(002). ! -047200* SIECLE DATE DE DERNIERE MAJ ! -047300 20 WS-4DCO-DMAJ-AA PIC X(002). ! -047400* ANNEE DATE DE DERNIERE MAJ ! -047500 20 WS-4DCO-DMAJ-MM PIC X(002). ! -047600* MOIS DATE DE DERNIERE MAJ ! -047700 20 WS-4DCO-DMAJ-JJ PIC X(002). ! -047800* JOUR DATE DE DERNIERE MAJ ! -047900 15 WS-4DCO-HEUR-DERN-MAJ. ! -048000* HORAIRE DE DERNIERE MAJ ! -048100 20 WS-4DCO-DMAJ-HEU PIC X(002). ! -048200* HEURE HORAIRE DE DERNIERE MAJ ! -048300 20 WS-4DCO-DMAJ-MIN PIC X(002). ! -048400* MINUTE HORAIRE DE DERNIERE MAJ ! -048500 20 WS-4DCO-DMAJ-SEC PIC X(002). ! -048600* SECONDE HORAIRE DE DERNIERE MAJ ! -048700 10 WS-4DCO-TS-EDIT-CICS. ! -048800* IDENTIFICATION TS IMPRESSION CICS ! -048900 15 WS-4DCO-TRMID-CICS PIC X(004). ! -049000* TERMINAL DE CREATION TS EDITION CICS ! -049100 15 WS-4DCO-TIME-CICS PIC S9(7) COMP-3. ! -049200* HEURE DE CREATION TS EDITION CICS ! -049300* ------------------------------------------------------------ ! -049400* INFORMATIONS SPECIFIQUES A PREVI-OPTIONS ! -049500* ------------------------------------------------------------ ! -049600 10 WS-4DCO-PUC. ! -049700 15 WS-4DCO-IDC-PRD-UNT-CPT PIC X(001). ! -049800* INDICATEUR PRODUIT EN UNITE DE COMPTE ! -049900 10 WS-4DCO-TRAITEMENT-SCP PIC X(001). ! -050000* Etat souscription pour partenaire exterieur ! -050100 88 SOUSCRIPTION-VALIDEE VALUE 'O'. ! -050200 88 SOUSCRIPTION-NON-VALIDEE VALUE 'N'. ! -050300* ! -050400* ------------------------------------------------------------ ! -050500* INFORMATIONS SPECIFIQUES A PROVENANCE GESTION DECES ! -050600* ------------------------------------------------------------ ! -050700 10 WS-4DCO-PROV-GESTION-DECES PIC X(001). ! -050800* Souscription ou Versement ! -050900 88 PROV-DECES VALUE 'S' 'V'. ! -051000 88 SOUS-PROV-DECES VALUE 'S'. ! -051100 88 VERS-PROV-DECES VALUE 'V'. ! -051200* ! -051300* ------------------------------------------------------------ ! -051400* REFERENCES IMPRIMES ! -051500* ------------------------------------------------------------ ! -051600 10 WS-4DCO-REF-IMP. ! -051700 15 WS-4DCO-REF-IMP-CG PIC X(010). ! -051800 15 WS-4DCO-REF-IMP-SU PIC X(010). ! -051900* ! -052000* ------------------------------------------------------------ ! -052100* gestion profil ! -052200* ------------------------------------------------------------ ! -052300 10 WS-4DCO-IDC-PRD-CMP PIC X(001). ! -052400 10 WS-4DCO-CD-PFL-GES PIC X(003). ! -052500* ------------------------------------------------------------ ! -052600 10 WS-4DCO-CD-PER PIC X(001). ! -052700* ---------- indicateur d�qualification dsk ----------------- ! -052800 10 WS-4DCO-OUI-NON PIC X(001). ! -052900* ---------- indicateur produit dsk ----------------- ! -053000 10 WS-4DCO-IDC-PRD-DSK PIC X(001). ! -053100* ---------- indicateur pourcentage FCPR < 10 --------------- ! -053200 10 WS-4DCO-IDC-VAL-FCPR PIC X(001). ! -053300* ------------------------------------------------------------ ! -053400* code devise gestion ! -053500* ------------------------------------------------------------ ! -053600 10 WS-4DCO-CD-DVS-GTN PIC X(03). ! -053700* ------------------------------------------------------------ ! -053800* Indicateurs permettant la gestion des cadres ficaux (PEP, ! -053900* DSK, ...) en tant qu'option fiscale du contrat ! -054100* ------------------------------------------------------------ ! -054200 10 WS-4DCO-INFOS-OPT-FISCALE. ! -054300* ! -054400 15 WS-4DCO-IDC-PRD-FIS-UNQ PIC X(001). ! -054500* Indicateur produit commercial � option fiscale unique O/N ! -054501 88 PDT-AVEC-OPT-FIS-UNIQUE VALUE 'O'. ! -054502* Produit n'est reli� qu'� une seule cat�gorie ! -054503* fiscale ! -054504 88 PDT-AVEC-OPT-FIS-MULTIPLE VALUE 'N'. ! -054505* Produit reli� � plusieures cat�gories fiscales ! -054506 15 WS-4DCO-CD-CAT-FIS-CTR PIC X(002). ! -054507* Cat�gorie fiscale effective sur le contrat ! -054508 15 WS-4DCO-IDC-PRD-NSK PIC X(001). ! -054509 15 FILLER PIC X(003). ! -054510* R�serve pour gestion nouvelles options fiscales ! -054600* ! -055100* ------------------------------------------------------------ ! -055200* gestion offre li�e ! -055300* ------------------------------------------------------------ ! -055400 10 WS-4DCO-CD-OFFRE-LIEE PIC X(02). ! -055500* ------------------------------------------------------------ ! -055600 10 WS-4DCO-CD-MODE-OFFRE-LIEE PIC X(03). ! -055700* ------------------------------------------------------------ ! -055800* gestion demande internet ! -055900* ------------------------------------------------------------ ! -056000 10 WS-4DCO-IDC-TT-DEM-ITN PIC X(01). ! -056100* Indicateur de gestion des demandes internet ! -056200* ------------------------------------------------------------ ! -056300* numero sequentiel de document (reedition) ! -056400* ------------------------------------------------------------ ! -056500 10 WS-4DCO-NO-SEQ-DO PIC 9(3). ! -056600 10 WS-4DCO-IDC-CRE-FLUX PIC X(01). ! -056700* ------------------------------------------------------------ ! -056800* ZONE DISPONIBLE (infos trait�es) ! -056900* ------------------------------------------------------------ ! -057000 10 WS-4DCO-IDC-CDR-DRG PIC X(001). ! -057010 10 WS-4DCO-IDC-TY-PRD-DSK PIC X(001). ! -057100* ------------------------------------------------------------ ! -057200 10 WS-4DCO-DA-PREM-SCR PIC X(008). ! -057300* ------------------------------------------------------------ ! -057400 ! -057500 05 WS-4DCO-RESERVE. ! -057600* ================ ! -057700*--------------------------------------------------------------- * ! -057800* COMMAREA : PARTIE COMMUNE ==> RESERVE * ! -057900* LONGUEUR : 300 * ! -058000* PREFIXE : WS-4DCO- * ! -058100*--------------------------------------------------------------- * ! -058200 ! -058300* ------------------------------------------------------------ ! -058400* INDICATEURS DE MAJ COMMAREA PAR APPEL DU MODULE K4DINITC ! -058500* (MISE A JOUR GENERALISEE DE COMMAREA) ! -058600* ------------------------------------------------------------ ! -058700 10 WS-4DCO-IND-MAJ-COMMAREA. ! -058800 15 WS-4DCO-IND-MAJ-COM. ! -058900 20 WS-4DCO-IND-MAJ-PTN PIC X(001). ! -059000* INDICATEUR DE MAJ INFOS PARTENAIRE ! -059100 20 WS-4DCO-IND-MAJ-PRD PIC X(001). ! -059200* INDICATEUR DE MAJ INFOS PRODUIT ! -059300 20 WS-4DCO-IND-MAJ-CLT PIC X(001). ! -059400* INDICATEUR DE MAJ INFOS CLIENT ! -059500 20 WS-4DCO-IND-MAJ-CLT-CTR PIC X(001). ! -059600* INDICATEUR DE MAJ INFOS CLT AVEC INFOS CTR ! -059700 20 WS-4DCO-IND-MAJ-PRD-SSINIT PIC X(001). ! -059800* INDICATEUR DE MAJ INFOS PRODUIT SANS INIT ! -059900 20 WS-4DCO-IND-MAJ-HBI PIC X(001). ! -060000* INDICATEUR DE MAJ INFOS HABILITATION ! -060100 20 FILLER PIC X(002). ! -060200* ZONE DISPONIBLE ! -060300 15 WS-4DCO-CD-RET-MAJ-COM PIC S9(4) COMP. ! -060400* CODE RETOUR SUR MAJ COMMAREA ! -060500 ! -060600* ------------------------------------------------------------ ! -060700 10 WS-4DCO-CCHX PIC X(002). ! -060800* CODE CHOIX ! -060900 10 WS-4DCO-TS-IDENT PIC X(008). ! -061000* IDENTIFIANT DE LA TS D'EDITION ! -061100 10 WS-4DCO-LMSG PIC X(070). ! -061200* LIBELLE MESSAGE ! -061300 10 WS-4DCO-PGM PIC X(008). ! -061400* NOM DU PROGRAMME ! -061500 10 WS-4DCO-DATEJOUR. ! -061600* DATE DU JOUR ! -061700 15 WS-4DCO-DATESA. ! -061800* ANNEE ET SIECLE DATE DU JOUR ! -061900 20 WS-4DCO-DATESS PIC X(002). ! -062000* SIECLE DATE DU JOUR ! -062100 20 WS-4DCO-DATEAA PIC X(002). ! -062200* ANNEE DATE DU JOUR ! -062300 15 WS-4DCO-DATEMM PIC X(002). ! -062400* MOIS DATE DU JOUR ! -062500 15 WS-4DCO-DATEJJ PIC X(002). ! -062600* JOUR DATE DU JOUR ! -062700 10 WS-4DCO-HEUREJOUR. ! -062800* HORAIRE DE TRAITEMENT ! -062900 15 WS-4DCO-HEUREHH PIC X(002). ! -063000* HEURE HORAIRE DE TRAITEMENT ! -063100 15 WS-4DCO-HEUREMM PIC X(002). ! -063200* MINUTE HORAIRE DE TRAITEMENT ! -063300 10 WS-4DCO-OKVALID PIC X(001). ! -063400* FLAG DE VALIDATION DONNEES ! -063500* Rajout pour test sous telon ! -063600 88 ECRAN-ATTENTE-VALIDATION VALUE '*'. ! -063700 88 ECRAN-ATTENTE-NORMALE VALUE ' '. ! -063800 10 WS-4DCO-OKBEN PIC X(001). ! -063900* FLAG DE VALIDATION DONNEES ECRANS BENEF. ! -064000 10 WS-4DCO-BLOCAGE PIC X(001). ! -064100* FLAG DE BLOCAGE DE LA SAISIE ! -064200 10 WS-4DCO-BANQDOM PIC X(005). ! -064300* CODE BANQUE DU COMPTE DOM ! -064400 10 WS-4DCO-GUICHDOM. ! -064500* CODE GUICHET DU COMPTE DOM ! -064600 15 WS-4DCO-DEPDOM PIC X(002). ! -064700* NO DE DEPARTEMENT ! -064800 15 WS-4DCO-CAIDOM PIC X(003). ! -064900* NO DE CAISSE SUR 3 POS. ! -065000 10 WS-4DCO-NO-PAGE PIC 9(002). ! -065100* NUMERO DE PAGE ! -065200 10 WS-4DCO-NB-PAGES PIC 9(002). ! -065300* NOMBRE DE PAGES ! -065400 10 WS-4DCO-CD-DOC PIC X(007). ! -065500* REFERENCE DE L'EDITION ! -065600 10 WS-4DCO-RETOUR PIC X(001). ! -065700* CODE RETOUR ! -065800 10 WS-4DCO-IND-LETTRE-CHEQUE PIC X(001). ! -065900* FLAG TRAITEMENT LETTRES-CHEQUES ! -066000 10 WS-4DCO-MVT-RETRO PIC X(001). ! -066100* INDICATEUR AUTORISATION MVT RETROACTIF ! -066200 10 WS-4DCO-TS-ITEM PIC 9(002). ! -066300* NUMERO D'ITEM TS D'EDITION ! -066400 10 WS-4DCO-TRF-SORTIE PIC X(001). ! -066500* FLAG TRF EN SORTIE ! -066600 10 WS-4DCO-CD-RET PIC X(002). ! -066700* CODE RETOUR PROGRAMMES DE DEBRANCHEMENT ! -066800 10 WS-4DCO-FCT PIC X(001). ! -066900* CODE FONCTIONNEMENT DU COMPTE ! -067000 10 WS-4DCO-CHG-CPT-DOM PIC X(001). ! -067100* INDICATEUR DE CHANGEMENT DU COMPTE DOM ! -067200 10 WS-4DCO-NO-CTR PIC X(006). ! -067300* NUMERO DE CONTRAT FISCAL ! -067400 10 WS-4DCO-CD-NTS PIC X(001). ! -067500* INDICATEUR DE NANTISSEMENT ! -067600 10 WS-4DCO-DA-SCR. ! -067700* DATE SOUSCRIPTION ! -067800 15 WS-4DCO-DA-SCR-SSAA. ! -067900* SIECLE ANNEE DATE SOUSCR. ! -068000 20 WS-4DCO-DA-SCR-SS PIC X(002). ! -068100* SIECLE DATE SOUSCRIPTION ! -068200 20 WS-4DCO-DA-SCR-AA PIC X(002). ! -068300* ANNEE DATE SOUSCRIPTION ! -068400 15 WS-4DCO-DA-SCR-MM PIC X(002). ! -068500* MOIS DATE SOUSCRIPTION ! -068600 15 WS-4DCO-DA-SCR-JJ PIC X(002). ! -068700* JOUR DATE SOUSCRIPTION ! -068800 10 WS-4DCO-CPT-PAS. ! -068900* COMPTE DE PASSAGE DES CCM ! -069000 15 WS-4DCO-CPT-PAS-RAC PIC X(007). ! -069100* RACINE DE PASSAGE DES CCM ! -069200 15 WS-4DCO-CPT-PAS-CLE PIC X(001). ! -069300* RACINE DE PASSAGE DES CCM ! -069400 10 WS-4DCO-DEMANDE-PR PIC X(003). ! -069500* CODE CONSULTATION PRIME OU DEMANDE PRIME ! -069600 10 WS-4DCO-MTF-CLO PIC X(001). ! -069700* CODE MOTIF CLOTURE DU COMPTE ! -069800 10 WS-4DCO-NB-BNF PIC 9(002). ! -069900* NOMBRE DE BENEFICIAIRES ! -070000 10 WS-4DCO-NB-ESS-CNX PIC 9(001). ! -070100* NOMBRE ESSAIS CONNEXION ! -070200 ! -070300* ------------------------------------------------------------ ! -070400* PARTIE COMMUNE POUR AFFICHAGE MENU ! -070500* ------------------------------------------------------------ ! -070600 10 WS-4DCO-CD-APPLI PIC X(004). ! -070700* CODE APPLICATION DESTINATION ! -070800 10 WS-4DCO-CD-OPT-SAUV. ! -070900* OPTION CHOISIE DU MENU PRECEDENT ! -071000 15 WS-4DCO-CD-OPT-MP PIC X(002). ! -071100* OPTION CHOISIE DU MENU PRINCIPAL ! -071200 15 WS-4DCO-CD-OPT-MS PIC X(002). ! -071300* OPTION CHOISIE DU MENU SECONDAIRE ! -071400 15 WS-4DCO-CD-OPT-MT PIC X(002). ! -071500* OPTION CHOISIE DU MENU TERTIAIRE ! -071600 15 WS-4DCO-CD-OPT-MQ PIC X(002). ! -071700* OPTION CHOISIE DU MENU QUATERNAIRE ! -071800 15 FILLER PIC X(004). ! -071900* ZONES DISPO (pour autre type de menu) ! -072000 ! -072021 10 WS-4DCO-DATE-FIN. ! -072022 15 WS-4DCO-DATE-FIN-SSAA PIC 9(004). ! -072023 15 WS-4DCO-DATE-FIN-MM PIC 9(002). ! -072024 15 WS-4DCO-DATE-FIN-JJ PIC 9(002). ! -072025* date pour selection dans liste ! -072026* (voir date-selection plus haut) ! -072030 ! -072100* ------------------------------------------------------------ ! -072200* PARTIE COMMUNE POUR CONFIDENTIALITE ! -072300* ------------------------------------------------------------ ! -072400 10 WS-4DCO-CONFID PIC X(001). ! -072500* TYPE DE CONFIDENTIALITE ! -072600 88 CONFID-T VALUE 'T'. ! -072700* CONFIDENTIALITE TOUT PARTENAIRE ! -072800 88 CONFID-X VALUE 'X'. ! -072900* CONFIDENTIALITE TOUT PARTENAIRE SAUF ! -073000 88 CONFID-P VALUE 'P'. ! -073100* CONFIDENTIALITE PARTENAIRE (1 A N) ! -073200 88 CONFID-A VALUE 'A'. ! -073300* CONFIDENTIALITE AGENCE (1 A N) ! -073400 88 CONFID-G VALUE 'G'. ! -073500* CONFIDENTIALITE AGENT (1 A N) ! -073600 10 WS-4DCO-NB-OCC-CF PIC 9(003). ! -073700* NOMBRE OCCURENCES TS CONFIDENTIALITE ! -073800 ! -073900* ------------------------------------------------------------ ! -074000* PARTIE COMMUNE POUR DEROGATIONS ! -074100* ------------------------------------------------------------ ! -074200 10 WS-4DCO-DEROG. ! -074300* DEROGATIONS PAR TYPE DE DONNEE ! -074400 15 WS-4DCO-IDC-AUT-DRG-DA PIC X(1). ! -074500* INDICATEUR DEROGATION DATE ! -074600 15 WS-4DCO-IDC-AUT-DRG-AG PIC X(1). ! -074700* INDICATEUR DEROGATION AGE ! -074800 15 WS-4DCO-IDC-AUT-DRG-MT PIC X(1). ! -074900* INDICATEUR DEROGATION MONTANT ! -075000 15 WS-4DCO-IDC-AUT-DRG-NB PIC X(1). ! -075100* INDICATEUR DEROGATION NOMBRE ! -075200 15 WS-4DCO-IDC-AUT-DRG-TX PIC X(1). ! -075300* INDICATEUR DEROGATION TAUX ! -075400 15 WS-4DCO-IDC-AUT-DRG-CP PIC X(1). ! -075500* INDICATEUR DEROGATION COMPTE ! -075600 15 WS-4DCO-IDC-AUT-DRG-TT PIC X(1). ! -075700* INDICATEUR DEROGATION SUR TAUX PAR TRANCHE ! -075800 15 WS-4DCO-IDC-AUT-DRG-TC PIC X(1). ! -075900* INDICATEUR DEROGATION TRAITEMENT DES CHEQUES ! -076000 15 WS-4DCO-IDC-AUT-DRG-SF PIC X(1). ! -076100* INDICATEUR DEROGATION SOCIETAIRE FIDELE ! -076200 15 WS-4DCO-IDC-AUT-DRG-AN PIC X(1). ! -076300* INDICATEUR DEROGATION ANNULATION NON JOUR ! -076400 15 WS-4DCO-IDC-N-IMT PIC X(1). ! -076500* INDICATEUR DEROGATION AVIS DE NON IMPOSITION ! -076600 15 WS-4DCO-IDC-VAL-PCE PIC X(1). ! -076700* INDICATEUR DEROGATION VALIDATION PIECES ! -076800 15 WS-4DCO-IDC-PRS-MVTS-PMR PIC X(1). ! -076900* INDICATEUR DEROGATION CONTRAT AVEC MVTS ! -077000* POST-MORTEM SUR ANNEE N-1 ! -077100 15 WS-4DCO-IDC-AUT-DRG-CLA PIC X(1). ! -077200* INDICATEUR DEROGATION SAISIE CLAUSE ! -077300 15 WS-4DCO-IDC-AUT-DRG-PM PIC X(1). ! -077400* INDICATEUR DEROGATION SAISIE PERSONNE MORALE ! -077500 15 WS-4DCO-IDC-AUT-DQ-DSK PIC X(1). ! -077600* INDICATEUR DEROGATION DEQUALIFICATION DSK ! -077610 15 WS-4DCO-IDC-AUT-DRG-FRS-RPP PIC X(1). ! -077620* INDICATEUR DEROGATION FRAIS RACHAT PARTIEL PROGRAMME ! -077700 15 FILLER PIC X(08). ! -077800* RESERVE (25 DEROGATIONS ETANT PREVUES) ! -077900* ------------------------------------------------------- ! -078000* TOP DE CONTROLE SAISIE ! -078100* ------------------------------------------------------- ! -078200 10 WS-4DCO-IDC-AFF PIC X(001). ! -078300* FLAG DE DONNEES ! -078400* Rajout pour test / gestion des contrats ! -078500 88 AFF-COMPTE VALUE 'C'. ! -078600 88 AFF-POLICE VALUE 'P'. ! -078700 88 AFF-TOUT VALUE ' '. ! -078800* ------------------------------------------------------ ! -078900* MEF IDENTIFIANT CONTRAT EN FONCTION PARTENAIRE ! -079000* PARTENAIRE LIBELLE IDENTIFIANT ! -079100* ---------- -------------- ------------------------- ! -079200* CMB COMPTE A CREER RACINE CLE CATEGORIE RANG ! -079300* CMAB " " ! -079400* CMSO " " ! -079500* EXTERIEUR NO. ADHESION PRODUIT POLICE CLE ! -079600* CMLACO " " ! -079700* ------------------------------------------------------ ! -079800 10 WS-4DCO-FIX-LIB-IDT-CTR PIC X(016). ! -079900* Libelle contrat ! -080000* ------------------------------------------------------ ! -080100 10 WS-4DCO-FIX-NO-IDT-CTR PIC X(015). ! -080200* Identifiant contrat ! -080300* ------------------------------------------------------ ! -080400 10 WS-4DCO-RPP-ENCO PIC X(001). ! -080500* Indicateur rachat partiel programme en cours ! -080600* ! -080700* ------------------------------------------------------- ! -080800* TOP BLOCAGE APPLICATIF GEODES ! -080900* ------------------------------------------------------- ! -081000 10 WS-4DCO-FIX-BLOC-TRAN PIC X(001). ! -081100* Top blocage transaction ! -081200* ------------------------------------------------------- ! -081300* EDITION DE DOCUMENT INFORMATIONS RESERVEES ! -081400* ------------------------------------------------------- ! -081500 10 WS-4DCO-TOP-EDIT-DEM PIC X(003). ! -081600* Top reconnaissance edition demandee ! -081700 10 WS-4DCO-TOP-OPE-ORIG REDEFINES ! -081800 WS-4DCO-TOP-EDIT-DEM PIC X(003). ! -081900* Top reconnaissance origine de l'operation ! -082000 10 WS-4DCO-4DKA-FDP PIC X(010). ! -082100* Code reference document fond de page ! -082200 10 WS-4DCO-4DKA-TOP-PTN PIC X(001). ! -082300* Top edition libelle partenaire ! -082400 10 WS-4DCO-4DKA-TYPE-IMP PIC X(001). ! -082500* Reference de l'imprimante utilis�e ! -082600 10 WS-4DCO-4DKA-NBR-EX PIC 9(001). ! -082700* Reference de l'imprimante utilis�e ! -082800 10 WS-4DCO-4DKA-NO-IMP PIC X(004). ! -082900* Numero de l'imprimante cics utilis�e ! -083000 10 WS-4DCO-CD-MOD-CL PIC X(002). ! -083100* Type de modification ! -083200* ------------------------------------------------------- ! -083300* REEDITION DE DOCUMENT ! -083400* ------------------------------------------------------- ! -083500 10 WS-4DCO-CD-REEDITION PIC X(001). ! -083600* code reedition (o/n) ! -083700 10 WS-4DCO-CD-PRESENCE-ARCH PIC X(001). ! -083800* code presence archive (o/n) ! -083900* ------------------------------------------------------ ! -084000 10 WS-4DCO-CD-EVE-TY PIC X(006). ! -084100* CODE EVENEMENT TRAITE ! -084200 10 WS-4DCO-DT-EVE PIC X(008). ! -084300* DATE EVENEMENT TRAITE ! -084320 10 WS-4DCO-IDC-PRD-PERP PIC X(001). ! -084330* indicateur produit PERP ! -084600* ------------------------------------------------------ ! -084700* ! -084800 05 WS-4DCO-CONTRAT-ENT. ! -084900* =================== ! -085000*--------------------------------------------------------------- * ! -085100* COMMAREA : PARTIE COMMUNE RESERVEE AUX CONTRATS * ! -085200* LONGUEUR : 70 ENTREPRISE * ! -085300* PREFIXE : WS-4DCO- * ! -085400*--------------------------------------------------------------- * ! -085500 ! -085600 10 WS-4DCO-CD-TRANS PIC X(004). ! -085700* CODE TRANSACTION ASSOCIE AU PRODUIT ! -085800 10 WS-4DCO-NO-CLI-PTN-EN PIC S9(7) COMP-3. ! -085900* NUMERO INTERNE CLIENT ENTREPRISE ! -086000 10 WS-4DCO-NO-ORD-CTR-EN PIC S9(2) COMP-3. ! -086100* NUMERO D'ORDRE DU CONTRAT ENTREPRISE ! -086200 10 WS-4DCO-DA-NAI-CJ. ! -086300* DATE DE NAISSANCE DU CONJOINT ! -086400 15 WS-4DCO-DA-NAI-CJ-SSAA. ! -086500* SIECLE ANNEE NAISSANCE CONJOINT ! -086600 20 WS-4DCO-DA-NAI-CJ-SS PIC X(002). ! -086700* SIECLE NAISSANCE CONJOINT ! -086800 20 WS-4DCO-DA-NAI-CJ-AA PIC X(002). ! -086900* ANNEE NAISSANCE CONJOINT ! -087000 15 WS-4DCO-DA-NAI-CJ-MM PIC X(002). ! -087100* MOIS NAISSANCE CONJOINT ! -087200 15 WS-4DCO-DA-NAI-CJ-JJ PIC X(002). ! -087300* JOUR NAISSANCE CONJOINT ! -087400 10 WS-4DCO-MT-SAL-A PIC S9(13)V9(2) COMP-3. ! -087500* MONTANT DU SALAIRE ANNUEL ! -087600 10 WS-4DCO-DA-EMB. ! -087700* DATE D'EMBAUCHE ! -087800 15 WS-4DCO-DA-EMB-SSAA. ! -087900* SIECLE ANNEE EMBAUCHE ! -088000 20 WS-4DCO-DA-EMB-SS PIC X(002). ! -088100* SIECLE EMBAUCHE ! -088200 20 WS-4DCO-DA-EMB-AA PIC X(002). ! -088300* ANNEE EMBAUCHE ! -088400 15 WS-4DCO-DA-EMB-MM PIC X(002). ! -088500* MOIS EMBAUCHE ! -088600 15 WS-4DCO-DA-EMB-JJ PIC X(002). ! -088700* JOUR EMBAUCHE ! -088800 10 WS-4DCO-NO-FAX PIC X(012). ! -088900* MONTANT DU SALAIRE ANNUEL ! -089000* ------------------------------------------------------ ! -089100 10 WS-4DCO-TOP-DECES PIC X. ! -089200 10 WS-4DCO-DA-DECES PIC X(10). ! -089300* DATE DE DECES de l'adh�rent PIC X(10). ! -089400* 10 FILLER PIC X(013). ! -089500 10 WS-4DCO-PGM-SVT PIC X(08). ! -089600 10 FILLER PIC X(005). ! -089700* ZONES DISPONIBLES (CONTRATS ENTREPRISE) ! -089800* ------------------------------------------------------ ! - *----------------------------------------------! END Y4DFIXE ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y4DGEODE ! - *------------------------------------------------------------------- -000100****************************************************************** ! -000200* * ! -000300* G E O D E / S U R A V E N I R * ! -000400* * ! -000500****************************************************************** ! -000600*================================================================= ! -000700*= = ! -000800*= APPLICATION : COMMAREA COMMUNE PROGRAMME = ! -000900*= = ! -001000*================================================================= ! -001100 ! -001200 03 WS-4DCO-PROGRAM. ! -001300* ================ ! -001400 05 FILLER PIC X(1800). ! -001500 ! -001600* ------------------------------------------------------ * ! -001700* ! -001800*================================================================ ! -001900* ! -002000*= APPLICATION : GESTION DES CONTRATS = ! -002100* ! -002200*================================================================ ! -002300 ! -002400 03 WS-4DCO-MENU-CTR REDEFINES WS-4DCO-PROGRAM. ! -002500* ================ ! -002600* ------------------------------------------------------ * ! -002700* COMMAREA : MENU GESTION DES CONTRATS * ! -002800* LONGUEUR : 1800 * ! -002900* PREFIXE : WS-4DCO-MNC * ! -003000* ------------------------------------------------------ * ! -003100 ! -003200 05 WS-4DCO-MNC-BLOC-TRAN PIC X(001). ! -003300* TOP BLOCAGE TRANSACTION ! -003400 05 FILLER PIC X(1799). ! -003500* ZONES DISPONIBLES ! -003600* ------------------------------------------------------ * ! -003700 ! -003800 03 WS-4DCO-SOUS REDEFINES WS-4DCO-PROGRAM. ! -003900* ============ ! -004000* ------------------------------------------------------ * ! -004100* COMMAREA : SOUSCRIPTION / TRANSFERT EN ENTREE * ! -004200* LONGUEUR : 1800 * ! -004300* PREFIXE : WS-4DCO- * ! -004400* ------------------------------------------------------ * ! -004500 ! -004600 05 WS-4DCO-INTITULEB PIC X(002). ! -004700* CODE INTITULE BENEFICIAIRE ! -004800 05 WS-4DCO-NOMB PIC X(032). ! -004900* NOM BENEFICIAIRE ! -005000 05 WS-4DCO-RUEB-1 PIC X(032). ! -005100* RUE / ADRESSE BENEFICIAIRE ! -005200 05 WS-4DCO-RUEB-2 PIC X(032). ! -005300* RUE / ADRESSE BENEFICIAIRE ! -005400 05 WS-4DCO-COMMUB PIC X(032). ! -005500* COMMUNE / ADRESSE BENEFICIAIRE ! -005600 05 WS-4DCO-CODPOSB PIC X(005). ! -005700* CODE POSTAL / ADRESSE BENEFICIAIRE ! -005800 05 WS-4DCO-BENEF PIC 9(02). ! -005900* NO BENEFICIAIRE ! -006000 05 FILLER PIC X(001). ! -006100* ZONE DISPONIBLE ! -006200 05 WS-4DCO-EXPED PIC X(001). ! -006300* CODE EXPEDITION ! -006400 05 WS-4DCO-NBEN PIC 9(02). ! -006500* NOMBRE DE BENEFICIAIRES ! -006600 05 WS-4DCO-PERIOD PIC X(001). ! -006700* CODE PERIODICITE V.P. ! -006800 05 WS-4DCO-AJUST PIC X(001). ! -006900* INDICATEUR AJUSTEMENT DE COTISATION ! -007000 05 WS-4DCO-DSOUS. ! -007100* DATE DE SOUSCRIPTION ! -007200 10 WS-4DCO-DSOUSSA. ! -007300* SIECLE ANNEE DATE DE SOUSCRIPTION ! -007400 15 WS-4DCO-DSOUSS PIC X(002). ! -007500* SIECLE DATE DE SOUSCRIPTION ! -007600 15 WS-4DCO-DSOUSA PIC X(002). ! -007700* ANNEE DATE DE SOUSCRIPTION ! -007800 10 WS-4DCO-DSOUSM PIC X(002). ! -007900* MOIS DATE DE SOUSCRIPTION ! -008000 10 WS-4DCO-DSOUSJ PIC X(002). ! -008100* JOUR DATE DE SOUSCRIPTION ! -008200 05 WS-4DCO-DEFFET. ! -008300* DATE D'EFFET CONTRAT ! -008400 10 WS-4DCO-DEFFETSA. ! -008500* SIECLE ANNEE DATE D'EFFET ! -008600 15 WS-4DCO-DEFFETS PIC X(002). ! -008700* SIECLE DATE D'EFFET ! -008800 15 WS-4DCO-DEFFETA PIC X(002). ! -008900* ANNEE DATE D'EFFET ! -009000 10 WS-4DCO-DEFFETM PIC X(002). ! -009100* MOIS DATE D'EFFET ! -009200 10 WS-4DCO-DEFFETJ PIC X(002). ! -009300* JOUR DATE D'EFFET ! -009400 05 WS-4DCO-DURCNT. ! -009500* DUREE DU CONTRAT ! -009600 10 WS-4DCO-AADUR PIC X(002). ! -009700* ANNEE DUREE DU CONTRAT ! -009800 10 WS-4DCO-MMDUR PIC X(002). ! -009900* MOIS DUREE DU CONTRAT ! -010000 05 WS-4DCO-DRTENT PIC S9(07)V9(02). ! -010100* MONTANT DES DROITS D'ENTREE ! -010200 05 WS-4DCO-DRTENT-C REDEFINES WS-4DCO-DRTENT ! -010300 PIC S9(09). ! -010400* MONTANT DES DROITS D'ENTREE ! -010500 05 WS-4DCO-BRUTINI PIC S9(09)V9(02). ! -010600* MONTANT BRUT V.I. ! -010700 05 WS-4DCO-BRUTINI-C REDEFINES WS-4DCO-BRUTINI ! -010800 PIC S9(11). ! -010900* MONTANT BRUT V.I. ! -011000 05 WS-4DCO-BRUTPER PIC S9(09)V9(02). ! -011100* MONTANT BRUT V.P. ! -011200 05 WS-4DCO-BRUTPER-C REDEFINES WS-4DCO-BRUTPER ! -011300 PIC S9(11). ! -011400* MONTANT BRUT V.P. ! -011500 05 WS-4DCO-TXFRINI PIC 9(02)V9(03). ! -011600* TAUX DE FRAIS V.I. ! -011700 05 WS-4DCO-TXFRINI-C REDEFINES WS-4DCO-TXFRINI ! -011800 PIC 9(05). ! -011900* TAUX DE FRAIS V.I. ! -012000 05 WS-4DCO-TXFRPER PIC 9(02)V9(03). ! -012100* TAUX DE FRAIS V.P. ! -012200 05 WS-4DCO-TXFRPER-C REDEFINES WS-4DCO-TXFRPER ! -012300 PIC 9(05). ! -012400* TAUX DE FRAIS V.P. ! -012500 05 WS-4DCO-MTFRINI PIC S9(09)V9(02). ! -012600* MONTANT FRAIS V.I. ! -012700 05 WS-4DCO-MTFRINI-C REDEFINES WS-4DCO-MTFRINI ! -012800 PIC S9(11). ! -012900* MONTANT FRAIS V.I. ! -013000 05 WS-4DCO-MTFRPER PIC S9(09)V9(02). ! -013100* MONTANT FRAIS V.P. ! -013200 05 WS-4DCO-MTFRPER-C REDEFINES WS-4DCO-MTFRPER ! -013300 PIC S9(11). ! -013400* MONTANT FRAIS V.P. ! -013500 05 WS-4DCO-NETINI PIC S9(09)V9(02). ! -013600* MONTANT NET V.I. ! -013700 05 WS-4DCO-NETINI-C REDEFINES WS-4DCO-NETINI ! -013800 PIC S9(11). ! -013900* MONTANT NET V.I. ! -014000 05 WS-4DCO-NETPER PIC S9(09)V9(02). ! -014100* MONTANT NET V.P. ! -014200 05 WS-4DCO-NETPER-C REDEFINES WS-4DCO-NETPER ! -014300 PIC S9(11). ! -014400* MONTANT NET V.P. ! -014500 05 WS-4DCO-DVERSINI. ! -014600* DATE EFFET VERSEMENT INITIAL ! -014700 10 WS-4DCO-DVINISA. ! -014800* SIECLE ANNEE DATE EFFET V.I. ! -014900 15 WS-4DCO-DVINIS PIC X(002). ! -015000* SIECLE DATE EFFET V.I. ! -015100 15 WS-4DCO-DVINIA PIC X(002). ! -015200* ANNEE DATE EFFET V.I. ! -015300 10 WS-4DCO-DVINIM PIC X(002). ! -015400* MOIS DATE EFFET V.I. ! -015500 10 WS-4DCO-DVINIJ PIC X(002). ! -015600* JOUR DATE EFFET V.I. ! -015700 05 WS-4DCO-DVERSPER. ! -015800* DATE EFFET VERSEMENT PERIODIQUE ! -015900 10 WS-4DCO-DVPERSA. ! -016000* SIECLE ANNEE DATE EFFET V.P. ! -016100 15 WS-4DCO-DVPERS PIC X(002). ! -016200* SIECLE DATE EFFET V.P. ! -016300 15 WS-4DCO-DVPERA PIC X(002). ! -016400* ANNEE DATE EFFET V.P. ! -016500 10 WS-4DCO-DVPERM PIC X(002). ! -016600* MOIS DATE EFFET V.P. ! -016700 10 WS-4DCO-DVPERJ PIC X(002). ! -016800* JOUR DATE EFFET V.P. ! -016900 05 WS-4DCO-TXMNGAR PIC 9(02)V9(03). ! -017000* TAUX MINIMUM GARANTI ! -017100 05 WS-4DCO-COM-PTN-SO PIC S9(07)V9(02). ! -017200* MONTANT COMMISSION DU PARTENAIRE ! -017300 05 WS-4DCO-COM-PTN-SO-C REDEFINES WS-4DCO-COM-PTN-SO ! -017400 PIC S9(09). ! -017500* MONTANT COMMISSION PARTENAIRE ! -017600 05 WS-4DCO-COM-GTN-SO PIC S9(07)V9(02). ! -017700* MONTANT COMMISSION SURAVENIR ! -017800 05 WS-4DCO-COM-GTN-SO-C REDEFINES WS-4DCO-COM-GTN-SO ! -017900 PIC S9(09). ! -018000* MONTANT COMMISSION SURAVENIR ! -018100 05 WS-4DCO-QPART PIC 9(03). ! -018200* QUOTE PART ! -018300 05 WS-4DCO-CUMULQPART PIC 9(03). ! -018400* CUMUL QUOTE PART ! -018500 05 WS-4DCO-AANAIB. ! -018600* DATE DE NAISSANCE BENEFICIAIRE ! -018700 10 WS-4DCO-DNAISSAB. ! -018800* SIECLE ANNEE DATE DE NAISSANCE BENEF ! -018900 15 WS-4DCO-DNAISSB PIC X(002). ! -019000* SIECLE DATE DE NAISSANCE BENEF ! -019100 15 WS-4DCO-DNAISAB PIC X(002). ! -019200* ANNEE DATE DE NAISSANCE BENEF ! -019300 10 WS-4DCO-DNAISMB PIC X(002). ! -019400* MOIS DATE DE NAISSANCE BENEF ! -019500 10 WS-4DCO-DNAISJB PIC X(002). ! -019600* JOUR DATE DE NAISSANCE BENEF ! -019700 05 WS-4DCO-RIB-INI. ! -019800* COMPTE INTER-BANCAIRE VERSEMENT INITIAL ! -019900 10 WS-4DCO-BNQRIB-I PIC X(005). ! -020000* BANQUE RIB COMPTE DOM V.I. ! -020100 10 WS-4DCO-GCHRIB-I PIC X(005). ! -020200* GUICHET RIB COMPTE DOM V.I. ! -020300 10 WS-4DCO-RACRIB-I PIC X(011). ! -020400* RACINE RIB COMPTE DOM V.I. ! -020500 10 WS-4DCO-CLERIB-I PIC X(002). ! -020600* CLE RIB COMPTE DOM V.I. ! -020700 05 WS-4DCO-RIB-PER. ! -020800* COMPTE INTER-BANCAIRE VERSEMENT PERIODIQUE ! -020900 10 WS-4DCO-BNQRIB-P PIC X(005). ! -021000* BANQUE RIB COMPTE DOM V.P. ! -021100 10 WS-4DCO-GCHRIB-P PIC X(005). ! -021200* GUICHET RIB COMPTE DOM V.P. ! -021300 10 WS-4DCO-RACRIB-P PIC X(011). ! -021400* RACINE RIB COMPTE DOM V.P. ! -021500 10 WS-4DCO-CLERIB-P PIC X(002). ! -021600* CLE RIB COMPTE DOM V.P. ! -021700 05 WS-4DCO-ETABLB PIC X(005). ! -021800* BANQUE RIB COMPTE DOM BENEF ! -021900 05 WS-4DCO-GUICHB PIC X(005). ! -022000* GUICHET RIB COMPTE DOM BENEF ! -022100 05 WS-4DCO-NOCPTB PIC X(011). ! -022200* RACINE RIB COMPTE DOM BENEF ! -022300 05 WS-4DCO-CLERIBB PIC X(002). ! -022400* CLE RIB COMPTE DOM BENEF ! -022500 05 WS-4DCO-SOLDINI PIC S9(13)V9(02). ! -022600* SOLDE COMPTE VERSEMENT INITIAL ! -022700 05 WS-4DCO-SOLDINI-C REDEFINES WS-4DCO-SOLDINI ! -022800 PIC S9(15). ! -022900* SOLDE COMPTE VERSEMENT INITIAL ! -023000 05 WS-4DCO-SOLDPER PIC S9(13)V9(02). ! -023100* SOLDE COMPTE VERSEMENT PERIODIQUE ! -023200 05 WS-4DCO-SOLDPER-C REDEFINES WS-4DCO-SOLDPER ! -023300 PIC S9(15). ! -023400* SOLDE COMPTE VERSEMENT PERIODIQUE ! -023500 05 WS-4DCO-DGARAN. ! -023600* DATE LIMITE GARANTIE TAUX ! -023700 10 WS-4DCO-DGARANSA. ! -023800* SIECLE ANNEE DATE LIMITE GARANTIE TAUX ! -023900 15 WS-4DCO-DGARANS PIC X(002). ! -024000* SIECLE DATE LIMITE GARANTIE TAUX ! -024100 15 WS-4DCO-DGARANA PIC X(002). ! -024200* ANNEE DATE LIMITE GARANTIE TAUX ! -024300 10 WS-4DCO-DGARANM PIC X(002). ! -024400* MOIS DATE LIMITE GARANTIE TAUX ! -024500 10 WS-4DCO-DGARANJ PIC X(002). ! -024600* JOUR DATE LIMITE GARANTIE TAUX ! -024700 05 WS-4DCO-VERS-PERIOD PIC X(001). ! -024800* INDICATEUR DE VERSEMENT PERIODIQUE ! -024900 05 WS-4DCO-TY-AJU-CTS PIC X(001). ! -025000* INDICATEUR AJUSTEMENT VERSEMENT ! -025100 05 WS-4DCO-DRG-FRS-GTN PIC X(001). ! -025200* INDICATEUR DE DEROGATION TAUX FRAIS ! -025300 05 WS-4DCO-DRG-DRT-ENT PIC X(001). ! -025400* INDICATEUR DE DEROGATION DROIT ENTREE ! -025500 05 WS-4DCO-SOUS-MINI PIC X(001). ! -025600* CODE SOUSCRIPTION MINITEL O/N ! -025700 05 WS-4DCO-REF-EXT-INTV PIC X(015). ! -025800* REFERENCES EXTERNES ! -025900 05 WS-4DCO-FICH-MINI-FERME PIC X(001). ! -026000* CODE FICHIERS MINITEL FERMES ! -026100 05 WS-4DCO-D1IRV. ! -026200* DATE 1ERE INSCRIPTION REGIME VIEILLESSE LOI MADELIN ! -026300 10 WS-4DCO-D1IRVSA. ! -026400* SIECLE ANNEE DATE 1ERE INSCRIPTION RG ! -026500 15 WS-4DCO-D1IRVS PIC X(002). ! -026600* SIECLE DATE 1ERE INSCRIPTION RG ! -026700 15 WS-4DCO-D1IRVA PIC X(002). ! -026800* ANNEE DATE 1ERE INSCRIPTION RG ! -026900 10 WS-4DCO-D1IRVM PIC X(002). ! -027000* MOIS DATE 1ERE INSCRIPTION RG ! -027100 10 WS-4DCO-D1IRVJ PIC X(002). ! -027200* JOUR DATE 1ERE INSCRIPTION RG ! -027300 05 WS-4DCO-MTMANN PIC S9(13)V9(02). ! -027400* MONTANT MINIMUM DE VERSEMENT ANNUEL LOI MADELIN ! -027500 05 WS-4DCO-MTMANN-C REDEFINES WS-4DCO-MTMANN ! -027600 PIC S9(15). ! -027700 05 WS-4DCO-MTMXANN PIC S9(13)V9(02). ! -027800* MONTANT MAXIMUM DE VERSEMENT ANNUEL LOI MADELIN ! -027900 05 WS-4DCO-MTMXANN-C REDEFINES WS-4DCO-MTMXANN ! -028000 PIC S9(15). ! -028100 05 WS-4DCO-DA-ARR-FIS. ! -028200* DATE D'ARRETE FISCAL (PREVI RETRAITE INDEPENDANTS) ! -028300 10 WS-4DCO-DA-ARR-FIS-MM PIC XX. ! -028400 10 WS-4DCO-DA-ARR-FIS-JJ PIC XX. ! -028500* TYPE D'ECHANGE FINANCIER POUR LES ENTREES (EIB,..) ! -028600 05 WS-4DCO-CD-TY-ECG-FNC PIC X(05). ! -028700 05 WS-4DCO-S-TOP-PREM-PREL PIC X(01). ! -028800 05 WS-4DCO-CD-TY-CLA PIC X(04). ! -028900* Code Type Clause ! -029000 05 WS-4DCO-IDC-MSG-BNF PIC X(01). ! -029100* Affichage d'un message warning selon type de clause ! -029200 05 WS-4DCO-LA-TY-CLA PIC X(20). ! -029300* Libell� Type Clause ! -029400 05 WS-4DCO-SOUS-CD-CDR-ADH PIC X(001). ! -029500* CODE CADRE ADHESION ! -029600 05 WS-4DCO-SOUS-IDC-PRD-PD PIC X(001). ! -029700* INDICATEUR TYPE DE PRODUIT ! -029800 05 WS-4DCO-SOUS-LA-CD-CDR-ADH PIC X(20). ! -029900* Libell� Type Clause ! -030000 05 WS-4DCO-SOUS-IDC-AFG-AGT-PA PIC X(001). ! -030100* INDICATEUR AFFICHAGE AGENT ! -030200 05 WS-4DCO-SOUS-IDC-AFG-PA PIC X(001). ! -030300* INDICATEUR AFFICHAGE REFERENCE PARTENAIRE ! -030400* -- VIE196 ADHESION MULTI INTERVENANT 12/05 CAPGEMINI ! -030500 05 WS-4DCO-SOUS-IDC-ADH-MI PIC X(001). ! -030600* INDICATEUR ADHESION MULTI INTERVENANTS ! -030700 05 FILLER PIC X(020). ! -030800* ZONES DISPONIBLES (CORRECTION 17/12/91) ! -030900* ! -031000 05 WS-4DCO-TRANSFERT-ENTREE. ! -031100* ZONES SPECIFIQUES TRANSFERT EN ENTREE ! -031200 10 WS-4DCO-DSOUS-PEP1. ! -031300* DATE SOUSCRIPTION 1ER PEP ! -031400 15 WS-4DCO-DSOUS-PEP1SA. ! -031500* SIECLE ANNEE DATE SOUSCRIPTION 1ER PEP ! -031600 20 WS-4DCO-DSOUS-PEP1S PIC X(002). ! -031700* SIECLE DATE SOUSCRIPTION 1ER PEP ! -031800 20 WS-4DCO-DSOUS-PEP1A PIC X(002). ! -031900* ANNEE DATE SOUSCRIPTION 1ER PEP ! -032000 15 WS-4DCO-DSOUS-PEP1M PIC X(002). ! -032100* MOIS DATE SOUSCRIPTION 1ER PEP ! -032200 15 WS-4DCO-DSOUS-PEP1J PIC X(002). ! -032300* JOUR DATE SOUSCRIPTION 1ER PEP ! -032400 10 WS-4DCO-BRUTGLO PIC S9(07)V9(02). ! -032500* MONTANT BRUT GLOBAL VERSMT DE TRANSFERT ! -032600 10 WS-4DCO-TAB-MTNETVER OCCURS 11. ! -032700* TABLEAU DES VERSEMENTS PAR ANNEE ! -032800 15 WS-4DCO-MTNETVER PIC S9(07)V9(02). ! -032900* MONTANT NET DES VERSEMENTS ! -033000 10 WS-4DCO-MTINCAP PIC S9(07)V9(02). ! -033100* MONTANT DES INTERETS CAPITALISES ! -033200 10 WS-4DCO-MTINCAP-C REDEFINES WS-4DCO-MTINCAP ! -033300 PIC S9(09). ! -033400* MONTANT DES INTERETS CAPITALISES ! -033500 10 WS-4DCO-TOP-TRF-CMB PIC X(01). ! -033600* TOP TRANSFERT PEP EN ENTREE CMB (O/N) ! -033700 10 WS-4DCO-ERREUR-BLOQUANTE PIC X(001). ! -033800* TOP ERREUR BLOQUANTE (O/N) ! -033900 10 WS-4DCO-DA-OPE-TRF PIC X(008). ! -034000* date op�ration transfert ! -034100 05 WS-4DCO-TFE-MT-VER-CTR PIC S9(15) COMP-3. ! -034200* transfert en entr�e - montant versement contrat ! -034300 05 WS-4DCO-SOUS-RETRO PIC X(001). ! -034400* INDICATEUR DE SOUSCRIPTION RETROACTIVE ! -034500 05 WS-4DCO-SCR-NANT PIC X(001). ! -034600* INDICATEUR NANTISSEMENT (AJOUT 17/12/91) ! -034700 05 WS-4DCO-LIB-IDT-CTR PIC X(016). ! -034800* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -034900 05 WS-4DCO-NO-IDT-CTR PIC X(015). ! -035000* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -035100 05 WS-4DCO-AGENT PIC X(008). ! -035200* N� D'AGENT GESTIONNAIRE DU CONTRAT ! -035300 05 WS-4DCO-NO-STR-GTN PIC X(006). ! -035400* N� DE STRUCTURE GESTIONNAIRE DU CONTRAT ! -035500 05 WS-4DCO-NO-STR-OPE PIC X(006). ! -035600* N� DE STRUCTURE QUI A EFFECTUEE L'OPERATION ! -035700 05 WS-4DCO-NO-ADR PIC 9(002). ! -035800* N� D'ADRESSE DU CLIENT ! -035900 05 WS-4DCO-NB-ADR-CLI PIC 9(003). ! -036000* NB D'ADRESSE DU CLIENT ! -036100 05 WS-4DCO-DET-FRS-AP. ! -036200* DETAIL DES FRAIS APPLIQUES ! -036300 10 WS-4DCO-TX-FRS-CUM-AP PIC 9(5) COMP-3. ! -036400* TAUX FRAIS CUMUL ! -036500 10 WS-4DCO-MT-FRS-OPE-AP PIC S9(9) COMP-3. ! -036600* MONTANT FRAIS OPERATION ! -036700 10 WS-4DCO-TX-FRS-GTN-AP PIC 9(5) COMP-3. ! -036800* TAUX FRAIS GESTION ! -036900 10 WS-4DCO-TX-FRS-COM-AP PIC 9(5) COMP-3. ! -037000* TAUX FRAIS COMMISSION ! -037100 10 WS-4DCO-MT-FRS-GTN-OPE-AP PIC S9(9) COMP-3. ! -037200* MONTANT FRAIS GESTION OPERATION ! -037300 10 WS-4DCO-MT-FRS-COM-OPE-AP PIC S9(9) COMP-3. ! -037400* MONTANT FRAIS COMMISSION OPERAT ! -037500 10 WS-4DCO-MT-NET-OPE-AP PIC S9(15) COMP-3. ! -037600* MONTANT NET OPERATION ! -037700 05 WS-4DCO-DET-FRS-ST. ! -037800* DETAIL DES FRAIS STANDARDS ! -037900 10 WS-4DCO-TX-FRS-CUM-ST PIC 9(5) COMP-3. ! -038000* TAUX FRAIS CUMUL ! -038100 10 WS-4DCO-MT-FRS-OPE-ST PIC S9(9) COMP-3. ! -038200* MONTANT FRAIS OPERATION ! -038300 10 WS-4DCO-TX-FRS-GTN-ST PIC 9(5) COMP-3. ! -038400* TAUX FRAIS GESTION ! -038500 10 WS-4DCO-TX-FRS-COM-ST PIC 9(5) COMP-3. ! -038600* TAUX FRAIS COMMISSION ! -038700 10 WS-4DCO-MT-FRS-GTN-OPE-ST PIC S9(9) COMP-3. ! -038800* MONTANT FRAIS GESTION OPERATION ! -038900 10 WS-4DCO-MT-FRS-COM-OPE-ST PIC S9(9) COMP-3. ! -039000* MONTANT FRAIS COMMISSION OPERAT ! -039100 10 WS-4DCO-MT-NET-OPE-ST PIC S9(15) COMP-3. ! -039200* MONTANT NET OPERATION ! -039300 05 WS-4DCO-TX-DERO-VI PIC X(001). ! -039400* INDICATEUR DE TAUX DEROGATOIRE SUR VI ! -039500 05 WS-4DCO-TX-DERO-VP PIC X(001). ! -039600* INDICATEUR DE TAUX DEROGATOIRE SUR VP ! -039700 05 WS-4DCO-NO-GEN-PRD PIC 9(003). ! -039800* NUMERO DE GENERATION DU PRODUIT ! -039900 05 WS-4DCO-NO-GEN-TYP PIC 9(003). ! -040000* NUMERO DE GENERATION DU TYPE DE PRODUIT ! -040100 05 WS-4DCO-BEN-MINI OCCURS 4. ! -040200* BENEFICIAIRES MINITEL 4 MAXI ! -040300 10 WS-4DCO-BEN-MINI-INT PIC X(02). ! -040400* INTITULE BENEFICIAIRE ! -040500 10 WS-4DCO-BEN-MINI-NOM PIC X(32). ! -040600* NOM + PRENOM BENEFICIAIRE ! -040700 10 WS-4DCO-BEN-MINI-DNAI. ! -040800 15 WS-4DCO-BEN-MINI-DNAI-SA. ! -040900 20 WS-4DCO-BEN-MINI-DNAI-SS PIC X(02). ! -041000 20 WS-4DCO-BEN-MINI-DNAI-AA PIC X(02). ! -041100 15 WS-4DCO-BEN-MINI-DNAI-MM PIC X(02). ! -041200 15 WS-4DCO-BEN-MINI-DNAI-JJ PIC X(02). ! -041300* DATE DE NAISSANCE BENEFICIAIRE ! -041400 10 WS-4DCO-BEN-MINI-QUOTPAR PIC 9(03). ! -041500* QUOTE PART ! -041600 05 WS-4DCO-IDC-CLA-PROR PIC X(001). ! -041700* CODE CLAUSE PROROGATION CONTRAT ! -041800 05 WS-4DCO-TXFRINI-X PIC X(006). ! -041900* SAUVEGARGE ZONE ECRAN (TX FRAIS VERS INI) ! -042000 05 WS-4DCO-TXFRPER-X PIC X(006). ! -042100* SAUVEGARGE ZONE ECRAN (TX FRAIS VERS PER) ! -042200 05 WS-4DCO-DRTENT-X PIC X(010). ! -042300* SAUVEGARGE ZONE ECRAN (TX FRAIS VERS PER) ! -042400 05 WS-4DCO-S-IDC-ACCORD-TX PIC X(001). ! -042500* INDICATEUR D'ACCORD TAUX DEROG SURAVENIR ! -042600 05 WS-4DCO-IDC-DRG-TT PIC X(001). ! -042700* INDICATEUR D'ACCORD TAUX / TRANCHE ! -042800 05 WS-4DCO-IDC-AUT-SOC-FDL PIC X(001). ! -042900* INDICATEUR AUTORISATION PARRAINAGE CONTRAT ! -043000 05 WS-4DCO-S-CESSION. ! -043100* INFORMATIONS TRANSFERT APRES SINISTRE ! -043200 10 WS-4DCO-S-CES-TM-STP PIC X(026). ! -043300 10 WS-4DCO-S-CES-NO-DOS-SIN PIC S9(013) COMP-3. ! -043400 10 WS-4DCO-S-CES-NO-BNF-SIN PIC S9(007) COMP-3. ! -043500 10 WS-4DCO-S-CES-DA-OPE PIC X(008). ! -043600 10 WS-4DCO-S-CES-NO-ORD-RGL PIC S9(002) COMP-3. ! -043700 10 WS-4DCO-S-CES-NO-CSN PIC S9(003) COMP-3. ! -043800 10 WS-4DCO-S-CES-MT-CSN PIC S9(013)V9(2) ! -043900 COMP-3. ! -044000 05 WS-4DCO-TOP-OPE-ORIG-SOUS PIC X(03). ! -044100 88 SOUSCRIPTION VALUE 'SOU'. ! -044200 88 PRE-SOUSCRIPTION VALUE 'SPR'. ! -044300 88 VALID-PRE-SOUSC VALUE 'VPR'. ! -044400 88 ANNUL-PRE-SOUSC VALUE 'APR'. ! -044500 88 SOUSC-SUITE-TRF VALUE 'STR'. ! -044600 88 TRF-EN-ENTREE VALUE 'TFE'. ! -044700***SOL ! -044800 05 WS-4DCO-4DJJ-CD-CLI-PTN-EN PIC X(15). ! -044900* CODE EXTERNE CLIENT ENTREPRISE ! -045000 05 WS-4DCO-4DJJ-NOM-CLI-PTN-EN PIC X(32). ! -045100* NOM CLIENT ENTREPRISE ! -045200* ! -045300*** 05 FILLER PIC X(714). ! -045400*** 05 FILLER PIC X(667). ! -045500***SOL ! -045600***DME ! -045700 05 WS-4DCO-DUR-CTR PIC X(04). ! -045800* DUREE CONTRAT ! -045900 05 WS-4DCO-AGE-MIN-SC PIC 9(03). ! -046000* AGE MINIMUN DU SOUSCRIPTEUR ! -046100 05 WS-4DCO-CD-IDT-STK PIC X(03). ! -046200* CODE IDENTIFIANT STOCK ! -046300 05 WS-4DCO-TX-FRS-STD-ENT PIC S9(2)V9(3) COMP-3. ! -046400* CODE IDENTIFIANT STOCK ! -046500***DME ! -046600 05 WS-4DCO-IDC-CLA-DMB PIC X. ! -046700 88 CLA-DMB-OK VALUE '1'. ! -046800* ! -046900 05 WS-4DCO-TRF-ENTREE-SUITE. ! -047000* ZONES SPECIFIQUES TRANSFERT EN ENTREE SUITE ! -047100 10 WS-4DCO-DA-RGU. ! -047200* DATE REGULARISATION ! -047300 15 WS-4DCO-DA-RGU-A PIC X(4). ! -047400* DATE REGULARISATION ANNEE ! -047500 15 WS-4DCO-DA-RGU-M PIC X(2). ! -047600* DATE REGULARISATION MOIS ! -047700 15 WS-4DCO-DA-RGU-J PIC X(2). ! -047800* DATE REGULARISATION JOUR ! -047900 10 WS-4DCO-CD-TY-RGU PIC X(1). ! -048000* CODE TYPE REGULARISATION ! -048100 10 WS-4DCO-LIB-TY-RGU PIC X(32). ! -048200* LIBELLE TYPE REGULARISATION ! -048300 10 WS-4DCO-MT-TRF-RGU PIC S9(13)V99 COMP-3. ! -048400* MONTANT TRANSFERT ! -048500* ! -048600 10 WS-4DCO-MT-TOTTRF-RGU PIC S9(07)V9(02). ! -048700* MONTANT TRANSFERT TOTAL ! -048800* ! -048900 10 WS-4DCO-MT-TOTCUM-VER PIC S9(07)V9(02). ! -049000* MONTANT VERSEMENT CUMULE TOTAL ! -049100* ! -049200 05 WS-4DCO-NUMCE PIC X(15). ! -049300* NUMERO DU CE ! -049400* ! -049500 05 WS-4DCO-LIBCE PIC X(16). ! -049600* LIBELLE DU CE ! -049700* ! -049800 05 WS-4DCO-IDC-PRS-FIS-SPC PIC X(01). ! -049900* indicateur anticipation PERP ! -050000* ! -050100 05 FILLER PIC X(554). ! -050200* ZONES DISPONIBLES ! -050300* ------------------------------------------------------ * ! -050400 ! -050500 03 WS-4DCO-VERS REDEFINES WS-4DCO-PROGRAM. ! -050600* ================ ! -050700* ------------------------------------------------------ * ! -050800* COMMAREA : VERSEMENT * ! -050900* LONGUEUR : 1800 * ! -051000* PREFIXE : WS-4DCO- * ! -051100* ------------------------------------------------------ * ! -051200 ! -051300 05 FILLER PIC X(016). ! -051400* ZONES DISPONIBLES ! -051500 05 WS-4DCO-RIBV. ! -051600* NO COMPTE INTERBANCAIRE V.E. ! -051700 10 WS-4DCO-BNQDOMV PIC X(005). ! -051800* BANQUE RIB COMPTE V.E. ! -051900 10 WS-4DCO-GUIDOMV PIC X(005). ! -052000* GUICHET RIB V.E. ! -052100 10 WS-4DCO-RACDOMV. ! -052200* RACINE RIB V.E. ! -052300 15 WS-4DCO-RACD0V PIC X(001). ! -052400* ! -052500 15 WS-4DCO-RACD1V PIC X(007). ! -052600* ! -052700 15 WS-4DCO-RACD2V PIC X(001). ! -052800* ! -052900 15 WS-4DCO-RACD3V PIC X(002). ! -053000* ! -053100 10 WS-4DCO-CLEDOMV PIC X(002). ! -053200* CLE RIB V.E. ! -053300 05 WS-4DCO-CPTDOMV. ! -053400* NO COMPTE DOMICILIATION ! -053500 10 WS-4DCO-CAICMBV PIC X(004). ! -053600* ! -053700 10 WS-4DCO-RACCMBV PIC X(007). ! -053800* ! -053900 10 WS-4DCO-CLECMBV PIC X(001). ! -054000* ! -054100 10 WS-4DCO-TYPCMBV PIC X(002). ! -054200* ! -054300 05 WS-4DCO-NOMVR PIC X(032). ! -054400* NOM CLIENT ! -054500 05 WS-4DCO-DUREEVR PIC X(004). ! -054600* DUREE DU CONTRAT ! -054700 05 WS-4DCO-CTRATVR PIC X(006). ! -054800* NO CONTRAT ! -054900 05 WS-4DCO-DSOUV. ! -055000* DATE SOUSCRIPTION CONTRAT ! -055100 10 WS-4DCO-DSOUVSA. ! -055200* SIECLE ANNEE DATE SOUSCRIPTION ! -055300 15 WS-4DCO-DSOUVS PIC X(002). ! -055400* SIECLE DATE SOUSCRIPTION ! -055500 15 WS-4DCO-DSOUVA PIC X(002). ! -055600* ANNEE DATE SOUSCRIPTION ! -055700 10 WS-4DCO-DSOUVM PIC X(002). ! -055800* MOIS DATE SOUSCRIPTION ! -055900 10 WS-4DCO-DSOUVJ PIC X(002). ! -056000* JOUR DATE SOUSCRIPTION ! -056100 05 WS-4DCO-DECHE. ! -056200* DATE ECHEANCE CONTRAT ! -056300 10 WS-4DCO-DECHESA. ! -056400* SIECLE ANNEE DATE ECHEANCE ! -056500 15 WS-4DCO-DECHES PIC X(002). ! -056600* SIECLE DATE ECHEANCE ! -056700 15 WS-4DCO-DECHEA PIC X(002). ! -056800* ANNEE DATE ECHEANCE ! -056900 10 WS-4DCO-DECHEM PIC X(002). ! -057000* MOIS DATE ECHEANCE ! -057100 10 WS-4DCO-DECHEJ PIC X(002). ! -057200* JOUR DATE ECHEANCE ! -057300 05 WS-4DCO-DVERS. ! -057400* DATE OPERATION VERSEMENT ! -057500 10 WS-4DCO-DVERSSA. ! -057600* SIECLE ANNEE DATE OPERATION V.E. ! -057700 15 WS-4DCO-DVERSS PIC X(002). ! -057800* SIECLE DATE OPERATION V.E. ! -057900 15 WS-4DCO-DVERSA PIC X(002). ! -058000* ANNEE DATE OPERATION V.E. ! -058100 10 WS-4DCO-DVERSM PIC X(002). ! -058200* MOIS DATE OPERATION V.E. ! -058300 10 WS-4DCO-DVERSJ PIC X(002). ! -058400* JOUR DATE OPERATION V.E. ! -058500 05 WS-4DCO-DEFFETV. ! -058600* DATE EFFET VERSEMENT ! -058700 10 WS-4DCO-DEFVSA. ! -058800* SIECLE ANNEE DATE EFFET V.E. ! -058900 15 WS-4DCO-DEFVS PIC X(002). ! -059000* SIECLE DATE EFFET V.E. ! -059100 15 WS-4DCO-DEFVA PIC X(002). ! -059200* ANNEE DATE EFFET V.E. ! -059300 10 WS-4DCO-DEFVM PIC X(002). ! -059400* MOIS DATE EFFET V.E. ! -059500 10 WS-4DCO-DEFVJ PIC X(002). ! -059600* JOUR DATE EFFET V.E. ! -059700 05 WS-4DCO-DSOUV-EFF. ! -059800* DATE EFFET SOUCRIPTION CONTRAT ! -059900 10 WS-4DCO-DSOUVSA-EFF. ! -060000* SIECLE ANNEE DATE EFFET SOUSCRIPTION ! -060100 15 WS-4DCO-DSOUVS-EFF PIC X(002). ! -060200* SIECLE DATE EFFET SOUSCRIPTION ! -060300 15 WS-4DCO-DSOUVA-EFF PIC X(002). ! -060400* ANNEE DATE EFFET SOUSCRIPTION ! -060500 10 WS-4DCO-DSOUVM-EFF PIC X(002). ! -060600* MOIS DATE EFFET SOUSCRIPTION ! -060700 10 WS-4DCO-DSOUVJ-EFF PIC X(002). ! -060800* JOUR DATE EFFET SOUCRIPTION ! -060900 05 WS-4DCO-DSOUV-OR. ! -061000* DATE SOUSCRIPTION CONTRAT BQE ORIGINE ! -061100 10 WS-4DCO-DSOUVSA-OR. ! -061200* SIECLE ANNEE DATE SOUSCRIPTION ! -061300 15 WS-4DCO-DSOUVS-OR PIC X(002). ! -061400* SIECLE DATE SOUSCRIPTION ! -061500 15 WS-4DCO-DSOUVA-OR PIC X(002). ! -061600* ANNEE DATE SOUSCRIPTION ! -061700 10 WS-4DCO-DSOUVM-OR PIC X(002). ! -061800* MOIS DATE SOUSCRIPTION ! -061900 10 WS-4DCO-DSOUVJ-OR PIC X(002). ! -062000* JOUR DATE SOUSCRIPTION ! -062100 05 FILLER PIC X(008). ! -062200* ZONES DISPONIBLES ! -062300 05 WS-4DCO-FINVAL. ! -062400* DATE LIMITE GARANTIE CONTRAT ! -062500 10 WS-4DCO-JJVAL PIC X(002). ! -062600* JOUR DATE LIMITE GARANTIE CONTRAT ! -062700 10 WS-4DCO-MMVAL PIC X(002). ! -062800* MOIS DATE LIMITE GARANTIE CONTRAT ! -062900 10 WS-4DCO-ANVAL. ! -063000* SIECLE ANNEE DATE LIMITE GRANTIE CONTRAT ! -063100 15 WS-4DCO-SSVAL PIC X(002). ! -063200* SIECLE DATE LIMITE GARANTIE CONTRAT ! -063300 15 WS-4DCO-AAVAL PIC X(002). ! -063400* ANNEE DATE LIMITE GARANTIE CONTRAT ! -063500 05 WS-4DCO-FINVAL2. ! -063600* DATE LIMITE GARANTIE VERSEMENT ! -063700 10 WS-4DCO-JJVAL2 PIC X(002). ! -063800* JOUR DATE LIMITE GARANTIE VERSMT ! -063900 10 WS-4DCO-MMVAL2 PIC X(002). ! -064000* MOIS DATE LIMITE GARANTIE VERSMT ! -064100 10 WS-4DCO-ANVAL2. ! -064200* SIECLE ANNEE DATE LIMITE GARANTIE VERSMT ! -064300 15 WS-4DCO-SSVAL2 PIC X(002). ! -064400* SIECLE DATE LIMITE GARANTIE VERSMT ! -064500 15 WS-4DCO-AAVAL2 PIC X(002). ! -064600* ANNEE DATE LIMITE GARANTIE VERSMT ! -064700 05 WS-4DCO-STR-GERV PIC X(06). ! -064800* STRUCTURE GESTIONNAIRE DU CONTRAT ! -064900 05 WS-4DCO-TXMINGAR PIC S9(02)V9(03). ! -065000* TAUX MINIMUM GARANTI CONTRAT ! -065100 05 WS-4DCO-TXMINGAR2 PIC S9(02)V9(03). ! -065200* TAUX MINIMUM GARANTI VERSEMENT ! -065300 05 WS-4DCO-TXFRAIS PIC S9(02)V9(03). ! -065400* TAUX DE FRAIS DE GESTION ! -065500 05 WS-4DCO-TXFRAIS-C REDEFINES WS-4DCO-TXFRAIS ! -065600 PIC S9(05). ! -065700* TAUX DE FRAIS DE GESTION ! -065800 05 WS-4DCO-CUMVERS PIC S9(09)V9(02). ! -065900* SOLDE ! -066000 05 WS-4DCO-CUMVERS-C REDEFINES WS-4DCO-CUMVERS ! -066100 PIC S9(11). ! -066200* SOLDE ! -066300 05 WS-4DCO-MTBRUT PIC S9(09)V9(02). ! -066400* MONTANT BRUT VERSEMENT ! -066500 05 WS-4DCO-MTBRUT-C REDEFINES WS-4DCO-MTBRUT ! -066600 PIC S9(11). ! -066700* MONTANT BRUT VERSEMENT ! -066800 05 WS-4DCO-MTFRAIS PIC S9(09)V9(02). ! -066900* MONTANT FRAIS VERSEMENT ! -067000 05 WS-4DCO-MTFRAIS-C REDEFINES WS-4DCO-MTFRAIS ! -067100 PIC S9(11). ! -067200* MONTANT FRAIS VERSEMENT ! -067300 05 WS-4DCO-MTNET PIC S9(09)V9(02). ! -067400* MONTANT NET VERSEMENT ! -067500 05 WS-4DCO-MTNET-C REDEFINES WS-4DCO-MTNET ! -067600 PIC S9(11). ! -067700* MONTANT NET VERSEMENT ! -067800 05 WS-4DCO-COM-PTN-VE PIC S9(07)V9(02). ! -067900* MONTANT COMMISSION PARTENAIRE ! -068000 05 WS-4DCO-COM-PTN-VE-C REDEFINES WS-4DCO-COM-PTN-VE ! -068100 PIC S9(09). ! -068200* MONTANT COMMISSION PARTENAIRE ! -068300 05 WS-4DCO-MTPEPOPT PIC S9(07)V9(02). ! -068400* MONTANT PEP OPTIMISE ! -068500 05 WS-4DCO-MTPRIME PIC S9(07)V9(02). ! -068600* MONTANT PRIME ! -068700 05 WS-4DCO-MTDEDUC PIC S9(07)V9(02). ! -068800* MONTANT DEDUCTION FISCALE ! -068900 05 WS-4DCO-NETCTR PIC S9(09)V9(02). ! -069000* MONTANT NET CONTRAT ! -069100 05 WS-4DCO-NETCTR-C REDEFINES WS-4DCO-NETCTR ! -069200 PIC S9(11). ! -069300* MONTANT NET CONTRAT ! -069400 05 WS-4DCO-NETEX PIC S9(09)V9(02). ! -069500* MONTANT NET EXERCICE ! -069600 05 WS-4DCO-NETEX-C REDEFINES WS-4DCO-NETEX ! -069700 PIC S9(11). ! -069800* MONTANT NET EXERCICE ! -069900 05 WS-4DCO-VERS-CD-PROR-CTR PIC X(001). ! -070000* indicateur prorogation ! -070100 05 FILLER PIC X(012). ! -070200* ZONES DISPONIBLES ! -070300 05 WS-4DCO-COM-GTN PIC S9(07)V9(02). ! -070400* MONTANT COMMISSION GESTIONNAIRE ! -070500 05 WS-4DCO-COM-GTN-C REDEFINES WS-4DCO-COM-GTN ! -070600 PIC S9(09). ! -070700* MONTANT COMMISSION GESTIONNAIRE ! -070800 05 WS-4DCO-VE-RETRO PIC X(001). ! -070900* INDICATEUR VERSEMENT RETROACTIF ! -071000 05 WS-4DCO-DMP PIC X(003). ! -071100* DUREE MOYENNE PONDEREE AVANT VE ! -071200 05 WS-4DCO-MTBRUT-CTR PIC S9(15). ! -071300* MONTANT BRUT VERSEMENT CONTRAT ! -071400 05 WS-4DCO-MT-PND PIC S9(15). ! -071500* MONTANT PONDERE ! -071600 05 WS-4DCO-DA-DNR-ACT PIC X(008). ! -071700* DATE DERNIERE ACTUALISATION MT PND ! -071800 05 WS-4DCO-DET-FRS-AP-VE. ! -071900* DETAIL DES FRAIS APPLIQUES ! -072000 10 WS-4DCO-TX-FRS-CUM-AP-VE PIC 9(5) COMP-3. ! -072100* TAUX FRAIS CUMUL ! -072200 10 WS-4DCO-MT-FRS-OPE-AP-VE PIC S9(9) COMP-3. ! -072300* MONTANT FRAIS OPERATION ! -072400 10 WS-4DCO-TX-FRS-GTN-AP-VE PIC 9(5) COMP-3. ! -072500* TAUX FRAIS GESTION ! -072600 10 WS-4DCO-TX-FRS-COM-AP-VE PIC 9(5) COMP-3. ! -072700* TAUX FRAIS COMMISSION ! -072800 10 WS-4DCO-MT-FRS-GTN-OPE-AP-VE PIC S9(9) COMP-3. ! -072900* MONTANT FRAIS GESTION OPERATION ! -073000 10 WS-4DCO-MT-FRS-COM-OPE-AP-VE PIC S9(9) COMP-3. ! -073100* MONTANT FRAIS COMMISSION OPERAT ! -073200 10 WS-4DCO-MT-NET-OPE-AP-VE PIC S9(15) COMP-3. ! -073300* MONTANT NET OPERATION ! -073400 05 WS-4DCO-DET-FRS-ST-VE. ! -073500* DETAIL DES FRAIS STANDARDS ! -073600 10 WS-4DCO-TX-FRS-CUM-ST-VE PIC 9(5) COMP-3. ! -073700* TAUX FRAIS CUMUL ! -073800 10 WS-4DCO-MT-FRS-OPE-ST-VE PIC S9(9) COMP-3. ! -073900* MONTANT FRAIS OPERATION ! -074000 10 WS-4DCO-TX-FRS-GTN-ST-VE PIC 9(5) COMP-3. ! -074100* TAUX FRAIS GESTION ! -074200 10 WS-4DCO-TX-FRS-COM-ST-VE PIC 9(5) COMP-3. ! -074300* TAUX FRAIS COMMISSION ! -074400 10 WS-4DCO-MT-FRS-GTN-OPE-ST-VE PIC S9(9) COMP-3. ! -074500* MONTANT FRAIS GESTION OPERATION ! -074600 10 WS-4DCO-MT-FRS-COM-OPE-ST-VE PIC S9(9) COMP-3. ! -074700* MONTANT FRAIS COMMISSION OPERAT ! -074800 10 WS-4DCO-MT-NET-OPE-ST-VE PIC S9(15) COMP-3. ! -074900* MONTANT NET OPERATION ! -075000 05 WS-4DCO-TX-DERO-VE PIC X(001). ! -075100* INDICATEUR DE TAUX DEROGATOIRE SUR VE ! -075200 05 WS-4DCO-LIB-IDT-CTR-VE PIC X(016). ! -075300* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -075400 05 WS-4DCO-NO-IDT-CTR-VE PIC X(015). ! -075500* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -075600 05 WS-4DCO-AGT-GTNV PIC X(008). ! -075700* NO. D'AGENT GESTIONNAIRE DU CONTRAT ! -075800 05 WS-4DCO-CLECROVR. ! -075900* CLE CRO SELECTIONNE ! -076000 10 FILLER PIC X(029). ! -076100* FILLER ! -076200 10 WS-4DCO-TYPCROVR PIC X(003). ! -076300* TYPE DE CRO SELECTIONNE ! -076400 10 FILLER PIC X(018). ! -076500* FILLER ! -076600 05 WS-4DCO-LIB-AVN-VE PIC X(014). ! -076700* LIBELLE AVANCE ! -076800 05 WS-4DCO-SLD-AVN-VE-X PIC X(014). ! -076900* ! -077000 05 WS-4DCO-SLD-AVN-VE PIC S9(15) COMP-3. ! -077100* ! -077200 05 WS-4DCO-SLD-AVN-VE-R REDEFINES WS-4DCO-SLD-AVN-VE ! -077300 PIC S9(13)V9(02) COMP-3. ! -077400* ! -077500 05 WS-4DCO-NOSAISIE-VE PIC X(001). ! -077600* INDICATEUR DE SAISIE INTERDITE ! -077700* ! -077800 05 WS-4DCO-DVEX-MINI. ! -077900* DATE DEMANDE DE VERSEMENT SUR MINITEL ! -078000 10 WS-4DCO-DVEXSA-MINI. ! -078100* SIECLE ANNEE DATE DEM. VERSEMENT ! -078200 15 WS-4DCO-DVEXS-MINI PIC X(002). ! -078300* SIECLE DATE DEM. VERSEMENT ! -078400 15 WS-4DCO-DVEXA-MINI PIC X(002). ! -078500* ANNEE DATE DEM. VERSEMENT ! -078600 10 WS-4DCO-DVEXM-MINI PIC X(002). ! -078700* MOIS DATE DEM. VERSEMENT ! -078800 10 WS-4DCO-DVEXJ-MINI PIC X(002). ! -078900* JOUR DATE DEM. VERSEMENT ! -079000* ! -079100 05 WS-4DCO-HVEX-MINI. ! -079200* HEURE DEMANDE DE VERSEMENT SUR MINITEL ! -079300 10 WS-4DCO-HVEXH-MINI PIC X(002). ! -079400* HEURES DEM. VERSEMENT ! -079500 10 WS-4DCO-HVEXM-MINI PIC X(002). ! -079600* MINUTES DEM. VERSEMENT ! -079700 10 WS-4DCO-HVEXS-MINI PIC X(002). ! -079800* SECONDES DEM. VERSEMENT ! -079900* ! -080000 05 WS-4DCO-MTBR-MINI PIC S9(15) COMP-3. ! -080100* MONTANT BRUT DU REVERSEMENT MINITEL ! -080200 05 WS-4DCO-MTBR-MINI-R REDEFINES WS-4DCO-MTBR-MINI ! -080300 PIC S9(13)V9(02) COMP-3. ! -080400* ! -080500 05 WS-4DCO-RVCH-MINI PIC X(001). ! -080600* CODE REVERSEMENT MINITEL O/N ! -080700* ! -080800 05 WS-4DCO-V-IDC-ACCORD-TX PIC X(001). ! -080900* INDICATEUR D'ACCORD TAUX DEROG SURAVENIR ! -081000* ! -081100 05 WS-4DCO-IDC-AUT-SOC-FDL-VE PIC X(001). ! -081200* INDICATEUR AUTORISATION PARRAINAGE CONTRAT ! -081300 05 WS-4DCO-VEX-CD-TY-ECG-FNC PIC X(05). ! -081400* TYPE D'ECHANGE FINANCIER POUR LES ENTREES (EIB,..) ! -081500 ! -081600 05 WS-4DCO-V-CESSION. ! -081700* INFORMATIONS TRANSFERT APRES SINISTRE ! -081800 10 WS-4DCO-V-CES-TM-STP PIC X(026). ! -081900 10 WS-4DCO-V-CES-NO-DOS-SIN PIC S9(013) COMP-3. ! -082000 10 WS-4DCO-V-CES-NO-BNF-SIN PIC S9(007) COMP-3. ! -082100 10 WS-4DCO-V-CES-DA-OPE PIC X(008). ! -082200 10 WS-4DCO-V-CES-NO-ORD-RGL PIC S9(002) COMP-3. ! -082300 10 WS-4DCO-V-CES-NO-CSN PIC S9(003) COMP-3. ! -082400 10 WS-4DCO-V-CES-MT-CSN PIC S9(013)V9(2) ! -082500 COMP-3. ! -082600 05 WS-4DCO-4DPZ-PR-NOM PIC X(032). ! -082700 05 WS-4DCO-4DPZ-DUREE PIC X(004). ! -082800 05 WS-4DCO-4DPZ-DA-OUV. ! -082900 10 WS-4DCO-4DPZ-DA-OUV-SA. ! -083000 15 WS-4DCO-4DPZ-DA-OUV-S PIC X(002). ! -083100 15 WS-4DCO-4DPZ-DA-OUV-A PIC X(002). ! -083200 10 WS-4DCO-4DPZ-DA-OUV-M PIC X(002). ! -083300 10 WS-4DCO-4DPZ-DA-OUV-J PIC X(002). ! -083400 05 WS-4DCO-4DPZ-DA-ECH. ! -083500 10 WS-4DCO-4DPZ-DA-ECH-SA. ! -083600 15 WS-4DCO-4DPZ-DA-ECH-S PIC X(002). ! -083700 15 WS-4DCO-4DPZ-DA-ECH-A PIC X(002). ! -083800 10 WS-4DCO-4DPZ-DA-ECH-M PIC X(002). ! -083900 10 WS-4DCO-4DPZ-DA-ECH-J PIC X(002). ! -084000 05 WS-4DCO-4DPZ-LIB-IDT-CTR PIC X(016). ! -084100 05 WS-4DCO-4DPZ-NO-IDT-CTR PIC X(016). ! -084200 05 WS-4DCO-4DPZ-LIB-AV-VE PIC X(014). ! -084300 05 WS-4DCO-4DPZ-SOLDE-AV-VE-X PIC X(014). ! -084400 05 WS-4DCO-4DPZ-SOLDE-AV-VE PIC S9(15) COMP-3. ! -084500 05 WS-4DCO-4DPZ-SOLDE-AV-VE-R ! -084600 REDEFINES WS-4DCO-4DPZ-SOLDE-AV-VE ! -084700 PIC S9(13)V9(02) COMP-3. ! -084800 05 WS-4DCO-DA-ECN-PROR-AN PIC X(008). ! -084900* DERNIERE DATE ECHEANCE PROROGEE ! -085000 05 WS-4DCO-VE-CD-IDT-STK PIC X(003). ! -085100* CODE IDENTIFIANT STOCK ! -085200 05 WS-4DCO-VE-TX-FRS-STD-ENT PIC S9(02)V9(03) COMP-3. ! -085300* TAUX FRAIS STANDARD ! -085400 05 WS-4DCO-DA-BSC-EF PIC X(008). ! -085500* DATE BASCULEMENT ! -085600 05 WS-4DCO-DA-OPE-DNR-RP PIC X(008). ! -085700* DATE DERNIER RACHAT ! -085800 05 WS-4DCO-DA-ECN-PROR-AA PIC X(008). ! -085900* DERNIERE DATE ECHEANCE PROROGEE ANCIENNE ! -086000 05 WS-4DCO-VERS-IDC-RFS-CDN-NV PIC X(1). ! -086100* CODE REFUS NOUVELLES CONDITIONS ! -086200 05 WS-4DCO-TOP-CTRL-VER-MIN PIC X(1). ! -086300* TOP CONTROLE VERSEMENT MINIMUM ! -086400 05 FILLER PIC X(991). ! -086500 ! -086600* ZONES DISPONIBLES ! -086700* ------------------------------------------------------ * ! -086800 ! -086900 03 WS-4DCO-VISUALISATION REDEFINES WS-4DCO-PROGRAM. ! -087000* ===================== ! -087100* ------------------------------------------------------ * ! -087200* COMMAREA : CONSULTATION * ! -087300* LONGUEUR : 1800 * ! -087400* PREFIXE : WS-4DCO- * ! -087500* ------------------------------------------------------ * ! -087600 ! -087700 05 WS-4DCO-NOMV PIC X(032). ! -087800* CLIENT ! -087900 05 WS-4DCO-GENPRDV PIC X(003). ! -088000* NO. DE GENERATION DU PRODUIT ! -088100 05 WS-4DCO-GENTYPV PIC X(003). ! -088200* NO. DE GENERATION DU TYPE DE PRODUIT ! -088300 05 WS-4DCO-NBENV PIC 9(02). ! -088400* NBRE BENEF ! -088500 05 WS-4DCO-NBENEV PIC 9(03). ! -088600* NO BENEF ENCOURS ! -088700 05 WS-4DCO-NENREGV PIC 9(02). ! -088800* NO ENREG BENEF ! -088900 05 WS-4DCO-TSMVTV PIC 9(01). ! -089000* TS ECRITE ! -089100 05 WS-4DCO-NBPAGV PIC 9(02). ! -089200* NBRE PAGE MVTS ! -089300 05 WS-4DCO-PAGENV PIC 9(02). ! -089400* NO PAGE MVTS ENCOURS ! -089500 05 WS-4DCO-CLECROV. ! -089600* CLE CRO SELECTIONNE ! -089700 10 FILLER PIC X(029). ! -089800* FILLER ! -089900 10 WS-4DCO-TYPCROV PIC X(003). ! -090000* TYPE DE CRO SELECTIONNE ! -090100 10 FILLER PIC X(018). ! -090200* FILLER ! -090300 05 WS-4DCO-CURSV PIC X(001). ! -090400* POSITION DU CURSEUR ! -090500 05 WS-4DCO-CUMVTV PIC 9(02). ! -090600* POSITION DU CURSEUR ! -090700 05 WS-4DCO-DEREXE PIC 9(02). ! -090800* EXERCICE DAMIER LU ! -090900 05 WS-4DCO-ART07V PIC X(001). ! -091000* PRESENCE ARTICLE 07 PERMANENT PEP ! -091100 05 WS-4DCO-CPT-DESTV. ! -091200* NUMERO DU COMPTE DESTINATAIRE ! -091300 10 WS-4DCO-BNQDESTV PIC X(005). ! -091400* BANQUE RIB COMPTE DESTINATAIRE ! -091500 10 WS-4DCO-GCHDESTV PIC X(005). ! -091600* GUICHET RIB COMPTE DESTINATAIRE ! -091700 10 WS-4DCO-RACDESTV PIC X(011). ! -091800* RACINE RIB COMPTE DESTINATAIRE ! -091900 10 WS-4DCO-CLEDESTV PIC X(002). ! -092000* CLE RIB COMPTE DESTINATAIRE ! -092100 05 WS-4DCO-NOM-ETAV PIC X(033). ! -092200* NOM DE L'ETABLISSEMENT ! -092300 05 WS-4DCO-NOM-AGCV PIC X(033). ! -092400* NOM DE L'AGENCE ! -092500 05 WS-4DCO-ADR-AGCV. ! -092600* ADRESSE DE L'AGENCE ! -092700 10 WS-4DCO-RUE-AGCV PIC X(033). ! -092800* RUE / ADRESSE DE L'AGENCE ! -092900 10 WS-4DCO-CODPOS-AGCV PIC X(005). ! -093000* CODE POSTAL / ADRESSE DE L'AGENCE ! -093100 10 WS-4DCO-COMMU-AGCV PIC X(027). ! -093200* COMMUNE / ADRESSE DE L'AGENCE ! -093300 05 WS-4DCO-VIS-DA-CLO. ! -093400* DATE DE CLOTURE (16/03/92) ! -093500 10 WS-4DCO-VIS-DA-CLO-SSAA. ! -093600* SIECLE ANNEE DATE DE CLOTURE (16/03/92) ! -093700 15 WS-4DCO-VIS-DA-CLO-SS PIC 9(002). ! -093800* SIECLE DATE DE CLOTURE (16/03/92) ! -093900 15 WS-4DCO-VIS-DA-CLO-AA PIC 9(002). ! -094000* ANNEE DATE DE CLOTURE (16/03/92) ! -094100 10 WS-4DCO-VIS-DA-CLO-MM PIC 9(02). ! -094200* MOIS DATE DE CLOTURE (16/03/92) ! -094300 10 WS-4DCO-VIS-DA-CLO-JJ PIC 9(02). ! -094400* JOUR DATE DE CLOTURE (16/03/92) ! -094500 05 WS-4DCO-VIS-CLE-CTR PIC X(020). ! -094600* CLE ART 10 PEP / ZOOM BENEF (31/07/92) ! -094700 05 FILLER REDEFINES WS-4DCO-VIS-CLE-CTR. ! -094800* CLE ART 10 PEP / ZOOM BENEF (31/07/92) ! -094900 10 FILLER PIC X(017). ! -095000* FILLER (31/07/92) ! -095100 10 WS-4DCO-VIS-NO-ORD-ENREG PIC 9(03). ! -095200* NO ORDRE ENREGISTREMENT (31/07/92) ! -095300 05 WS-4DCO-VIS-IND-TAB-BNF PIC 9(02). ! -095400* INDICE LIGNE ZOOMEE (31/07/92) ! -095500 05 WS-4DCO-VIS-NO-PAGE PIC 9(02). ! -095600* NUMERO DE PAGE ECRAN M4DHZ0 ! -095700 05 WS-4DCO-VIS-NB-PAGES PIC 9(02). ! -095800* NOMBRE DE PAGES ECRAN M4DHZ0 ! -095900 05 WS-4DCO-LIB-IDT-CTR-VI PIC X(016). ! -096000* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -096100 05 WS-4DCO-NO-IDT-CTR-VI PIC X(015). ! -096200* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -096300 05 WS-4DCO-LIB-AVN-VI PIC X(014). ! -096400* LIBELLE AVANCE ! -096500 05 WS-4DCO-SLD-AVN-VI-X PIC X(014). ! -096600* ! -096700 05 WS-4DCO-SLD-AVN-VI PIC S9(15) COMP-3. ! -096800* ! -096900 05 WS-4DCO-SLD-AVN-VI-R REDEFINES WS-4DCO-SLD-AVN-VI ! -097000 PIC S9(13)V9(02) COMP-3. ! -097100 05 FILLER PIC X(50). ! -097200* ZONES DISPONIBLES ! -097300* CE FILLER A ETE RAJOUTE POUR NE PAS ECRASER LES VALEURS DE LA ! -097400* COMMAREA PAR LES NOUVELLES ZONES QUAND ON VIENT DE L ANNULATION ! -097500 05 WS-4DCO-DT-OPE. ! -097600* DATE DE L'OPERATION ! -097700 10 WS-4DCO-DT-OPE-SA PIC X(4). ! -097800* DATE DE L'OPERATION SSAA ! -097900 10 WS-4DCO-DT-OPE-MM PIC X(2). ! -098000* DATE DE L'OPERATION MOIS ! -098100 10 WS-4DCO-DT-OPE-JJ PIC X(2). ! -098200* DATE DE L'OPERATION JOUR ! -098300 05 WS-4DCO-MT-OPE PIC S9(9)V99 COMP-3. ! -098400* MONTANT DE L OPERATION ! -098500 05 WS-4DCO-NOM-INTIT PIC X(036). ! -098600* NOM PATRONIMIQUE ET INTITULE ! -098700* ! -098800 05 WS-4DCO-PER. ! -098900* commarea pour affichage des infos complementaires PER ! -099000* sur l'�cran d�tail : tc4djl0 ! -099100 10 WS-4DCO-PER-NO-STR PIC X(006). ! -099200* n�structure du contrat ! -099300 10 WS-4DCO-PER-NO-CTR PIC X(006). ! -099400* n�de contrat comptable ! -099500 10 WS-4DCO-PER-INFOS. ! -099600* infos r�cup�r�es par l'appel au module TN4DPER ! -099700 15 WS-4DCO-PER-TY-CPT-PER PIC X. ! -099800* type de per (mixte ..) ! -099900 15 WS-4DCO-PER-NOM-PRN-CJ PIC X(032). ! -100000* nom du conjoint ! -100100 15 WS-4DCO-PER-DA-NAIS PIC X(008). ! -100200* date de naissance du conjoint ! -100300 15 WS-4DCO-PER-DA-PRM-RTT PIC X(008). ! -100400* date de 1er retrait apr�s 60 ans ! -100500 15 WS-4DCO-PER-MT OCCURS 10. ! -100600* occurence des soldes comptables � garder ! -100700 20 WS-4DCO-PER-SLD-CPB-R PIC S9(15) COMP-3. ! -100800 20 WS-4DCO-PER-SLD-CPB REDEFINES WS-4DCO-PER-SLD-CPB-R ! -100900 PIC S9(13)V9(02) COMP-3. ! -101000*avt 05 FILLER ( -141 pour le per) PIC X(1339). ! -101100 05 WS-4DCO-4DHU. ! -101200* commarea pour affichage d�tail fiscalit� ! -101300* sur l'�cran : tc4dfo0 ! -101400 10 WS-4DCO-4DHU-CD-ACT PIC X(01). ! -101500* Code action ! -101600* V pour visualisation ! -101700* A pour annulation ! -101800 10 WS-4DCO-4DHU-CURSA PIC 9(02). ! -101900* POSITION DU CURSEUR ! -102000 10 WS-4DCO-4DHU-MT-PV PIC S9(13)V99 COMP-3. ! -102100* montant plus value ! -102200 10 WS-4DCO-4DHU-MT-PV-F8 PIC S9(13)V99 COMP-3. ! -102300* montant plus value loi finance 98 ! -102400 10 WS-4DCO-4DHU-MT-PLV-LBL PIC S9(13)V99 COMP-3. ! -102500* montant pr�l�vement lib�ratoire ! -102600 10 WS-4DCO-4DHU-MT-PLV-SOC PIC S9(13)V99 COMP-3. ! -102700* montant pr�l�vement social ! -102800 10 WS-4DCO-4DHU-MT-PLV-CSG PIC S9(13)V99 COMP-3. ! -102900* montant pr�l�vement CSG ! -103000 10 WS-4DCO-4DHU-MT-CTB-DPT PIC S9(13)V99 COMP-3. ! -103100* montant contribution d�partementale ! -103200 10 WS-4DCO-4DHU-MT-VER-RDS PIC S9(13)V99 COMP-3. ! -103300* montant pr�l�vement CRDS ! -103400 10 WS-4DCO-4DHU-MT-ASST-CRDS PIC S9(13)V99 COMP-3. ! -103500* Assiette CRDS ! -103600 10 WS-4DCO-4DHU-MT-ASST-CSG PIC S9(13)V99 COMP-3. ! -103700* Assiette CSG ! -103800 10 WS-4DCO-4DHU-MT-ASST-SOC PIC S9(13)V99 COMP-3. ! -103900* Assiette SOC ! -104000 10 WS-4DCO-4DHU-TX-PLV-LBL PIC S9(02)V999 COMP-3. ! -104100* Assiette SOC ! -104200 10 WS-4DCO-4DHU-MT-CTS-VLL PIC S9(13)V99 COMP-3. ! -104300* montant cotisation vieillesse ! -104400 10 WS-4DCO-4DHU-DA-OPE-RACH PIC X(008). ! -104500* date op�ration de rachat ! -104600 10 WS-4DCO-4DHU-DA-EFF-RACH PIC X(008). ! -104700* date effet du rachat ! -104800 10 WS-4DCO-4DHU-MT-ASST-CTB PIC S9(13)V99 COMP-3. ! -104900* montant assiette contribution ! -105000 10 WS-4DCO-4DHU-MT-CTB PIC S9(13)V99 COMP-3. ! -105100* montant contribution ! -105200 05 FILLER PIC X(1072). ! -105300* ZONES DISPONIBLES ! -105400* ------------------------------------------------------ * ! -105500 ! -105600 03 WS-4DCO-ANOMALIES REDEFINES WS-4DCO-PROGRAM. ! -105700* ================= ! -105800* ------------------------------------------------------ * ! -105900* COMMAREA : CONSULTATION DES ANOMALIES * ! -106000* LONGUEUR : 1800 * ! -106100* PREFIXE : WS-4DCO-ANO- * ! -106200* ------------------------------------------------------ * ! -106300 ! -106400 05 WS-4DCO-ANO-STRUCT PIC X(006). ! -106500* NUMERO DE STRUCTURE ! -106600 05 WS-4DCO-ANO-DATE-DEB. ! -106700* DATE DE DEBUT ! -106800 10 WS-4DCO-ANO-ANDEB PIC X(004). ! -106900* SIECLE ANNEE DATE DE DEBUT ! -107000 10 WS-4DCO-ANO-MMDEB PIC X(002). ! -107100* MOIS DATE DE DEBUT ! -107200 10 WS-4DCO-ANO-JJDEB PIC X(002). ! -107300* JOUR DATE DE DEBUT ! -107400 05 WS-4DCO-ANO-DATE-FIN. ! -107500* DATE DE FIN ! -107600 10 WS-4DCO-ANO-ANFIN PIC X(004). ! -107700* SIECLE ANNEE DATE DE FIN ! -107800 10 WS-4DCO-ANO-MMFIN PIC X(002). ! -107900* MOIS DATE DE FIN ! -108000 10 WS-4DCO-ANO-JJFIN PIC X(002). ! -108100* JOUR DATE DE FIN ! -108200 05 WS-4DCO-ANO-OKVALID PIC X(001). ! -108300* INDICATEUR DE SAISIE ! -108400 05 WS-4DCO-ANO-PAGENV PIC S9(03). ! -108500* NUMERO DE PAGE ! -108600 05 WS-4DCO-ANO-NBPAGE PIC S9(03). ! -108700* NOMBRE DE PAGES ! -108800 05 WS-4DCO-ANO-CUM PIC S9(04). ! -108900* ! -109000 05 WS-4DCO-ANO-TSMVT PIC S9(04). ! -109100* ! -109200 05 WS-4DCO-ANO-CLE-ABEND PIC X(020). ! -109300* ! -109400 05 FILLER PIC X(1743). ! -109500* ZONES DISPONIBLES ! -109600* ------------------------------------------------------ * ! -109700 ! -109800 03 WS-4DCO-ANNU REDEFINES WS-4DCO-PROGRAM. ! -109900* ============ ! -110000* ------------------------------------------------------ * ! -110100* COMMAREA : ANNULATION * ! -110200* LONGUEUR : 1800 * ! -110300* PREFIXE : WS-4DCO- * ! -110400* ------------------------------------------------------ * ! -110500 ! -110600 05 WS-4DCO-TSMVTA PIC 9(01). ! -110700* TS ECRITE ! -110800 05 WS-4DCO-NBPAGA PIC 9(02). ! -110900* NBRE PAGE MVTS ! -111000 05 WS-4DCO-PAGENA PIC 9(02). ! -111100* NO PAGE MVTS ENCOURS ! -111200 05 WS-4DCO-CLECROA PIC X(040). ! -111300* CLE CRO SELECTIONNE ! -111400 05 WS-4DCO-CTRATA PIC X(006). ! -111500* CONTRAT ! -111600 05 WS-4DCO-NOMA PIC X(032). ! -111700* NOM ! -111800 05 WS-4DCO-CURSA PIC 9(02). ! -111900* POSITION DU CURSEUR ! -112000 05 FILLER PIC X(201). ! -112100* ZONES DISPONIBLES (CORRECTION 17/12/91) ! -112200 05 WS-4DCO-CPT-DOM-AN. ! -112300* COMPTE DOM ANNULATION ! -112400 10 WS-4DCO-BNQ-AN PIC X(005). ! -112500* BANQUE RIB CPTE DOM ANNULATION ! -112600 10 WS-4DCO-GUI-AN PIC X(005). ! -112700* GUICHET RIB COMPTE DOM ANNULATION ! -112800 10 WS-4DCO-CPT-AN PIC X(011). ! -112900* RACINE RIB COMPTE DOM ANNULATION ! -113000 10 WS-4DCO-CLE-AN PIC X(002). ! -113100* CLE RIB COMPTE DOM ANNULATION ! -113200 05 WS-4DCO-CLECROA-ZOOM PIC X(040). ! -113300* CLE CRO SELECTIONNE PAR LE ZOOM ! -113400 05 WS-4DCO-IDENT-CRO-ZOOM. ! -113500* IDENTIFICATION CRO ZOOM ! -113600 10 WS-4DCO-DAT-CRO-ZOOM PIC X(008). ! -113700* DATE CREATION CRO ZOOM ! -113800 10 WS-4DCO-HEU-CRO-ZOOM PIC X(006). ! -113900* HEURE CREATION CRO ZOOM ! -114000 10 WS-4DCO-TYP-CRO-ZOOM PIC X(003). ! -114100* TYPE CRO ZOOM ! -114200 05 WS-4DCO-ANN-DA-PAS-DNR-PAB PIC X(08). ! -114300* DATE DE PASSAGE DERNIER PAB ! -114400 05 WS-4DCO-ANN-TOP-MES-FONDS PIC X(01). ! -114500* TOP MESSAGE 'AVEZ-VOUS RECUPERE LES FONDS?' ! -114600 05 WS-4DCO-ANN-IDC-RAC-PART PIC X(01). ! -114700* INDICATEUR PRESENCE RACHAT PARTIEL ! -114800 05 WS-4DCO-NB-CRO-340 PIC 9(02). ! -114900* NOMBRE DE CRO SINISTRE AFFICHES A L ECRAN ! -115000 05 WS-4DCO-IDC-VAL-RIB PIC X(01). ! -115100* INDICATEUR DE VALIDITE DU COMPTE DOM ! -115200 05 WS-4DCO-NO-PTN-TR PIC 9(3). ! -115300* NUMERO PARTENAIRE EMMETTEUR TRANSFERT ! -115400 05 WS-4DCO-NO-PRD-PTN-TR PIC 9(3). ! -115500* NUMERO PRODUIT EMMETTEUR TRANSFERT ! -115600 05 WS-4DCO-NO-CLI-PTN-TR PIC 9(7). ! -115700* NUMERO CLIENT EMMETTEUR TRANSFERT ! -115800 05 WS-4DCO-NO-ORD-CTR-TR PIC 9(2). ! -115900* NUMERO ORDRE DU CONTRAT EMMETTEUR TRANSFERT ! -116000 05 WS-4DCO-TOP-TRF-PTN PIC X(1). ! -116100* INDICATEUR PRESENCE TRANSFERT PARTENAIRE ! -116200 05 WS-4DCO-DATE-TRF-PTN PIC 9(8). ! -116300 05 WS-4DCO-HEU-TRF-PTN PIC 9(6). ! -116400* HEURE DU TRANSFERT DE PARTENAIRE ! -116500 05 WS-4DCO-ANN-DA-OPE-DNR-RP PIC X(08). ! -116600* DATE OPERATION DERNIER RACHAT PARTIEL ! -116700 05 WS-4DCO-IDC-MVT-PUC-NON-ANNUL PIC X(01). ! -116800* INDICATEUR MVT PUC NON ANNULER ! -116900 05 WS-4DCO-CD-MSG PIC X(75). ! -117000* CODE MESSAGE ! -117100 05 WS-4DCO-IDC-PRES-CRO-JOUR PIC X(01). ! -117200* INDICATEUR PRESENCE CRO JOUR ! -117300 ! -117400 05 FILLER PIC X(1306). ! -117500* ZONES DISPONIBLES ! -117600* ------------------------------------------------------ * ! -117700 ! -117800 03 WS-4DCO-TRANS-CAIS REDEFINES WS-4DCO-PROGRAM. ! -117900* ================== ! -118000* ------------------------------------------------------ * ! -118100* COMMAREA : TRANSFERT DE STRUCTURE A STRUCTURE * ! -118200* LONGUEUR : 1800 * ! -118300* PREFIXE : WS-4DCO- * ! -118400* ------------------------------------------------------ * ! -118500 ! -118600 05 WS-4DCO-NO-STR-TRANS PIC X(006). ! -118700* NO STRUCTURE TRANSFEREE ! -118800 05 WS-4DCO-NO-AGT-TRANS PIC X(008). ! -118900* NO AGENT TRANSFERE ! -119000 05 WS-4DCO-CLIENT-TRANS PIC X(008). ! -119100* NO-CLIENT-TRANSFERE ! -119200 05 WS-4DCO-COMPTE-TRANS REDEFINES WS-4DCO-CLIENT-TRANS. ! -119300* NO COMPTE TRANSFERE ! -119400 10 WS-4DCO-RAC-TRANS PIC X(007). ! -119500* RACINE TRANSFEREE ! -119600 10 WS-4DCO-CLE-TRANS PIC X(001). ! -119700* CLE TRANSFEREE ! -119800 05 WS-4DCO-MT-TRF PIC S9(11) COMP-3. ! -119900* MONTANT DU TRANSFERT ! -120000 05 WS-4DCO-CPT-DOM-AV. ! -120100* RIB CPTE DOM AVANT TRANSFERT ! -120200 10 WS-4DCO-BNQ-DOM-AV PIC X(005). ! -120300* BANQUE RIB CPTE DOM AVANT TRANSFERT ! -120400 10 WS-4DCO-GCH-DOM-AV PIC X(005). ! -120500* GUICHET RIB CPTE DOM AVANT TRANSFERT ! -120600 10 WS-4DCO-RAC-DOM-AV PIC X(011). ! -120700* RACINE RIB CPTE DOM AVANT TRANSFERT ! -120800 10 WS-4DCO-CLE-DOM-AV PIC X(002). ! -120900* CLE RIB COMPTE DOM AVANT TRANSFERT ! -121000 05 WS-4DCO-CPT-DOM-AP. ! -121100* RIB CPTE DOM APRES TRANSFERT ! -121200 10 WS-4DCO-BNQ-DOM-AP PIC X(005). ! -121300* BANQUE RIB COMPTE DOM APRES TRANSFERT ! -121400 10 WS-4DCO-GCH-DOM-AP PIC X(005). ! -121500* GUICHET RIB COMPTE DOM APRES TRANSFERT ! -121600 10 WS-4DCO-RAC-DOM-AP PIC X(011). ! -121700* RACINE RIB COMPTE DOM APRES TRANSFERT ! -121800 10 WS-4DCO-CLE-DOM-AP PIC X(002). ! -121900* CLE RIB COMPTE DOM APRES TRANSFERT ! -122000 05 WS-4DCO-TITRE-ECRAN PIC X(032). ! -122100* LIBELLE TITRE ECRAN M4DHI0 ! -122200 05 WS-4DCO-TRFS-AUT-P PIC X(001). ! -122300* TOP AUTORISATION VERSEMENT PERIODIQUE ! -122400 05 WS-4DCO-4DHI-IDC-BLOC PIC X(001). ! -122500* TOP BLOCAGE TRFT caisse (CONTRAT PROROGEABLE) ! -122600 05 WS-4DCO-4DHI-DA-ECN-PROR PIC X(008). ! -122700* DATE ECHEANCE PROROGEE ! -122800 05 FILLER PIC X(1684). ! -122900* ZONES DISPONIBLES ! -123000* ------------------------------------------------------ * ! -123100 ! -123200 03 WS-4DCO-TRFRAC REDEFINES WS-4DCO-PROGRAM. ! -123300* ================== ! -123400* ------------------------------------------------------ * ! -123500* COMMAREA : TRANSFERT DE RACINE * ! -123600* LONGUEUR : 1800 * ! -123700* PREFIXE : WS-4DCO- * ! -123800* ------------------------------------------------------ * ! -123900 ! -124000 05 WS-4DCO-4DHJ-CLIENT PIC X(015). ! -124100* NOUVEAU N� DE CLIENT (EXTERNE) ! -124200 05 WS-4DCO-4DHJ-NO-CLI-PTN PIC 9(007). ! -124300* NOUVEAU N� DE CLIENT (INTERNE) ! -124400 05 WS-4DCO-4DHJ-NO-ORD-CTR PIC 9(002). ! -124500* NOUVEAU N� D'ORDRE DU CONTRAT ! -124600 05 WS-4DCO-4DHJ-CINT PIC X(002). ! -124700* CODE INTITULE ! -124800 05 WS-4DCO-4DHJ-NOM PIC X(032). ! -124900* NOM ! -125000 05 WS-4DCO-4DHJ-RUE1 PIC X(032). ! -125100* LIGNE ADRESSE 1 ! -125200 05 WS-4DCO-4DHJ-RUE2 PIC X(032). ! -125300* LIGNE ADRESSE 2 ! -125400 05 WS-4DCO-4DHJ-CODPOS PIC X(005). ! -125500* CODE POSTAL ! -125600 05 WS-4DCO-4DHJ-BUR-DIS PIC X(026). ! -125700* BUREAU DISTRIBUTEUR ! -125800 05 WS-4DCO-4DHJ-CPT-DOM-AV. ! -125900* RIB CPTE DOM AVANT TRANSFERT ! -126000 10 WS-4DCO-4DHJ-BNQ-DOM-AV PIC X(005). ! -126100* BANQUE RIB CPTE DOM AVANT TRANSFERT ! -126200 10 WS-4DCO-4DHJ-GCH-DOM-AV PIC X(005). ! -126300* GUICHET RIB CPTE DOM AVANT TRANSFERT ! -126400 10 WS-4DCO-4DHJ-RAC-DOM-AV PIC X(011). ! -126500* RACINE RIB CPTE DOM AVANT TRANSFERT ! -126600 10 WS-4DCO-4DHJ-CLE-DOM-AV PIC X(002). ! -126700* CLE RIB COMPTE DOM AVANT TRANSFERT ! -126800 05 WS-4DCO-4DHJ-CPT-DOM-AP. ! -126900* RIB CPTE DOM APRES TRANSFERT ! -127000 10 WS-4DCO-4DHJ-BNQ-DOM-AP PIC X(005). ! -127100* BANQUE RIB CPTE DOM APRES TRANSFERT ! -127200 10 WS-4DCO-4DHJ-GCH-DOM-AP PIC X(005). ! -127300* GUICHET RIB CPTE DOM APRES TRANSFERT ! -127400 10 WS-4DCO-4DHJ-RAC-DOM-AP PIC X(011). ! -127500* RACINE RIB CPTE DOM APRES TRANSFERT ! -127600 10 WS-4DCO-4DHJ-CLE-DOM-AP PIC X(002). ! -127700* CLE RIB COMPTE DOM APRES TRANSFERT ! -127800 05 WS-4DCO-4DHJ-LIB-TITRE PIC X(032). ! -127900* LIBELLE TITRE ECRAN M4DHI0 ! -128000 05 WS-4DCO-4DHJ-VP-OK PIC X(001). ! -128100* TOP AUTORISATION VERSEMENT PERIODIQUE ! -128200 05 WS-4DCO-4DHJ-AV-OK PIC X(001). ! -128300* TOP AUTORISATION AVANCE ! -128400 05 WS-4DCO-4DHJ-CD-VER-PER PIC X(001). ! -128500* CODE PERIODICITE ! -128600 05 WS-4DCO-4DHJ-LIB-CTR PIC X(013). ! -128700* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -128800 05 WS-4DCO-4DHJ-IDT-CTR PIC X(015). ! -128900* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -129000 05 WS-4DCO-4DHJ-IDT-NV-CTR PIC X(015). ! -129100* MASQUE D'AFFICHAGE DE L'IDENTIFIANT NOUVEAU CONTRAT ! -129200 05 WS-4DCO-4DHJ-DA-NAI. ! -129300* DATE DE NAISSANCE ! -129400 10 WS-4DCO-4DHJ-DA-NAI-SA. ! -129500* SIECLE ANNEE DATE NAISSANCE ! -129600 15 WS-4DCO-4DHJ-DA-NAI-SS PIC X(002). ! -129700* SIECLE DATE NAISSANCE ! -129800 15 WS-4DCO-4DHJ-DA-NAI-AA PIC X(002). ! -129900* ANNEE DATE NAISSANCE ! -130000 10 WS-4DCO-4DHJ-DA-NAI-MM PIC X(002). ! -130100* MOIS DATE NAISSANCE ! -130200 10 WS-4DCO-4DHJ-DA-NAI-JJ PIC X(002). ! -130300* JOUR DATE NAISSANCE ! -130400 05 WS-4DCO-4DHJ-SLD-TP PIC S9(15) COMP-3. ! -130500* SOLDE TP TEMPS REEL ! -130600 05 WS-4DCO-4DHJ-NO-POL PIC X(009). ! -130700* NUMERO DE POLICE (PARTENAIRE EXTERIEUR) ! -130800 05 WS-4DCO-4DHJ-LIB-POL PIC X(011). ! -130900* LIBELLE "NO POLICE -->" ! -131000 05 WS-4DCO-4DHJ-NO-GEN-PRD PIC X(003). ! -131100* N� DE GENERATION DU PRODUIT ! -131200 05 WS-4DCO-4DHJ-NO-GEN-TY-PRD PIC X(003). ! -131300* N� DE GENERATION DU TYPE DE PRODUIT ! -131400 05 WS-4DCO-4DHJ-MOD-POL PIC X(001). ! -131500* SI = 'O' ==> SEUL LE N� DE POLICE A ETE MODIFIE ! -131600 05 WS-4DCO-4DHJ-IDC-BLOC PIC X(001). ! -131700* TOP BLOCAGE TRFT RACINE (CONTRAT PROROGEABLE) ! -131800 05 FILLER PIC X(1479). ! -131900* ZONES DISPONIBLES ! -132000* ------------------------------------------------------ * ! -132100 ! -132200 03 WS-4DCO-RENON REDEFINES WS-4DCO-PROGRAM. ! -132300* ============= ! -132400* ------------------------------------------------------ * ! -132500* COMMAREA : RENONCIATION * ! -132600* LONGUEUR : 1800 * ! -132700* PREFIXE : WS-4DCO- * ! -132800* ------------------------------------------------------ * ! -132900 ! -133000 05 WS-4DCO-RIBR. ! -133100* RIB CPTE DOM RENONCIATION ! -133200 10 WS-4DCO-BANDR PIC X(005). ! -133300* BANQUE RIB CPTE DOM RENONCIATION ! -133400 10 WS-4DCO-GUIDR PIC X(005). ! -133500* GUICHET RIB CPTE DOM RENONCIATION ! -133600 10 WS-4DCO-RACDR. ! -133700* RACINE RIB CPTE DOM RENONCIATION ! -133800 15 WS-4DCO-RACD0R PIC X(001). ! -133900* ! -134000 15 WS-4DCO-RACD1R PIC X(007). ! -134100* ! -134200 15 WS-4DCO-RACD2R PIC X(001). ! -134300* ! -134400 15 WS-4DCO-RACD3R PIC X(002). ! -134500* ! -134600 10 WS-4DCO-CLEDR PIC X(002). ! -134700* CLE RIB CPTE DOM RENONCIATION ! -134800 05 WS-4DCO-CPTDOMR. ! -134900* CPTE DOM RENONCIATION ! -135000 10 WS-4DCO-CAICMBR PIC X(004). ! -135100* CAISSE CPTE DOM RENONCIATION ! -135200 10 WS-4DCO-RACCMBR PIC X(007). ! -135300* RACINE CPTE DOM RENONCIATION ! -135400 10 WS-4DCO-CLECMBR PIC X(001). ! -135500* CLE CPTE DOM RENONCIATION ! -135600 10 WS-4DCO-TYPCMBR PIC X(002). ! -135700* TYPE CPTE DOM RENONCIATION ! -135800 05 WS-4DCO-DSOUSR. ! -135900* DATE SOUSCRIPTION ! -136000 10 WS-4DCO-DSOUSRSA. ! -136100* SIECLE ANNEE DATE SOUSCRIPTION ! -136200 15 WS-4DCO-DSOUSRS PIC X(002). ! -136300* SIECLE DATE SOUSCRIPTION ! -136400 15 WS-4DCO-DSOUSRA PIC X(002). ! -136500* ANNEE DATE SOUSCRIPTION ! -136600 10 WS-4DCO-DSOUSRM PIC X(002). ! -136700* MOIS DATE SOUSCRIPTION ! -136800 10 WS-4DCO-DSOUSRJ PIC X(002). ! -136900* JOUR DATE SOUSCRIPTION ! -137000 05 WS-4DCO-DECHER. ! -137100* DATE ECHEANCE ! -137200 10 WS-4DCO-DECHERSA. ! -137300* SIECLE ANNEE DATE ECHEANCE ! -137400 15 WS-4DCO-DECHERS PIC X(002). ! -137500* SIECLE DATE ECHEANCE ! -137600 15 WS-4DCO-DECHERA PIC X(002). ! -137700* ANNEE DATE ECHEANCE ! -137800 10 WS-4DCO-DECHERM PIC X(002). ! -137900* MOIS DATE ECHEANCE ! -138000 10 WS-4DCO-DECHERJ PIC X(002). ! -138100* JOUR DATE ECHEANCE ! -138200 05 WS-4DCO-DOPE. ! -138300* DATE VERSEMENT ! -138400 10 WS-4DCO-DOPESA. ! -138500* SIECLE ANNEE DATE VERSEMENT ! -138600 15 WS-4DCO-DOPES PIC X(002). ! -138700* SIECLE DATE VERSEMENT ! -138800 15 WS-4DCO-DOPEA PIC X(002). ! -138900* ANNEE DATE VERSEMENT ! -139000 10 WS-4DCO-DOPEM PIC X(002). ! -139100* MOIS DATE VERSEMENT ! -139200 10 WS-4DCO-DOPEJ PIC X(002). ! -139300* JOUR DATE VERSEMENT ! -139400 05 WS-4DCO-DEFCNTR. ! -139500* DATE EFFET CONTRAT ! -139600 10 WS-4DCO-DEFCNTRSA. ! -139700* SIECLE ANNEE DATE EFFET CONTRAT ! -139800 15 WS-4DCO-DEFCNTRS PIC X(002). ! -139900* SIECLE DATE EFFET CONTRAT ! -140000 15 WS-4DCO-DEFCNTRA PIC X(002). ! -140100* ANNEE DATE EFFET CONTRAT ! -140200 10 WS-4DCO-DEFCNTRM PIC X(002). ! -140300* MOIS DATE EFFET CONTRAT ! -140400 10 WS-4DCO-DEFCNTRJ PIC X(002). ! -140500* JOUR DATE EFFET CONTRAT ! -140600 05 WS-4DCO-FINDTGAR. ! -140700* ! -140800 10 WS-4DCO-JJDTGAR PIC X(002). ! -140900* ! -141000 10 WS-4DCO-MMDTGAR PIC X(002). ! -141100* ! -141200 10 WS-4DCO-ANDTGAR. ! -141300* ! -141400 15 WS-4DCO-SSDTGAR PIC X(002). ! -141500* ! -141600 15 WS-4DCO-AADTGAR PIC X(002). ! -141700* ! -141800 05 WS-4DCO-STR-GERR PIC X(006). ! -141900* STRUCTURE GERANTE DU CONTRAT ! -142000 05 WS-4DCO-TXMNGARR PIC S9(02)V9(03). ! -142100* TAUX MINIMUM GARANTI CONTRAT ! -142200 05 WS-4DCO-BRUTINIR PIC S9(09)V9(02). ! -142300* MONTANT BRUT VERSEMENT ! -142400 05 WS-4DCO-BRUTINIR-C REDEFINES WS-4DCO-BRUTINIR ! -142500 PIC S9(11). ! -142600* MONTANT BRUT VERSEMENT ! -142700 05 WS-4DCO-NETINIR PIC S9(09)V9(02). ! -142800* MONTANT NET VERSEMENT ! -142900 05 WS-4DCO-NETINIR-C REDEFINES WS-4DCO-NETINIR ! -143000 PIC S9(11). ! -143100* MONTANT NET VERSEMENT ! -143200 05 WS-4DCO-FRSINIR PIC S9(09)V9(02). ! -143300* MONTANT FRAIS VERSEMENT ! -143400 05 WS-4DCO-FRSINIR-C REDEFINES WS-4DCO-FRSINIR ! -143500 PIC S9(11). ! -143600* MONTANT FRAIS VERSEMENT ! -143700 05 WS-4DCO-NB-VER-EXC PIC 9(03) COMP-3. ! -143800* NOMBRE DE VERSEMENTS ! -143900 05 WS-4DCO-TYP-VERR PIC X(001). ! -144000* PERIODICITE DES VERSEMENTS ! -144100 05 WS-4DCO-REN-RETRO PIC X(001). ! -144200* INDICATEUR DE RETROACTIVITE ! -144300 05 WS-4DCO-REN-NBRE-PASSAGE PIC X(001). ! -144400* INDICATEUR NOMBRE PASSAGES ! -144500 05 WS-4DCO-LIB-IDT-CTR-RE PIC X(016). ! -144600* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -144700 05 WS-4DCO-NO-IDT-CTR-RE PIC X(015). ! -144800* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -144900 05 WS-4DCO-NOMR PIC X(032). ! -145000* NOM PRENOM DU SOUSCRIPTEUR ! -145100 05 WS-4DCO-AGT-GTNR PIC X(008). ! -145200* NO. AGENT GESTIONNAIRE DU CONTRAT ! -145300 05 WS-4DCO-REN-MT-NET-VER-INI PIC S9(11) COMP-3. ! -145400* MONTANT NET DU VERSEMENT INITIAL ! -145500 05 WS-4DCO-REN-SLD-TPS-REAL PIC S9(15) COMP-3. ! -145600* SOLDE TP TEMPS REEL ! -145700 05 WS-4DCO-REN-IDC-EDI-CM PIC X(01). ! -145800* indicateur edition cheque ccm ! -145900 05 FILLER PIC X(1588). ! -146000* ZONES DISPONIBLES ! -146100* ------------------------------------------------------ * ! -146200 ! -146300 03 WS-4DCO-MODIFICATION REDEFINES WS-4DCO-PROGRAM. ! -146400* ==================== ! -146500* ------------------------------------------------------ * ! -146600* COMMAREA : MODIFICATION * ! -146700* LONGUEUR : 1800 * ! -146800* PREFIXE : WS-4DCO- * ! -146900* ------------------------------------------------------ * ! -147000* NOTE : 11/06/92 = CORRECTION COMMAREA MODIFICATION ! -147100 ! -147200 05 WS-4DCO-MOD-BEN-OK PIC X(001). ! -147300* INDICATEUR SAISIE BENEF. OK ! -147400 05 WS-4DCO-MOD-NB-ITEM-TS PIC 9(02). ! -147500* NB ITEM TS DES BENEFICIAIRES ! -147600 05 WS-4DCO-MOD-NB-BEN-PEP PIC 9(02). ! -147700* NB BENEF NON ANNULES PEP ! -147800 05 WS-4DCO-MOD-NB-NOUV-BEN PIC 9(02). ! -147900* NB NOUVEAUX BENEFICIAIRES ! -148000 05 WS-4DCO-MOD-DER-NO-ORD PIC 9(02). ! -148100* DERNIER NO ORDRE ART 10 PEP ! -148200 05 WS-4DCO-MOD-DER-NO-BNF PIC 9(02). ! -148300* DERNIER NO BENEF ART 10 PEP ! -148400 05 WS-4DCO-MOD-LIB-CTR PIC X(16). ! -148500* LIBELLE DU TYPE DE CONTRAT ! -148600 05 WS-4DCO-MOD-IDT-CTR PIC X(15). ! -148700* IDENTIFIANT DU CONTRAT ! -148800 05 WS-4DCO-MOD-STR-GTN PIC X(06). ! -148900* STRUCTURE GESTIONNAIRE DU CONTRAT ! -149000 05 WS-4DCO-MOD-AGT-GTN PIC X(08). ! -149100* AGENT GESTIONNAIRE DU CONTRAT ! -149200 05 WS-4DCO-MOD-NOM-CLI PIC X(32). ! -149300* NOM DU SOUSCRIPTEUR ! -149400 05 WS-4DCO-MOD-TX-DERO-VP PIC X(01). ! -149500* INDICATEUR DE TAUX DEROGATOIRE SUR V.P. ! -149600 05 FILLER PIC X(022). ! -149700* ZONES DISPONIBLES ! -149800 05 WS-4DCO-MOD-MAP-M42620A. ! -149900* ZONES MAP M42620A ! -150000 10 WS-4DCO-MOD-SAISIE-BENEF PIC X(001). ! -150100* INDICATEUR TRT BENEFICIAIRES ! -150200 10 WS-4DCO-MOD-CD-INT PIC X(002). ! -150300* CODE INTITULE DU TITULAIRE ! -150400 10 WS-4DCO-MOD-NOM-PATRO PIC X(032). ! -150500* NOM DU TITULAIRE ! -150600 10 WS-4DCO-MOD-DA-NAI. ! -150700* DATE NAISSANCE TITULAIRE ! -150800 15 WS-4DCO-MOD-DA-NAI-A PIC X(004). ! -150900* ANNEE NAISSANCE TITULAIRE ! -151000 15 WS-4DCO-MOD-DA-NAI-M PIC X(002). ! -151100* MOIS NAISSANCE TITULAIRE ! -151200 15 WS-4DCO-MOD-DA-NAI-J PIC X(002). ! -151300* JOUR NAISSANCE TITULAIRE ! -151400 10 WS-4DCO-MOD-DA-SCR. ! -151500* DATE SOUSCRIPTION ! -151600 15 WS-4DCO-MOD-DA-SCR-SA PIC 9(04). ! -151700* SIECLE ANNEE DATE SOUSCRIPTION ! -151800 15 WS-4DCO-MOD-DA-SCR-M PIC 9(02). ! -151900* MOIS DATE SOUSCRIPTION ! -152000 15 WS-4DCO-MOD-DA-SCR-J PIC 9(02). ! -152100* JOUR DATE SOUSCRIPTION ! -152200 10 WS-4DCO-MOD-DA-ECN-CTR PIC X(008). ! -152300* DATE ECHEANCE CONTRAT ! -152400 10 WS-4DCO-MOD-DUR-CTR-AV PIC X(004). ! -152500* DUREE DU CONTRAT AVANT MODIFICATION ! -152600 10 WS-4DCO-MOD-DUR-CTR. ! -152700* DUREE DU CONTRAT ! -152800 15 WS-4DCO-MOD-AA-DUR-CTR PIC X(002). ! -152900* NB ANNEES DUREE DU CONTRAT ! -153000 15 WS-4DCO-MOD-MM-DUR-CTR PIC X(002). ! -153100* NB MOIS DUREE DU CONTRAT ! -153200 10 FILLER REDEFINES WS-4DCO-MOD-DUR-CTR. ! -153300* DUREE DU CONTRAT (NUMERIQUE) ! -153400 15 WS-4DCO-MOD-AA-DUR-CTR-R PIC 9(02). ! -153500* NB ANNEES DUREE DU CONTRAT (NUMERIQUE) ! -153600 15 WS-4DCO-MOD-MM-DUR-CTR-R PIC 9(02). ! -153700* NB MOIS DUREE DU CONTRAT (NUMERIQUE) ! -153800 10 WS-4DCO-MOD-DA-ECN-AV PIC X(008). ! -153900* DATE ECHEANCE CONTRAT ! -154000 10 WS-4DCO-MOD-DA-ECN. ! -154100* DATE ECHEANCE CONTRAT ! -154200 15 WS-4DCO-MOD-DA-ECN-A PIC X(004). ! -154300* SIECLE ANNEE DATE ECHEANCE CONTRAT ! -154400 15 WS-4DCO-MOD-DA-ECN-M PIC X(002). ! -154500* MOIS DATE ECHEANCE CONTRAT ! -154600 15 WS-4DCO-MOD-DA-ECN-J PIC X(002). ! -154700* JOUR DATE ECHEANCE CONTRAT ! -154800 10 FILLER REDEFINES WS-4DCO-MOD-DA-ECN. ! -154900* DATE ECHEANCE CONTRAT (NUMERIQUE) ! -155000 15 WS-4DCO-MOD-DA-ECN-A-R PIC 9(04). ! -155100* SIECLE ANNEE DATE ECHEANCE CONTRAT ! -155200 15 WS-4DCO-MOD-DA-ECN-M-R PIC 9(02). ! -155300* MOIS DATE ECHEANCE CONTRAT ! -155400 15 WS-4DCO-MOD-DA-ECN-J-R PIC 9(02). ! -155500* JOUR DATE ECHEANCE CONTRAT ! -155600 10 WS-4DCO-MOD-TRT-BEN PIC X(001). ! -155700* INDICATEUR MODIF BENEFICIAIRES ! -155800 10 WS-4DCO-MOD-CD-EXP PIC X(001). ! -155900* CODE EXPEDITION ! -156000 10 WS-4DCO-MOD-CD-NTS-AV PIC X(001). ! -156100* VALEUR NANTISSEMENT AV MODIF ! -156200 10 WS-4DCO-MOD-CD-NTS PIC X(001). ! -156300* NOUVELLE VALEUR NANTISSEMENT ! -156400 10 WS-4DCO-MOD-EXIST-VP PIC X(001). ! -156500* INDICATEUR EXISTENCE V.P. POUR LE COMPTE ! -156600 10 WS-4DCO-MOD-VP-AUTORISE PIC X(001). ! -156700* INDICATEUR DE VERSEMENT PERIODIQUE ! -156800 10 WS-4DCO-MOD-NO-RIB-VP. ! -156900* RIB COMPTE DOM. VERSEMENTS PERIODIQUES ! -157000 15 WS-4DCO-MOD-CD-BNQ-VP PIC X(005). ! -157100* CODE BANQUE COMPTE DOM. V.P. ! -157200 15 WS-4DCO-MOD-CD-GCH-VP PIC X(005). ! -157300* CODE GUICHET COMPTE DOM. V.P. ! -157400 15 WS-4DCO-MOD-NO-CPT-VP PIC X(011). ! -157500* NUMERO DE COMPTE DOM. V.P. ! -157600 15 WS-4DCO-MOD-CLE-RIB-VP PIC X(002). ! -157700* CLE RIB COMPTE DOM. V.P. ! -157800 10 WS-4DCO-MOD-SLD-X PIC X(016). ! -157900* SOLDE COMPTE VERSEMENT PERIODIQUE ! -158000 10 WS-4DCO-MOD-SLD-F PIC S9(13)V9(02). ! -158100* SOLDE COMPTE VERSEMENT PERIODIQUE ! -158200 10 WS-4DCO-MOD-SLD-C REDEFINES WS-4DCO-MOD-SLD-F ! -158300 PIC S9(15). ! -158400* SOLDE COMPTE VERSEMENT PERIODIQUE ! -158500 10 WS-4DCO-MOD-DA-EFF-VP-AV PIC X(008). ! -158600* DATE EFFET V.P. AVANT MODIFICATION ! -158700 10 WS-4DCO-MOD-DA-EFF-VP. ! -158800* DATE EFFET V.P. ! -158900 15 WS-4DCO-MOD-DA-EFF-VP-SA PIC X(004). ! -159000* ANNEE DATE EFFET V.P. ! -159100 15 WS-4DCO-MOD-DA-EFF-VP-M PIC X(002). ! -159200* MOIS DATE EFFET V.P. ! -159300 15 WS-4DCO-MOD-DA-EFF-VP-J PIC X(002). ! -159400* JOUR DATE EFFET V.P. ! -159500 10 WS-4DCO-MOD-MT-BRT-X PIC X(10). ! -159600* MONTANT BRUT V.P. AFFICHE A L'ECRAN ! -159700 10 WS-4DCO-MOD-MT-BRT-F PIC S9(07)V9(02). ! -159800* MONTANT BRUT V.P. ! -159900 10 WS-4DCO-MOD-MT-BRT-C REDEFINES WS-4DCO-MOD-MT-BRT-F ! -160000 PIC S9(09). ! -160100* MONTANT BRUT V.P. ! -160200 10 WS-4DCO-MOD-TX-FRS-X PIC X(006). ! -160300* TAUX DE FRAIS V.P. AFFICHE A L'ECRAN ! -160400 10 WS-4DCO-MOD-TX-FRS-F PIC 9(02)V9(03). ! -160500* TAUX DE FRAIS V.P. ! -160600 10 WS-4DCO-MOD-TX-FRS-C REDEFINES WS-4DCO-MOD-TX-FRS-F ! -160700 PIC 9(05). ! -160800* TAUX DE FRAIS V.P. ! -160900 10 WS-4DCO-MOD-MT-FRS-X PIC X(010). ! -161000* MONTANT FRAIS V.P. AFFICHE A L'ECRAN ! -161100 10 WS-4DCO-MOD-MT-FRS-F PIC S9(07)V9(02). ! -161200* MONTANT FRAIS V.P. ! -161300 10 WS-4DCO-MOD-MT-FRS-C REDEFINES WS-4DCO-MOD-MT-FRS-F ! -161400 PIC S9(09). ! -161500* MONTANT FRAIS V.P. ! -161600 10 WS-4DCO-MOD-MT-NET-X PIC X(010). ! -161700* MONTANT NET V.P. AFFICHE A L'ECRAN ! -161800 10 WS-4DCO-MOD-MT-NET-F PIC S9(07)V9(02). ! -161900* MONTANT NET V.P. ! -162000 10 WS-4DCO-MOD-MT-NET-C REDEFINES WS-4DCO-MOD-MT-NET-F ! -162100 PIC S9(09). ! -162200* MONTANT NET V.P. ! -162300 10 WS-4DCO-MOD-NET-CTR PIC S9(07)V9(02). ! -162400* MONTANT NET DES VERSEMENTS DU CONTRAT ! -162500 10 WS-4DCO-MOD-NET-CTR-R REDEFINES WS-4DCO-MOD-NET-CTR ! -162600 PIC S9(09). ! -162700* MONTANT NET DES VERSEMENTS DU CONTRAT ! -162800 10 WS-4DCO-MOD-CD-PER-VP PIC X(001). ! -162900* CODE PERIODICITE ! -163000 10 WS-4DCO-MOD-AJU-CTS PIC X(001). ! -163100* INDICATEUR AJUSTEMENT VERSEMENTS ! -163200 10 WS-4DCO-MOD-DRG-FRS-GTN PIC X(001). ! -163300* INDICATEUR DE DEROGATION TAUX FRAIS ! -163400 10 WS-4DCO-MOD-MM-DUR-CTR-SAI PIC X(002). ! -163500* DUREE DE CONTRAT SAISIE MOIS ! -163600 10 WS-4DCO-MOD-AA-DUR-CTR-SAI PIC X(002). ! -163700* DUREE DE CONTRAT SAISIE ANNEE ! -163800 10 WS-4DCO-MOD-DA-ECN-M-SAI PIC X(002). ! -163900* DATE D'ECHEANCE SAISIE MOIS ! -164000 10 WS-4DCO-MOD-DA-ECN-A-SAI PIC X(004). ! -164100* DATE D'ECHEANCE SAISIE ANNEE ! -164200 10 WS-4DCO-MOD-DA-EFF-CTR PIC X(008). ! -164300* DATE EFFET CONTRAT ! -164400 10 FILLER PIC X(082). ! -164500* ZONES DISPONIBLES ! -164600 05 WS-4DCO-MOD-MAP-M42630A. ! -164700* ZONES BENEF. MAP M42630A ! -164800 10 WS-4DCO-MOD-NO-PAGE PIC 9(02). ! -164900* NUMERO DE PAGE ECRAN M42630A ! -165000 10 WS-4DCO-MOD-NB-PAGES PIC 9(02). ! -165100* NOMBRE DE PAGES ECRAN M42630A ! -165200 10 WS-4DCO-MOD-TAB-BENEF OCCURS 10. ! -165300* TABLEAU DES BENEF / M42630A ! -165400 15 WS-4DCO-MOD-NOM PIC X(032). ! -165500* NOM DU BENEFICIAIRE ! -165600 15 WS-4DCO-MOD-QP PIC X(003). ! -165700* QUOTE PART DU BENEFICIAIRE ! -165800 15 WS-4DCO-MOD-ETAT PIC X(003). ! -165900* ETAT DU BENEFICIAIRE ! -166000 10 WS-4DCO-MOD-TAB-TRT. ! -166100* TABLEAU TOP DE TRT BENEF. ! -166200 15 WS-4DCO-MOD-TRT PIC X(001) OCCURS 10. ! -166300* TOP DE SAISIE BENEFICIAIRE ! -166400 05 WS-4DCO-MOD-TS-BENEF-OK PIC X(001). ! -166500* INDICATEUR EXISTENCE TS BENEF. ! -166600 05 WS-4DCO-MOD-MAP-M42640A. ! -166700* ZONES BENEFICIAIRE MAP M42640A ! -166800 10 WS-4DCO-MOD-CD-INT-BNF PIC X(002). ! -166900* CODE INTITULE BENEFICIAIRE ! -167000 10 WS-4DCO-MOD-NOM-PATRO-BNF PIC X(032). ! -167100* NOM BENEFICIAIRE ! -167200 10 WS-4DCO-MOD-DA-NAI-BNF. ! -167300* DATE DE NAISSANCE BENEF ! -167400 15 WS-4DCO-MOD-DA-NAI-BNF-SA PIC X(004). ! -167500* SIECLE ANNEE DATE DE NAISSANCE ! -167600 15 WS-4DCO-MOD-DA-NAI-BNF-M PIC X(002). ! -167700* MOIS DATE DE NAISSANCE ! -167800 15 WS-4DCO-MOD-DA-NAI-BNF-J PIC X(002). ! -167900* JOUR DATE DE NAISSANCE ! -168000 10 WS-4DCO-MOD-NO-RIB. ! -168100* NUMERO DE COMPTE BENEFICIAIRE ! -168200 15 WS-4DCO-MOD-CD-BQE PIC X(005). ! -168300* CODE BANQUE RIB BENEFICIAIRE ! -168400 15 WS-4DCO-MOD-CD-GCH PIC X(005). ! -168500* CODE GUICHET RIB BENEFICIAIRE ! -168600 15 WS-4DCO-MOD-NO-CPT PIC X(011). ! -168700* NO COMPTE RIB BENEFICIAIRE ! -168800 15 WS-4DCO-MOD-CLE-RIB PIC X(002). ! -168900* CLE RIB BENEFICIAIRE ! -169000 10 WS-4DCO-MOD-QUOTE-PART PIC X(003). ! -169100* QUOTE PART DU BENEFICIAIRE ! -169200 10 WS-4DCO-MOD-LIB-RUE-1 PIC X(032). ! -169300* RUE ADRESSE BENEFICIAIRE ! -169400 10 WS-4DCO-MOD-CD-POST PIC X(005). ! -169500* CODE POSTAL ADRESSE BENEF. ! -169600 10 WS-4DCO-MOD-LIB-COMMUNE PIC X(032). ! -169700* VILLE ADRESSE BENEFICIAIRE ! -169800 10 WS-4DCO-MOD-LIB-RUE-2 PIC X(032). ! -169900* RUE ADRESSE BENEFICIAIRE ! -170000 05 WS-4DCO-MOD-LIB-AVN PIC X(019). ! -170100* LIBELLE AVANCE ! -170200 05 WS-4DCO-MOD-SLD-AVN-X PIC X(014). ! -170300* ! -170400 05 WS-4DCO-MOD-SLD-AVN PIC S9(15) COMP-3. ! -170500* ! -170600 05 WS-4DCO-MOD-SLD-AVN-R REDEFINES WS-4DCO-MOD-SLD-AVN ! -170700 PIC S9(13)V9(02) COMP-3. ! -170800* ! -170900 05 WS-4DCO-MOD-IDC-NTS PIC X(001). ! -171000* ! -171100 05 WS-4DCO-MOD-REF-EXT-INTV PIC X(015). ! -171200* ! -171300 05 WS-4DCO-MOD-EXPED PIC X(001). ! -171400* TYPE D'EXPEDITION ! -171500* ! -171600* ====> MODIFICATION DU CADRE DU CONTRAT : ! -171700* ---- EPARGNE HANDICAP ! -171800* ---- RENTE SURVIE ! -171900 05 WS-4DCO-MOD-CD-EPH-AV PIC X(001). ! -172000* VALEUR CODE EPARGNE HANDICAP ! -172100 05 WS-4DCO-MOD-CD-EPH PIC X(001). ! -172200* NOUVELLE VALEUR EPARGNE HANDICAP ! -172300 05 WS-4DCO-MOD-CD-RSU-AV PIC X(001). ! -172400* VALEUR CODE RENTE SURVIE ! -172500 05 WS-4DCO-MOD-CD-RSU PIC X(001). ! -172600* NOUVELLE VALEUR RENTE SURVIE ! -172700 05 WS-4DCO-MOD-CREAT-VP PIC X(001). ! -172800* INDICATEUR CREATION V.P. POUR LE COMPTE ! -172900 05 WS-4DCO-MOD-DA-ADH-RGM-VLL PIC X(008). ! -173000* DATE ADHESION REGIME VIEILLESSE (SSAAMMJJ) ! -173100 05 FILLER REDEFINES WS-4DCO-MOD-DA-ADH-RGM-VLL. ! -173200 07 WS-4DCO-MOD-DA-ADH-RGM-VLL-A PIC X(4). ! -173300 07 WS-4DCO-MOD-DA-ADH-RGM-VLL-M PIC X(2). ! -173400 07 WS-4DCO-MOD-DA-ADH-RGM-VLL-J PIC X(2). ! -173500 05 WS-4DCO-MOD-PER-ARR-FIS-CLI PIC X(004). ! -173600* PERIODE ARRETE FISCAL CLIENT (MMJJ) ! -173700 05 FILLER REDEFINES WS-4DCO-MOD-PER-ARR-FIS-CLI . ! -173800 07 WS-4DCO-MOD-PER-ARR-FIS-CLI-M PIC X(2). ! -173900 07 WS-4DCO-MOD-PER-ARR-FIS-CLI-J PIC X(2). ! -174000 05 WS-4DCO-MOD-TOP-PREM-PREL PIC X(01). ! -174100 05 WS-4DCO-MOD-TY-TRF-PP-AV PIC X(02). ! -174200* TYPE DE CLASSIFICATION PU/PP AVANT MOD ! -174300 05 WS-4DCO-MOD-TY-TRF-PP PIC X(02). ! -174400* TYPE DE CLASSIFICATION PU/PP ! -174500 05 WS-4DCO-CD-PER-RPP PIC X(01). ! -174600* CODE PERIODICITE RPP ! -174700 05 WS-4DCO-MOD-NO-GEN-TY-PRD PIC X(03). ! -174800* NO DE GENERATION TYPE DE PRODUIT ! -174900 05 WS-4DCO-MOD-IDC-RFS-CDN-NV-AV PIC X(01). ! -175000* INDICATEUR REFUS CONDITION NOUVELLE AVANT ! -175100 05 WS-4DCO-MOD-IDC-RFS-CDN-NV PIC X(01). ! -175200* INDICATEUR REFUS CONDITION NOUVELLE ! -175300 05 WS-4DCO-MOD-IDC-CTRL PIC X(1). ! -175400* INDICATEUR DE CONTROLE ! -175500 05 WS-4DCO-MOD-ERRMSG PIC X(6). ! -175600* SAUVEGARDE MESSAGE ERREUR ! -175700 05 WS-4DCO-MOD-4DME0. ! -175800 10 WS-4DCO-MOD-CD-BLOC-DOSS PIC X(01). ! -175900 10 WS-4DCO-MOD-CD-BLOC-DOSS-AV PIC X(01). ! -176000* DATE PROCHAIN RACHAT ! -176100 05 WS-4DCO-MOD-DA-NXT-RPP. ! -176200 10 WS-4DCO-MOD-DA-NXT-RPP-A PIC X(04). ! -176300 10 WS-4DCO-MOD-DA-NXT-RPP-M PIC X(02). ! -176400 10 WS-4DCO-MOD-DA-NXT-RPP-J PIC X(02). ! -176500* ! -176600* DATE DERNIER RACHAT ! -176700 05 WS-4DCO-MOD-DA-DNR-RPP. ! -176800 10 WS-4DCO-MOD-DA-DNR-RPP-A PIC X(04). ! -176900 10 WS-4DCO-MOD-DA-DNR-RPP-M PIC X(02). ! -177000 10 WS-4DCO-MOD-DA-DNR-RPP-J PIC X(02). ! -177100* TYPE DE TRAITEMENT ! -177200 05 WS-4DCO-SAV-4DMI0. ! -177300 10 WS-4DCO-SAV-OPERATION PIC X(02). ! -177400 88 WS-CREATION VALUE 'CR'. ! -177500 88 WS-MODIFICATION VALUE 'MO'. ! -177600 88 WS-CONSULTATION VALUE 'CS'. ! -177700 88 WS-SUPPRESSION VALUE 'SP'. ! -177800* ! -177900 05 FILLER PIC X(0673). ! -178000* ZONES DISPONIBLES ! -178100* ------------------------------------------------------ * ! -178200 ! -178300 03 WS-4DCO-RACHAT REDEFINES WS-4DCO-PROGRAM. ! -178400* ============== ! -178500* ------------------------------------------------------ * ! -178600* COMMAREA : RACHAT * ! -178700* LONGUEUR : 1800 * ! -178800* PREFIXE : WS-4DCO- * ! -178900* ------------------------------------------------------ * ! -179000 ! -179100 05 WS-4DCO-RIBRC. ! -179200* RIB CPTE DOM RACHAT ! -179300 10 WS-4DCO-BNQDRC PIC X(005). ! -179400* BANQUE RIB CPTE DOM RACHAT ! -179500 10 WS-4DCO-GUICDRC PIC X(005). ! -179600* GUICHET RIB CPTE DOM RACHAT ! -179700 10 WS-4DCO-RACDRC PIC X(011). ! -179800* RACINE RIB CPTE DOM RACHAT ! -179900 10 WS-4DCO-CLEDRC PIC X(002). ! -180000* CLE RIB CPTE DOM RACHAT ! -180100 05 WS-4DCO-STR-GTN-RC PIC X(006). ! -180200* STRUCTURE GESTIONNAIRE DU CONTRAT ! -180300 05 WS-4DCO-DSOURC. ! -180400* DATE SOUSCRIPTION CONTRAT ! -180500 10 WS-4DCO-AA-SOUSC. ! -180600* SIECLE ANNEE DATE SOUSCRIPTION CONTRAT ! -180700 15 WS-4DCO-AA1-SOUSC PIC X(002). ! -180800* SIECLE DATE SOUSCRIPTION CONTRAT ! -180900 15 WS-4DCO-AA2-SOUSC PIC X(002). ! -181000* ANNEE DATE SOUSCRIPTION CONTRAT ! -181100 10 WS-4DCO-MM-SOUSC PIC X(002). ! -181200* MOIS DATE SOUSCRIPTION CONTRAT ! -181300 10 WS-4DCO-JJ-SOUSC PIC X(002). ! -181400* JOUR DATE SOUSCRIPTION CONTRAT ! -181500 05 WS-4DCO-DSOURC-EFF. ! -181600* DATE EFFET SOUSCRIPTION ! -181700 10 WS-4DCO-AA-EFF-SOUSC. ! -181800* SIECLE ANNEE DATE EFFET SOUSCRIPTION ! -181900 15 WS-4DCO-AA1-EFF-SC PIC X(002). ! -182000* SIECLE DATE EFFET SOUSCRIPTION ! -182100 15 WS-4DCO-AA2-EFF-SC PIC X(002). ! -182200* ANNEE DATE EFFET SOUSCRIPTION ! -182300 10 WS-4DCO-MM-EFF-SOUSC PIC X(002). ! -182400* MOIS DATE EFFET SOUSCRIPTION ! -182500 10 WS-4DCO-JJ-EFF-SOUSC PIC X(002). ! -182600* JOUR DATE EFFET SOUSCRIPTION ! -182700 05 WS-4DCO-DOPE-RC. ! -182800* DATE OPERATION RACHAT ! -182900 10 WS-4DCO-AA-OPE. ! -183000* SIECLE ANNEE DATE OPERATION RACHAT ! -183100 15 WS-4DCO-AA1-OPE PIC X(002). ! -183200* SIECLE DATE OPERATION RACHAT ! -183300 15 WS-4DCO-AA2-OPE PIC X(002). ! -183400* ANNEE DATE OPERATION RACHAT ! -183500 10 WS-4DCO-MM-OPE PIC X(002). ! -183600* MOIS DATE OPERATION RACHAT ! -183700 10 WS-4DCO-JJ-OPE PIC X(002). ! -183800* JOUR DATE OPERATION RACHAT ! -183900 05 WS-4DCO-DEFFET-RC. ! -184000* DATE EFFET RACHAT ! -184100 10 WS-4DCO-AA-EFF. ! -184200* SIECLE ANNEE DATE EFFET RACHAT ! -184300 15 WS-4DCO-AA1-EFF PIC X(002). ! -184400* SIECLE DATE EFFET RACHAT ! -184500 15 WS-4DCO-AA2-EFF PIC X(002). ! -184600* ANNEE DATE EFFET RACHAT ! -184700 10 WS-4DCO-MM-EFF PIC X(002). ! -184800* MOIS DATE EFFET RACHAT ! -184900 10 WS-4DCO-JJ-EFF PIC X(002). ! -185000* JOUR DATE EFFET RACHAT ! -185100 05 WS-4DCO-IDC-DCS PIC X(001). ! -185200* INDICATEUR DE DECES ACCIDENTEL (PREVI-CROISSANCE) ! -185300 05 WS-4DCO-DECLA-INT PIC X(001). ! -185400* ! -185500 05 FILLER PIC X(001). ! -185600* ZONE DISPONIBLE ! -185700 05 WS-4DCO-CERTIF-IMP PIC X(001). ! -185800* ! -185900 05 WS-4DCO-ZOOM PIC X(001). ! -186000* ! -186100 05 WS-4DCO-NOMRC PIC X(032). ! -186200* ! -186300 05 WS-4DCO-LIB-AVN-RC PIC X(014). ! -186400* LIBELLE AVANCE ! -186500 05 WS-4DCO-SLD-AVN-RC-X PIC X(14). ! -186600* ! -186700 05 WS-4DCO-SLD-AVN-RC PIC S9(15) COMP-3. ! -186800* ! -186900 05 WS-4DCO-SLD-AVN-RC-R REDEFINES WS-4DCO-SLD-AVN-RC ! -187000 PIC S9(13)V9(02) COMP-3. ! -187100* ! -187200 05 WS-4DCO-DA-DNR-PAB-RC PIC X(08). ! -187300* DATE DE PASSAGE DE LA DERNIERE PAB ! -187400* ! -187500 05 WS-4DCO-IT-FR-A-RC PIC S9(15) COMP-3. ! -187600* INTERETS ET FRAIS SUR AVANCE ! -187700 05 WS-4DCO-IT-FR-A-RC-R REDEFINES WS-4DCO-IT-FR-A-RC ! -187800 PIC S9(13)V9(02) COMP-3. ! -187900* ! -188000 05 WS-4DCO-FRS-ANN-RC PIC S9(15) COMP-3. ! -188100* FRAIS ANNUELS DE GESTION ! -188200 05 WS-4DCO-FRS-ANN-RC-R REDEFINES WS-4DCO-FRS-ANN-RC ! -188300 PIC S9(13)V9(02) COMP-3. ! -188400* FRAIS ANNUELS DE GESTION -> NOUVEAU PRODUIT ! -188500 05 WS-4DCO-FRS-ANN-GTN PIC S9(15) COMP-3. ! -188600 05 WS-4DCO-FRS-ANN-GTN-R REDEFINES WS-4DCO-FRS-ANN-GTN ! -188700 PIC S9(13)V9(02) COMP-3. ! -188800 05 WS-4DCO-CRDS PIC S9(15) COMP-3. ! -188900 05 WS-4DCO-CRDS-R REDEFINES WS-4DCO-CRDS ! -189000 PIC S9(13)V9(02) COMP-3. ! -189100 05 FILLER PIC X(004). ! -189200* ZONES DISPONIBLES ! -189300 05 WS-4DCO-PREL-LIB-RC PIC S9(15) COMP-3. ! -189400* ! -189500 05 WS-4DCO-PR-LIB-RC-R REDEFINES WS-4DCO-PREL-LIB-RC ! -189600 PIC S9(13)V9(02) COMP-3. ! -189700* ! -189800 05 WS-4DCO-PREL-SOC-RC PIC S9(15) COMP-3. ! -189900* ! -190000 05 WS-4DCO-PR-SOC-RC-R REDEFINES WS-4DCO-PREL-SOC-RC ! -190100 PIC S9(13)V9(02) COMP-3. ! -190200* ! -190300 05 WS-4DCO-PREL-VIE-RC PIC S9(15) COMP-3. ! -190400* ! -190500 05 WS-4DCO-PR-VIE-RC-R REDEFINES WS-4DCO-PREL-VIE-RC ! -190600 PIC S9(13)V9(02) COMP-3. ! -190700* ! -190800 05 WS-4DCO-MT-VER-INI-RC PIC S9(11) COMP-3. ! -190900* ! -191000 05 WS-4DCO-SOLD-TP-RC PIC S9(15) COMP-3. ! -191100* ! -191200 05 WS-4DCO-SLD-TP-RC-R REDEFINES WS-4DCO-SOLD-TP-RC ! -191300 PIC S9(13)V9(02) COMP-3. ! -191400* ! -191500 05 WS-4DCO-SOLD-VERS PIC S9(15) COMP-3. ! -191600* SOMME VERSEE AU SOCIETAIRE ! -191700 05 WS-4DCO-SOLD-VERS-R REDEFINES WS-4DCO-SOLD-VERS ! -191800 PIC S9(13)V9(02) COMP-3. ! -191900* ! -192000 05 WS-4DCO-CD-VER-PER-RC PIC X(001). ! -192100* ! -192200 05 WS-4DCO-DRG-DA-SRC PIC X(001). ! -192300* ! -192400 05 WS-4DCO-DRAP-ZOOM-RC PIC X(001). ! -192500* ! -192600 05 WS-4DCO-NBRE-PASSAGE PIC X(001). ! -192700* ! -192800 05 WS-4DCO-DERN-NO-RACP PIC 9(003). ! -192900* ! -193000 05 WS-4DCO-MT-PART PIC S9(15) COMP-3. ! -193100* MONTANT DU RACHAT PARTIEL ! -193200 05 WS-4DCO-MT-PART-R REDEFINES WS-4DCO-MT-PART ! -193300 PIC S9(13)V9(02) COMP-3. ! -193400* MONTANT DU CREDIT SOCIETAIRE AFFICHE ! -193500 05 WS-4DCO-MT-CRD-SOC-AFF PIC X(011). ! -193600* ! -193700 05 WS-4DCO-SOLD-TP-A-RC PIC S9(15) COMP-3. ! -193800* ! -193900 05 WS-4DCO-SOLD-TP-A-RC-R REDEFINES WS-4DCO-SOLD-TP-A-RC ! -194000 PIC S9(13)V9(02) COMP-3. ! -194100 05 FILLER PIC X(015). ! -194200* ZONES DISPONIBLES ! -194300 05 WS-4DCO-LIB-DECLA-RC PIC X(045). ! -194400* ! -194500 05 WS-4DCO-LIB-IDT-CTR-RC PIC X(016). ! -194600* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -194700 05 WS-4DCO-NO-IDT-CTR-RC PIC X(015). ! -194800* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -194900 05 WS-4DCO-AGT-GTN-RC PIC X(008). ! -195000* NO. D'AGENT GESTIONNAIRE DU CONTRAT ! -195100 05 FILLER PIC X(055). ! -195200* ZONES DISPONIBLES ! -195300 05 WS-4DCO-LIB-EXO-RC PIC X(0045). ! -195400* COMPLEMENT DE ZONES RACHAT ASSURANCE ! -195500 05 WS-4DCO-EXO-RC PIC X(001). ! -195600* ! -195700 05 WS-4DCO-DRAP-RC PIC X(001). ! -195800* ! -195900 05 WS-4DCO-INT-BRT-RC PIC S9(15) COMP-3. ! -196000* ! -196100 05 WS-4DCO-INT-BRT-RC-R REDEFINES WS-4DCO-INT-BRT-RC ! -196200 PIC S9(13)V9(02) COMP-3. ! -196300* ! -196400 05 WS-4DCO-MT-PRIM-RC PIC S9(15) COMP-3. ! -196500* ! -196600 05 WS-4DCO-INT-PRIM-RC PIC S9(15) COMP-3. ! -196700* ! -196800 05 WS-4DCO-PREL-TOT-RC PIC S9(15) COMP-3. ! -196900* TOTAL PRELEVEMENTS : PREL + SOC + VIE ! -197000 05 WS-4DCO-PREL-TOT-RC-R REDEFINES WS-4DCO-PREL-TOT-RC ! -197100 PIC S9(13)V9(02) COMP-3. ! -197200* ! -197300 05 WS-4DCO-TX-PREL PIC S9(02)V9(03). ! -197400* ! -197500 05 WS-4DCO-MT-PV-RC PIC S9(15) COMP-3. ! -197600* ! -197700 05 WS-4DCO-MT-PV-RC-R REDEFINES WS-4DCO-MT-PV-RC ! -197800 PIC S9(13)V9(02) COMP-3. ! -197900* ! -198000 05 WS-4DCO-MT-VA-RC PIC S9(15) COMP-3. ! -198100* ! -198200 05 WS-4DCO-MT-VA-RC-R REDEFINES WS-4DCO-MT-VA-RC ! -198300 PIC S9(13)V9(02) COMP-3. ! -198400* ! -198500 05 WS-4DCO-INDIC-ART10 PIC X(001). ! -198600* ! -198700 05 WS-4DCO-ETAT-BEN PIC X(001). ! -198800* ! -198900 05 WS-4DCO-NO-ITEM-BENEF PIC S9(02). ! -199000* ! -199100 05 FILLER PIC X(002). ! -199200* ! -199300 05 WS-4DCO-CUMUL-QP-B PIC S9(03)V9(02). ! -199400* ! -199500 05 WS-4DCO-INT-A-RC PIC S9(15) COMP-3. ! -199600* ! -199700 05 WS-4DCO-INT-A-1-RC PIC S9(15) COMP-3. ! -199800* ! -199900 05 WS-4DCO-TOT-QP-REMB PIC S9(05). ! -200000* ! -200100 05 WS-4DCO-TOT-QP-REMB-D REDEFINES WS-4DCO-TOT-QP-REMB ! -200200 PIC S9(03)V9(02). ! -200300* ! -200400 05 WS-4DCO-TOT-MT-REMB PIC S9(13) COMP-3. ! -200500* ! -200600 05 WS-4DCO-NBRE-ART10 PIC S9(02). ! -200700* ! -200800 05 WS-4DCO-QP-EPG-CAP PIC S9(03)V9(02). ! -200900* ! -201000 05 WS-4DCO-NBR-MAX-ITEM PIC 9(02). ! -201100* ! -201200 05 WS-4DCO-CD-PREM-BEN PIC X(001). ! -201300* ! -201400 05 WS-4DCO-NBR-ITEM-01 PIC 9(02). ! -201500* ! -201600 05 WS-4DCO-NBR-ECR-VIERGE PIC S9(02). ! -201700* ! -201800 05 WS-4DCO-INDIC-PF5 PIC X(001). ! -201900* ! -202000 05 WS-4DCO-BEN-AFF PIC X(001). ! -202100* ! -202200 05 WS-4DCO-NO-BEN-TS PIC 9(02). ! -202300* ! -202400 05 WS-4DCO-NBR-BEN-TS PIC S9(02). ! -202500* ! -202600 05 WS-4DCO-IND-FISC PIC X(001). ! -202700* ! -202800 05 FILLER PIC X(016). ! -202900* ZONES DISPONIBLES ! -203000 05 WS-4DCO-SAVE-MAX-ITEM PIC 9(02). ! -203100* NOMBRE DE PAGES MAXI ! -203200 05 WS-4DCO-NBR-PAGE-RC PIC 9(02). ! -203300* NO PAGE COURANTE ! -203400 05 WS-4DCO-NO-PAGE-RC PIC 9(02). ! -203500* MONTANT DE LA CSG ! -203600 05 WS-4DCO-PREL-CSG-RC PIC S9(15) COMP-3. ! -203700* ! -203800 05 WS-4DCO-PR-CSG-RC-R REDEFINES WS-4DCO-PREL-CSG-RC ! -203900 PIC S9(13)V9(02) COMP-3. ! -204000* ! -204100* MONTANT Disponible rachat partiel ! -204200 05 WS-4DCO-MAX-DISPO-RC PIC S9(15) COMP-3. ! -204300* ! -204400 05 WS-4DCO-MAX-DISPO-RC-X REDEFINES WS-4DCO-MAX-DISPO-RC ! -204500 PIC S9(13)V9(02) COMP-3. ! -204600* ! -204700 05 FILLER PIC X(038). ! -204800* ZONES DISPONIBLES ! -204900 05 WS-4DCO-PREL-DPT-RC PIC S9(15) COMP-3. ! -205000* MONTANT CONTRIBUTION DEPARTEMENTALE ! -205100 05 WS-4DCO-PR-DPT-RC-R REDEFINES WS-4DCO-PREL-DPT-RC ! -205200 PIC S9(13)V9(02) COMP-3. ! -205300* ! -205400* DATE PROCHAIN RACHAT ! -205500 05 WS-4DCO-DA-NXT-RPP. ! -205600 10 WS-4DCO-DA-NXT-RPP-A PIC X(04). ! -205700 10 WS-4DCO-DA-NXT-RPP-M PIC X(02). ! -205800 10 WS-4DCO-DA-NXT-RPP-J PIC X(02). ! -205900* ! -206000* DATE DERNIER RACHAT ! -206100 05 WS-4DCO-DA-DNR-RPP. ! -206200 10 WS-4DCO-DA-DNR-RPP-A PIC X(04). ! -206300 10 WS-4DCO-DA-DNR-RPP-M PIC X(02). ! -206400 10 WS-4DCO-DA-DNR-RPP-J PIC X(02). ! -206500* ! -206600 05 WS-4DCO-TX-AJU-A-RPP PIC 9(07) COMP-3. ! -206700* ! -206800 05 WS-4DCO-DA-DNR-MAJ-02 PIC X(8). ! -206900 05 WS-4DCO-HEU-MN-SS-MAJ-02 PIC X(6). ! -207000* ! -207100 05 WS-4DCO-IDC-RACHAT-PEP PIC X(1). ! -207200 05 WS-4DCO-MOT-RACHAT-PEP PIC X(1). ! -207300 05 WS-4DCO-RC-IDC-DEBL-ATP PIC X(1). ! -207400* INDICATEUR DEBLOCAGE ANTICIPE ! -207500 05 WS-4DCO-RC-DA-DEBL-ATP. ! -207600* DATE DEBLOCAGE ANTICIPE ! -207700 10 WS-4DCO-RC-DA-DEBL-ATP-A PIC X(4). ! -207800* DATE DEBLOCAGE ANTICIPE ANNEE ! -207900 10 WS-4DCO-RC-DA-DEBL-ATP-M PIC X(2). ! -208000* DATE DEBLOCAGE ANTICIPE MOIS ! -208100 10 WS-4DCO-RC-DA-DEBL-ATP-J PIC X(2). ! -208200* DATE DEBLOCAGE ANTICIPE JOUR ! -208300 05 WS-4DCO-RC-IDC-DEBL-RCH PIC X(1). ! -208400* INDICATEUR DEBLOCAGE RACHAT ! -208500 05 WS-4DCO-RC-DA-DEBL-RCH. ! -208600* DATE DEBLOCAGE RACHAT ! -208700 10 WS-4DCO-RC-DA-DEBL-RCH-A PIC 9(4). ! -208800* DATE DEBLOCAGE RACHAT ANNEE ! -208900 10 WS-4DCO-RC-DA-DEBL-RCH-M PIC 9(2). ! -209000* DATE DEBLOCAGE RACHAT MOIS ! -209100 10 WS-4DCO-RC-DA-DEBL-RCH-J PIC 9(2). ! -209200* DATE DEBLOCAGE RACHAT JOUR ! -209300 05 WS-4DCO-EXO-RC-REF PIC X(1). ! -209400* INDICATEUR DE confirmation du code exo. '9' ! -209500 05 WS-4DCO-TX-PRL-SOC PIC S99V999 COMP-3. ! -209600* taux pr�l�vement social ! -209700 05 WS-4DCO-TX-PRL-VIE PIC S99V999 COMP-3. ! -209800* taux pr�l�vement vieillesse ! -209900 05 WS-4DCO-IDC-EPG-HCP PIC X. ! -210000* Indicateur �pargne handicap ! -210100 05 WS-4DCO-CTR-DMP PIC X(003). ! -210200* duree moyenne ponderee ! -210300* ! -210400* montant credit d impot ! -210500 05 WS-4DCO-MT-CRD-IMP PIC S9(15) COMP-3. ! -210600 05 WS-4DCO-MT-CRD-IMP-R REDEFINES WS-4DCO-MT-CRD-IMP ! -210700 PIC S9(13)V99 COMP-3. ! -210800 05 WS-4DCO-AGE-RC PIC 999. ! -210900 05 WS-4DCO-PRM-RCT-PAR PIC X. ! -211000* ! -211100 05 WS-4DCO-MT-PV-F8 PIC S9(15) COMP-3. ! -211200* ! -211300 05 WS-4DCO-MT-PV-F8-R REDEFINES WS-4DCO-MT-PV-F8 ! -211400 PIC S9(13)V9(02) COMP-3. ! -211500 05 WS-4DCO-PREL-LIB-F8 PIC S9(15) COMP-3. ! -211600* ! -211700 05 WS-4DCO-PR-LIB-F8-R REDEFINES WS-4DCO-PREL-LIB-F8 ! -211800 PIC S9(13)V9(02) COMP-3. ! -211900 05 WS-4DCO-MT-PV-FI01-R PIC S9(15) COMP-3. ! -212000* ! -212100 05 WS-4DCO-MT-PV-FI01 REDEFINES WS-4DCO-MT-PV-FI01-R ! -212200 PIC S9(13)V9(02) COMP-3. ! -212300 05 WS-4DCO-MT-PV-FI02-R PIC S9(15) COMP-3. ! -212400* ! -212500 05 WS-4DCO-MT-PV-FI02 REDEFINES WS-4DCO-MT-PV-FI02-R ! -212600 PIC S9(13)V9(02) COMP-3. ! -212700 05 WS-4DCO-TY-CPT-PER PIC X(1). ! -212800* indicateur pr�cisant le type de contrat PER ! -212900* mixte = type 1,2,3,5 ! -213000* assurance = type 4,6 ! -213100 05 WS-4DCO-RC-DA-BSC-EF PIC X(08). ! -213200* DATE EFFET DERNIER BASCULEMENT ! -213300 05 WS-4DCO-RC-DA-ECN-PROR PIC X(08). ! -213400* DATE ECHEANCE PROROGATION ! -213500 05 WS-4DCO-CREAT-RPP PIC X(1). ! -213600* indicateur pour savoir si on est en cr�ation de RPP ! -213700* prend la valeur 'c' qd on est en mise en place de rpp ! -213800 05 WS-4DCO-SLD-TPS-REAL PIC S9(15) COMP-3. ! -213900* Montant reserv� pour appel y4g140 ! -214000 05 WS-4DCO-DMP-AAMM PIC X(4). ! -214100* dmp sous forme AAMM ! -214200 05 WS-4DCO-RC-TY-RCH PIC X(01). ! -214300* type de rachat (normal,conversion de rente,terme) ! -214400 05 WS-4DCO-RC-lib-TY-RCH PIC X(32). ! -214500* type de rachat (normal,conversion de rente,terme) ! -214600 05 WS-4DCO-PREL-CTB-RC PIC S9(15) COMP-3. ! -214700 05 WS-4DCO-PR-CTB-RC-R REDEFINES WS-4DCO-PREL-CTB-RC ! -214800 PIC S9(13)V9(02) COMP-3. ! -214900 05 WS-4DCO-RC-IDC-EDI-CM PIC X(01). ! -215000* indicateur edition cheque ccm ! -215100 05 WS-4DCO-RC-CD-PER-VER-PER PIC X(01). ! -215200* indicateur code p�riodicit� vp ! -215300* ! -215400 05 WS-4DCO-RC-DA-NXT-VER-PER. ! -215500* DATE PROCHAIN V.P. ! -215600 15 WS-4DCO-RC-DA-NXT-VER-PER-A PIC X(004). ! -215700* SIECLE ANNEE DATE PROCHAIN V.P. ! -215800 15 WS-4DCO-RC-DA-NXT-VER-PER-M PIC X(002). ! -215900* MOIS DATE PROCHAIN V.P. ! -216000 15 WS-4DCO-RC-DA-NXT-VER-PER-J PIC X(002). ! -216100* JOUR DATE PROCHAIN V.P. ! -216200 05 WS-4DCO-RC-CD-TY-TRT PIC X(1). ! -216300* CODE TYPE DE TRAITEMENT (P4DGQ0) ! -216400* 'V' : 'VERSEMENT A ECHEANCE ! -216500* 'D' : 'DEMANDE DE VERSEMENT A ECHEANCE' ! -216600* 'R' : 'RACHAT TOTAL' ! -216700*--AJOUT INFOS FISCALITE ! -216800 05 WS-4DCO-RC-FISC. ! -216900 15 WS-4DCO-RC-IDC-ETG-CNF PIC X. ! -217000 15 WS-4DCO-RC-CD-OSCE-PAYS PIC X(003). ! -217100 15 WS-4DCO-RC-LIB-PAYS PIC X(20). ! -217200 15 WS-4DCO-RC-CD-CNV PIC X. ! -217300 15 WS-4DCO-RC-TX-PLV-FIS PIC S9(4)V9(3). ! -217400*--FIN AJOUT INFOS FISCALITE ! -217500 05 FILLER PIC X(913). ! -217600* ! -217700* ZONES DISPONIBLES ! -217800* ------------------------------------------------------ * ! -217900 ! -218000*================================================================ ! -218100*= APPLICATION : PARAMETRAGE = ! -218200*================================================================ ! -218300* ! -218400 03 WS-4DCO-4DYA-PRM-OPT REDEFINES WS-4DCO-PROGRAM. ! -218500* ============ ! -218600 ! -218700* ============== ! -218800* ------------------------------------------------------ * ! -218900* COMMAREA : PARAMETRAGE : GESTION DES OPTIONS -* ! -219000* LONGUEUR : 1800 * ! -219100* PREFIXE : WS-4DCO-4DYA * ! -219200* ------------------------------------------------------ * ! -219300* ! -219400 05 WS-4DCO-4DYA-CD-TY-OPT PIC X(3). ! -219500 05 WS-4DCO-4DYA-NO-TY-PRD PIC X(2). ! -219600 05 WS-4DCO-4DYA-CD-PRD PIC X(2). ! -219700 05 WS-4DCO-4DYA-NO-GEN PIC X(3). ! -219800 05 WS-4DCO-4DYA-NO-PRD-PTN PIC X(3). ! -219900 05 WS-4DCO-4DYA-LIB-TY-PRD PIC X(32). ! -220000 05 WS-4DCO-4DYA-NO-TRF PIC 9(9). ! -220100* ! -220200 05 WS-4DCO-4DYA-CREAT. ! -220300 10 WS-4DCO-4DYA-NO-OPT PIC S9(9). ! -220400 10 WS-4DCO-4DYA-DA-DEB PIC X(8). ! -220500 10 WS-4DCO-4DYA-DA-FIN PIC X(8). ! -220600 10 WS-4DCO-4DYA-DEROG PIC X(1). ! -220700* sauve parametres de la liste recue ! -220800 05 WS-4DCO-4DYA-NB-PAG-TS PIC 9(02). ! -220900 05 WS-4DCO-4DYA-NB-OCC-TS PIC S9(4) COMP. ! -221000* sauve numeros items pour lesquels une action est demandee ! -221100 05 WS-4DCO-4DYA-SAUV-ACTION. ! -221200 10 WS-4DCO-4DYA-SAUV-ITEM PIC 9(2) OCCURS 12. ! -221300* indicateur mode de traitement : ! -221400* c=creation, d=consultation, a=annulation, m=modification ! -221500 05 WS-4DCO-4DYA-IDC-MOD-TRT PIC X(01). ! -221600 88 WS-4DCO-4DYA-CRE VALUE 'C'. ! -221700 88 WS-4DCO-4DYA-DET VALUE 'D'. ! -221800 88 WS-4DCO-4DYA-ANN VALUE 'A'. ! -221900 88 WS-4DCO-4DYA-MOD VALUE 'M'. ! -222000* code type option de cr�ation ! -222100 05 WS-4DCO-4DYA-CD-TY-OPT-C PIC X(3). ! -222200* code type option de liste ! -222300 05 WS-4DCO-4DYA-CD-TY-OPT-L PIC X(3). ! -222400* numero de partenaire ! -222500 05 WS-4DCO-4DYA-NO-PTN PIC 9(3). ! -222600* gestion du mode : param�trage des options ou des frais ! -222700 05 WS-4DCO-4DYA-FRS-OPT PIC X(01). ! -222800 88 WS-4DCO-4DYA-FRS VALUE 'F'. ! -222900 88 WS-4DCO-4DYA-OPT VALUE 'O'. ! -223000* ! -223100 05 FILLER PIC X(1679). ! -223200* ! -223300* ! -223400 03 WS-4DCO-4DYF-PRM-TRF REDEFINES WS-4DCO-PROGRAM. ! -223500* ============ ! -223600 ! -223700* ============== ! -223800* ------------------------------------------------------ * ! -223900* COMMAREA : PARAMETRAGE : GESTION DES TARIFS -* ! -224000* LONGUEUR : 1800 * ! -224100* PREFIXE : WS-4DCO-4DYF * ! -224200* ------------------------------------------------------ * ! -224300* ! -224400* code type tarif ! -224500 05 WS-4DCO-4DYF-CD-TY-TRF PIC X(2). ! -224600* num�ro de tarif ! -224700 05 WS-4DCO-4DYF-NO-TRF PIC 9(9). ! -224800* indicateur mode de traitement : ! -224900* c=creation, d=consultation, a=annulation, m=modification ! -225000 05 WS-4DCO-4DYF-IDC-MOD-TRT PIC X(01). ! -225100 88 WS-4DCO-4DYF-CRE VALUE 'C'. ! -225200 88 WS-4DCO-4DYF-DET VALUE 'D'. ! -225300 88 WS-4DCO-4DYF-ANN VALUE 'A'. ! -225400 88 WS-4DCO-4DYF-MOD VALUE 'M'. ! -225500* code type tarif de cr�ation ! -225600 05 WS-4DCO-4DYF-CD-TY-TRF-C PIC X(2). ! -225700* code type tarif de liste ! -225800 05 WS-4DCO-4DYF-CD-TY-TRF-L PIC X(2). ! -225900* ! -226000 05 FILLER PIC X(1784). ! -226100* ! -226200* ! -226300 03 WS-4DCO-4DYU-PRM-GAR REDEFINES WS-4DCO-PROGRAM. ! -226400* ============ ! -226500 ! -226600* ============== ! -226700* ------------------------------------------------------ * ! -226800* COMMAREA : PARAMETRAGE : GESTION DES GARANTIES -* ! -226900* LONGUEUR : 1800 * ! -227000* PREFIXE : WS-4DCO-4DYU * ! -227100* ------------------------------------------------------ * ! -227200* ! -227300 05 WS-4DCO-4DYU-CD-TY-GAR PIC X(3). ! -227400 05 WS-4DCO-4DYU-IDT-GAR PIC X(8). ! -227500 05 WS-4DCO-4DYU-NO-TY-PRD PIC X(2). ! -227600 05 WS-4DCO-4DYU-CD-PRD PIC X(2). ! -227700 05 WS-4DCO-4DYU-NO-GEN PIC X(3). ! -227800 05 WS-4DCO-4DYU-NO-PRD-PTN PIC X(3). ! -227900 05 WS-4DCO-4DYU-LIB-TY-PRD PIC X(32). ! -228000 05 WS-4DCO-4DYU-NO-TRF PIC 9(9). ! -228100* ! -228200 05 WS-4DCO-4DYU-CREAT. ! -228300 10 WS-4DCO-4DYU-NO-OPT PIC S9(9). ! -228400 10 WS-4DCO-4DYU-DA-DEB PIC X(8). ! -228500 10 WS-4DCO-4DYU-DA-FIN PIC X(8). ! -228600 10 WS-4DCO-4DYU-DEROG PIC X(1). ! -228700* sauve parametres de la liste recue ! -228800 05 WS-4DCO-4DYU-NB-PAG-TS PIC 9(02). ! -228900 05 WS-4DCO-4DYU-NB-OCC-TS PIC S9(4) COMP. ! -229000* sauve numeros items pour lesquels une action est demandee ! -229100 05 WS-4DCO-4DYU-SAUV-ACTION. ! -229200 10 WS-4DCO-4DYU-SAUV-ITEM PIC 9(2) OCCURS 12. ! -229300* indicateur mode de traitement : ! -229400* c=creation, d=consultation, a=annulation, m=modification ! -229500 05 WS-4DCO-4DYU-IDC-MOD-TRT PIC X(01). ! -229600 88 WS-4DCO-4DYU-CRE VALUE 'C'. ! -229700 88 WS-4DCO-4DYU-DET VALUE 'D'. ! -229800 88 WS-4DCO-4DYU-ANN VALUE 'A'. ! -229900 88 WS-4DCO-4DYU-MOD VALUE 'M'. ! -230000* code type option de cr�ation ! -230100 05 WS-4DCO-4DYU-CD-TY-GAR-C PIC X(3). ! -230200* code type option de liste ! -230300 05 WS-4DCO-4DYU-CD-TY-GAR-L PIC X(3). ! -230400* numero de partenaire ! -230500 05 WS-4DCO-4DYU-NO-PTN PIC 9(3). ! -230600* ! -230700 05 FILLER PIC X(1674). ! -230800* ! -230900* ! -231000*================================================================ ! -231100*= APPLICATION : prime etat (certificat non imposition) = ! -231200*================================================================ ! -231300* ! -231400 03 WS-4DCO-4DPS-PRM-ETAT REDEFINES WS-4DCO-PROGRAM. ! -231500* ============ ! -231600 ! -231700* ============== ! -231800* ------------------------------------------------------ * ! -231900* COMMAREA : PARAMETRAGE : GESTION DE LA PRIME ETAT -* ! -232000* LONGUEUR : 1800 * ! -232100* PREFIXE : WS-4DCO-4DPS * ! -232200* ------------------------------------------------------ * ! -232300* ! -232400* ZONES COMMUNES ! -232500* ! -232600 05 WS-4DCO-4DPS. ! -232700* ! -232800* ZONE DE PAGINATION ! -232900 15 WS-4DCO-4DPS-PAGE. ! -233000 20 WS-4DCO-4DPS-IDC-OCC-SPL PIC X(001). ! -233100 20 WS-4DCO-4DPS-NB-PAG-TS PIC 9(002). ! -233200 20 WS-4DCO-4DPS-SAUV-PAGE-AREA PIC X(198). ! -233300* ! -233400* ACTION SAUVEGARDEE ! -233500 15 WS-4DCO-4DPS-SAUV-ACT PIC X. ! -233600* ! -233700* CODE MESSAGE ERREUR ! -233800 15 WS-4DCO-4DPS-ERRMSG1 PIC X(006). ! -233900* ! -234000* NOMBRE D'OCCURENCES DE LA LISTE ! -234100 15 WS-4DCO-4DPS-NB-TS-ITEM PIC S9(04) COMP. ! -234200* ! -234300* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -234400 15 WS-4DCO-4DPS-POS-CURSOR PIC 9(002). ! -234500* NB DE DETAILS TRAITES ! -234600 15 WS-4DCO-4DPS-SAUV-ACT-TRT PIC S9(4) COMP. ! -234700* NB DE DETAILS DEMANDES ! -234800 15 WS-4DCO-4DPS-SAUV-ACT-NB PIC S9(4) COMP. ! -234900 15 WS-4DCO-4DPS-DA-OUV. ! -235000* DATE OUVERTURE CONTRAT ! -235100 20 WS-4DCO-4DPS-DA-OUV-A PIC 9(4). ! -235200 20 WS-4DCO-4DPS-DA-OUV-M PIC 9(2). ! -235300 20 WS-4DCO-4DPS-DA-OUV-J PIC 9(2). ! -235400 15 WS-4DCO-4DPS-DA-DEM. ! -235500* DATE DU JOUR ! -235600 20 WS-4DCO-4DPS-DA-DEM-A PIC 9(4). ! -235700 20 WS-4DCO-4DPS-DA-DEM-M PIC 9(2). ! -235800 20 WS-4DCO-4DPS-DA-DEM-J PIC 9(2). ! -235900 15 WS-4DCO-4DPS-CD-MTF-DEM PIC X(30). ! -236000 15 WS-4DCO-4DPS-CD-MTF PIC 9(02). ! -236100 15 WS-4DCO-4DPS-TY-TRF PIC X(2). ! -236200 15 WS-4DCO-4DPS-MT-PRIM-PEP PIC S9(13)V99 COMP-3. ! -236300 15 WS-4DCO-4DPS-MT-ITT-PRIM PIC S9(13)V99 COMP-3. ! -236400 15 WS-4DCO-4DPS-MT-PRIM-PLUS PIC S9(13)V99 COMP-3. ! -236500 15 WS-4DCO-4DPS-MT-PRIM-SANS PIC S9(13)V99 COMP-3. ! -236600 15 WS-4DCO-4DPS-MT-CRDS PIC S9(09)V99 COMP-3. ! -236700 15 WS-4DCO-4DPS-NB-EXE-CCN PIC 9(02). ! -236800 15 WS-4DCO-4DPS-AN-MAX PIC 9(02). ! -236900 15 WS-4DCO-4DPS-CD-ANOM PIC X(01). ! -237000 15 WS-4DCO-4DPS-MES-ANOM PIC X(32). ! -237100 15 WS-4DCO-4DPS-TAB. ! -237200 20 WS-4DCO-4DPS-POSTE OCCURS 10. ! -237300 22 WS-4DCO-4DPS-IND-LG PIC X(001). ! -237400* indicateur de ligne siginificative ! -237500 22 WS-4DCO-4DPS-CDIMT PIC X(001). ! -237600* indic. etat demande prime ecran ! -237700 22 WS-4DCO-4DPS-CDIMT-PREC PIC X(001). ! -237800* indic. etat demande prime precedent ! -237900 22 WS-4DCO-4DPS-A-ACQ-PRIM PIC X(004). ! -238000 22 WS-4DCO-4DPS-MT-GLB-PRIM ! -238100 PIC S9(13)V99 COMP-3. ! -238200 22 WS-4DCO-4DPS-MT-GLB-ITT-PRIM ! -238300 PIC S9(13)V99 COMP-3. ! -238400 22 WS-4DCO-4DPS-MT-ASST-CRDS ! -238500 PIC S9(13)V99 COMP-3. ! -238600 22 WS-4DCO-4DPS-MT-ASST-CSG ! -238700 PIC S9(13)V99 COMP-3. ! -238800 22 WS-4DCO-4DPS-MT-ASST-SOC ! -238900 PIC S9(13)V99 COMP-3. ! -239000 22 WS-4DCO-4DPS-DT-DEM. ! -239100* DATE DE DEMANDE ! -239200 25 WS-4DCO-4DPS-DT-DEM-A PIC 9(4). ! -239300 25 WS-4DCO-4DPS-DT-DEM-M PIC 9(2). ! -239400 25 WS-4DCO-4DPS-DT-DEM-J PIC 9(2). ! -239500 15 WS-4DCO-4DPS-TX-CRDS PIC S9(02)V999 COMP-3. ! -239600 15 WS-4DCO-4DPS-TX-CSG PIC S9(02)V999 COMP-3. ! -239700 15 WS-4DCO-4DPS-TX-PLV-SOC PIC S9(02)V999 COMP-3. ! -239800* taux crds et csg et ps ! -239900 15 WS-4DCO-4DPS-TOT-ASST-CRDS PIC S9(13)V99 COMP-3. ! -240000 15 WS-4DCO-4DPS-TOT-ASST-CSG PIC S9(13)V99 COMP-3. ! -240100 15 WS-4DCO-4DPS-TOT-ASST-SOC PIC S9(13)V99 COMP-3. ! -240200* cumul assiettes sur une annee ! -240300 15 WS-4DCO-4DPS-MT-VER-RDS PIC S9(13)V99 COMP-3. ! -240400 15 WS-4DCO-4DPS-MT-CSG PIC S9(13)V99 COMP-3. ! -240500 15 WS-4DCO-4DPS-MT-PLV-SOC PIC S9(13)V99 COMP-3. ! -240600* montants crds et csg et ps ! -240700 15 WS-4DCO-4DPU-LIBOPE PIC X(42). ! -240800 15 WS-4DCO-4DPU-LIBTOT PIC X(20). ! -240900 15 WS-4DCO-4DPU-TOT-GEN PIC S9(13)V99 COMP-3. ! -241000* ! -241100 15 WS-4DCO-4DPS-DA-ORIG. ! -241200* DATE OUVERTURE CONTRAT BQUE ORIGINE ! -241300 20 WS-4DCO-4DPS-DA-ORI-A PIC 9(4). ! -241400 20 WS-4DCO-4DPS-DA-ORI-M PIC 9(2). ! -241500 20 WS-4DCO-4DPS-DA-ORI-J PIC 9(2). ! -241600 05 FILLER PIC X(0774). ! -241700* ! -241800************************************ NOMBRE PRIS 216 ! -241900************************************ NOMBRE DISPONIBLE 1584 ! -242000 ! -242100 03 WS-4DCO-OPTION-VETRF REDEFINES WS-4DCO-PROGRAM. ! -242200* ==================== ! -242300* ------------------------------------------------------ * ! -242400* COMMAREA : TRANSFERT PER => PEP * ! -242500* LONGUEUR : 1800 * ! -242600* PREFIXE : WS-4DCO- * ! -242700* ------------------------------------------------------ * ! -242800 ! -242900 05 WS-4DCO-DSPEPT. ! -243000* DATE SOUSCRIPTION PEP ! -243100 10 WS-4DCO-DSPEPTSA. ! -243200* SIECLE ANNEE DATE SOUSCRIPTION PEP ! -243300 15 WS-4DCO-DSPEPTS PIC X(002). ! -243400* SIECLE DATE SOUSCRIPTION PEP ! -243500 15 WS-4DCO-DSPEPTA PIC X(002). ! -243600* ANNEE DATE SOUSCRIPTION PEP ! -243700 10 WS-4DCO-DSPEPTM PIC X(002). ! -243800* MOIS DATE SOUSCRIPTION PEP ! -243900 10 WS-4DCO-DSPEPTJ PIC X(002). ! -244000* JOUR DATE SOUSCRIPTION PEP ! -244100 05 WS-4DCO-DSPERT. ! -244200* DATE SOUSCRIPTION PER ! -244300 10 WS-4DCO-DSPERTSA. ! -244400* SIECLE ANNEE DATE SOUSCRIPTION PER ! -244500 15 WS-4DCO-DSPERTS PIC X(002). ! -244600* SIECLE DATE SOUSCRIPTION PER ! -244700 15 WS-4DCO-DSPERTA PIC X(002). ! -244800* ANNEE DATE SOUSCRIPTION PER ! -244900 10 WS-4DCO-DSPERTM PIC X(002). ! -245000* MOIS DATE SOUSCRIPTION PER ! -245100 10 WS-4DCO-DSPERTJ PIC X(002). ! -245200* JOUR DATE SOUSCRIPTION PER ! -245300 05 WS-4DCO-NOMT PIC X(032). ! -245400* NOM ! -245500 05 WS-4DCO-CPT-PER. ! -245600* NO CPTE PER ! -245700 10 WS-4DCO-CCMPERT PIC X(004). ! -245800* CAISSE NO CPTE PER ! -245900 10 WS-4DCO-RACPERT PIC X(007). ! -246000* RACINE NO CPTE PER ! -246100 10 WS-4DCO-CLEPERT PIC X(001). ! -246200* CLE NO CPTE PER ! -246300 10 WS-4DCO-CATPERT PIC X(002). ! -246400* CATEGORIE NO CPTE PER ! -246500 10 WS-4DCO-RNGPERT PIC X(002). ! -246600* RANG NO CPTE PER ! -246700 05 WS-4DCO-CPT-PEP. ! -246800* NO CPTE PEP ! -246900 10 WS-4DCO-CCMPEPT PIC X(004). ! -247000* CAISSE NO CPTE PEP ! -247100 10 WS-4DCO-RACPEPT PIC X(007). ! -247200* RACINE NO CPTE PEP ! -247300 10 WS-4DCO-CLEPEPT PIC X(001). ! -247400* CLE NO CPTE PEP ! -247500 10 WS-4DCO-CATPEPT PIC X(002). ! -247600* CATEGORIE NO CPTE PEP ! -247700 10 WS-4DCO-RNGPEPT PIC X(002). ! -247800* RANG NO CPTE PEP ! -247900 05 WS-4DCO-SOLDPEPT PIC S9(13)V9(02). ! -248000* SOLDE TP COMPTE PEP ! -248100 05 WS-4DCO-SOLDPEPT-C REDEFINES WS-4DCO-SOLDPEPT ! -248200 PIC S9(15). ! -248300* SOLDE TP COMPTE PEP ! -248400 05 WS-4DCO-BQEPERT PIC X(005). ! -248500* BANQUE COMPTE PER ! -248600 05 FILLER PIC X(1700). ! -248700* ZONES DISPONIBLES ! -248800* ------------------------------------------------------ * ! -248900 ! -249000 03 WS-4DCO-TRANS-SORTIE REDEFINES WS-4DCO-PROGRAM. ! -249100* ==================== ! -249200* ------------------------------------------------------ * ! -249300* COMMAREA : TRANSFERT EN SORTIE * ! -249400* LONGUEUR : 1800 * ! -249500* PREFIXE : WS-4DCO-TFS * ! -249600* ------------------------------------------------------ * ! -249700 ! -249800 05 WS-4DCO-TFS-INFOS-AUTRE-ETBL. ! -249900* ZONES ECRAN "INFO. AUTRE ETABLISSEMENT" ! -250000 10 WS-4DCO-TFS-CD-DEST-TRF PIC X(001). ! -250100* CODE DESTINATAIRE DU TRANSFERT ! -250200 10 WS-4DCO-TFS-CPT-DEST. ! -250300* RIB CPTE DESTINATAIRE ! -250400 15 WS-4DCO-TFS-BNQ-DEST PIC X(005). ! -250500* BANQUE RIB CPTE DESTINATAIRE ! -250600 15 WS-4DCO-TFS-GCH-DEST PIC X(005). ! -250700* GUICHET RIB CPTE DESTINATAIRE ! -250800 15 WS-4DCO-TFS-RAC-DEST PIC X(011). ! -250900* RACINE RIB CPTE DESTINATAIRE ! -251000 15 WS-4DCO-TFS-CLE-DEST PIC X(002). ! -251100* CLE RIB CPTE DESTINATAIRE ! -251200 10 WS-4DCO-TFS-ETA-DEST PIC X(032). ! -251300* NOM DE L'ETABLISSEMENT DESTINATAIRE ! -251400 10 WS-4DCO-TFS-AGC-DEST PIC X(032). ! -251500* NOM DE L'AGENCE DESTINATAIRE ! -251600 10 WS-4DCO-TFS-ADR-DEST. ! -251700* ADRESSE ETABL. DESTINATAIRE ! -251800 15 WS-4DCO-TFS-RUE-DEST PIC X(032). ! -251900* RUE / ADRESSE ETABL. DESTINATAIRE ! -252000 15 WS-4DCO-TFS-CDP-DEST PIC X(005). ! -252100* CODE POSTAL / ADRESSE ETABL. DESTINATAIRE ! -252200 15 WS-4DCO-TFS-BRD-DEST PIC X(026). ! -252300* COMMUNE / ADRESSE ETABL. DESTINATAIRE ! -252400 10 WS-4DCO-TFS-NB-PASSAGES PIC 9(01). ! -252500* NOMBRE DE PASSAGES ! -252600 10 WS-4DCO-TFS-NO-CTR PIC X(006). ! -252700* NUMERO DE CONTRAT ! -252800 10 WS-4DCO-4DHL-IDC-EPG-HCP PIC X(001). ! -252900* FLAG �pargne handicap ! -253000 10 WS-4DCO-TFS-DECHE. ! -253100* DATE ECHEANCE CONTRAT ! -253200 15 WS-4DCO-TFS-DECHESA. ! -253300* SIECLE ANNEE DATE ECHEANCE ! -253400 20 WS-4DCO-TFS-DECHES PIC X(002). ! -253500* SIECLE DATE ECHEANCE ! -253600 20 WS-4DCO-TFS-DECHEA PIC X(002). ! -253700* ANNEE DATE ECHEANCE ! -253800 15 WS-4DCO-TFS-DECHEM PIC X(002). ! -253900* MOIS DATE ECHEANCE ! -254000 15 WS-4DCO-TFS-DECHEJ PIC X(002). ! -254100* JOUR DATE ECHEANCE ! -254200 10 FILLER PIC X(033). ! -254300* ZONES DISPONIBLES ! -254400 05 WS-4DCO-TFS-SIMULATION. ! -254500* ZONES ECRAN "SIMULATION" ! -254600 10 WS-4DCO-TFS-OPE. ! -254700* DATE OPERATION ! -254800 15 WS-4DCO-TFS-OPESA. ! -254900* SIECLE ANNEE DATE OPERATION ! -255000 20 WS-4DCO-TFS-OPESS PIC X(002). ! -255100* SIECLE DATE OPERATION ! -255200 20 WS-4DCO-TFS-OPEAA PIC X(002). ! -255300* ANNEE DATE OPERATION ! -255400 15 WS-4DCO-TFS-OPEMM PIC X(002). ! -255500* MOIS DATE OPERATION ! -255600 15 WS-4DCO-TFS-OPEJJ PIC X(002). ! -255700* JOUR DATE OPERATION ! -255800 10 WS-4DCO-TFS-EFF. ! -255900* DATE EFFET ! -256000 15 WS-4DCO-TFS-EFFSA. ! -256100* SIECLE ANNEE DATE EFFET ! -256200 20 WS-4DCO-TFS-EFFSS PIC X(002). ! -256300* SIECLE DATE EFFET ! -256400 20 WS-4DCO-TFS-EFFAA PIC X(002). ! -256500* ANNEE DATE EFFET ! -256600 15 WS-4DCO-TFS-EFFMM PIC X(002). ! -256700* MOIS DATE EFFET ! -256800 15 WS-4DCO-TFS-EFFJJ PIC X(002). ! -256900* JOUR DATE EFFET ! -257000 10 WS-4DCO-TFS-MT-IK PIC S9(15) COMP-3. ! -257100* INTERETS CAPITALISES ! -257200 10 WS-4DCO-TFS-MT-IK-R REDEFINES WS-4DCO-TFS-MT-IK ! -257300 PIC S9(13)V9(02) COMP-3. ! -257400* INTERETS CAPITALISES ! -257500 10 WS-4DCO-TFS-PEN-IK PIC S9(15) COMP-3. ! -257600* PENALITES TRANSFERT SUR INT. CAPITALISES ! -257700 10 WS-4DCO-TFS-PEN-IK-R REDEFINES WS-4DCO-TFS-PEN-IK ! -257800 PIC S9(13)V9(02) COMP-3. ! -257900* PENALITES TRANSFERT SUR INT. CAPITALISES ! -258000 10 WS-4DCO-TFS-MT-GLO PIC S9(15) COMP-3. ! -258100* MONTANT GLOBAL DU TRANSFERT EN SORTIE ! -258200 10 WS-4DCO-TFS-MT-GLO-R REDEFINES WS-4DCO-TFS-MT-GLO ! -258300 PIC S9(13)V9(02) COMP-3. ! -258400* MONTANT GLOBAL DU TRANSFERT EN SORTIE ! -258500 10 WS-4DCO-TFS-CPT-CRE. ! -258600* RIB CPTE CREDITE ! -258700 15 WS-4DCO-TFS-BNQ-CRE PIC X(005). ! -258800* BANQUE RIB CPTE CREDITE ! -258900 15 WS-4DCO-TFS-GCH-CRE PIC X(005). ! -259000* GUICHET RIB CPTE CREDITE ! -259100 15 WS-4DCO-TFS-RAC-CRE PIC X(011). ! -259200* RACINE RIB CPTE CREDITE ! -259300 15 WS-4DCO-TFS-CLE-CRE PIC X(002). ! -259400* CLE RIB CPTE CREDITE ! -259500 10 WS-4DCO-TFS-PRIME OCCURS 10. ! -259600* MONTANT NET DES VERSEMENTS PAR ANNEE ! -259700 15 WS-4DCO-TFS-A-ACQ-PRM PIC X(004). ! -259800* ! -259900 15 WS-4DCO-TFS-TOT-VR-EX PIC S9(09) COMP-3. ! -260000* ! -260100 15 WS-4DCO-TFS-TOT-VR-EX-R REDEFINES ! -260200 WS-4DCO-TFS-TOT-VR-EX ! -260300 PIC S9(07)V9(02) COMP-3. ! -260400* ! -260500 10 WS-4DCO-TFS-DA-PAS-PAB. ! -260600* DATE PASSAGE PAB ! -260700 15 WS-4DCO-TFS-DA-PAS-PAB-SA. ! -260800* SIECLE ANNEE DATE PASSAGE PAB ! -260900 20 WS-4DCO-TFS-DA-PAS-PAB-SS PIC X(002). ! -261000* SIECLE DATE PASSAGE PAB ! -261100 20 WS-4DCO-TFS-DA-PAS-PAB-AA PIC X(002). ! -261200* ANNEE DATE PASSAGE PAB ! -261300 15 WS-4DCO-TFS-DA-PAS-PAB-MM PIC X(002). ! -261400* MOIS DATE PASSAGE PAB ! -261500 15 WS-4DCO-TFS-DA-PAS-PAB-JJ PIC X(002). ! -261600* JOUR DATE PASSAGE PAB ! -261700 10 WS-4DCO-TFS-DA-SCR. ! -261800* DATE SOUSCRIPTION ! -261900 15 WS-4DCO-TFS-DA-SCR-SA. ! -262000* SIECLE ANNEE DATE SOUSCRIPTION ! -262100 20 WS-4DCO-TFS-DA-SCR-SS PIC X(002). ! -262200* SIECLE DATE SOUSCRIPTION ! -262300 20 WS-4DCO-TFS-DA-SCR-AA PIC X(002). ! -262400* ANNEE DATE SOUSCRIPTION ! -262500 15 WS-4DCO-TFS-DA-SCR-MM PIC X(002). ! -262600* MOIS DATE SOUSCRIPTION ! -262700 15 WS-4DCO-TFS-DA-SCR-JJ PIC X(002). ! -262800* JOUR DATE SOUSCRIPTION ! -262900 10 WS-4DCO-TFS-DA-EFF-CTR. ! -263000* DATE EFFET CONTRAT ! -263100 15 FILLER PIC X(002). ! -263200* FILLER ! -263300 15 WS-4DCO-TFS-DA-EFF-CTR-A PIC X(002). ! -263400* ANNEE DATE EFFET CONTRAT ! -263500 15 FILLER PIC X(004). ! -263600* FILLER ! -263700 10 WS-4DCO-TFS-CD-PER-VER-PER PIC X(001). ! -263800* CODE PERIODICITE V.P. ! -263900 10 WS-4DCO-TFS-SLD-TPS-REAL PIC S9(15) COMP-3. ! -264000* SOLDE TEMPS REEL ! -264100 10 WS-4DCO-TFS-SLD-TPS-REAL-R ! -264200 REDEFINES ! -264300 WS-4DCO-TFS-SLD-TPS-REAL PIC S9(13)V9(02) COMP-3. ! -264400* ! -264500 10 WS-4DCO-TFS-DA-NXT-VER-PER. ! -264600* DATE PROCHAIN V.P. ! -264700 15 WS-4DCO-TFS-DA-NXT-VER-PER-A PIC X(004). ! -264800* SIECLE ANNEE DATE PROCHAIN V.P. ! -264900 15 WS-4DCO-TFS-DA-NXT-VER-PER-M PIC X(002). ! -265000* MOIS DATE PROCHAIN V.P. ! -265100 15 WS-4DCO-TFS-DA-NXT-VER-PER-J PIC X(002). ! -265200* JOUR DATE PROCHAIN V.P. ! -265300 10 WS-4DCO-TFS-MT-BRT-VER-CTR PIC S9(11) COMP-3. ! -265400* ! -265500 10 WS-4DCO-TFS-DA-ARR-CPB-1 PIC X(008). ! -265600* ! -265700 10 WS-4DCO-TFS-CD-DRG-DA-SCR PIC X(001). ! -265800* ! -265900 10 WS-4DCO-TFS-TX-MIN-GAR-S PIC S9(02)V9(03) COMP-3. ! -266000* ! -266100 10 WS-4DCO-TFS-TX-DNR-PAB-S PIC S9(03)V9(03) COMP-3. ! -266200* ! -266300 10 WS-4DCO-TFS-PRC-PAB-RCH-S PIC S9(03)V9(03) COMP-3. ! -266400* ! -266500 10 WS-4DCO-TFS-TX-MIN-GAR-A PIC S9(02)V9(03) COMP-3. ! -266600* ! -266700 10 WS-4DCO-TFS-TX-DNR-PAB-A PIC S9(03)V9(03) COMP-3. ! -266800* ! -266900 10 WS-4DCO-TFS-PRC-PAB-RCH-A PIC S9(03)V9(03) COMP-3. ! -267000* ! -267100 10 WS-4DCO-TFS-TX-MIN-GAR-A-1 PIC S9(02)V9(03) COMP-3. ! -267200* ! -267300 10 WS-4DCO-TFS-TX-DNR-PAB-A-1 PIC S9(03)V9(03) COMP-3. ! -267400* ! -267500 10 WS-4DCO-TFS-PRC-PAB-RCH-A-1 PIC S9(03)V9(03) COMP-3. ! -267600* ! -267700 10 WS-4DCO-TFS-TX-PNL-ITT-CP-I PIC S9(02)V9(03). ! -267800* ! -267900 10 WS-4DCO-TFS-TX-PNL-ITT-CU-I PIC S9(02)V9(03). ! -268000* ! -268100 10 WS-4DCO-TFS-TX-PNL-ITT-CP-E PIC S9(02)V9(03). ! -268200* ! -268300 10 WS-4DCO-TFS-TX-PNL-ITT-CU-E PIC S9(02)V9(03). ! -268400* ! -268500 10 WS-4DCO-TFS-MT-DASLD OCCURS 26. ! -268600* ZONES DAMIER DES SOLDES EXERCICE ! -268700 15 WS-4DCO-TFS-ENT-QZ PIC S9(15) COMP-3. ! -268800* ! -268900 15 WS-4DCO-TFS-SRT-QZ PIC S9(15) COMP-3. ! -269000* ! -269100 15 WS-4DCO-TFS-SLD-QZ PIC S9(15) COMP-3. ! -269200* ! -269300 10 WS-4DCO-TFS-MT-DASLD-1 OCCURS 26. ! -269400* ZONES DAMIER DES SOLDES EXERCICE -1 ! -269500 15 WS-4DCO-TFS-ENT-QZ-1 PIC S9(15) COMP-3. ! -269600* ! -269700 15 WS-4DCO-TFS-SRT-QZ-1 PIC S9(15) COMP-3. ! -269800* ! -269900 15 WS-4DCO-TFS-SLD-QZ-1 PIC S9(15) COMP-3. ! -270000* ! -270100 10 WS-4DCO-TFS-SLD-RCH PIC S9(15) COMP-3. ! -270200* ! -270300 10 WS-4DCO-TFS-INT-BRT PIC S9(15) COMP-3. ! -270400* ! -270500 10 WS-4DCO-TFS-INT-A-1 PIC S9(15) COMP-3. ! -270600* ! -270700 10 WS-4DCO-TFS-ERR-LEC PIC X(001). ! -270800* FLAG DE RENSEIGNEMENT DE LA COMMAREA ! -270900 10 WS-4DCO-TFS-DRAP-RC PIC X(001). ! -271000* FLAG DE VERSEMENT PERIODIQUE ! -271100* ! -271200 10 WS-4DCO-TFS-TOP-AVN PIC X(001). ! -271300* TOP PRECISANT APPEL P4DAVAN DEJA FAIT ! -271400* ! -271500 10 WS-4DCO-TFS-SLD-AVN PIC S9(15) COMP-3. ! -271600 10 WS-4DCO-TFS-SLD-AVN-R REDEFINES WS-4DCO-TFS-SLD-AVN ! -271700 PIC S9(13)V9(02) COMP-3. ! -271800* ! -271900 10 WS-4DCO-TFS-IF-AVN PIC S9(15) COMP-3. ! -272000 10 WS-4DCO-TFS-IF-AVN-R REDEFINES WS-4DCO-TFS-IF-AVN ! -272100 PIC S9(13)V9(02) COMP-3. ! -272200* ! -272300 10 WS-4DCO-TFS-FA-GES PIC S9(15) COMP-3. ! -272400 10 WS-4DCO-TFS-FA-GES-R REDEFINES WS-4DCO-TFS-FA-GES ! -272500 PIC S9(13)V9(02) COMP-3. ! -272600* ! -272700 10 WS-4DCO-TFS-VRB OCCURS 02. ! -272800 15 WS-4DCO-TFS-TOT-VRB-EX PIC S9(15) COMP-3. ! -272900 15 WS-4DCO-TFS-TOT-VRB-EX-R REDEFINES ! -273000 WS-4DCO-TFS-TOT-VRB-EX PIC S9(13)V9(02) COMP-3. ! -273100* ! -273200 10 WS-4DCO-TFS-MT-FAG PIC S9(15) COMP-3. ! -273300 10 WS-4DCO-TFS-MT-FAG-R REDEFINES WS-4DCO-TFS-MT-FAG ! -273400 PIC S9(13)V9(02) COMP-3. ! -273500* ! -273600* 10 WS-4DCO-TFS-MT-PV PIC S9(15) COMP-3. ! -273700* 10 WS-4DCO-TFS-MT-PV-R REDEFINES WS-4DCO-TFS-MT-PV ! -273800* PIC S9(13)V9(02) COMP-3. ! -273900 10 WS-4DCO-4DHL-MT-PLV-SOC PIC S9(09) COMP-3. ! -274000 10 WS-4DCO-4DHL-MT-PLV-SOC-R REDEFINES ! -274100 WS-4DCO-4DHL-MT-PLV-SOC PIC S9(07)V9(02) COMP-3. ! -274200* mt prel soc ! -274300* ! -274400 10 FILLER PIC X(0010). ! -274500* ZONES DISPONIBLES ! -274600* ------------------------------------------------------ * ! -274700 ! -274800 03 WS-4DCO-DEM-PRIME REDEFINES WS-4DCO-PROGRAM. ! -274900* ================= ! -275000* ------------------------------------------------------ * ! -275100* COMMAREA : DEMANDE DE PRIME DE L'ETAT * ! -275200* LONGUEUR : 1800 * ! -275300* PREFIXE : WS-4DCO-PR- * ! -275400* ------------------------------------------------------ * ! -275500 ! -275600 05 WS-4DCO-PR-IMP-AN-1 PIC X(001). ! -275700* INDIC EXISTENCE DEMANDE SUR ANNEE -1 ! -275800 05 WS-4DCO-PR-IMP-AN PIC X(001). ! -275900* INDIC EXISTENCE DEMANDE ANNEE EN COURS ! -276000 05 WS-4DCO-PR-CPT-DOM. ! -276100* RIB CPTE DOM PRIME D'ETAT ! -276200 10 WS-4DCO-PR-BQE-DOM PIC X(005). ! -276300* BANQUE RIB CPTE DOM PRIME D'ETAT ! -276400 10 WS-4DCO-PR-GUI-DOM PIC X(005). ! -276500* GUICHET RIB CPTE DOM PRIME D'ETAT ! -276600 10 WS-4DCO-PR-RAC-DOM PIC X(011). ! -276700* RACINE RIB CPTE DOM PRIME D'ETAT ! -276800 10 WS-4DCO-PR-CLE-DOM PIC X(002). ! -276900* CLE RIB CPTE DOM PRIME D'ETAT ! -277000 05 WS-4DCO-PR-TAB-TRAV. ! -277100* TABLE DES 10 EXERCICES DU COMPTE ! -277200 10 WS-4DCO-PR-TAB-POSTE OCCURS 10. ! -277300* ! -277400 15 WS-4DCO-PR-ANNEE PIC 9(04). ! -277500* ! -277600 15 WS-4DCO-PR-VER PIC S9(09) COMP-3. ! -277700* ! -277800 15 WS-4DCO-PR-VER-D REDEFINES WS-4DCO-PR-VER ! -277900 PIC S9(07)V9(02) COMP-3. ! -278000* ! -278100 15 WS-4DCO-PR-PRIM PIC S9(09) COMP-3. ! -278200* ! -278300 15 WS-4DCO-PR-PRIM-D REDEFINES WS-4DCO-PR-PRIM ! -278400 PIC S9(07)V9(02) COMP-3. ! -278500* ! -278600 15 WS-4DCO-PR-PRIM-X REDEFINES WS-4DCO-PR-PRIM ! -278700 PIC X(005). ! -278800* ! -278900 15 WS-4DCO-PR-TAUX PIC S9(02)V9(03). ! -279000* ! -279100 15 WS-4DCO-PR-INT PIC S9(09) COMP-3. ! -279200* ! -279300 15 WS-4DCO-PR-INT-D REDEFINES WS-4DCO-PR-INT ! -279400 PIC S9(07)V9(02) COMP-3. ! -279500* ! -279600 15 WS-4DCO-PR-INT-X REDEFINES WS-4DCO-PR-INT ! -279700 PIC X(005). ! -279800* ! -279900 15 WS-4DCO-PR-IMP PIC X(001). ! -280000* ! -280100 15 WS-4DCO-PR-CONF-IMP PIC X(001). ! -280200* ! -280300 15 WS-4DCO-PR-DAT-DEM. ! -280400* ! -280500 20 WS-4DCO-PR-DEM-SA. ! -280600* ! -280700 25 WS-4DCO-PR-DEM-S PIC X(002). ! -280800* ! -280900 25 WS-4DCO-PR-DEM-A PIC X(002). ! -281000* ! -281100 20 WS-4DCO-PR-DEM-M PIC X(002). ! -281200* ! -281300 20 WS-4DCO-PR-DEM-J PIC X(002). ! -281400* ! -281500 15 WS-4DCO-PR-DAT-PAIE. ! -281600* ! -281700 20 WS-4DCO-PR-PAIE-SA. ! -281800* ! -281900 25 WS-4DCO-PR-PAIE-S PIC X(002). ! -282000* ! -282100 25 WS-4DCO-PR-PAIE-A PIC X(002). ! -282200* ! -282300 20 WS-4DCO-PR-PAIE-M PIC X(002). ! -282400* ! -282500 20 WS-4DCO-PR-PAIE-J PIC X(002). ! -282600* ! -282700 05 WS-4DCO-PR-NBRE-EXER PIC 9(02). ! -282800* NBRE EXE CONCERNES PAR DEMANDE DE PRIME ! -282900 05 WS-4DCO-PR-CUM-PRI PIC S9(09) COMP-3. ! -283000* CUMUL DES PRIMES (TOUS EXE CONFONDUS) ! -283100 05 WS-4DCO-PR-CUM-PRI-D REDEFINES WS-4DCO-PR-CUM-PRI ! -283200 PIC S9(07)V9(02) COMP-3. ! -283300* CUMUL DES PRIMES (TOUS EXE CONFONDUS) ! -283400 05 WS-4DCO-PR-CUM-INT PIC S9(09) COMP-3. ! -283500* CUMUL INTERETS PRIMES (TOUS EXE CONFONDUS) ! -283600 05 WS-4DCO-PR-CUM-INT-D REDEFINES WS-4DCO-PR-CUM-INT ! -283700 PIC S9(07)V9(02) COMP-3. ! -283800* CUMUL INTERETS PRIMES (TOUS EXE CONFONDUS) ! -283900 05 WS-4DCO-PR-TOT PIC S9(11) COMP-3. ! -284000* TOTAL GENERAL ! -284100 05 WS-4DCO-PR-TOT-D REDEFINES WS-4DCO-PR-TOT ! -284200 PIC S9(09)V9(02) COMP-3. ! -284300* TOTAL GENERAL ! -284400 05 WS-4DCO-PR-PRI-DEM PIC S9(09) COMP-3. ! -284500* PRIMES DEMANDEES (SUR EXE CONCERNES) ! -284600 05 WS-4DCO-PR-PRI-DEM-D REDEFINES WS-4DCO-PR-PRI-DEM ! -284700 PIC S9(07)V9(02) COMP-3. ! -284800* PRIMES DEMANDEES (SUR EXE CONCERNES) ! -284900 05 WS-4DCO-PR-ITT-DEM PIC S9(09) COMP-3. ! -285000* INTERETS DEMANDES (SUR EXE CONCERNES) ! -285100 05 WS-4DCO-PR-ITT-DEM-D REDEFINES WS-4DCO-PR-ITT-DEM ! -285200 PIC S9(07)V9(02) COMP-3. ! -285300* INTERETS DEMANDES (SUR EXE CONCERNES) ! -285400 05 WS-4DCO-PR-PITT-DEM PIC S9(09) COMP-3. ! -285500* TOTAL PRIME DEMANDEE ! -285600 05 WS-4DCO-PR-PITT-DEM-D REDEFINES WS-4DCO-PR-PITT-DEM ! -285700 PIC S9(07)V9(02) COMP-3. ! -285800* TOTAL PRIME DEMANDEE ! -285900 05 WS-4DCO-PR-IND-AN PIC 9(02). ! -286000* INDICE POSTE ANNEE EN COURS ! -286100 05 WS-4DCO-PR-IND-AN-1 PIC 9(02). ! -286200* INDICE POSTE ANNEE PRECEDENTE ! -286300 05 WS-4DCO-PR-SAISIES PIC X(001). ! -286400* INDIC EXERCICES RESTANT A SAISIR ! -286500 05 WS-4DCO-PR-OK-VALID PIC X(001). ! -286600* INDIC DEMANDE POUR AU MOINS UN EXE ! -286700 05 WS-4DCO-PR-DA-CLO. ! -286800* DATE CLOTURE PEP ! -286900 10 WS-4DCO-PR-DA-CLO-SA. ! -287000* SIECLE ANNEE DATE CLOTURE PEP ! -287100 15 WS-4DCO-PR-DA-CLO-SS PIC 9(02). ! -287200* SIECLE DATE CLOTURE PEP ! -287300 15 WS-4DCO-PR-DA-CLO-AA PIC 9(02). ! -287400* ANNEE DATE CLOTURE PEP ! -287500 10 WS-4DCO-PR-DA-CLO-MM PIC 9(02). ! -287600* MOIS DATE CLOTURE PEP ! -287700 10 WS-4DCO-PR-DA-CLO-JJ PIC 9(02). ! -287800* JOUR DATE CLOTURE PEP ! -287900 05 WS-4DCO-PR-NOM PIC X(32). ! -288000* NOM ET PRENOM DU CONTRAT ! -288100 05 WS-4DCO-PR-IDC-DECES PIC X. ! -288200* INDICATEUR DECES ! -288300 05 WS-4DCO-PR-DA-DECES. ! -288400* DATE DE DECES ! -288500 10 WS-4DCO-PR-DA-DECES-SA. ! -288600* SIECLE ANNEE DATE DECES ! -288700 15 WS-4DCO-PR-DA-DECES-SS PIC 9(02). ! -288800* SIECLE DATE DECES ! -288900 15 WS-4DCO-PR-DA-DECES-AA PIC 9(02). ! -289000* ANNEE DATE DECES ! -289100 10 WS-4DCO-PR-DA-DECES-MM PIC 9(02). ! -289200* MOIS DATE DECES ! -289300 10 WS-4DCO-PR-DA-DECES-JJ PIC 9(02). ! -289400* jour date DECES ! -289500 05 WS-4DCO-PR-TY-PP PIC XX. ! -289600* CODIFICATION PU OU PP ! -289700 05 WS-4DCO-PR-IDC-DEBL-ATP PIC X(1). ! -289800* INDICATEUR DEBLOCAGE ANTICIPE ! -289900 05 WS-4DCO-PR-DA-DEBL-ATP. ! -290000* DATE DEBLOCAGE ANTICIPE ! -290100 10 WS-4DCO-PR-DA-DEBL-ATP-A PIC X(4). ! -290200* DATE DEBLOCAGE ANTICIPE ANNEE ! -290300 10 WS-4DCO-PR-DA-DEBL-ATP-M PIC X(2). ! -290400* DATE DEBLOCAGE ANTICIPE MOIS ! -290500 10 WS-4DCO-PR-DA-DEBL-ATP-J PIC X(2). ! -290600* DATE DEBLOCAGE ANTICIPE JOUR ! -290700 05 WS-4DCO-PR-IDC-DEBL-RCH PIC X(1). ! -290800* INDICATEUR DEBLOCAGE RACHAT ! -290900 05 WS-4DCO-PR-DA-DEBL-RCH. ! -291000* DATE DEBLOCAGE RACHAT ! -291100 10 WS-4DCO-PR-DA-DEBL-RCH-A PIC 9(4). ! -291200* DATE DEBLOCAGE RACHAT ANNEE ! -291300 10 WS-4DCO-PR-DA-DEBL-RCH-M PIC 9(2). ! -291400* DATE DEBLOCAGE RACHAT MOIS ! -291500 10 WS-4DCO-PR-DA-DEBL-RCH-J PIC 9(2). ! -291600* DATE DEBLOCAGE RACHAT JOUR ! -291700*** donnees specifiques au pgm c4dpv0 ! -291800 05 WS-4DCO-4DPV-NO-RIB-DOM. ! -291900* RIB CPTE DOM PRIME D'ETAT ! -292000 10 WS-4DCO-4DPV-CD-BANQUE PIC X(005). ! -292100* BANQUE RIB CPTE DOM PRIME D'ETAT ! -292200 10 WS-4DCO-4DPV-CD-GUICHET PIC X(005). ! -292300* GUICHET RIB CPTE DOM PRIME D'ETAT ! -292400 10 WS-4DCO-4DPV-NO-CPT-RIB PIC X(011). ! -292500* RACINE RIB CPTE DOM PRIME D'ETAT ! -292600 10 WS-4DCO-4DPV-CLE-RIB PIC X(002). ! -292700* CLE RIB CPTE DOM PRIME D'ETAT ! -292800 05 WS-4DCO-4DPV-MODE-RGL PIC X(001). ! -292900* MODE DE REGLEMENT ! -293000 05 WS-4DCO-4DPV-DA-OUV. ! -293100* DATE OUVERTURE CONTRAT ! -293200 10 WS-4DCO-4DPV-DA-OUV-A PIC 9(4). ! -293300 10 WS-4DCO-4DPV-DA-OUV-M PIC 9(2). ! -293400 10 WS-4DCO-4DPV-DA-OUV-J PIC 9(2). ! -293500 05 WS-4DCO-4DPV-DA-PRE. ! -293600* DATE PRESCRIPTION DU CONTRAT ! -293700 10 WS-4DCO-4DPV-DA-PRE-A PIC 9(4). ! -293800 10 WS-4DCO-4DPV-DA-PRE-M PIC 9(2). ! -293900 10 WS-4DCO-4DPV-DA-PRE-J PIC 9(2). ! -294000 05 WS-4DCO-4DPV-CD-FCT PIC X(001). ! -294100 05 WS-4DCO-4DPV-AVNIMP PIC X(001). ! -294200 05 WS-4DCO-4DPT-IDC-DEBL-RCH PIC X(1). ! -294300* INDICATEUR DEBLOCAGE RACHAT ! -294400 05 WS-4DCO-4DPT-DA-DEB. ! -294500* DATE debut deblocage anticipe ! -294600 10 WS-4DCO-4DPV-DA-DEB-A PIC 9(4). ! -294700 10 WS-4DCO-4DPV-DA-DEB-M PIC 9(2). ! -294800 10 WS-4DCO-4DPV-DA-DEB-J PIC 9(2). ! -294900 05 WS-4DCO-4DPT-DA-FIN. ! -295000* DATE fin deblocage anticipe ! -295100 10 WS-4DCO-4DPV-DA-FIN-A PIC 9(4). ! -295200 10 WS-4DCO-4DPV-DA-FIN-M PIC 9(2). ! -295300 10 WS-4DCO-4DPV-DA-FIN-J PIC 9(2). ! -295400 05 WS-4DCO-4DPT-MT-VER-EXE-1 PIC S9(15) COMP-3. ! -295500* Montant de l'exercice N-1 ! -295600 05 FILLER PIC X(1180). ! -295700* ZONES DISPONIBLES ! -295800* ------------------------------------------------------ * ! -295900 ! -296000 03 WS-4DCO-PRIME-4DPR REDEFINES WS-4DCO-PROGRAM. ! -296100* ================== ! -296200* ------------------------------------------------------ * ! -296300* COMMAREA : MODIFICATION CODE MOTIF EXONERATION * ! -296400* LONGUEUR : 1800 * ! -296500* PREFIXE : WS-4DCO-4DPR- * ! -296600* ------------------------------------------------------ * ! -296700 ! -296800 05 WS-4DCO-4DPR-DA-OUV-J PIC XX. ! -296900 05 WS-4DCO-4DPR-DA-OUV-M PIC XX. ! -297000 05 WS-4DCO-4DPR-DA-OUV-A PIC XXXX. ! -297100 05 WS-4DCO-4DPR-TY-PP PIC XX. ! -297200 05 WS-4DCO-4DPR-DA-RACH PIC X(10). ! -297300 05 WS-4DCO-4DPR-CD-DECLA PIC X. ! -297400 05 WS-4DCO-4DPR-CD-EXO PIC X. ! -297500 05 WS-4DCO-4DPR-CD-NEWMTF PIC X. ! -297600 05 WS-4DCO-4DPR-LIB-ITT PIC X(33). ! -297700 05 WS-4DCO-4DPR-LIB-EXO PIC X(33). ! -297800 05 WS-4DCO-4DPR-LIB-NEW PIC X(33). ! -297900 05 FILLER PIC X(1678). ! -298000* ZONES DISPONIBLES ! -298100 ! -298200 03 WS-4DCO-TRF-PEP-PR REDEFINES WS-4DCO-PROGRAM. ! -298300* ================== ! -298400* ------------------------------------------------------ * ! -298500* COMMAREA : TRANSFERT D'UN PEP EN PREVI-RETRAITE * ! -298600* LONGUEUR : 1800 * ! -298700* PREFIXE : WS-4DCO-4DHO- * ! -298800* ------------------------------------------------------ * ! -298900 ! -299000 05 WS-4DCO-4DHO-TRF PIC X(001). ! -299100* INDIC DEMANDE DE TRANSFERT (O/N) ! -299200 05 WS-4DCO-4DHO-SLD PIC S9(15) COMP-3. ! -299300* SOLDE AU TRANSFERT ! -299400 05 WS-4DCO-4DHO-SLD-CPB PIC S9(15) COMP-3. ! -299500* SOLDE COMPTABLE ! -299600 05 WS-4DCO-4DHO-VP-OK PIC X(001). ! -299700* INDIC DELAI VP OK ! -299800 05 WS-4DCO-4DHO-AV-OK PIC X(001). ! -299900* INDIC SOLDE AVANCE OK ! -300000 05 WS-4DCO-4DHO-DA-TRF. ! -300100* DATE D'EFFET DU TRANSFERT ! -300200 10 WS-4DCO-4DHO-DA-TRF-SA PIC 9(004). ! -300300* ANNEE ET SIECLE ! -300400 10 WS-4DCO-4DHO-DA-TRF-MM PIC X(002). ! -300500* MOIS ! -300600 10 WS-4DCO-4DHO-DA-TRF-JJ PIC X(002). ! -300700* JOUR ! -300800 05 WS-4DCO-4DHO-DSOUS. ! -300900* DATE DE SOUSCRIPTION (PEP) ! -301000 10 WS-4DCO-4DHO-ASOUS PIC 9(004). ! -301100* ANNEE ET SIECLE ! -301200 10 WS-4DCO-4DHO-MSOUS PIC X(002). ! -301300* MOIS ! -301400 10 WS-4DCO-4DHO-JSOUS PIC X(002). ! -301500* JOUR ! -301600 05 WS-4DCO-4DHO-MT-TRF PIC S9(15) COMP-3. ! -301700* MONTANT DU TRANSFERT ! -301800 05 WS-4DCO-4DHO-MT-PAB PIC S9(15) COMP-3. ! -301900* MONTANT DES 80 % DE LA PAB ! -302000 05 WS-4DCO-4DHO-CPT-TRF. ! -302100* COMPTE PR ISSU DU TRANSFERT ! -302200 10 WS-4DCO-4DHO-PTN PIC X(003). ! -302300* PARTENAIRE ! -302400 10 WS-4DCO-4DHO-PRD PIC X(003). ! -302500* PRODUIT ! -302600 10 WS-4DCO-4DHO-CLI PIC X(007). ! -302700* CLIENT ! -302800 10 WS-4DCO-4DHO-RNG PIC X(002). ! -302900* RANG ! -303000 05 WS-4DCO-4DHO-NOM PIC X(032). ! -303100* NOM DU CLIENT ! -303200 05 WS-4DCO-4DHO-STR-GTN PIC X(006). ! -303300* N� DE STRUCTURE GESTIONNAIRE DU CONTRAT ! -303400 05 WS-4DCO-4DHO-AGT-GTN PIC X(008). ! -303500* N� DE L'AGENT GESTIONNAIRE DU CONTRAT ! -303600 05 WS-4DCO-4DHO-CD-VER-PER PIC X(001). ! -303700* CODE VERSEMENT PERIODIQUE ! -303800 05 WS-4DCO-4DHO-LIB-IDT-CTR PIC X(016). ! -303900* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -304000 05 WS-4DCO-4DHO-NO-IDT-CTR PIC X(015). ! -304100* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT (68) ! -304200 05 WS-4DCO-4DHO-NO-IDT-CTR-2 PIC X(015). ! -304300* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT (76) ! -304400 05 WS-4DCO-4DHO-LIB-PRD-ORI PIC X(032). ! -304500* LIBELLE DU PRODUIT D'ORIGINE ! -304600 05 WS-4DCO-4DHO-NO-POL-PRB PIC X(009). ! -304700* N� DE POLICE PARTENAIRE EXTERIEUR ! -304800 05 WS-4DCO-4DHO-NO-STR-DIS PIC X(006). ! -304900* N� DE STRUCTURE DE DISTRIBUTION ! -305000 05 WS-4DCO-4DHO-NO-ORD-ADR-POST PIC S9(2) COMP-3. ! -305100* N� DE STRUCTURE DE DISTRIBUTION ! -305200 05 WS-4DCO-4DHO-NO-TY-PRD PIC S9(2) COMP-3. ! -305300* N� DU TYPE DE PRODUIT ! -305400 05 WS-4DCO-4DHO-NO-PRD-PTN PIC S9(3) COMP-3. ! -305500* N� DE PRODUIT DU PARTENAIRE ! -305600 05 WS-4DCO-4DHO-NO-ORD-CTR PIC S9(2) COMP-3. ! -305700* N� D'ORDRE DU CONTRAT (RANG) ! -305800 05 WS-4DCO-4DHO-68-GEN-PRD PIC X(003). ! -305900* N� DE GENERATION DE SOUSCRIPTION DU PRODUIT TYPE PEP ! -306000 05 WS-4DCO-4DHO-76-GEN-PRD PIC X(003). ! -306100* N� DE GENERATION EN COURS DU PRODUIT TYPE PREVI-RETRAIT ! -306200 05 WS-4DCO-4DHO-NO-GEN-TY-PRD PIC X(003). ! -306300* N� DE GENERATION DU PRODUIT ! -306400 05 WS-4DCO-4DHO-CD-PRD-ORI PIC X(002). ! -306500* CODE PRODUIT ORIGINE ! -306600 05 FILLER PIC X(1575). ! -306700* ZONES DISPONIBLES ! -306800* GSX ------------------------------------------------------ * ! -306900* ! -307000*================================================================ ! -307100*= APPLICATION : SIMILATION EPARGNE ACQUISE = ! -307200*================================================================ ! -307300* ! -307400 ! -307500 03 WS-4DCO-SIMUL REDEFINES WS-4DCO-PROGRAM. ! -307600* ============= ! -307700* ------------------------------------------------------ * ! -307800* COMMAREA : SIMULATION DE L'EPARGNE ACQUISE * ! -307900* LONGUEUR : 1800 * ! -308000* PREFIXE : WS-4DCO-SIM * ! -308100* ------------------------------------------------------ * ! -308200 ! -308300 05 WS-4DCO-SIM-M4D170A. ! -308400 10 WS-4DCO-SIM-MT-INIB PIC X(16). ! -308500* MONTANT INIT BRUT AFFICHE A L'ECRAN ! -308600 10 WS-4DCO-SIM-MT-INIB-N PIC S9(13)V9(02). ! -308700* MONTANT INITIAL BRUT ! -308800 10 WS-4DCO-SIM-MT-INIB-R REDEFINES ! -308900 WS-4DCO-SIM-MT-INIB-N ! -309000 PIC S9(15). ! -309100* MONTANT INITIAL BRUT ! -309200 10 WS-4DCO-SIM-MT-PERB PIC X(16). ! -309300* MONTANT PERB.BRUT AFFICHE A L'ECRAN ! -309400 10 WS-4DCO-SIM-MT-PERB-N PIC S9(13)V9(02). ! -309500* MONTANT PERIOD. BRUT ! -309600 10 WS-4DCO-SIM-MT-PERB-R REDEFINES ! -309700 WS-4DCO-SIM-MT-PERB-N ! -309800 PIC S9(15). ! -309900* MONTANT PERIODIQUE BRUT ! -310000 10 WS-4DCO-SIM-INDEX PIC X(006). ! -310100* POURCENTAGE INDEX AFFICHE A L'ECRAN ! -310200 10 WS-4DCO-SIM-INDEX-N PIC 9(02)V9(03). ! -310300* POURCENTAGE D'INDEXATION ANNUEL ! -310400 10 WS-4DCO-SIM-INDEX-R REDEFINES WS-4DCO-SIM-INDEX-N ! -310500 PIC 9(05). ! -310600* POURCENTAGE D'INDEXATION ANNUEL ! -310700 10 WS-4DCO-SIM-FREQ PIC X(002). ! -310800* NOMBRE DE VERSEMENT PAR AN ! -310900 10 WS-4DCO-SIM-FREQ-N PIC 9(02). ! -311000* NOMBRE DE VERSEMENT PAR AN ! -311100 10 WS-4DCO-SIM-FRAIS PIC X(006). ! -311200* FRAIS DE SOUSCRIPTION AFFICHE A L'ECRAN ! -311300 10 WS-4DCO-SIM-FRAIS-N PIC 9(02)V9(03). ! -311400* FRAIS DE SOUSCRIPTION ! -311500 10 WS-4DCO-SIM-FRAIS-R REDEFINES WS-4DCO-SIM-FRAIS-N ! -311600 PIC 9(05). ! -311700* FRAIS DE SOUSCRIPTION ! -311800 10 WS-4DCO-SIM-TXGST PIC X(006). ! -311900* TX FRAIS DE GESTION ! -312000 10 WS-4DCO-SIM-TXGST-N PIC 9(02)V9(03). ! -312100* TAUX FRAIS DE GESTION ! -312200 10 WS-4DCO-SIM-TXGST-R REDEFINES WS-4DCO-SIM-TXGST-N ! -312300 PIC 9(05). ! -312400 10 WS-4DCO-SIM-TXVAL PIC X(006). ! -312500* TX ANN DE REVALORISAT AFFICHE A L'ECRAN ! -312600 10 WS-4DCO-SIM-TXVAL-N PIC 9(02)V9(03). ! -312700* TAUX ANNUEL DE REVALORISATION ! -312800 10 WS-4DCO-SIM-TXVAL-R REDEFINES WS-4DCO-SIM-TXVAL-N ! -312900 PIC 9(05). ! -313000* TAUX ANNUEL DE REVALORISATION ! -313100 10 WS-4DCO-SIM-ANVERS PIC X(004). ! -313200* ANNEE DU PREMIER VERSEMENT A L'ECRAN ! -313300 10 WS-4DCO-SIM-ANVERS-N PIC 9(04). ! -313400* ANNEE DU PREMIER VERSEMENT ! -313500 10 WS-4DCO-SIM-DUREE PIC X(003). ! -313600* DUREE DU CONTRAT A L'ECRAN ! -313700 10 WS-4DCO-SIM-DUREE-N PIC 9(03). ! -313800* ANNEE DU CONTRAT ! -313900 10 WS-4DCO-SIM-MT-EPNI PIC X(16). ! -314000* EPARGNE INIT BRUT AFFICHE A L'ECRAN ! -314100 10 WS-4DCO-SIM-MT-EPNI-N PIC S9(13)V9(02). ! -314200* EPARGNE INITIALE BRUTE ! -314300 10 WS-4DCO-SIM-MT-EPNI-R REDEFINES ! -314400 WS-4DCO-SIM-MT-EPNI-N ! -314500 PIC S9(15). ! -314600* PART D'EPARGNE INITIALE BRUTE ! -314700 10 WS-4DCO-SIM-MT-EPNP PIC X(16). ! -314800* EPARGNE INIT BRUT AFFICHE A L'ECRAN ! -314900 10 WS-4DCO-SIM-MT-EPNP-N PIC S9(13)V9(02). ! -315000* EPARGNE PERIODIQUE BRUTE ! -315100 10 WS-4DCO-SIM-MT-EPNP-R REDEFINES ! -315200 WS-4DCO-SIM-MT-EPNP-N ! -315300 PIC S9(15). ! -315400* PART D'EPARGNE PERIODIQUE BRUTE ! -315500 10 WS-4DCO-SIM-TOTVBRUT-N PIC S9(13)V9(02). ! -315600* TOTAL DES VERSEMENTS BRUTS ! -315700 10 WS-4DCO-SIM-TOTEPGN-N PIC S9(13)V9(02). ! -315800* TOTAL DE LA PART D'EPARGNE ! -315900 10 WS-4DCO-SIM-TOTINT-N PIC S9(13)V9(02). ! -316000* TOTAL DES INTERETS ACQUIS ! -316100 10 WS-4DCO-SIM-EPGNFIN-N PIC S9(13)V9(02). ! -316200* EPARGNE ACQUISE AU TERME ! -316300 10 WS-4DCO-SIM-DEST PIC X(32). ! -316400* DESTINATAIRE DE LA SIMULATION ! -316500 10 WS-4DCO-SIM-SOLDE PIC X(16). ! -316600* MONTANT DU SOLDE AFFICHE A L'ECRAN ! -316700 10 WS-4DCO-SIM-SOLDE-N PIC S9(13)V9(02). ! -316800* MONTANT DU SOLDE ! -316900 10 WS-4DCO-SIM-SOLDE-R REDEFINES WS-4DCO-SIM-SOLDE-N ! -317000 PIC S9(15). ! -317100* MONTANT DU SOLDE ! -317200 10 WS-4DCO-SIM-ANFIN PIC X(004). ! -317300* ANNEE DU PREMIER VERSEMENT A L'ECRAN ! -317400 10 WS-4DCO-SIM-ANFIN-N PIC 9(04). ! -317500* ANNEE DU PREMIER VERSEMENT ! -317600 10 WS-4DCO-SIM-NORME-SURAV PIC X. ! -317700* VALEUR DU CODE NORME SURAVENIR ! -317800 05 WS-4DCO-SIM-TABLEAU. ! -317900 10 WS-4DCO-SIM-TANNEE OCCURS 32. ! -318000 15 WS-4DCO-SIM-TANNEE-ELT PIC X(4). ! -318100* ELEMENT ANNEE ! -318200 10 WS-4DCO-SIM-TVBRUT OCCURS 32. ! -318300 15 WS-4DCO-SIM-TVBRUT-ELT PIC S9(13)V99 COMP-3. ! -318400* ELEMENT VERSEMENT BRUT ! -318500 10 WS-4DCO-SIM-TVNET OCCURS 32. ! -318600 15 WS-4DCO-SIM-TVNET-ELT PIC S9(13)V99 COMP-3. ! -318700* ELEMENT VERSEMENT NET ! -318800 10 WS-4DCO-SIM-EPGAC OCCURS 32. ! -318900 15 WS-4DCO-SIM-EPGAC-ELT PIC S9(13)V99 COMP-3. ! -319000* ELEMENT EPARGNE ACQUISE ! -319100 05 WS-4DCO-SIM-M4D170A-SUITE. ! -319200 10 WS-4DCO-SIM-AGEADH PIC X(003). ! -319300* AGE DE L'ADHERENT ! -319400 10 WS-4DCO-SIM-AGEADH-N PIC 9(03). ! -319500* AGE DE L'ADHERENT (NUMERIQUE) ! -319600 10 WS-4DCO-SIM-AGECOR PIC X(003). ! -319700* AGE DE L'ADHERENT ! -319800 10 WS-4DCO-SIM-AGECOR-N PIC 9(03). ! -319900* AGE DE L'ADHERENT (NUMERIQUE) ! -320000 10 WS-4DCO-SIM-RENTNVER-N PIC S9(13)V9(02). ! -320100* TOTAL DE LA RENTE NON REVERSIBLE ! -320200 10 WS-4DCO-SIM-RENTR60-N PIC S9(13)V9(02). ! -320300* TOTAL DE LA RENTE REVERSIBLE A 60% ! -320400 10 WS-4DCO-SIM-RENTR100-N PIC S9(13)V9(02). ! -320500* TOTAL DE LA RENTE REVERSIBLE A 100% ! -320600 10 WS-4DCO-SIM-AGERET PIC X(003). ! -320700* AGE DE LA RETRAITE ! -320800 10 WS-4DCO-SIM-AGERET-N PIC 9(03). ! -320900* AGE DE LA RETRAITE ! -321000 10 WS-4DCO-SIM-MTRENT PIC X(16). ! -321100* MONTANT DE LA RENTE SOUHAITEE ! -321200 10 WS-4DCO-SIM-MTRENT-N PIC S9(13)V9(02). ! -321300* MONTANT DE LA RENTE SOUHAITEE ! -321400 10 WS-4DCO-SIM-MTRENT-R REDEFINES WS-4DCO-SIM-MTRENT-N ! -321500 PIC S9(15). ! -321600* MONTANT DE LA RENTE SOUHAITEE ! -321700 10 WS-4DCO-SIM-TXREV PIC X(003). ! -321800* TX REVERSION RENTE ! -321900 10 WS-4DCO-SIM-TXREV-N PIC 9(03). ! -322000* TAUX REVERSION RENTE ! -322100* ! -322200 05 WS-4DCO-SIM-TABI. ! -322300* OCCURENCE DE TAUX POUR NOUVELLES SIMULATIONS ! -322400 10 WS-4DCO-SIM-VALI PIC 9(3)V9(15) OCCURS 12. ! -322500* TAUX NET PERIODIQUE = (1 + Im) ** (m/12) ! -322600 10 WS-4DCO-SIM-TX-FREQ PIC 9(3)V9(15). ! -322700* TAUX CALCULE SELON LA FREQUENCE DU VP ! -322800 10 WS-4DCO-SIM-VP-NEW PIC S9(09)V9(09). ! -322900* MONTANT DU VP RECALCULE = V' ! -323000 10 WS-4DCO-SIM-EP-NEW PIC S9(09)V9(09). ! -323100* EPARGNE DU VP RECALCULE = E' ! -323200 ! -323300 05 WS-4DCO-SIM-TX-TCH-STD PIC X(06). ! -323400* taux technique ! -323500 05 WS-4DCO-SIM-TX-TCH-STD-N PIC S9(2)V9(3). ! -323600* taux technique ! -323700 05 WS-4DCO-SIM-TX-TCH-STD-R REDEFINES ! -323800 WS-4DCO-SIM-TX-TCH-STD-N PIC 9(05). ! -323900* taux technique ! -324000 05 WS-4DCO-SIM-MT-VP-N PIC S9(13)V9(02). ! -324100* MONTANT DES VERSEMENTS PROGRAMMES ! -324200 05 WS-4DCO-cd-afg-mes PIC x(1). ! -324300* ? ! -324400 05 WS-4DCO-SIM-CD-SEX-RNT PIC X(1). ! -324500* SEXE DU RENTIER ! -324600 05 WS-4DCO-SIM-CD-SEX-COR PIC X(1). ! -324700* SEXE DU CO-RENTIER ! -324800 05 WS-4DCO-SIM-CD-PER PIC X(1). ! -324900* code p�riodicit� ! -325000 05 WS-4DCO-SIM-TX-FRS-GTN PIC X(06). ! -325100* TAUX frais de gestion pour affichage ! -325200 05 WS-4DCO-SIM-TX-FRS-GTN-N PIC 9(3)V9(02). ! -325300* TAUX frais de gestion ! -325400 05 WS-4DCO-SIM-TX-FRS-GTN-R REDEFINES ! -325500 WS-4DCO-SIM-TX-FRS-GTN-N PIC 9(05). ! -325600* TAUX frais de gestion ! -325700* ! -325800 05 FILLER PIC X(0174). ! -325900* ZONES DISPONIBLES ! -326000* ------------------------------------------------------ * ! -326100 ! -326200 03 WS-4DCO-SIMAVC REDEFINES WS-4DCO-PROGRAM. ! -326300* ============== ! -326400* ------------------------------------------------------ * ! -326500* COMMAREA : SIMULATION DE L'EPARGNE ACQUISE (AVANCE) * ! -326600* LONGUEUR : 1800 * ! -326700* PREFIXE : WS-4DCO-SIMAVC * ! -326800* ------------------------------------------------------ * ! -326900 ! -327000 05 WS-4DCO-SIMAVC-M4D171A. ! -327100 10 WS-4DCO-SIMAVC-MT-VIB PIC X(16). ! -327200* MONTANT INIT BRUT AFFICHE A L'ECRAN ! -327300 10 WS-4DCO-SIMAVC-MT-VIBN PIC S9(13)V9(02). ! -327400* MONTANT INITIAL BRUT ! -327500 10 WS-4DCO-SIMAVC-MT-VIBR REDEFINES ! -327600 WS-4DCO-SIMAVC-MT-VIBN ! -327700 PIC S9(15). ! -327800* MONTANT INITIAL BRUT ! -327900 10 WS-4DCO-SIMAVC-FRS PIC X(006). ! -328000* FRAIS DE SOUSCRIPTION AFFICHE A L'ECRAN ! -328100 10 WS-4DCO-SIMAVC-FRS-N PIC 9(02)V9(03). ! -328200* FRAIS DE SOUSCRIPTION ! -328300 10 WS-4DCO-SIMAVC-FRS-R REDEFINES WS-4DCO-SIMAVC-FRS-N ! -328400 PIC 9(05). ! -328500 10 WS-4DCO-SIMAVC-TXGST PIC X(006). ! -328600* TX FRAIS DE GESTION AFFICHE A L'ECRAN ! -328700 10 WS-4DCO-SIMAVC-TXGST-N PIC 9(02)V9(03). ! -328800* TX FRAIS DE GESTION ! -328900 10 WS-4DCO-SIMAVC-TXGST-R REDEFINES ! -329000 WS-4DCO-SIMAVC-TXGST-N PIC 9(05). ! -329100* TX FRAIS DE GESTION ! -329200 10 WS-4DCO-SIMAVC-MTAVC PIC X(16). ! -329300* MONTANT DE L'AVANCE AFFICHE A L'ECRAN ! -329400 10 WS-4DCO-SIMAVC-MTAVCN PIC S9(13)V9(02). ! -329500* MONTANT DE L'AVANCE ! -329600 10 WS-4DCO-SIMAVC-MTAVCR REDEFINES ! -329700 WS-4DCO-SIMAVC-MTAVCN ! -329800 PIC S9(15). ! -329900* MONTANT DE L'AVANCE ! -330000 10 WS-4DCO-SIMAVC-TXAVC PIC X(006). ! -330100* TX DE CROISSANCE DE L'AVANCE AFFICHE ! -330200 10 WS-4DCO-SIMAVC-TXAVCN PIC 9(02)V9(03). ! -330300* TX DE CROISSANCE DE L'AVANCE ! -330400 10 WS-4DCO-SIMAVC-TXAVCR REDEFINES ! -330500 WS-4DCO-SIMAVC-TXAVCN ! -330600 PIC 9(05). ! -330700* TX DE CROISSANCE DE L'AVANCE ! -330800 10 WS-4DCO-SIMAVC-TXRVL PIC X(006). ! -330900* TX ANN DE REVALORISAT AFFICHE A L'ECRAN ! -331000 10 WS-4DCO-SIMAVC-TXRVLN PIC 9(02)V9(03). ! -331100* TAUX ANNUEL DE REVALORISATION ! -331200 10 WS-4DCO-SIMAVC-TXRVLR REDEFINES ! -331300 WS-4DCO-SIMAVC-TXRVLN ! -331400 PIC 9(05). ! -331500* TAUX ANNUEL DE REVALORISATION ! -331600 10 WS-4DCO-SIMAVC-TAUXAV PIC X(006). ! -331700* TAUX DE L'AVANCE AFFICHE A L'ECRAN ! -331800 10 WS-4DCO-SIMAVC-TAUXAVN PIC 9(02)V9(03). ! -331900* TAUX DE L'AVANCE DE L'AVANCE ! -332000 10 WS-4DCO-SIMAVC-TAUXAVR REDEFINES ! -332100 WS-4DCO-SIMAVC-TAUXAVN ! -332200 PIC 9(05). ! -332300* TAUX DE L'AVANCE ! -332400 10 WS-4DCO-SIMAVC-ANVERS PIC X(004). ! -332500* ANNEE DU PREMIER VERSEMENT A L'ECRAN ! -332600 10 WS-4DCO-SIMAVC-ANVERSN PIC 9(04). ! -332700* ANNEE DU PREMIER VERSEMENT ! -332800 10 WS-4DCO-SIMAVC-DUREE PIC X(003). ! -332900* DUREE DU CONTRAT A L'ECRAN ! -333000 10 WS-4DCO-SIMAVC-DUREE-N PIC 9(03). ! -333100* ANNEE DU CONTRAT ! -333200 10 WS-4DCO-SIMAVC-EPN-N PIC S9(13)V9(02). ! -333300* PART D'EPARGNE ! -333400 10 WS-4DCO-SIMAVC-EPND-N PIC S9(13)V9(02). ! -333500* PART D'EPARGNE DISPONIBLE ! -333600 10 WS-4DCO-SIMAVC-ANFIN PIC X(004). ! -333700* ANNEE DE FIN DE CONTRAT AFFICHE ! -333800 10 WS-4DCO-SIMAVC-ANFIN-N PIC 9(04). ! -333900* ANNEE DE FIN DE CONTRAT ! -334000 05 WS-4DCO-SIMAVC-TABLEAU. ! -334100 10 WS-4DCO-SIMAVC-TANNEE OCCURS 21. ! -334200 15 WS-4DCO-SIMAVC-TANNEE-ELT PIC X(4). ! -334300* ELEMENT ANNEE ! -334400 10 WS-4DCO-SIMAVC-EPGERE OCCURS 21. ! -334500 15 WS-4DCO-SIMAVC-EPGERE-ELT PIC S9(13)V99 COMP-3. ! -334600* ELEMENT EPARGNE GERE ! -334700 10 WS-4DCO-SIMAVC-UTAVC OCCURS 21. ! -334800 15 WS-4DCO-SIMAVC-UTAVC-ELT PIC S9(13)V99 COMP-3. ! -334900* ELEMENT UTILISATION AVANCE ! -335000 10 WS-4DCO-SIMAVC-PREV OCCURS 21. ! -335100 15 WS-4DCO-SIMAVC-PREV-ELT PIC S9(13)V99 COMP-3. ! -335200* ELEMENT MONTANT PRELEVEMENT ! -335300 10 WS-4DCO-SIMAVC-BASCA OCCURS 21. ! -335400 15 WS-4DCO-SIMAVC-BASCA-ELT PIC S9(13)V99 COMP-3. ! -335500* ELEMENT BASE DE CALCUL REVALORISATION ! -335600 10 WS-4DCO-SIMAVC-RVLN OCCURS 21. ! -335700 15 WS-4DCO-SIMAVC-RVLN-ELT PIC S9(13)V99 COMP-3. ! -335800* ELEMENT REVALORISATION NETTE ! -335900 10 WS-4DCO-SIMAVC-AVIR OCCURS 21. ! -336000 15 WS-4DCO-SIMAVC-AVIR-ELT PIC S9(13)V99 COMP-3. ! -336100* ELEMENT AVANCE AVEC INT A REMBOURSER ! -336200 10 WS-4DCO-SIMAVC-EPNDIS OCCURS 21. ! -336300 15 WS-4DCO-SIMAVC-EPNDIS-ELT PIC S9(13)V99 COMP-3. ! -336400* ELEMENT EPARGNE DISPONIBLE FIN D'ANNEE ! -336500 10 WS-4DCO-SIMAVC-EPN PIC X(16). ! -336600* PART D'EPARGNE ! -336700 10 WS-4DCO-SIMAVC-EPND PIC X(16). ! -336800* PART D'EPARGNE DISPONIBLE ! -336900 05 WS-4DCO-SIMAVC-NORME-SURAV PIC X. ! -337000* VALEUR DU CODE NORME SURAVENIR ! -337100 05 WS-4DCO-SIMAVC-MTABT PIC X(8). ! -337200 05 WS-4DCO-SIMAVC-MTABTN PIC 9(5)V99. ! -337300 05 FILLER PIC X(0323). ! -337400* ZONES DISPONIBLES ! -337500* ------------------------------------------------------ * ! -337600 ! -337700 03 WS-4DCO-SIMRET REDEFINES WS-4DCO-PROGRAM. ! -337800* ============== ! -337900* ------------------------------------------------------ * ! -338000* COMMAREA : SIMULATION DE L'EPARGNE ACQUISE (RETRAIT) * ! -338100* LONGUEUR : 1800 * ! -338200* PREFIXE : WS-4DCO-SIMRET * ! -338300* ------------------------------------------------------ * ! -338400 ! -338500 05 WS-4DCO-SIMRET-M42172A. ! -338600 10 WS-4DCO-SIMRET-MT-VIB PIC X(16). ! -338700* MONTANT INIT BRUT AFFICHE A L'ECRAN ! -338800 10 WS-4DCO-SIMRET-MT-VIBN PIC S9(13)V9(02). ! -338900* MONTANT INITIAL BRUT ! -339000 10 WS-4DCO-SIMRET-MT-VIBR REDEFINES ! -339100 WS-4DCO-SIMRET-MT-VIBN ! -339200 PIC S9(15). ! -339300* MONTANT INITIAL BRUT ! -339400 10 WS-4DCO-SIMRET-FRS PIC X(006). ! -339500* FRAIS DE SOUSCRIPTION AFFICHE A L'ECRAN ! -339600 10 WS-4DCO-SIMRET-FRS-N PIC 9(02)V9(03). ! -339700* FRAIS DE SOUSCRIPTION ! -339800 10 WS-4DCO-SIMRET-FRS-R REDEFINES ! -339900 WS-4DCO-SIMRET-FRS-N ! -340000 PIC 9(05). ! -340100* FRAIS DE SOUSCRIPTION ! -340200 10 WS-4DCO-SIMRET-MTRET PIC X(16). ! -340300* MONTANT DU RETRAIT AFFICHE A L'ECRAN ! -340400 10 WS-4DCO-SIMRET-MTRETN PIC S9(13)V9(02). ! -340500* MONTANT DU RETRAIT ! -340600 10 WS-4DCO-SIMRET-MTRETR REDEFINES ! -340700 WS-4DCO-SIMRET-MTRETN ! -340800 PIC S9(15). ! -340900* MONTANT DU RETRAIT ! -341000 10 WS-4DCO-SIMRET-TXRET PIC X(006). ! -341100* TX DE CROISSANCE DU RETRAIT AFFICHE ! -341200 10 WS-4DCO-SIMRET-TXRETN PIC 9(02)V9(03). ! -341300* TX DE CROISSANCE DU RETRAIT ! -341400 10 WS-4DCO-SIMRET-TXRETR REDEFINES ! -341500 WS-4DCO-SIMRET-TXRETN ! -341600 PIC 9(05). ! -341700* TX DE CROISSANCE DU RETRAIT ! -341800 10 WS-4DCO-SIMRET-TXRVL PIC X(006). ! -341900* TX ANN DE REVALORISAT AFFICHE A L'ECRAN ! -342000 10 WS-4DCO-SIMRET-TXRVLN PIC 9(02)V9(03). ! -342100* TAUX ANNUEL DE REVALORISATION ! -342200 10 WS-4DCO-SIMRET-TXRVLR REDEFINES ! -342300 WS-4DCO-SIMRET-TXRVLN ! -342400 PIC 9(05). ! -342500 10 WS-4DCO-SIMRET-TXGST PIC X(006). ! -342600* TX ANN DE GESTION AFFICHE A L'ECRAN ! -342700 10 WS-4DCO-SIMRET-TXGSTN PIC 9(02)V9(03). ! -342800* TAUX ANNUEL DE GESTION ! -342900 10 WS-4DCO-SIMRET-TXGSTR REDEFINES ! -343000 WS-4DCO-SIMRET-TXGSTN ! -343100 PIC 9(05). ! -343200* TAUX ANNUEL DE REVALORISATION ! -343300 10 WS-4DCO-SIMRET-ANVERS PIC X(004). ! -343400* ANNEE DU PREMIER VERSEMENT A L'ECRAN ! -343500 10 WS-4DCO-SIMRET-ANVERSN PIC 9(04). ! -343600* ANNEE DU PREMIER VERSEMENT ! -343700 10 WS-4DCO-SIMRET-DUREE PIC X(003). ! -343800* DUREE DU CONTRAT A L'ECRAN ! -343900 10 WS-4DCO-SIMRET-DUREE-N PIC 9(03). ! -344000* ANNEE DU CONTRAT ! -344100 10 WS-4DCO-SIMRET-ANFIN PIC X(004). ! -344200* ANNEE DE FIN DE CONTRAT AFFICHE ! -344300 10 WS-4DCO-SIMRET-ANFIN-N PIC 9(04). ! -344400* ANNEE DE FIN DE CONTRAT ! -344500 10 WS-4DCO-SIMRET-EPNR-N PIC S9(13)V9(02). ! -344600* PART D'EPARGNE RESTANTE ! -344700 05 WS-4DCO-SIMRET-TABLEAU. ! -344800 10 WS-4DCO-SIMRET-TANNEE OCCURS 21. ! -344900 15 WS-4DCO-SIMRET-TANNEE-ELT PIC X(4). ! -345000* ELEMENT ANNEE ! -345100 10 WS-4DCO-SIMRET-EPGAVR OCCURS 21. ! -345200 15 WS-4DCO-SIMRET-EPGAVR-ELT PIC S9(13)V99 COMP-3. ! -345300* ELEMENT EPARGNE AVANT RETRAIT ! -345400 10 WS-4DCO-SIMRET-RPAPI OCCURS 21. ! -345500 15 WS-4DCO-SIMRET-RPAPI-ELT PIC S9(13)V99 COMP-3. ! -345600* ELEMENT RETRAIT PARTIEL APRES IMPOT ! -345700 10 WS-4DCO-SIMRET-REAVI OCCURS 21. ! -345800 15 WS-4DCO-SIMRET-REAVI-ELT PIC S9(13)V99 COMP-3. ! -345900* ELEMENT RETRAIT EFFECTIF AVANT IMPOT ! -346000 10 WS-4DCO-SIMRET-PARIM OCCURS 21. ! -346100 15 WS-4DCO-SIMRET-PARIM-ELT PIC S9(13)V99 COMP-3. ! -346200* ELEMENT PARTIE IMPOSABLE ! -346300 10 WS-4DCO-SIMRET-TXIMP OCCURS 21. ! -346400 15 WS-4DCO-SIMRET-TXIMP-ELT PIC 99V99. ! -346500* ELEMENT TAUX D'IMPOSITION ! -346600 10 WS-4DCO-SIMRET-MTIMP OCCURS 21. ! -346700 15 WS-4DCO-SIMRET-MTIMP-ELT PIC S9(13)V99 COMP-3. ! -346800* ELEMENT MONTANT DE L'IMPOT ! -346900 10 WS-4DCO-SIMRET-EPNRES OCCURS 21. ! -347000 15 WS-4DCO-SIMRET-EPNRES-ELT PIC S9(13)V99 COMP-3. ! -347100* ELEMENT EPARGNE RESTANTE APRES IMPOT ! -347200 10 WS-4DCO-SIMRET-EPNR PIC X(16). ! -347300* PART D'EPARGNE RESTANTE ! -347400 05 WS-4DCO-SIMRET-NORME-SURAV PIC X. ! -347500* VALEUR DU CODE NORME SURAVENIR ! -347600 05 WS-4DCO-SIMRET-MTABT PIC X(8). ! -347700 05 WS-4DCO-SIMRET-MTABTN PIC 9(5)V99. ! -347800 05 FILLER PIC X(0449). ! -347900* ZONES DISPONIBLES ! -348000* ------------------------------------------------------ * ! -348100 ! -348200 03 WS-4DCO-SIMTRI REDEFINES WS-4DCO-PROGRAM. ! -348300* ============== ! -348400* ------------------------------------------------------ * ! -348500* COMMAREA : SIMULATION AVEC RACHATS TRIMESTRIELS * ! -348600* LONGUEUR : 1800 * ! -348700* PREFIXE : WS-4DCO-SIMTRI * ! -348800* ------------------------------------------------------ * ! -348900 ! -349000 05 WS-4DCO-SIMTRI-DONNEES. ! -349100* VERSEMENT INITIAL BRUT ! -349200 10 WS-4DCO-SIMTRI-MT-B-V PIC S9(13)V9(02) COMP-3. ! -349300* VERSEMENT INITIAL NET ! -349400 10 WS-4DCO-SIMTRI-MT-N-V PIC S9(13)V9(02) COMP-3. ! -349500* TAUX FRAIS SOUSCRIPTION ! -349600 10 WS-4DCO-SIMTRI-TX-FRS-INI PIC S9(2)V9(03) COMP-3. ! -349700* TAUX FRAIS GESTION ! -349800 10 WS-4DCO-SIMTRI-TX-FRS-GTN PIC S9(2)V9(03) COMP-3. ! -349900* MONTANT NET DES RACHATS ! -350000 10 WS-4DCO-SIMTRI-MT-RPP PIC S9(13)V9(02) COMP-3. ! -350100* CODE PERIODICITE ! -350200 10 WS-4DCO-SIMTRI-CD-PER PIC X. ! -350300* TAUX INDEXATION DES RACHATS ! -350400 10 WS-4DCO-SIMTRI-TX-IDX-RRT-STD PIC S9(2)V999 COMP-3. ! -350500* CODE FISCALITE ! -350600 10 WS-4DCO-SIMTRI-CD-FIS PIC X. ! -350700* TAUX REVALORISATION ! -350800 10 WS-4DCO-SIMTRI-TX-VLR PIC S9(2)V9(3) COMP-3. ! -350900* MONTANT ABATTEMENT ! -351000 10 WS-4DCO-SIMTRI-MT-ABT PIC S9(13)V99 COMP-3. ! -351100* MONTANT VERSEMENT NET ! -351200 10 WS-4DCO-SIMTRI-MT-VER-NET PIC S9(13)V99 COMP-3. ! -351300* MONTANT EPARGNE RESTANTE ! -351400 10 WS-4DCO-SIMTRI-MT-EPG-RES PIC S9(13)V99 COMP-3. ! -351500* MONTANT INTERET ! -351600 10 WS-4DCO-SIMTRI-MT-INT PIC S9(13)V99 COMP-3. ! -351700* NOMBRE RETRAIT EPARGNE ! -351800 10 WS-4DCO-SIMTRI-NB-RTT-EPG PIC 9(02) OCCURS 41. ! -351900* MONTANT CAPITAL ! -352000 10 WS-4DCO-SIMTRI-MT-CAP ! -352100 PIC S9(9)V99 COMP-3 OCCURS 41. ! -352200* MONTANT RETRAIT APRES ! -352300 10 WS-4DCO-SIMTRI-MT-RTT-AP ! -352400 PIC S9(9)V99 COMP-3 OCCURS 41. ! -352500* MONTANT RETRAIT AVANT ! -352600 10 WS-4DCO-SIMTRI-MT-RTT-AV ! -352700 PIC S9(9)V99 COMP-3 OCCURS 41. ! -352800* MONTANT INTERET ! -352900 10 WS-4DCO-SIMTRI-MT-ITT-I1 ! -353000 PIC S9(9)V99 COMP-3 OCCURS 41. ! -353100* TAUX PRELEVEMENT ! -353200 10 WS-4DCO-SIMTRI-TX-PLV-LBL ! -353300 PIC S9(2)V999 COMP-3 OCCURS 41. ! -353400* MONTANT IMPOT ! -353500 10 WS-4DCO-SIMTRI-MT-IMT ! -353600 PIC S9(9)V99 COMP-3 OCCURS 41. ! -353700* SOLDE CONTRAT ! -353800 10 WS-4DCO-SIMTRI-SLD-CTR ! -353900 PIC S9(9)V99 COMP-3 OCCURS 41. ! -354000 10 WS-4DCO-SIMTRI-NORME PIC X. ! -354100 ! -354200 10 FILLER PIC X(48). ! -354300 ! -354400 03 WS-4DCO-SIMRNT REDEFINES WS-4DCO-PROGRAM. ! -354500* ============== ! -354600* ------------------------------------------------------ * ! -354700* COMMAREA : SIMULATION RENTE VIAGERE IMMEDIATE * ! -354800* LONGUEUR : 1800 * ! -354900* PREFIXE : WS-4DCO-SIMRNT * ! -355000* ------------------------------------------------------ * ! -355100 ! -355200 05 WS-4DCO-SIMRNT-DONNEES. ! -355300* REFERENCE DU CONTRAT ! -355400 10 WS-4DCO-SIMRNT-REF-CTR PIC X(15). ! -355500* VERSEMENT INITIAL BRUT ! -355600 10 WS-4DCO-SIMRNT-MT-B-V PIC S9(13)V9(02) COMP-3. ! -355700* VERSEMENT INITIAL NET ! -355800 10 WS-4DCO-SIMRNT-MT-N-V PIC S9(13)V9(02) COMP-3. ! -355900* TAUX FRAIS SOUSCRIPTION ! -356000 10 WS-4DCO-SIMRNT-TX-FRS PIC S9(2)V9(03) COMP-3. ! -356100* VALEUR DE RACHAT DU CONTRAT ! -356200 10 WS-4DCO-SIMRNT-VLR-RAC PIC S9(13)V9(02) COMP-3. ! -356300* AGE DU RENTIER ! -356400 10 WS-4DCO-SIMRNT-VLR-AGE-RNT PIC 9(3). ! -356500* AGE DU CO-RENTIER ! -356600 10 WS-4DCO-SIMRNT-VLR-AGE-COR PIC 9(3). ! -356700* TAUX DE REVERSION ! -356800 10 WS-4DCO-SIMRNT-TX-REV PIC S9(3) COMP-3. ! -356900* TAUX TECHNIQUE ! -357000 10 WS-4DCO-SIMRNT-TX-TEC PIC S9(3)V9(02) COMP-3. ! -357100* MONTANT ANNUELLE DE LA RENTE ! -357200 10 WS-4DCO-SIMRNT-MT-REN PIC S9(13)V9(02) COMP-3. ! -357300* COEFFICIENT DE CONVERSION ! -357400 10 WS-4DCO-SIMRNT-COEF-CNVS PIC S9(2)V9(3) COMP-3. ! -357500* NORME ! -357600 10 WS-4DCO-SIMRNT-NORME PIC X. ! -357700* SEXE DU RENTIER ! -357800 10 WS-4DCO-SIMRNT-CD-SEX-RNT PIC X(1). ! -357900* SEXE DU CO-RENTIER ! -358000 10 WS-4DCO-SIMRNT-CD-SEX-COR PIC X(1). ! -358100* code p�riodicit� ! -358200 10 WS-4DCO-SIMRNT-CD-PER PIC X(1). ! -358300* TAUX frais de gestion ! -358400 10 WS-4DCO-SIMRNT-TX-FRS-GTN PIC S9(3)V9(02) COMP-3. ! -358500* ! -358600 10 FILLER PIC X(1729). ! -358700* ! -358800 ! -358900 03 WS-4DCO-SIMEVO REDEFINES WS-4DCO-PROGRAM. ! -359000* ============== ! -359100* ------------------------------------------------------ * ! -359200* COMMAREA : SIMULATION DE L'EPARGNE (EVOLUTION/TAUX) * ! -359300* LONGUEUR : 1800 * ! -359400* PREFIXE : WS-4DCO-SIMEVO * ! -359500* ------------------------------------------------------ * ! -359600 ! -359700 05 WS-4DCO-SIMEVO-M42173A. ! -359800 10 WS-4DCO-SIMEVO-MT-VIB PIC X(16). ! -359900* MONTANT INIT BRUT AFFICHE A L'ECRAN ! -360000 10 WS-4DCO-SIMEVO-MT-VIBN PIC S9(13)V9(02). ! -360100* MONTANT INITIAL BRUT ! -360200 10 WS-4DCO-SIMEVO-MT-VIBR REDEFINES ! -360300 WS-4DCO-SIMEVO-MT-VIBN ! -360400 PIC S9(15). ! -360500* MONTANT INITIAL BRUT ! -360600 10 WS-4DCO-SIMEVO-FRS PIC X(006). ! -360700* FRAIS DE SOUSCRIPTION AFFICHE A L'ECRAN ! -360800 10 WS-4DCO-SIMEVO-FRS-N PIC 9(02)V9(03). ! -360900* FRAIS DE SOUSCRIPTION ! -361000 10 WS-4DCO-SIMEVO-FRS-R REDEFINES ! -361100 WS-4DCO-SIMEVO-FRS-N ! -361200 PIC 9(05). ! -361300* FRAIS DE SOUSCRIPTION ! -361400 10 WS-4DCO-SIMEVO-TXGST PIC X(006). ! -361500* TX FRAIS DE GESTION AFFICHE A L'ECRAN ! -361600 10 WS-4DCO-SIMEVO-TXGST-N PIC 9(02)V9(03). ! -361700* TX FRAIS DE GESTION ! -361800 10 WS-4DCO-SIMEVO-TXGST-R REDEFINES ! -361900 WS-4DCO-SIMEVO-TXGST-N ! -362000 PIC 9(05). ! -362100* FRAIS DE GESTION ! -362200 10 WS-4DCO-SIMEVO-MTEPN PIC X(16). ! -362300* MONTANT PART D'EPARGNE AFFICHE A L'ECRAN ! -362400 10 WS-4DCO-SIMEVO-ANVERS PIC X(004). ! -362500* ANNEE DU PREMIER VERSEMENT A L'ECRAN ! -362600 10 WS-4DCO-SIMEVO-ANVERSN PIC 9(04). ! -362700* ANNEE DU PREMIER VERSEMENT ! -362800 10 WS-4DCO-SIMEVO-DUREE PIC X(003). ! -362900* DUREE DU CONTRAT A L'ECRAN ! -363000 10 WS-4DCO-SIMEVO-DUREE-N PIC 9(03). ! -363100* ANNEE DU CONTRAT ! -363200 10 WS-4DCO-SIMEVO-ANFIN PIC X(004). ! -363300* ANNEE DE FIN DE CONTRAT AFFICHE ! -363400 10 WS-4DCO-SIMEVO-ANFIN-N PIC 9(04). ! -363500* ANNEE DE FIN DE CONTRAT ! -363600 05 WS-4DCO-SIMEVO-TABTXRVL. ! -363700 10 WS-4DCO-SIMEVO-TABTX OCCURS 7. ! -363800 15 WS-4DCO-SIMEVO-TXRVL PIC X(006). ! -363900* TX ANN DE REVALORISAT AFFICHE A L'ECRAN ! -364000 15 WS-4DCO-SIMEVO-TXRVLN PIC 9(02)V9(03). ! -364100* TAUX ANNUEL DE REVALORISATION ! -364200 15 WS-4DCO-SIMEVO-TXRVLR REDEFINES ! -364300 WS-4DCO-SIMEVO-TXRVLN ! -364400 PIC 9(05). ! -364500* TAUX ANNUEL DE REVALORISATION ! -364600 05 WS-4DCO-SIMEVO-TABLEAU. ! -364700 10 WS-4DCO-SIMEVO-TANNEE OCCURS 21. ! -364800 15 WS-4DCO-SIMEVO-TANNEE-ELT PIC X(4). ! -364900* ELEMENT ANNEE ! -365000 10 WS-4DCO-SIMEVO-EPGTX1 OCCURS 21. ! -365100 15 WS-4DCO-SIMEVO-EPGTX1-ELT PIC S9(13)V99 COMP-3. ! -365200* ELEMENT EPARGNE ACQUISE AU TAUX NO 1 ! -365300 10 WS-4DCO-SIMEVO-EPGTX2 OCCURS 21. ! -365400 15 WS-4DCO-SIMEVO-EPGTX2-ELT PIC S9(13)V99 COMP-3. ! -365500* ELEMENT EPARGNE ACQUISE AU TAUX NO 2 ! -365600 10 WS-4DCO-SIMEVO-EPGTX3 OCCURS 21. ! -365700 15 WS-4DCO-SIMEVO-EPGTX3-ELT PIC S9(13)V99 COMP-3. ! -365800* ELEMENT EPARGNE ACQUISE AU TAUX NO 3 ! -365900 10 WS-4DCO-SIMEVO-EPGTX4 OCCURS 21. ! -366000 15 WS-4DCO-SIMEVO-EPGTX4-ELT PIC S9(13)V99 COMP-3. ! -366100* ELEMENT EPARGNE ACQUISE AU TAUX NO 4 ! -366200 10 WS-4DCO-SIMEVO-EPGTX5 OCCURS 21. ! -366300 15 WS-4DCO-SIMEVO-EPGTX5-ELT PIC S9(13)V99 COMP-3. ! -366400* ELEMENT EPARGNE ACQUISE AU TAUX NO 5 ! -366500 10 WS-4DCO-SIMEVO-EPGTX6 OCCURS 21. ! -366600 15 WS-4DCO-SIMEVO-EPGTX6-ELT PIC S9(13)V99 COMP-3. ! -366700* ELEMENT EPARGNE ACQUISE AU TAUX NO 6 ! -366800 10 WS-4DCO-SIMEVO-EPGTX7 OCCURS 21. ! -366900 15 WS-4DCO-SIMEVO-EPGTX7-ELT PIC S9(13)V99 COMP-3. ! -367000* ELEMENT EPARGNE ACQUISE AU TAUX NO 7 ! -367100 10 WS-4DCO-SIMEVO-MTEPN-N PIC S9(13)V99. ! -367200* MONTANT PART D'EPARGNE ! -367300 05 WS-4DCO-SIMEVO-NORME-SURAV PIC X. ! -367400* VALEUR DU CODE NORME SURAVENIR ! -367500 05 FILLER PIC X(0356). ! -367600* ZONES DISPONIBLES ! -367700* ! -367800 ! -367900 03 WS-4DCO-ZVER REDEFINES WS-4DCO-PROGRAM. ! -368000* ============== ! -368100* ------------------------------------------------------ * ! -368200* COMMAREA : ZOOM REEDITION VERSEMENT PROGRAMME * ! -368300* LONGUEUR : 1800 * ! -368400* PREFIXE : WS-4DCO-ZVER * ! -368500* ------------------------------------------------------ * ! -368600 ! -368700 05 WS-4DCO-ZVER-PAGE-AREA PIC X(198). ! -368800 05 WS-4DCO-ZVER-NB-PAG-TS PIC 9(3). ! -368900 05 WS-4DCO-ZVER-DONNEES. ! -369000* DATE CREATION CRO ! -369100 10 WS-4DCO-ZVER-DA-CRE-CRO PIC X(8). ! -369200* HEURE CREATION CRO ! -369300 10 WS-4DCO-ZVER-HEU-CRE-CRO PIC X(6). ! -369400* NUMERO STRUCTURE OPERATION ! -369500 10 WS-4DCO-ZVER-NO-STR-OPE PIC X(6). ! -369600* NUMERO AGENT OPERATION ! -369700 10 WS-4DCO-ZVER-NO-AGT-OPE PIC X(8). ! -369800* MONTANT BRUT VERSEMENT PERIODIQUE ! -369900 10 WS-4DCO-ZVER-MT-BRT-VER-PER PIC S9(15). ! -370000 10 WS-4DCO-ZVER-MT-BRT-VER-PER-R ! -370100 REDEFINES WS-4DCO-ZVER-MT-BRT-VER-PER PIC S9(13)V9(2). ! -370200* MONTANT FRAIS ! -370300 10 WS-4DCO-ZVER-FRS-VER-PER PIC S9(15). ! -370400 10 WS-4DCO-ZVER-FRS-VER-PER-R ! -370500 REDEFINES WS-4DCO-ZVER-FRS-VER-PER PIC S9(13)V9(2). ! -370600* MONTANT NET VERSEMENT PERIODIQUE ! -370700 10 WS-4DCO-ZVER-MT-NET-VER-PER PIC S9(15). ! -370800 10 WS-4DCO-ZVER-MT-NET-VER-PER-R ! -370900 REDEFINES WS-4DCO-ZVER-MT-NET-VER-PER PIC S9(13)V9(2). ! -371000* TAUX FRAIS ! -371100 10 WS-4DCO-ZVER-TX-FRS-VER-PER PIC S9(5). ! -371200 10 WS-4DCO-ZVER-TX-FRS-VER-PER-R ! -371300 REDEFINES WS-4DCO-ZVER-TX-FRS-VER-PER PIC S9(2)V9(3). ! -371400* DATE EFFET ! -371500 10 WS-4DCO-ZVER-DA-EFF-VER-PER PIC X(8). ! -371600* CODE PERIODICITE ! -371700 10 WS-4DCO-ZVER-CD-PER-VER-PER PIC X(1). ! -371800* COMPTE DOM VERSEMENT PERIODIQUE ! -371900 10 WS-4DCO-ZVER-RIB-VER-PER PIC X(23). ! -372000* TYPE AJUSTEMENT ! -372100 10 WS-4DCO-ZVER-TY-AJU-CTS PIC X(1). ! -372200 05 FILLER PIC X(1488). ! -372300* ! -372400 ! -372500 03 WS-4DCO-ZEXP REDEFINES WS-4DCO-PROGRAM. ! -372600* ============== ! -372700* ------------------------------------------------------ * ! -372800* COMMAREA : ZOOM REEDITION MODIFICATION CODE EXPED. * ! -372900* LONGUEUR : 1800 * ! -373000* PREFIXE : WS-4DCO-ZEXP * ! -373100* ------------------------------------------------------ * ! -373200 ! -373300 05 WS-4DCO-ZEXP-PAGE-AREA PIC X(198). ! -373400 05 WS-4DCO-ZEXP-NB-PAG-TS PIC 9(3). ! -373500 05 WS-4DCO-ZEXP-DONNEES. ! -373600* DATE CREATION CRO ! -373700 10 WS-4DCO-ZEXP-DA-CRE-CRO PIC X(8). ! -373800* HEURE CREATION CRO ! -373900 10 WS-4DCO-ZEXP-HEU-CRE-CRO PIC X(6). ! -374000* NUMERO STRUCTURE OPERATION ! -374100 10 WS-4DCO-ZEXP-NO-STR-OPE PIC X(6). ! -374200* NUMERO AGENT OPERATION ! -374300 10 WS-4DCO-ZEXP-NO-AGT-OPE PIC X(8). ! -374400* CODE EXPEDITION ! -374500 10 WS-4DCO-ZEXP-CD-EXP PIC X(1). ! -374600 05 FILLER PIC X(1570). ! -374700* ! -374800 ! -374900 03 WS-4DCO-ZRACP REDEFINES WS-4DCO-PROGRAM. ! -375000* ============== ! -375100* ------------------------------------------------------ * ! -375200* COMMAREA : ZOOM REEDITION RACHATS PARTIELS * ! -375300* LONGUEUR : 1800 * ! -375400* PREFIXE : WS-4DCO-ZRACP * ! -375500* ------------------------------------------------------ * ! -375600 ! -375700 05 WS-4DCO-ZRACP-PAGE-AREA PIC X(198). ! -375800 05 WS-4DCO-ZRACP-NB-PAG-TS PIC 9(3). ! -375900 05 WS-4DCO-ZRACP-DONNEES. ! -376000* DATE CREATION CRO ! -376100 10 WS-4DCO-ZRACP-DA-CRE-CRO PIC X(8). ! -376200* HEURE CREATION CRO ! -376300 10 WS-4DCO-ZRACP-HEU-CRE-CRO PIC X(6). ! -376400* NUMERO STRUCTURE OPERATION ! -376500 10 WS-4DCO-ZRACP-CD-TY-CRO PIC X(3). ! -376600* NUMERO STRUCTURE OPERATION ! -376700 10 WS-4DCO-ZRACP-NO-STR-OPE PIC X(6). ! -376800* NUMERO STRUCTURE GESTION ! -376900 10 WS-4DCO-ZRACP-NO-STR-GTN PIC X(6). ! -377000* NUMERO AGENT OPERATION ! -377100 10 WS-4DCO-ZRACP-NO-AGT-OPE PIC X(8). ! -377200* MONTANT CREDIT SOCIETAIRE ! -377300 10 WS-4DCO-ZRACP-MT-CRD-SOC PIC S9(15). ! -377400 10 WS-4DCO-ZRACP-MT-CRD-SOC-R REDEFINES ! -377500 WS-4DCO-ZRACP-MT-CRD-SOC PIC S9(13)V9(2). ! -377600* NUMERO RIB ! -377700 10 WS-4DCO-ZRACP-NO-RIB PIC X(23). ! -377800* TYPE IMPOSITION ! -377900 10 WS-4DCO-ZRACP-TY-IMT-ITT PIC X(1). ! -378000* MONTANT PLUS VALUE ! -378100 10 WS-4DCO-ZRACP-MT-PV PIC S9(15). ! -378200 10 WS-4DCO-ZRACP-MT-PV-R REDEFINES ! -378300 WS-4DCO-ZRACP-MT-PV PIC S9(13)V9(2). ! -378400* MONTANT PLUS VALUE F8 ! -378500 10 WS-4DCO-ZRACP-MT-PV-F8 PIC S9(15). ! -378600 10 WS-4DCO-ZRACP-MT-PV-F8-R REDEFINES ! -378700 WS-4DCO-ZRACP-MT-PV-F8 PIC S9(13)V9(2). ! -378800* DATE D'EFFET ! -378900 10 WS-4DCO-ZRACP-DA-EFF PIC X(8). ! -379000* MODE DE REGLEMENT ! -379100 10 WS-4DCO-ZRACP-MODE-RGL PIC X(1). ! -379200* TYPE DE LETTRE ! -379300 10 WS-4DCO-ZRACP-TY-LET PIC X(3). ! -379400* MONTANT CSG ! -379500 10 WS-4DCO-ZRACP-MT-CSG PIC S9(15). ! -379600 10 WS-4DCO-ZRACP-MT-CSG-R REDEFINES ! -379700 WS-4DCO-ZRACP-MT-CSG PIC S9(13)V9(2). ! -379800* MONTANT PRELEVEMENTS SOCIAUX ! -379900 10 WS-4DCO-ZRACP-MT-PLV-SOC PIC S9(15). ! -380000 10 WS-4DCO-ZRACP-MT-PLV-SOC-R REDEFINES ! -380100 WS-4DCO-ZRACP-MT-PLV-SOC PIC S9(13)V9(2). ! -380200* MONTANT PRELEVEMENT LIBERATOIRE ! -380300 10 WS-4DCO-ZRACP-MT-PLV-LBL PIC S9(15). ! -380400 10 WS-4DCO-ZRACP-MT-PLV-LBL-R REDEFINES ! -380500 WS-4DCO-ZRACP-MT-PLV-LBL PIC S9(13)V9(2). ! -380600* MONTANT PRELEVEMENT LIBERATOIRE F8 ! -380700 10 WS-4DCO-ZRACP-MT-PLV-LBL-F8 PIC S9(15). ! -380800 10 WS-4DCO-ZRACP-MT-PLV-LBL-F8-R REDEFINES ! -380900 WS-4DCO-ZRACP-MT-PLV-LBL-F8 PIC S9(13)V9(2). ! -381000* MONTANT VERSEMENT RDS ! -381100 10 WS-4DCO-ZRACP-MT-VER-RDS PIC S9(15). ! -381200 10 WS-4DCO-ZRACP-MT-VER-RDS-R REDEFINES ! -381300 WS-4DCO-ZRACP-MT-VER-RDS PIC S9(13)V9(2). ! -381400 05 FILLER PIC X(1406). ! -381500* ! -381600 ! -381700 03 WS-4DCO-ZCIVIL REDEFINES WS-4DCO-PROGRAM. ! -381800* ============== ! -381900* ------------------------------------------------------ * ! -382000* COMMAREA : ZOOM REEDITION MODIFICATION ETAT CIVIL * ! -382100* LONGUEUR : 1800 * ! -382200* PREFIXE : WS-4DCO-ZCIVIL * ! -382300* ------------------------------------------------------ * ! -382400 ! -382500 05 WS-4DCO-ZCIVIL-PAGE-AREA PIC X(198). ! -382600 05 WS-4DCO-ZCIVIL-NB-PAG-TS PIC 9(3). ! -382700 05 WS-4DCO-ZCIVIL-DONNEES. ! -382800* DATE CREATION CRO ! -382900 10 WS-4DCO-ZCIVIL-DA-CRE-CRO PIC X(8). ! -383000* HEURE CREATION CRO ! -383100 10 WS-4DCO-ZCIVIL-HEU-CRE-CRO PIC X(6). ! -383200* NUMERO STRUCTURE OPERATION ! -383300 10 WS-4DCO-ZCIVIL-NO-STR-OPE PIC X(6). ! -383400* NUMERO AGENT OPERATION ! -383500 10 WS-4DCO-ZCIVIL-NO-AGT-OPE PIC X(8). ! -383600* NOM MODIFICATION ! -383700 10 WS-4DCO-ZCIVIL-CD-NOM-MOD PIC X(32). ! -383800* INTITULE MODIFICATION ! -383900 10 WS-4DCO-ZCIVIL-CD-INT-MODIF PIC X(2). ! -384000* DATE NAISSANCE MODIFICATION ! -384100 10 WS-4DCO-ZCIVIL-DA-NAI-MODIF PIC X(8). ! -384200 05 FILLER PIC X(1529). ! -384300 ! -384400 ! -384500*================================================================ ! -384600*= APPLICATION : GESTION DES HABILITATIONS = ! -384700*================================================================ ! -384800* ! -384900 03 WS-4DCO-HABILITATION REDEFINES WS-4DCO-PROGRAM. ! -385000* ==================== ! -385100* ------------------------------------------------------ * ! -385200* COMMAREA : GESTION DES HABILITATIONS * ! -385300* LONGUEUR : 1800 * ! -385400* PREFIXE : WS-4DCO-98XX * ! -385500* ------------------------------------------------------ * ! -385600 ! -385700 05 WS-4DCO-HABI-9800. ! -385800* ------------------------------------------------------ * ! -385900* COMMAREA : APPLICATION HABILITATION (PARTIE COMMUNE) * ! -386000* LONGUEUR : 0400 * ! -386100* PREFIXE : WS-4DCO-9800 * ! -386200* ------------------------------------------------------ * ! -386300 ! -386400 10 WS-4DCO-9800-CD-PTN-DLGAIRE PIC X(05). ! -386500* CODE PARTENAIRE DELEGATAIRE ! -386600 10 WS-4DCO-9800-LA-PTN-DLGAIRE PIC X(16). ! -386700* LIBELLE COURT PARTENAIRE DELEGATAIRE ! -386800 10 WS-4DCO-9800-CD-PFL-DLGAIRE PIC X(03). ! -386900* CODE PROFIL DELEGATAIRE ! -387000 10 WS-4DCO-9800-LA-PFL-DLGAIRE PIC X(16). ! -387100* LIBELLE COURT PROFIL DELEGATAIRE ! -387200 10 WS-4DCO-9800-CD-IDT-DLGAIRE PIC X(08). ! -387300* CODE IDENTIFICATEUR DELEGATAIRE ! -387400 10 WS-4DCO-9800-CD-PTN-DLGUE PIC X(05). ! -387500* CODE PARTENAIRE DELEGUE ! -387600 10 WS-4DCO-9800-LA-PTN-DLGUE PIC X(16). ! -387700* LIBELLE COURT PARTENAIRE DELEGUE ! -387800 10 WS-4DCO-9800-CD-PFL-DLGUE PIC X(03). ! -387900* CODE PROFIL DELEGUE ! -388000 10 WS-4DCO-9800-LA-PFL-DLGUE PIC X(16). ! -388100* LIBELLE COURT PROFIL DELEGUE ! -388200 10 WS-4DCO-9800-CD-IDT-DLGUE PIC X(08). ! -388300* CODE IDENTIFICATEUR ! -388400 10 WS-4DCO-9800-IDC-MAJ PIC X(01). ! -388500* INDICATEUR DE MISE A JOUR ! -388600 10 WS-4DCO-9800-LIB-PTN-DLGAIRE PIC X(32). ! -388700* LIBELLE LONG PARTENAIRE EN LIGNE ! -388800 10 WS-4DCO-9800-CD-TY-PFL-DLGUE PIC X(01). ! -388900* CODE TYPE DE PROFIL DELEGUE ! -389000 10 WS-4DCO-9800-NO-PTN-DLGAIRE PIC 9(03). ! -389100* CODE PARTENAIRE DELEGATAIRE ! -389200 10 WS-4DCO-9800-NO-PTN-DLGUE PIC 9(03). ! -389300* CODE PARTENAIRE DELEGUE ! -389400 10 WS-4DCO-9800-IDC-IDT-ITN PIC X(1). ! -389500* INDICATEUR IDENTIFIANT INTERNET ! -389600 10 WS-4DCO-9800-NIV-DRG PIC 9(3). ! -389700* Niveau de d�rogation ! -389800 10 WS-4DCO-9800-NO-TEL-SL PIC X(11). ! -389900* NUMERO DE TELEPHONE ! -390000 10 WS-4DCO-9800-NO-TEL-DM PIC X(11). ! -390100* NUMERO DE TELEPHONE DOMAINE ! -390200 10 WS-4DCO-9800-NO-FAX PIC X(12). ! -390300* NUMERO DE FAX ! -390400 10 WS-4DCO-9800-CD-PROV PIC X(03). ! -390500 88 ADMINISTRATEUR VALUE 'ADM'. ! -390600 88 DELEGUE VALUE 'DLG'. ! -390700 88 IDENTIFICATEUR VALUE 'IDT'. ! -390800 10 WS-4DCO-9800-IDC-TC98060 PIC X(01). ! -390900* INDICATEUR PROVENANCE MENU HABI PARTENAIRE ! -391000* ! -391100 10 FILLER PIC X(222). ! -391200* ! -391300* ! -391400* ! -391500 05 WS-4DCO-HABI-DETAIL. ! -391600* ------------------------------------------------------ * ! -391700* COMMAREA : APPLICATION HABILITATION (DETAIL) * ! -391800* LONGUEUR : 1400 * ! -391900* PREFIXE : WS-4DCO-98NN * ! -392000* ------------------------------------------------------ * ! -392100 10 FILLER PIC X(1400). ! -392200 ! -392300***************************************************************** ! -392400 ! -392500 ! -392600 05 WS-4DCO-98400 REDEFINES WS-4DCO-HABI-DETAIL. ! -392700* ================= ! -392800* ------------------------------------------------------ * ! -392900* COMMAREA : CREATION D'UN IDENTIFICATEUR * ! -393000* LONGUEUR : 1400 * ! -393100* PREFIXE : WS-4DCO-9840 * ! -393200* ------------------------------------------------------ * ! -393300 07 WS-4DCO-98400-IDT. ! -393400 ! -393500 10 WS-4DCO-9840-CD-IDT PIC X(08). ! -393600* CODE IDENTIFICATEUR ! -393700 10 WS-4DCO-9840-CD-PFL PIC X(03). ! -393800* CODE PROFIL AFFECTE ! -393900 10 WS-4DCO-9840-LIBPFL PIC X(32). ! -394000* LIBELLE PROFIL AFFECTE ! -394100 10 WS-4DCO-9840-SELPFL PIC X. ! -394200* ZONE DE SELECT PF10 SUR PROFIL AFFECTE ! -394300 10 WS-4DCO-9840-CD-CFD PIC X(01). ! -394400* CODE PROFIL CONFIDENTIALITE ! -394500 10 WS-4DCO-9840-LIBCFD PIC X(32). ! -394600* LIBELLE PROFIL CONFIDENTIALITE ! -394700 10 WS-4DCO-9840-SELCDF PIC X. ! -394800* ZONE DE SELECT PF10 POUR DETAIL CONFIDENTIALITE ! -394900 10 WS-4DCO-9840-CD-DRG PIC X(01). ! -395000* CODE AUTORISATION DEROGATION ! -395100 10 WS-4DCO-9840-SELDRG PIC X. ! -395200* ZONE DE SELECT PF10 POUR DETAIL DEROGATION ! -395300 10 WS-4DCO-9840-LIBIDT PIC X(32). ! -395400* LIBELLE CODE IDENTIFICATEUR ! -395500 10 WS-4DCO-9840-NOSTR PIC X(06). ! -395600* NUMERO DE STRUCTURE D'APPARTENANCE ! -395700 10 WS-4DCO-9840-NOAGT PIC X(08). ! -395800* NUMERO D'AGENT PARTENAIRE ! -395900 10 WS-4DCO-9840-IDC-INIT-PFL PIC X(01). ! -396000* INDICATEUR PRESENCE F10 SUR PROFIL ! -396100 10 WS-4DCO-9840-IDC-INIT-DRG PIC X(01). ! -396200* INDICATEUR PRESENCE F10 SUR PROFIL ! -396300 10 WS-4DCO-9840-IDC-INIT-CFD PIC X(01). ! -396400* INDICATEUR PRESENCE F10 SUR PROFIL ! -396500 10 WS-4DCO-9840-LIBSTR PIC X(32). ! -396600* LIBELLE PROFIL STRUCTURE ! -396700 10 WS-4DCO-9840-IDC-INIT-IDT PIC X(01). ! -396800* INDICATEUR PRESENCE SAISIE CMPL ! -396900 10 WS-4DCO-9840-MDP PIC X(08). ! -397000* INDICATEUR PRESENCE SAISIE CMPL ! -397100 10 FILLER PIC X(30). ! -397200* ZONES DISPONIBLES ! -397300 ! -397400 07 WS-4DCO-98100-ADM REDEFINES WS-4DCO-98400-IDT. ! -397500 10 FILLER PIC X(200). ! -397600* ZONES DISPONIBLES ! -397700 ! -397800 ! -397900 07 WS-4DCO-98700-DLG REDEFINES WS-4DCO-98400-IDT. ! -398000 10 FILLER PIC X(200). ! -398100* ZONES DISPONIBLES ! -398200 ! -398300 07 WS-4DCO-98900. ! -398400* ============== ! -398500* ------------------------------------------------------ * ! -398600* COMMAREA : MODIFICATION OPTIONS DES APPLICATIONS * ! -398700* LONGUEUR : 1400 * ! -398800* PREFIXE : WS-4DCO-9890 * ! -398900* ------------------------------------------------------ * ! -399000 ! -399100 10 WS-4DCO-9890. ! -399200 ! -399300 15 WS-4DCO-9890-CD-APLI PIC X(04). ! -399400* CODE APPLICATION ! -399500 15 WS-4DCO-9890-LIB-APLI PIC X(50). ! -399600* LIBELLE APPLICATION ! -399700 15 WS-4DCO-9890-SEL. ! -399800 20 WS-4DCO-9890-SELOP PIC X(01) OCCURS 12. ! -399900* STOCKAGE SELECTION ! -400000 15 WS-4DCO-9890-CD-OPT-SAUV. ! -400100* OPTION CHOISIE DU MENU PRECEDENT ! -400200 20 WS-4DCO-9890-CD-OPT-MP PIC X(002). ! -400300* OPTION CHOISIE DU MENU PRINCIPAL ! -400400 20 WS-4DCO-9890-CD-OPT-MS PIC X(002). ! -400500* OPTION CHOISIE DU MENU SECONDAIRE ! -400600 20 WS-4DCO-9890-CD-OPT-MT PIC X(002). ! -400700* OPTION CHOISIE DU MENU TERTIAIRE ! -400800 20 WS-4DCO-9890-CD-OPT-MQ PIC X(002). ! -400900* OPTION CHOISIE DU MENU QUATERNAIRE ! -401000 15 WS-4DCO-9890-PAGE-AREA-MP PIC X(90). ! -401100* PAGE AREA START -ENCHAINEMENT PGMS AVEC SEGLOOP ! -401200 15 WS-4DCO-9890-PAGE-AREA-MS PIC X(90). ! -401300* PAGE AREA START -ENCHAINEMENT PGMS AVEC SEGLOOP ! -401400 15 WS-4DCO-9890-PAGE-AREA-MT PIC X(90). ! -401500* PAGE AREA START -ENCHAINEMENT PGMS AVEC SEGLOOP ! -401600 15 WS-4DCO-9890-PAGE-AREA-MQ PIC X(90). ! -401700* PAGE AREA START -ENCHAINEMENT PGMS AVEC SEGLOOP ! -401800 15 WS-4DCO-9890-LIB-CD-OPT-MS PIC X(50). ! -401900* LIBELLE OPTION CHOISIE DU MENU SECONDAIRE ! -402000 15 WS-4DCO-9890-LIB-CD-OPT-MT PIC X(50). ! -402100* LIBELLE OPTION CHOISIE DU MENU TERTIAIRE ! -402200 15 WS-4DCO-9890-LIB-CD-OPT-MQ PIC X(50). ! -402300* LIBELLE OPTION CHOISIE DU MENU QUATERNAIRE ! -402400 15 WS-4DCO-9890-NO-ITEM-TS-A PIC 9(04) COMP. ! -402500* PREMIER ITEM TS AI03 DU PRG ! -402600 15 WS-4DCO-9890-TOP-MAJ-EFFECTUEE PIC X(01). ! -402700* TOP MODIF PAGE ! -402800 15 WS-4DCO-9890-ITEM-MENUPRE-P PIC 9(04) COMP. ! -402900* ITEM AI03 DU MENU PRECEDENT PRIMAIRE ! -403000 15 WS-4DCO-9890-ITEM-MENUPRE-S PIC 9(04) COMP. ! -403100* ITEM AI03 DU MENU PRECEDENT SECONDAIRE ! -403200 15 WS-4DCO-9890-ITEM-MENUPRE-T PIC 9(04) COMP. ! -403300* ITEM AI03 DU MENU PRECEDENT TERTIAIRE ! -403400 15 WS-4DCO-9890-STOCK-AUTORIS. ! -403500 20 WS-4DCO-9890-ST-AUT PIC X(01) OCCURS 36. ! -403600* STOCKAGE AUTORISATIONS POUR REMONTEE DU NON ! -403700 07 WS-4DCO-98040-DRG. ! -403800* ================== ! -403900* ------------------------------------------------------ * ! -404000* COMMAREA : CREATION ET MODIFS DE DEROGATIONS * ! -404100* PREFIXE : WS-4DCO-9804-DRG * ! -404200* ------------------------------------------------------ * ! -404300 ! -404400 10 WS-4DCO-9804-DRG. ! -404500 ! -404600 15 WS-4DCO-9804-TABDEROG OCCURS 24. ! -404700* TABLE DEROGATIONS ! -404800 20 WS-4DCO-9804-CD-DRG PIC X(2). ! -404900* CODES DEROGATIONS ! -405000 20 WS-4DCO-9804-IDC-AUT-DRG PIC X. ! -405100* INDIC AUTO DEROGATION ! -405200 ! -405300 07 WS-4DCO-98040-TAB-TST. ! -405400* ====================== ! -405500* ------------------------------------------------------ * ! -405600* COMMAREA : CREATION ET MODIFS DE DEROGATIONS * ! -405700* PREFIXE : WS-4DCO-9804-DRG * ! -405800* ------------------------------------------------------ * ! -405900 ! -406000 15 WS-4DCO-9840-TABAPPLI OCCURS 20. ! -406100* TABLE APPLICATION GEODE ! -406200 20 WS-4DCO-9840-CD-TST-AS PIC X(4). ! -406300* APPLICATION GEODE ! -406400 20 WS-4DCO-9840-CD-TST-REEL PIC X(4). ! -406500* APPLICATION GEODE-REELLE ! -406600 ! -406700 07 FILLER PIC X(339). ! -406800* ZONES DISPONIBLES ! -406900 ! -407000 05 WS-4DCO-98590 REDEFINES WS-4DCO-HABI-DETAIL. ! -407100* ============== ! -407200* ------------------------------------------------------ * ! -407300* COMMAREA : LISTE DE IDENTIFICATEURS / PARTENAIRE * ! -407400* LONGUEUR : 1400 * ! -407500* PREFIXE : WS-4DCO-9890 * ! -407600* ------------------------------------------------------ * ! -407700 ! -407800 10 WS-4DCO-9890. ! -407900 ! -408000 15 WS-4DCO-9859-SEL. ! -408100 20 WS-4DCO-9859-SELIDT PIC X(01) OCCURS 12. ! -408200* STOCKAGE SELECTION ! -408300 15 WS-4DCO-9859-IDC-OCC-SPL PIC X(1). ! -408400* INDICATEUR OCCURENCE SUPPLEMENTAIRE ! -408500 15 WS-4DCO-9859-PAGE-AREA PIC X(198). ! -408600* ! -408700 15 FILLER PIC X(1189). ! -408800* ZONES DISPONIBLES ! -408900* ! -409000 05 WS-4DCO-98210 REDEFINES WS-4DCO-HABI-DETAIL. ! -409100* ============== ! -409200* ------------------------------------------------------ * ! -409300* COMMAREA : AFFECTATION DEROGATION * ! -409400* LONGUEUR : 1400 * ! -409500* PREFIXE : WS-4DCO-9890 * ! -409600* ------------------------------------------------------ * ! -409700 ! -409800 10 WS-4DCO-9821. ! -409900 ! -410000 15 WS-4DCO-9821-TABDEROG OCCURS 24. ! -410100* TABLE DEROGATIONS ! -410200 20 WS-4DCO-9821-CD-DRG PIC X(2). ! -410300* CODES DEROGATIONS ! -410400 20 WS-4DCO-9821-IDC-AUT-DRG PIC X. ! -410500* INDIC AUTO DEROGATION ! -410600 15 FILLER PIC X(1328). ! -410700* ZONES DISPONIBLES ! -410800 05 WS-4DCO-98220 REDEFINES WS-4DCO-HABI-DETAIL. ! -410900* ================= ! -411000* ------------------------------------------------------ * ! -411100* COMMAREA : AFFECTATION CONFIDENTIALITE ADM * ! -411200* LONGUEUR : 1400 * ! -411300* PREFIXE : WS-4DCO-9822 * ! -411400* ------------------------------------------------------ * ! -411500 07 WS-4DCO-98220-ADM. ! -411600 ! -411700 10 WS-4DCO-9822-CD-CFD PIC X(01). ! -411800* CODE PROFIL CONFIDENTIALITE ! -411900 10 WS-4DCO-9822-LIBCFD PIC X(32). ! -412000* LIBELLE PROFIL CONFIDENTIALITE ! -412100 10 FILLER PIC X(1367). ! -412200* ZONES DISPONIBLES ! -412300* ------------------------------------------------------ * ! -412400 05 WS-4DCO-98240 REDEFINES WS-4DCO-HABI-DETAIL. ! -412500* ============== ! -412600* ------------------------------------------------------ * ! -412700* COMMAREA : LISTE DES PROFILS / PARTENAIRE * ! -412800* LONGUEUR : 1400 * ! -412900* PREFIXE : WS-4DCO-9824 * ! -413000* ------------------------------------------------------ * ! -413100 ! -413200 10 WS-4DCO-9824-CD-PTN PIC XXXXX. ! -413300 10 WS-4DCO-9824-CD-PFL PIC XXX. ! -413400 10 WS-4DCO-9824. ! -413500 15 WS-4DCO-9824-SEL. ! -413600 20 WS-4DCO-9824-SELIDT PIC X(01) OCCURS 12. ! -413700* STOCKAGE SELECTION ! -413800 10 FILLER PIC X(1380). ! -413900* ZONES DISPONIBLES ! -414000* ------------------------------------------------------ * ! -414100 05 WS-4DCO-98850 REDEFINES WS-4DCO-HABI-DETAIL. ! -414200* ============== ! -414300* ------------------------------------------------------ * ! -414400* COMMAREA : LISTE DES demandes racf * ! -414500* LONGUEUR : 1400 * ! -414600* PREFIXE : ws-4dco-98850 * ! -414700* ------------------------------------------------------ * ! -414800* ! -414900 07 WS-4DCO-H0-COM-COMMAREA-APLI. ! -415000 10 WS-4DCO-H0-NIV-DLG PIC X(003). ! -415100 10 WS-4DCO-H0-NO-SAL PIC X(008). ! -415200 10 WS-4DCO-H0-NIV-DLG-MEN PIC X(003). ! -415300 10 WS-4DCO-H2-ZON-COMMAREA-APLI. ! -415400 15 WS-4DCO-H2-ZONE-SAISIE. ! -415500 20 WS-4DCO-H2-IDT-UTI-DE PIC X(008). ! -415600 20 WS-4DCO-H2-IDT-UTI PIC X(008). ! -415700 20 WS-4DCO-H2-LIB-NOM PIC X(032). ! -415800 20 WS-4DCO-H2-CD-GRP-RACF PIC X(008). ! -415900 20 WS-4DCO-H2-MDP PIC X(008). ! -416000 20 WS-4DCO-H2-CD-ACT-RACF PIC X(001). ! -416100 20 WS-4DCO-H2-IDC-GRP-DFT PIC X(001). ! -416200 10 WS-4DCO-H3-ZON-COMMAREA-APLI. ! -416300 15 WS-4DCO-H3-IDT-UTI-DE PIC X(008). ! -416400 15 WS-4DCO-H3-SAUV-ACT-DETAIL. ! -416500 20 WS-4DCO-H3-TM-STP-DEM-RACF ! -416600 PIC X(26) OCCURS 13. ! -416700 15 WS-4DCO-H3-IND PIC S9(4) COMP. ! -416800 10 WS-4DCO-H4-ZON-COMMAREA-APLI. ! -416900 15 WS-4DCO-H4-IDT-UTI-DE PIC X(8). ! -417000 15 WS-4DCO-H4-TM-STP-DEM-RACF PIC X(26). ! -417100 15 WS-4DCO-H4-TM-STP-RPN-RACF PIC X(26). ! -417200 15 WS-4DCO-H4-IDT-UTI PIC X(8). ! -417300 15 WS-4DCO-H4-CD-ACT-RACF PIC X(1). ! -417400 15 WS-4DCO-H4-CD-RET PIC X(4). ! -417500 15 WS-4DCO-H4-TXT-RAI-ANO PIC X(80). ! -417600 15 WS-4DCO-H4-LIB-NOM PIC X(32). ! -417700 15 WS-4DCO-H4-DA-CRE. ! -417800 20 WS-4DCO-H4-DA-CRE-S PIC X(2). ! -417900 20 WS-4DCO-H4-DT-CRE. ! -418000 25 WS-4DCO-H4-DT-CRE-A2 PIC X(2). ! -418100 25 WS-4DCO-H4-DT-CRE-M PIC X(2). ! -418200 25 WS-4DCO-H4-DT-CRE-J PIC X(2). ! -418300 15 WS-4DCO-H4-CD-GRP-RACF PIC X(8). ! -418400 15 WS-4DCO-H4-DA-DNR-MAJ-MDP PIC X(10). ! -418500 15 WS-4DCO-H4-DUR-ITV-MAJ-MDP PIC 9(9) COMP. ! -418600 15 WS-4DCO-H4-TXT-ATB-UTI PIC X(32). ! -418700 15 WS-4DCO-H4-TM-STP-DNR-UTI PIC X(26). ! -418800 15 FILLER PIC X(200). ! -418900 10 WS-4DCO-H0-TYP-ERR PIC X. ! -419000 88 WS-4DCO-H0-TRAITEMENT-OK VALUE SPACE. ! -419100 88 WS-4DCO-H0-ERREUR-BLOQUANTE VALUE 'B'. ! -419200 10 WS-4DCO-H0-ERRMSG1 PIC X(006). ! -419300 10 WS-4DCO-H0-LIB-CPL-MES PIC X(032). ! -419400 10 WS-4DCO-H0-CD-FCT PIC X(002). ! -419500 88 WS-4DCO-H0-MODE-VISUALISATION VALUE 'VI'. ! -419600 10 FILLER PIC X(456). ! -419700* ZONES DISPONIBLES ! -419800 ! -419900 ! -420000 05 WS-4DCO-98H00 REDEFINES WS-4DCO-HABI-DETAIL. ! -420100* ================= ! -420200* ------------------------------------------------------ * ! -420300* COMMAREA : GESTION HABILITATIONS PARTENAIRE: * ! -420400* CREATION D'UN IDENTIFICATEUR * ! -420500* LONGUEUR : 1400 * ! -420600* PREFIXE : WS-4DCO-98H0 * ! -420700* ------------------------------------------------------ * ! -420800 07 WS-4DCO-98H00-IDT. ! -420900 ! -421000 10 WS-4DCO-98H0-CD-IDT PIC X(08). ! -421100* CODE IDENTIFICATEUR ! -421200 10 WS-4DCO-98H0-CD-PFL PIC X(03). ! -421300* CODE PROFIL AFFECTE ! -421400 10 WS-4DCO-98H0-LIBPFL PIC X(32). ! -421500* LIBELLE PROFIL AFFECTE ! -421600 10 WS-4DCO-98H0-LIBIDT PIC X(32). ! -421700* LIBELLE CODE IDENTIFICATEUR ! -421800 10 WS-4DCO-98H0-NOSTR PIC X(06). ! -421900* NUMERO DE STRUCTURE D'APPARTENANCE ! -422000 10 WS-4DCO-98H0-LIBSTR PIC X(32). ! -422100* LIBELLE PROFIL STRUCTURE ! -422200 10 WS-4DCO-98H0-MDP PIC X(08). ! -422300* MOT DE PASSE ! -422400 10 FILLER PIC X(1271). ! -422500* ZONES DISPONIBLES ! -422600 ! -422700 ! -422800 05 WS-4DCO-98H40 REDEFINES WS-4DCO-HABI-DETAIL. ! -422900* ============== ! -423000* ------------------------------------------------------ * ! -423100* COMMAREA : LISTE DE IDENTIFICATEURS / PARTENAIRE * ! -423200* LONGUEUR : 1400 * ! -423300* PREFIXE : WS-4DCO-98H4 * ! -423400* ------------------------------------------------------ * ! -423500 ! -423600 10 WS-4DCO-98H4. ! -423700 ! -423800 15 WS-4DCO-98H4-SEL. ! -423900 20 WS-4DCO-98H4-SELIDT PIC X(01) OCCURS 12. ! -424000* STOCKAGE SELECTION ! -424100 15 WS-4DCO-98H4-IDC-OCC-SPL PIC X(1). ! -424200* INDICATEUR OCCURENCE SUPPLEMENTAIRE ! -424300 15 WS-4DCO-98H4-PAGE-AREA PIC X(198). ! -424400* ! -424500 15 FILLER PIC X(1189). ! -424600* ZONES DISPONIBLES ! -424700* ! -424800 ! -424900*================================================================ ! -425000*= APPLICATION : GESTION DU PARAMETRAGE = ! -425100*================================================================ ! -425200* ! -425300 03 WS-4DCO-4DAA REDEFINES WS-4DCO-PROGRAM. ! -425400* ============ ! -425500 ! -425600* ============== ! -425700* ------------------------------------------------------ * ! -425800* COMMAREA : PARAMETRAGE : MENU GENERAL * ! -425900* LONGUEUR : 1800 * ! -426000* PREFIXE : WS-4DCO-4DAA * ! -426100* ------------------------------------------------------ * ! -426200 ! -426300 10 WS-4DCO-4DAA. ! -426400 ! -426500 15 WS-4DCO-4DAA-CD-INT PIC X(02). ! -426600* CODE INTITULE ! -426700 15 WS-4DCO-4DAA-TIMESTAMP PIC X(26). ! -426800* TIME STAMP ! -426900 15 WS-4DCO-4DAA-PAGE-AREA PIC X(198). ! -427000* PAGE AREA START ! -427100 15 WS-4DCO-4DAA-CD-GAM PIC S9(02) COMP-3. ! -427200* CODE GAMME ! -427300 15 WS-4DCO-4DAA-CD-STR PIC X(06). ! -427400* NUMERO DE STRUCTURE COMMERCIALE ! -427500 15 WS-4DCO-4DAA-CD-ETB-FNC PIC X(05). ! -427600* CODE ORGANISME FINANCIER ! -427700 15 WS-4DCO-4DAA-CD-VLR PIC X(12). ! -427800* CODE SUPPORT ! -427900 15 WS-4DCO-4DAA-NO-ORG-FNC PIC S9(03) COMP-3. ! -428000* NUMERO INTERNE ORGANISME FINANCIER ! -428100 15 WS-4DCO-4DAA-TIMESTAMP-2 PIC X(26). ! -428200* TIME STAMP 2 ! -428300 15 WS-4DCO-4DAA-NO-SPP-FNC PIC S9(06) COMP-3. ! -428400* NUMERO SUPPORT FINANCIER ! -428500 15 WS-4DCO-4DAA-ECR-ORI PIC X(04). ! -428600* NUMERO SUPPORT FINANCIER ! -428700 15 WS-4DCO-4DAA-LIB-SPP PIC X(32). ! -428800* LIBELLE SUPPORT FINANCIER ! -428900 15 FILLER PIC X(1481). ! -429000* 15 FILLER PIC X(1513). ! -429100* 15 FILLER PIC X(1521). ! -429200* ZONES DISPONIBLES ! -429300* ! -429400 03 WS-4DCO-4DAB REDEFINES WS-4DCO-PROGRAM. ! -429500* ============ ! -429600 ! -429700* ============== ! -429800* ------------------------------------------------------ * ! -429900* COMMAREA : PARAMETRAGE * ! -430000* LONGUEUR : 1800 * ! -430100* PREFIXE : WS-4DCO-4DAB * ! -430200* ------------------------------------------------------ * ! -430300 ! -430400 05 WS-4DCO-4DAB. ! -430500 ! -430600 15 WS-4DCO-4DAB-NO-PTN PIC S9(03) COMP-3. ! -430700* NUMERO INTERNE PARTENAIRE ! -430800 15 WS-4DCO-4DAB-TIMESTAMP1 PIC X(26). ! -430900* TIME STAMP ! -431000 15 WS-4DCO-4DAB-TIMESTAMP2 PIC X(26). ! -431100* TIME STAMP ! -431200 15 WS-4DCO-4DAB-CD-PTN PIC X(05). ! -431300* NUMERO EXTERNE PARTENAIRE ! -431400 15 WS-4DCO-4DAB-PAGE-AREA PIC X(198). ! -431500* PAGE AREA START ! -431600 15 WS-4DCO-4DAB-NO-STR PIC X(06). ! -431700* NUMERO EXTERNE PARTENAIRE ! -431800 15 WS-4DCO-4DAB-MODE-RGL PIC X(01). ! -431900* MODE DE REGLEMENT PARTENAIRE ! -432000 15 WS-4DCO-4DAB-MAJ-PTN PIC X(01). ! -432100* INDICATEUR MISE A JOUR NO PARTENAIRE ! -432200 10 WS-4DCO-4DAB-1. ! -432300 15 WS-4DCO-4DAB-TYPRD PIC S9(02) COMP-3. ! -432400* NUMERO TYPE DE PRODUIT ! -432500 15 WS-4DCO-4DAB-NOGEN PIC X(03). ! -432600* NUMERO DE GENERATION ! -432700 15 WS-4DCO-4DAB-TY-PRD-INI PIC S9(02) COMP-3. ! -432800* NUMERO TYPE DE PRODUIT INITIAL ! -432900 15 WS-4DCO-4DAB-PRD PIC X(02). ! -433000* CODE PRODUIT ! -433100 15 WS-4DCO-4DAB-NO-PRD-INI PIC S9(03) COMP-3. ! -433200* NUMERO DE PRODUIT INITIAL ! -433300 15 WS-4DCO-4DAB-CD-PTN-INI PIC X(05). ! -433400* NUMERO EXTERNE PARTENAIRE INITIAL ! -433500 15 WS-4DCO-4DAB-DA-VAL-DBT PIC X(10). ! -433600* DATE DEBUT ! -433700 15 WS-4DCO-4DAB-DA-FIN-VAL PIC X(10). ! -433800* DATE FIN ! -433900 15 WS-4DCO-4DAB-NOM-PRD PIC X(32). ! -434000* LIBELLE PRODUIT ! -434100 15 WS-4DCO-4DAB-MAJ-PTN-PRD PIC X(01). ! -434200* INDICATEUR MISE A JOUR NO PARTENAIRE PRODUIT ! -434300 15 WS-4DCO-4DAB-NO-PRD PIC S9(03) COMP-3. ! -434400* NUMERO INTERNE PRODUIT ! -434500 15 WS-4DCO-4DAB-V4D01130. ! -434600* CONTENUE TABLE DES PRODUITS ! -434700 20 WS-4DCO-4DAB-LIB-PRD PIC X(32). ! -434800 20 WS-4DCO-4DAB-LA-PRD PIC X(16). ! -434900 20 WS-4DCO-4DAB-MT-MIN-VER-INI ! -435000 PIC S9(07)V99 COMP-3. ! -435100 20 WS-4DCO-4DAB-MT-MIN-VER-EXC ! -435200 PIC S9(07)V99 COMP-3. ! -435300 20 WS-4DCO-4DAB-MT-MX-DRT-ENT ! -435400 PIC S9(07)V99 COMP-3. ! -435500 20 WS-4DCO-4DAB-MT-MIN-RCH-PART ! -435600 PIC S9(07)V99 COMP-3. ! -435700 20 WS-4DCO-4DAB-MT-MIN-EPG-RST ! -435800 PIC S9(07)V99 COMP-3. ! -435900 20 WS-4DCO-4DAB-MT-MIN-AV ! -436000 PIC S9(13)V99 COMP-3. ! -436100 20 WS-4DCO-4DAB-MT-EPG-RST-AV ! -436200 PIC S9(13)V99 COMP-3. ! -436300 20 WS-4DCO-4DAB-TX-MX-EPG-DSP ! -436400 PIC S9(03)V999 COMP-3. ! -436500 20 WS-4DCO-4DAB-NB-MX-AV-A ! -436600 PIC S9(02) COMP-3. ! -436700 20 WS-4DCO-4DAB-IDC-ACC-COM PIC X(01). ! -436800 20 WS-4DCO-4DAB-AGE-MIN ! -436900 PIC S9(02) COMP-3. ! -437000 20 WS-4DCO-4DAB-IDC-VSU-STAT PIC X(01). ! -437100 20 WS-4DCO-4DAB-IDC-EDI-STAT PIC X(01). ! -437200 20 WS-4DCO-4DAB-IDC-EDI-ENC PIC X(01). ! -437300 20 WS-4DCO-4DAB-IDC-EDI-PRD PIC X(01). ! -437400 20 WS-4DCO-4DAB-CD-TRANS PIC X(04). ! -437500 20 WS-4DCO-4DAB-TX-MIN-FRS-GTN ! -437600 PIC S9(02)V999 COMP-3. ! -437700 15 WS-4DCO-4DAB-V4D01200. ! -437800* CONTENUE TABLE DES RIB PRODUITS ! -437900 17 WS-4DCO-4DAB-CPT-FIN. ! -438000 20 WS-4DCO-4DAB-CDBANQF PIC X(05). ! -438100 20 WS-4DCO-4DAB-CDGUICF PIC X(05). ! -438200 20 WS-4DCO-4DAB-CPTRIBF PIC X(11). ! -438300 20 WS-4DCO-4DAB-CLERIBF PIC X(02). ! -438400 17 WS-4DCO-4DAB-CPT-PAS. ! -438500 20 WS-4DCO-4DAB-CDBANQP PIC X(05). ! -438600 20 WS-4DCO-4DAB-CDGUICP PIC X(05). ! -438700 20 WS-4DCO-4DAB-CPTRIBP PIC X(11). ! -438800 20 WS-4DCO-4DAB-CLERIBP PIC X(02). ! -438900 17 WS-4DCO-4DAB-CPT-EIB. ! -439000 20 WS-4DCO-4DAB-CDBANQE PIC X(05). ! -439100 20 WS-4DCO-4DAB-CDGUICE PIC X(05). ! -439200 20 WS-4DCO-4DAB-CPTRIBE PIC X(11). ! -439300 20 WS-4DCO-4DAB-CLERIBE PIC X(02). ! -439400 17 WS-4DCO-4DAB-CPT-SDF. ! -439500 20 WS-4DCO-4DAB-CDBANQS PIC X(05). ! -439600 20 WS-4DCO-4DAB-CDGUICS PIC X(05). ! -439700 20 WS-4DCO-4DAB-CPTRIBS PIC X(11). ! -439800 20 WS-4DCO-4DAB-CLERIBS PIC X(02). ! -439900 15 WS-4DCO-4DAB-NB-SPP-INI PIC S9(03) COMP-3. ! -440000* NOMBRE DE SUPPORTS INITIAUX ! -440100 15 WS-4DCO-4DAB-NB-SPP-A-VAL PIC S9(03) COMP-3. ! -440200* NOMBRE DE SUPPORTS A VALIDER ! -440300 15 FILLER PIC X(02). ! -440400 15 WS-4DCO-4DAB-TIMESTAMPAB PIC X(26). ! -440500* TIMESTAMP DE MAJ TX LINEAIRE ARBITRAGE ! -440600 15 WS-4DCO-4DAB-TAUX-LIN PIC X(01). ! -440700* INDICATEUR CREATION PRODUIT TAUX LINEAIRE ! -440800 15 WS-4DCO-4DAB-VERS-PERIOD PIC X(01). ! -440900* INDICATEUR CREATION PRODUIT VERSEM PERIODIQUE ! -441000 15 WS-4DCO-4DAB-VERSEMENT OCCURS 5. ! -441100* CONTENUE TABLE DES VERSEMENTS PERIODIQUES ! -441200 20 WS-4DCO-4DAB-CD-PER ! -441300 PIC X(01). ! -441400 20 WS-4DCO-4DAB-LIB-TY-VER ! -441500 PIC X(32). ! -441600 20 WS-4DCO-4DAB-MT-MIN-VER ! -441700 PIC S9(07)V99 COMP-3. ! -441800 15 WS-4DCO-4DAB-NO-PTN-INI PIC S9(03) COMP-3. ! -441900* NUMERO DE PRODUIT INITIAL ! -442000 15 WS-4DCO-4DAB-CREATION-PRD PIC X(01). ! -442100* TOP CREATION PRODUIT ! -442200 15 WS-4DCO-4DAB-NO-GAM-PRD PIC S9(02) COMP-3. ! -442300* TOP CREATION PRODUIT ! -442400 15 WS-4DCO-4DAB-TAB-TIMESTAMP OCCURS 5. ! -442500* CONTENUE TABLE DES TIMESTAMPS MAJ TAUX ! -442600 20 WS-4DCO-4DAB-TIMESTAMP ! -442700 PIC X(26). ! -442800 15 WS-4DCO-4DAB-CHG-TYPVERS PIC X(01). ! -442900* TOP MODIFCATION TYPE DE VERSEMENT ! -443000 15 WS-4DCO-4DAB-TAB-TIMESTAMP2 OCCURS 3. ! -443100* CONTENUE TABLE DES TIMESTAMPS MAJ RIB PROD ! -443200 20 WS-4DCO-4DAB-TIMESTAMPT2 ! -443300 PIC X(26). ! -443400 15 WS-4DCO-4DAB-MESSAGE PIC X(01). ! -443500* FLAG MESSAGE CREATION NOUVELLE GENERATION ! -443600 15 WS-4DCO-4DAB-MESSAGE-INF PIC X(06). ! -443700* FLAG MESSAGE INFORMATIF CREATION NOUV GENER ! -443800 15 WS-4DCO-4DAB-REF-IMP-PRO PIC X(10). ! -443900*= reference CG de prorogation ! -444000 15 WS-4DCO-4DAB-IDC-DOC PIC X(1). ! -444100*= indicateur pour coupon ech�ance (O/N) ! -444200 15 WS-4DCO-4DAB-NO-SPP-FNC PIC 9(6). ! -444300*= NO SUPPORT FINANCIER ! -444400 15 WS-4DCO-4DAB-IDC-OCC-SPL PIC X(001). ! -444500* ZONE DEPAGINATION ! -444600* 15 FILLER PIC X(21). ! -444700 15 WS-4DCO-4DAB-MT-MIN-MDT PIC S9(13)V99 COMP-3. ! -444800* montant minimum du mandat de gestion ! -444900* modif projet vie167 capgemini : ! -445000* gestion sous mandat ! -445100 15 WS-4DCO-4DAB-IDC-VER-PER-LIM PIC X(1). ! -445200*da6586 as519 Indicateur versement periodique limite ! -445300 15 WS-4DCO-4DAB-MT-VER-PER-LIM ! -445400 PIC S9(13)V9(2) COMP-3. ! -445500*da6586 as519 Montant versement periodique limite ! -445600*da6586 as519 15 FILLER PIC X(13). ! -445700 15 FILLER PIC X(04). ! -445800 15 WS-4DCO-4DAB-CD-FRS-ARBT PIC X(01). ! -445900* INDICATEUR FRAIS ARBITRAGE ! -446000 15 WS-4DCO-4DAB-MT-FOF-GLB PIC S9(13)V99 COMP-3. ! -446100* MONTANT FORFAIT GLOBAL ! -446200 15 WS-4DCO-4DAB-MT-FOF-GTN PIC S9(13)V99 COMP-3. ! -446300* MONTANT FORFAIT GESTIONNAIRE ! -446400 15 WS-4DCO-4DAB-MT-FOF-PTN PIC S9(13)V99 COMP-3. ! -446500* MONTANT FORFAIT PARTENAIRE ! -446600 15 WS-4DCO-4DAB-NOGEN-INI PIC X(03). ! -446700* NUMERO DE GENERATION POUR INITIALIS ! -446800 15 WS-4DCO-4DAB-TAUX-M OCCURS 5. ! -446900 20 WS-4DCO-4DAB-TY-TAUX-M ! -447000 PIC X(01). ! -447100 20 WS-4DCO-4DAB-TX-ACD-GTN-M ! -447200 PIC S9(02)V999 COMP-3. ! -447300 20 WS-4DCO-4DAB-TX-ACD-PTN-M ! -447400 PIC S9(02)V999 COMP-3. ! -447500 20 WS-4DCO-4DAB-TX-EFF-GLB-M ! -447600 PIC S9(02)V9(05) COMP-3. ! -447700 15 WS-4DCO-4DAB-PROD-MINITEL. ! -447800 20 WS-4DCO-4DAB-MT-MIN-VER-INI-M ! -447900 PIC S9(07)V99 COMP-3. ! -448000 20 WS-4DCO-4DAB-MT-MIN-VER-EXC-M ! -448100 PIC S9(07)V99 COMP-3. ! -448200 20 WS-4DCO-4DAB-MT-MX-DRT-ENT-M ! -448300 PIC S9(07)V99 COMP-3. ! -448400 20 WS-4DCO-4DAB-MT-MIN-VER-PER-M ! -448500 PIC S9(07)V99 COMP-3. ! -448600 20 WS-4DCO-4DAB-MT-MIN-RCH-PART-M ! -448700 PIC S9(07)V99 COMP-3. ! -448800 20 WS-4DCO-4DAB-MT-MIN-EPG-RST-M ! -448900 PIC S9(07)V99 COMP-3. ! -449000 20 WS-4DCO-4DAB-MT-MIN-AV-M ! -449100 PIC S9(11)V99 COMP-3. ! -449200 20 WS-4DCO-4DAB-MT-EPG-RST-AV-M ! -449300 PIC S9(11)V99 COMP-3. ! -449400 20 WS-4DCO-4DAB-TX-MX-EPG-DSP-M ! -449500 PIC S9(03)V999 COMP-3. ! -449600 20 WS-4DCO-4DAB-NB-MX-AV-A-M ! -449700 PIC S9(02) COMP-3. ! -449800 20 WS-4DCO-4DAB-IDC-PRD-MTL-MJ ! -449900 PIC X(01). ! -450000*= APPLICATION : PARAMETRAGE : GESTION PARTENAIRE = ! -450100 10 WS-4DCO-4DAD-4DAB REDEFINES WS-4DCO-4DAB-1. ! -450200 12 WS-4DCO-4DAD-V4D01010. ! -450300 15 WS-4DCO-4DAD-NOM-PTN PIC X(32). ! -450400 15 WS-4DCO-4DAD-NOM-PTN-MI PIC X(32). ! -450500 15 WS-4DCO-4DAD-LA-PTN PIC X(16). ! -450600 15 WS-4DCO-4DAD-LA-PTN-MI PIC X(16). ! -450700 15 WS-4DCO-4DAD-NO-TEL PIC X(11). ! -450800 15 WS-4DCO-4DAD-NO-NTL-EM PIC X(6). ! -450900 15 WS-4DCO-4DAD-IDC-PTN-CM PIC X(1). ! -451000 15 WS-4DCO-4DAD-IDC-AUT-GTN-CLI PIC X(1). ! -451100 15 WS-4DCO-4DAD-LIB-ORD-CHQ PIC X(32). ! -451200 15 WS-4DCO-4DAD-NO-POL-MN PIC X(8). ! -451300 15 WS-4DCO-4DAD-NO-POL-MX PIC X(8). ! -451400 15 WS-4DCO-4DAD-LIB-SVR PIC X(32). ! -451500 15 WS-4DCO-4DAD-NB-QZ-DRG-AV PIC S9(2) COMP-3. ! -451600 15 WS-4DCO-4DAD-NB-QZ-DRG-AP PIC S9(2) COMP-3. ! -451700 15 WS-4DCO-4DAD-LIB-VIL PIC X(32). ! -451800 15 WS-4DCO-4DAD-CD-NAF PIC X(4). ! -451900 15 WS-4DCO-4DAD-NO-IDT-EPS-SIT PIC X(9). ! -452000 15 WS-4DCO-4DAD-NO-IDT-CPL-SIT PIC X(5). ! -452100 15 WS-4DCO-4DAD-CD-MODE-RGL-COM PIC X(1). ! -452200 15 WS-4DCO-4DAD-LIB-NOM-CRP-COM PIC X(32). ! -452300 15 WS-4DCO-4DAD-CD-PER-COM-PTN PIC X(1). ! -452400 15 WS-4DCO-4DAD-IDC-EDI PIC X(1). ! -452500 15 WS-4DCO-4DAD-IDC-PEC PIC X(1). ! -452600 15 WS-4DCO-4DAD-CD-INT PIC X(2). ! -452700 15 WS-4DCO-4DAD-LIB-NOM-CRP-SF PIC X(32). ! -452800 15 WS-4DCO-4DAD-TX-DRG-FRS-DOS-SF ! -452900 PIC S9(3)V9(4) COMP-3. ! -453000 15 WS-4DCO-4DAD-IDC-SOC-FDL-GT PIC X(1). ! -453100 15 WS-4DCO-4DAD-CD-GRP-PTN PIC X(3). ! -453200 15 WS-4DCO-4DAD-IDC-AFG-AGT PIC X(1). ! -453300 15 WS-4DCO-4DAD-CD-TY-ECG-FNC PIC X(5). ! -453400 15 WS-4DCO-4DAD-IDC-PTN-ITN PIC X(1). ! -453500 15 WS-4DCO-4DAD-LIB-MTN-LGL PIC X(72). ! -453600 15 WS-4DCO-4DAD-IDC-VSU-DO PIC X(1). ! -453700 15 WS-4DCO-4DAD-IDC-TT-ACT-AG PIC X(1). ! -453800 15 WS-4DCO-4DAD-IDC-AFG-PT PIC X(1). ! -453900 15 WS-4DCO-4DAD-HEU-LIM-PEC PIC X(05). ! -454000 15 WS-4DCO-4DAD-IDC-ADR-ETG PIC X(1). ! -454100 12 WS-4DCO-4DAD-V4D01180. ! -454200 15 WS-4DCO-4DAD-LIB-RUE-1 PIC X(32). ! -454300 15 WS-4DCO-4DAD-LIB-RUE-2 PIC X(32). ! -454400 15 WS-4DCO-4DAD-LIB-COMMUNE PIC X(32). ! -454500 15 WS-4DCO-4DAD-CD-POST PIC X(5). ! -454600 15 WS-4DCO-4DAD-LIB-BUR-DIST PIC X(26). ! -454700 12 WS-4DCO-4DAD-LIB-INT PIC X(12). ! -454800 12 WS-4DCO-4DAD-RIB. ! -454900 15 WS-4DCO-4DAD-CD-BQE PIC X(05). ! -455000 15 WS-4DCO-4DAD-CD-GUI PIC X(05). ! -455100 15 WS-4DCO-4DAD-CPT-RIB. ! -455200 20 FILLER PIC X(01). ! -455300 20 WS-4DCO-4DAD-RAC PIC 9(07). ! -455400 20 WS-4DCO-4DAD-CLE-RAC PIC X(01). ! -455500 20 WS-4DCO-4DAD-CAT-CPT PIC X(02). ! -455600 15 WS-4DCO-4DAD-CLE-RIB PIC X(02). ! -455700 12 WS-4DCO-4DAD-V4D01010-COMPL. ! -455800 15 WS-4DCO-4DAD-IDC-INF-IMP PIC X(1). ! -455900 15 WS-4DCO-4DAD-IDC-SPS-IMP PIC X(1). ! -456000 15 WS-4DCO-4DAD-NB-IMP-SPS-2ND PIC S9(3) COMP-3. ! -456100 15 WS-4DCO-4DAD-NB-IMP-SPS-PCL PIC S9(3) COMP-3. ! -456200 15 WS-4DCO-4DAD-CD-TY-VTE PIC X(3). ! -456300 15 WS-4DCO-4DAD-CD-FIL PIC X(4). ! -456400 15 WS-4DCO-4DAD-IDC-PRS-FIC PIC X(1). ! -456500*= APPLICATION : PARAMETRAGE : GESTION STRUCTURE = ! -456600 10 WS-4DCO-4DAD-4DAN REDEFINES WS-4DCO-4DAB-1. ! -456700 12 WS-4DCO-4DAN-V4D01101. ! -456800 15 WS-4DCO-4DAN-NO-TEL PIC X(11). ! -456900 15 WS-4DCO-4DAN-NO-FAX PIC X(12). ! -457000*= APPLICATION : PARAMETRAGE : GESTION orga. financier = ! -457100 10 WS-4DCO-4DAD-4DMA REDEFINES WS-4DCO-4DAB-1. ! -457200 12 WS-4DCO-4DMA-V4D01320. ! -457300 15 WS-4DCO-4DMA-NO-TEL PIC X(11). ! -457400 15 WS-4DCO-4DMA-NO-FAX PIC X(12). ! -457500 10 WS-4DCO-4DAB-MIN. ! -457600 15 WS-4DCO-4DAB-CREAT-MINITEL PIC X(01). ! -457700* TOP POUR CREATION PRODUIT MINITEL ! -457800 15 WS-4DCO-4DAB-CHG-MINI PIC X(01). ! -457900* TOP MODIFCATION MINITEL ! -458000 15 WS-4DCO-4DAB-TYAUT PIC X(06). ! -458100* TYPE OPERATION MINITEL ! -458200* NUMERO DE GENERATION POUR INITIALIS ! -458300 15 WS-4DCO-4DAB-LIB-PRD-M PIC X(32). ! -458400* NOM PRODUIT MINITEL ! -458500 15 WS-4DCO-4DAB-LA-PRD-M PIC X(16). ! -458600* NOM ABREGE PRODUIT MINITEL ! -458700 15 WS-4DCO-4DAB-TABLE-SEL. ! -458800 20 WS-4DCO-4DAB-SELECTION OCCURS 15. ! -458900 25 WS-4DCO-4DAB-CODE-SELECTION ! -459000 PIC X(01). ! -459100 15 WS-4DCO-4DAB-CHG-MINI-PRD PIC X(01). ! -459200* TOP MODIFICATION OPERATION MINITEL PRD ! -459300 15 WS-4DCO-4DAB-IDC-CLA-PROR PIC X(01). ! -459400* INDICATEUR CLAUSE DE PROROGATION ! -459500 15 WS-4DCO-4DAB-CD-PRD-OR PIC X(02). ! -459600* CODE EXTERNE DU PRODUIT D ORIGINE ! -459700 15 WS-4DCO-4DAB-NO-CTR-AS PIC X(08). ! -459800* NUMERO DE CONTRAT D ASSURANCE ! -459900 15 WS-4DCO-4DAB-IDC-PRD-UNT-CPT PIC X(01). ! -460000* NUMERO DE CONTRAT D ASSURANCE ! -460100 15 WS-4DCO-4DAB-MT-MIN-ARBT PIC S9(13)V9(2) COMP-3. ! -460200* MONTANT MINIMUM POUR ARBITRAGE ! -460300 15 WS-4DCO-4DAB-LIB-PRD-ED PIC X(32). ! -460400* LIBELLE POUR EDITION ! -460500 15 WS-4DCO-4DAB-CD-TY-VER-AUT PIC X(10). ! -460600* TYPE DE VERSEMENT AUTORISES ! -460700 15 WS-4DCO-4DAB-TAUX OCCURS 7. ! -460800 20 WS-4DCO-4DAB-TY-TAUX ! -460900 PIC X(01). ! -461000 20 WS-4DCO-4DAB-TX-ACD-GTN ! -461100 PIC S9(02)V999 COMP-3. ! -461200 20 WS-4DCO-4DAB-TX-ACD-PTN ! -461300 PIC S9(02)V999 COMP-3. ! -461400 20 WS-4DCO-4DAB-TX-EFF-GLB ! -461500 PIC S9(02)V9(05) COMP-3. ! -461600 15 WS-4DCO-4DAB-INITECR PIC X. ! -461700* INDICATEUR INIT ECRAN ! -461800 15 WS-4DCO-4DAB-NB-OCC PIC S9(3) COMP-3. ! -461900* NB OCCURENCES ! -462000 15 WS-4DCO-4DAB-NO-ORD PIC S9(3) COMP-3. ! -462100* POSTE DU SUPPORT TRAITE ! -462200 15 WS-4DCO-4DAB-TY-VER-AUT-GT PIC X(10). ! -462300* TYPE DE VERSEMENT AUTORISES ! -462400 15 WS-4DCO-4DAB-TX-EFF-GLB-GT ! -462500 PIC S9(02)V9(05) COMP-3. ! -462600* TAUX EFFECTIF GLOBAL ! -462700 15 WS-4DCO-4DAB-TX-ACD-PTN-GT ! -462800 PIC S9(02)V999 COMP-3. ! -462900* TAUX ACCORDE AU PARTENAIRE ! -463000 15 WS-4DCO-4DAB-TX-ACD-GTN-GT ! -463100 PIC S9(02)V999 COMP-3. ! -463200* TAUX ACCORDE AU GESTIONNAIRE ! -463300 15 WS-4DCO-4DAB-CD-ASS-AS PIC X(03). ! -463400 15 WS-4DCO-4DAB-NOM-PATRO-AS PIC X(32). ! -463500* CODE GROUPE PARTENAIRE ! -463600 15 WS-4DCO-4DAB-CD-GRP-PTN PIC X(03). ! -463700* NUMERO DE CONTRAT TYPE COMPTABLE ! -463800 15 WS-4DCO-4DAB-NO-CTR-TY-CPB PIC 9(3). ! -463900 10 WS-4DCO-4DAB-2. ! -464000* ZONE GROUPE POUR LE PROGRAMME TC4DDI0 ! -464100 15 WS-4DCO-4DDI. ! -464200* ZONE DE PAGINATION ! -464300 16 WS-4DCO-4DDI-PAGE. ! -464400 20 WS-4DCO-4DDI-IDC-OCC-SPL PIC X(001). ! -464500 20 WS-4DCO-4DDI-NB-PAG-TS PIC 9(002). ! -464600 20 WS-4DCO-4DDI-SAUV-PAGE-AREA PIC X(198). ! -464700* ! -464800* CODE GROUPE PARTENAIRE ! -464900 16 WS-4DCO-4DDI-CDGRP PIC X(003). ! -465000* CLE DE REPOSITIONNEMENT (CODE PARTENAIRE) ! -465100 16 WS-4DCO-4DDI-CLEPOS PIC X(005). ! -465200* ! -465300* CODE MESSAGE ERREUR ! -465400 16 WS-4DCO-4DDI-ERRMSG1 PIC X(006). ! -465500* ZOOM DEBUT ! -465600* DONNEES POUR LESQUELLES ON A DEMANDE LE DETAIL ! -465700 16 WS-4DCO-4DDI-TABLE. ! -465800 18 WS-4DCO-4DDI-VAL-DTL PIC X(005) ! -465900 OCCURS 12. ! -466000 ! -466100* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -466200 16 WS-4DCO-4DDI-POS-CURSOR PIC 9(002). ! -466300* NB DE DETAILS TRAITES ! -466400 16 WS-4DCO-4DDI-SAUV-ACT-TRT PIC S9(4) COMP. ! -466500* NB DE DETAILS DEMANDES ! -466600 16 WS-4DCO-4DDI-SAUV-ACT-NB PIC S9(4) COMP. ! -466700* ZOOM FIN ! -466800 15 WS-4DCO-4DAB-TIMESTAMPT3 PIC X(26). ! -466900 15 WS-4DCO-4DAB-MODIF-ZONE PIC X(01). ! -467000 15 WS-4DCO-4DAB-IDC-VALID PIC X(01). ! -467100 15 WS-4DCO-4DAB-REF-IMP-CG PIC X(10). ! -467200 15 WS-4DCO-4DAB-REF-IMP-SU PIC X(10). ! -467300 15 WS-4DCO-4DAB-IDC-PRD-CMP PIC X(01). ! -467400 15 WS-4DCO-4DAB-CD-PFL-GT PIC X(03). ! -467500 15 WS-4DCO-4DAD-NB-EDI-EX PIC 9(1). ! -467600 15 WS-4DCO-4DAD-CD-TY-ARC PIC X(1). ! -467700 15 WS-4DCO-4DAD-CD-SI-DI PIC X(3). ! -467800 15 WS-4DCO-4DAB-CD-TY-CTR-ARC PIC X(6). ! -467900***************** ZONES DISPONIBLES ******************* ! -468000 15 WS-4DCO-4DAD-DA-DBT-ARC-ADH PIC X(8). ! -468100 15 WS-4DCO-4DAD-DA-DBT-ARC-AVT PIC X(8). ! -468200 15 WS-4DCO-4DAD-DA-DNN-PTN PIC X(8). ! -468300***************** ZONES DISPONIBLES ******************* ! -468400 ! -468500 10 WS-4DCO-4DAB-3 REDEFINES WS-4DCO-4DAB-2. ! -468600 15 WS-4DCO-4DAB-TX-FRS-COM-SR ! -468700 PIC S9(02)V999 COMP-3. ! -468800* TAUX DE SURCOMMISSIONNEMENT ! -468900 ! -469000 ! -469100*================================================================ ! -469200*= APPLICATION : GESTION DES AVANCES = ! -469300*= REMUNERATION ET FISCALITE = ! -469400*================================================================ ! -469500 03 WS-4DCO-4DAC REDEFINES WS-4DCO-PROGRAM. ! -469600* ============ ! -469700 ! -469800* ============== ! -469900* ------------------------------------------------------ * ! -470000* COMMAREA : GESTION DES AVANCES * ! -470100* LONGUEUR : 1800 * ! -470200* PREFIXE : WS-4DCO-4DAC * ! -470300* ------------------------------------------------------ * ! -470400 ! -470500 10 WS-4DCO-4DAC. ! -470600 ! -470700 15 WS-4DCO-4DAC-ZON-APLI. ! -470800 20 WS-4DCO-4DAC-MT-MIN-AV ! -470900 PIC S9(13)V9(2) COMP-3. ! -471000* MONTANT MINIMUM AVANCE ! -471100 20 WS-4DCO-4DAC-MT-EPG-RST-AV ! -471200 PIC S9(13)V9(2) COMP-3. ! -471300* MONTANT EPARGNE RESTANTE ! -471400 20 WS-4DCO-4DAC-TX-MX-EPG-DSP ! -471500 PIC S9(3)V9(4) COMP-3. ! -471600* TAUX MAXIMUM EPARGNE DISPONIBLE ! -471700 20 WS-4DCO-4DAC-NB-MX-AV-A PIC 9(02). ! -471800* NOMBRE MAXIMUM AVANCES ANNUELLES ! -471900 20 WS-4DCO-4DAC-DUR-DEL-CRNC PIC 9(02). ! -472000* DUREE DELAI DE CARENCE ! -472100 ! -472200 15 WS-4DCO-4DAC-ZON-SAV. ! -472300 20 WS-4DCO-4DAC-SAV-MT-MIN-AV ! -472400 PIC S9(13)V9(2) COMP-3. ! -472500* MONTANT MINIMUM AVANCE ! -472600 20 WS-4DCO-4DAC-SAV-MT-EPG-RST-AV ! -472700 PIC S9(13)V9(2) COMP-3. ! -472800* MONTANT EPARGNE RESTANTE ! -472900 20 WS-4DCO-4DAC-SAV-TX-MX-EPG-DSP ! -473000 PIC S9(3)V9(4) COMP-3. ! -473100* TAUX MAXIMUM EPARGNE DISPONIBLE ! -473200 20 WS-4DCO-4DAC-SAV-NB-MX-AV-A ! -473300 PIC 9(02). ! -473400* NOMBRE MAXIMUM AVANCES ANNUELLES ! -473500 20 WS-4DCO-4DAC-SAV-DUR-DEL-CRNC ! -473600 PIC 9(02). ! -473700* DUREE DELAI DE CARENCE ! -473800 ! -473900 15 WS-4DCO-4DAC-LIB-OPE PIC X(12). ! -474000* LIBELLE OPERATION ! -474100 ! -474200 15 FILLER PIC X(1740). ! -474300* ZONES DISPONIBLES ! -474400* ! -474500*================================================================ ! -474600*= APPLICATION : GESTION DES AVANCES = ! -474700*= TAUX SUR AVANCES = ! -474800*================================================================ ! -474900 03 WS-4DCO-4DTX REDEFINES WS-4DCO-PROGRAM. ! -475000* ============ ! -475100 ! -475200* ============== ! -475300* ------------------------------------------------------ * ! -475400* COMMAREA : TAUX SUR AVANCES * ! -475500* LONGUEUR : 1800 * ! -475600* PREFIXE : WS-4DCO-4DTX * ! -475700* ------------------------------------------------------ * ! -475800 ! -475900 10 WS-4DCO-4DTX. ! -476000 ! -476100 15 WS-4DCO-4DTX-ZON-APLI. ! -476200 20 WS-4DCO-4DTX-SAUV-MODIF OCCURS 13. ! -476300* SAUVEGARDE DES ZONES MODIFIABLES ! -476400 25 WS-4DCO-4DTX-A-REF PIC 9(4). ! -476500* ANNEE DE REFERENCE ! -476600 25 WS-4DCO-4DTX-TX-FRS-AV ! -476700 PIC S9(3)V9(4). ! -476800* TAUX DE FRAIS SUR AVANCE ! -476900 25 WS-4DCO-4DTX-TX-INT-AV ! -477000 PIC S9(3)V9(4). ! -477100* TAUX D'INTERET SUR AVANCE ! -477200 20 WS-4DCO-4DTX-SEGLOOP-COUNT-MOD PIC 9(2). ! -477300* INDICE DE LA LIGNE A MODIFIER ! -477400 20 WS-4DCO-4DTX-SEGLOOP-COUNT-ANN PIC 9(2). ! -477500* INDICE DE LA LIGNE A ANNULER ! -477600 15 FILLER PIC X(1562). ! -477700* ZONES DISPONIBLES ! -477800* ! -477900 ! -478000*================================================================ ! -478100*= APPLICATION : PARAMETRAGE : GESTION PRODUITS COMPTABLES= ! -478200*================================================================ ! -478300* ! -478400* ! -478500 03 WS-4DCO-PRD-CPB REDEFINES WS-4DCO-PROGRAM. ! -478600* ============ ! -478700 ! -478800* ============== ! -478900* ------------------------------------------------------ ! -479000* COMMAREA : PARAMETRAGE : GESTION DES PRODUITS COMPTA- ! -479100* BLES (CONTRAT-TYPE ET PRODUIT COMPTABLE) ! -479200* LONGUEUR : 1800 ! -479300* PREFIXE : WS-4DCO-PRCP ! -479400* ------------------------------------------------------ ! -479500* ! -479600* ZONES COMMUNES ! -479700* ! -479800 10 WS-4DCO-PRCP-COMMUN. ! -479900 15 WS-4DCO-PRCP-ACT PIC X(1). ! -480000* ! -480100* CONTRAT-TYPE ! -480200* ! -480300 10 WS-4DCO-PRCP-CTR-TYPE. ! -480400 15 WS-4DCO-PRCP-NO-CTR-TY-CPB PIC X(3). ! -480500 15 WS-4DCO-PRCP-NO-CTR-TY-CC PIC X(3). ! -480600 15 WS-4DCO-PRCP-CD-CAT-MIT PIC X(3). ! -480700 15 WS-4DCO-PRCP-LIB-CTR-TY-CPB PIC X(32). ! -480800 15 WS-4DCO-PRCP-CD-PRD-GNR-CPB PIC X(2). ! -480900 15 WS-4DCO-PRCP-LIB-GNR-CPB PIC X(32). ! -481000 15 WS-4DCO-PRCP-CD-CDR-PRF-CPB PIC X(2). ! -481100 15 WS-4DCO-PRCP-CD-CAT-CPB PIC X(2). ! -481200 15 WS-4DCO-PRCP-CD-CLS-CTR-TY PIC X(1). ! -481300 15 WS-4DCO-PRCP-CD-CPB-AUX PIC X(4). ! -481400 15 WS-4DCO-PRCP-TBL-ACT-FNC OCCURS 3. ! -481500 20 WS-4DCO-PRCP-CD-UNT-SPP-TBL PIC X(1). ! -481600 20 WS-4DCO-PRCP-CD-ACT-FNC-TBL PIC X(5). ! -481700 15 FILLER PIC X(182). ! -481800* ! -481900* PRODUIT COMPTABLE ! -482000* ! -482100 10 WS-4DCO-PRCP-PRD-CPB. ! -482200 15 WS-4DCO-PRCP-NO-PRD-CPB-SURA PIC X(3). ! -482300 15 WS-4DCO-PRCP-CD-UNT-SPP PIC X(1). ! -482400 15 WS-4DCO-PRCP-NO-GEN-PRD-CPB PIC X(3). ! -482500 15 WS-4DCO-PRCP-DA-DBT-GEN PIC X(8). ! -482600 15 WS-4DCO-PRCP-DA-FIN-GEN PIC X(8). ! -482700 15 WS-4DCO-PRCP-LIB-PRD-CPB PIC X(32). ! -482800 15 WS-4DCO-PRCP-CD-ACT-FNC PIC X(5). ! -482900 15 WS-4DCO-PRCP-CD-RGM-PAB PIC X(2). ! -483000 15 WS-4DCO-PRCP-TX-FRS-GTN-AN PIC 9(2)V9(3) COMP-3. ! -483100 15 WS-4DCO-PRCP-TX-MIN-ITT-GAR PIC S9(2)V9(3) COMP-3. ! -483200* ! -483300************************************ NOMBRE PRIS 353 ! -483400************************************ NOMBRE DISPONIBLE 1447 ! -483500* ZONE GROUPE POUR LE PROGRAMME TC4DDM0 ! -483600* ! -483700 10 WS-4DCO-4DDM. ! -483800* ! -483900* ZONE DE PAGINATION ! -484000 15 WS-4DCO-4DDM-PAGE. ! -484100 20 WS-4DCO-4DDM-IDC-OCC-SPL PIC X(001). ! -484200 20 WS-4DCO-4DDM-NB-PAG-TS PIC 9(002). ! -484300 20 WS-4DCO-4DDM-SAUV-PAGE-AREA PIC X(198). ! -484400* ! -484500* CLE DE REPOSITIONNEMENT (N� PRODUIT COMPTABLE) ! -484600 15 WS-4DCO-4DDM-CLEPOS PIC 9(003). ! -484700* ! -484800* CODE MESSAGE ERREUR ! -484900 15 WS-4DCO-4DDM-ERRMSG1 PIC X(006). ! -485000* ! -485100* ZOOM DEBUT ! -485200* SAUVEGARDE DES DONNEES A TRANSMETTRE QUELLES ! -485300* LA VISUALISATION EST DEMANDEE ! -485400 15 WS-4DCO-4DDM-TABLE. ! -485500 20 WS-4DCO-4DDM-TAB-ACTION-DTL OCCURS 12. ! -485600 25 WS-4DCO-4DDM-VAL-DTL PIC 9(003). ! -485700* ! -485800* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -485900 15 WS-4DCO-4DDM-POS-CURSOR PIC 9(002). ! -486000* NB DE DETAILS TRAITES ! -486100 15 WS-4DCO-4DDM-SAUV-ACT-TRT PIC S9(4) COMP. ! -486200* NB DE DETAILS DEMANDES ! -486300 15 WS-4DCO-4DDM-SAUV-ACT-NB PIC S9(4) COMP. ! -486400* ZOOM FIN ! -486500* ! -486600************************************ NOMBRE PRIS 605 ! -486700************************************ NOMBRE DISPONIBLE 1195 ! -486800 ! -486900* ZONE GROUPE POUR LE PROGRAMME TC4DDN0 ! -487000* ! -487100 10 WS-4DCO-4DDN. ! -487200* ! -487300* ZONE DE PAGINATION ! -487400 15 WS-4DCO-4DDN-PAGE. ! -487500 20 WS-4DCO-4DDN-IDC-OCC-SPL PIC X(001). ! -487600 20 WS-4DCO-4DDN-NB-PAG-TS PIC 9(002). ! -487700 20 WS-4DCO-4DDN-SAUV-PAGE-AREA PIC X(198). ! -487800* ! -487900* CLE DE REPOSITIONNEMENT ! -488000* 1) CODE EXTERNE DU PARTENAIRE ! -488100* 2) CODE EXTERNE DU PRODUIT ! -488200* 3) N� DE GENERATION DU PRODUIT ! -488300* CLE DE REPOSITIONNEMENT (CODE PARTENAIRE) ! -488400 15 WS-4DCO-4DDN-CLEPOS. ! -488500 20 WS-4DCO-4DDN-CD-PTN PIC X(005). ! -488600 20 WS-4DCO-4DDN-CD-PRD PIC X(002). ! -488700 20 WS-4DCO-4DDN-NO-GEN-PRD PIC X(003). ! -488800* ! -488900* CODE MESSAGE ERREUR ! -489000 15 WS-4DCO-4DDN-ERRMSG1 PIC X(006). ! -489100* ! -489200* ZOOM DEBUT 217 ! -489300* DONNEES POUR LESQUELLES LE ZOOM EST DDE ! -489400 15 WS-4DCO-4DDN-TABLE. ! -489500 20 WS-4DCO-4DDN-TAB-ACTION-DTL OCCURS 12. ! -489600 25 WS-4DCO-4DDN-Z-CD-PTN PIC X(005). ! -489700 25 WS-4DCO-4DDN-Z-CD-PRD PIC X(002). ! -489800 25 WS-4DCO-4DDN-Z-NO-GEN-PRD PIC X(003). ! -489900* ! -490000* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -490100 15 WS-4DCO-4DDN-POS-CURSOR PIC 9(002). ! -490200* NB DE DETAILS TRAITES ! -490300 15 WS-4DCO-4DDN-SAUV-ACT-TRT PIC S9(4) COMP. ! -490400* NB DE DETAILS DEMANDES ! -490500 15 WS-4DCO-4DDN-SAUV-ACT-NB PIC S9(4) COMP. ! -490600 15 WS-4DCO-4DDN-NO-CTR-TY-CPB PIC X(3). ! -490700* ZOOM FIN ! -490800************************************ NOMBRE PRIS 951 ! -490900************************************ NOMBRE DISPONIBLE 849 ! -491000 ! -491100 10 FILLER PIC X(849). ! -491200 ! -491300*================================================================ ! -491400*= APPLICATION : PARAMETRAGE : PRIME ETAT = ! -491500*================================================================ ! -491600* ! -491700 03 WS-4DCO-4DZZ REDEFINES WS-4DCO-PROGRAM. ! -491800* ============ ! -491900 ! -492000* ============== ! -492100* ------------------------------------------------------ * ! -492200* COMMAREA : GEODE : MENU PRINCIPAL * ! -492300* LONGUEUR : 1800 * ! -492400* PREFIXE : WS-4DCO-4DZZ * ! -492500* ------------------------------------------------------ * ! -492600 ! -492700 10 WS-4DCO-4DZZ. ! -492800 ! -492900 15 WS-4DCO-4DZZ-TOPMODIF PIC 9. ! -493000* INDIC MAJ COMMAREA PARTENAIRE ! -493100 15 FILLER PIC X(1799). ! -493200* ZONES DISPONIBLES ! -493300 ! -493400*================================================================ ! -493500*= APPLICATION : GESTION DES PERSONNES = ! -493600*================================================================ ! -493700 03 WS-4DCO-PERS REDEFINES WS-4DCO-PROGRAM. ! -493800* ============ ! -493900 ! -494000* ============== ! -494100* ------------------------------------------------------ * ! -494200* COMMAREA : PERS : GESTION DES PERSONNES * ! -494300* LONGUEUR : 1800 * ! -494400* PREFIXE : WS-4DCO-PERS * ! -494500* ------------------------------------------------------ * ! -494600 ! -494700 05 WS-4DCO-PERS-COMMUNE. ! -494800* PARTIE COMMUNE PERSONNE PHYSIQUE ET MORALE ! -494900 07 WS-4DCO-PERS-NO-PTN-MAJ PIC S9(03) COMP-3. ! -495000* NUMERO INTERNE PARTENAIRE AUTEUR DE LA MAJ ! -495100 07 WS-4DCO-PERS-NO-PTN PIC S9(03) COMP-3. ! -495200* NUMERO INTERNE PARTENAIRE ! -495300 07 WS-4DCO-PERS-CD-PTN PIC X(05). ! -495400* NUMERO EXTERNE PARTENAIRE ! -495500 07 WS-4DCO-PERS-NO-CLI-PTN PIC S9(07) COMP-3. ! -495600* NUMERO INTERNE CLIENT ! -495700 07 WS-4DCO-PERS-CD-CLI-PTN. ! -495800* NUMERO EXTERNE CLIENT ! -495900 10 WS-4DCO-PERS-CD-CLI1-PTN PIC X(07). ! -496000* NUMERO EXTERNE CLIENT PARTIE 1 ! -496100 10 WS-4DCO-PERS-CD-CLI2-PTN PIC X(08). ! -496200* NUMERO EXTERNE CLIENT PARTIE 2 ! -496300 07 WS-4DCO-PERS-VLR-IDT-MJ PIC X(08). ! -496400* IDENTIFIANT AYANT FAIT LA MAJ ! -496500 07 WS-4DCO-PERS-NO-AGT-MJ PIC X(08). ! -496600* AGENT AYANT FAIT LA MAJ ! -496700 07 WS-4DCO-PERS-CLIENT. ! -496800* INFOS CLIENT ! -496900 10 WS-4DCO-PERS-CD-INT PIC X(02). ! -497000* CODE INTITULE ! -497100 10 WS-4DCO-PERS-NOM-USU-PSE PIC X(32). ! -497200* NOM + PRENOM OU ENSEIGNE ! -497300 10 WS-4DCO-PERS-CD-TY-PSE PIC X(01). ! -497400* TYPE DE PERSONNE ! -497500 10 WS-4DCO-PERS-IDC-DOS-ATT PIC X(01). ! -497600* INDICATEUR DOSSIER EN ATTENTE ! -497700 10 WS-4DCO-PERS-IDC-ACC-MTL PIC X(01). ! -497800* INDICATEUR ACCES MINITEL ! -497900 10 WS-4DCO-PERS-IDC-INF-CFL PIC X(01). ! -498000* INDICATEUR CONFIDENTIALITE INFOS. ! -498100 10 WS-4DCO-PERS-ADR OCCURS 5. ! -498200* ADRESSES ET NUM TELEPHONE DU CLIENT ! -498300 15 WS-4DCO-PERS-NO-ORD-ADR-POST PIC S9(02) COMP-3. ! -498400* NUMERO ORDRE ADRESSE POSTALE ! -498500 15 WS-4DCO-PERS-LIB-RUE-1 PIC X(32). ! -498600* 1 ERE LIGNE ADRESSE ! -498700 15 WS-4DCO-PERS-LIB-RUE-2 PIC X(32). ! -498800* 2 EME LIGNE ADRESSE ! -498900 15 WS-4DCO-PERS-LIB-COMMUNE PIC X(32). ! -499000* 3 EME LIGNE ADRESSE ! -499100 15 WS-4DCO-PERS-CD-POST PIC X(05). ! -499200* CODE POSTAL ! -499300 15 WS-4DCO-PERS-LIB-BUR-DIST PIC X(26). ! -499400* LIBELLE DU BUREAU DISTRIBUTEUR ! -499500 15 WS-4DCO-PERS-CD-DPT PIC X(02). ! -499600* CODE DEPARTEMENT ! -499700 15 WS-4DCO-PERS-CD-COMM PIC X(03). ! -499800* CODE INSEE COMMUNE ! -499900 15 WS-4DCO-PERS-NO-TEL PIC X(11). ! -500000* NUMERO DE TELEPHONE ! -500100 15 WS-4DCO-DA-MAJ-ADR-POST. ! -500200* DATE DE DERNIERE MAJ ADRESSE POSTALE ! -500300 20 WS-4DCO-MAJ-ADR-SSAA PIC X(04). ! -500400* ANNEE DE DERNIERE MAJ ADRESSE POSTALE ! -500500 20 FILLER PIC X. ! -500600 20 WS-4DCO-MAJ-ADR-MM PIC X(02). ! -500700* MOIS DE DERNIERE MAJ ADRESSE POSTALE ! -500800 20 FILLER PIC X. ! -500900 20 WS-4DCO-MAJ-ADR-JJ PIC X(02). ! -501000* JOUR DE DERNIERE MAJ ADRESSE POSTALE ! -501100 10 WS-4DCO-PERS-CFRS PIC X(6). ! -501200* CENTRE DE FRAIS ! -501300 07 WS-4DCO-PERS-IDC-AUT-GTN-CLI PIC X. ! -501400 88 AUT-GERER VALUE 'O'. ! -501500 88 NON-AUT-GERER VALUE 'N'. ! -501600* INDIC SI PTN AUTO A GERER SES CODES CLIENTS ! -501700 07 FILLER PIC X(2). ! -501800* FILLER ! -501900* ! -502000 05 WS-4DCO-PHYS. ! -502100* COMMAREA PERSONNE PHYSIQUE ! -502200 07 WS-4DCO-PHYS-LIB-NOM PIC X(32). ! -502300* NOM ! -502400 07 WS-4DCO-PHYS-LIB-PRN PIC X(32). ! -502500* PRENOM ! -502600 07 WS-4DCO-PHYS-DA-NAI. ! -502700* DATE DE NAISSANCE ! -502800 10 WS-4DCO-PHYS-DA-NAI-SSAA PIC X(04). ! -502900* SIECLE ANNEE ! -503000 10 CARSLASH1 PIC X. ! -503100 10 WS-4DCO-PHYS-DA-NAI-MM PIC X(02). ! -503200* MOIS DE NAISSANCE ! -503300 10 CARSLASH2 PIC X. ! -503400 10 WS-4DCO-PHYS-DA-NAI-JJ PIC X(02). ! -503500* JOUR DE NAISSANCE ! -503600 07 WS-4DCO-PHYS-LIEU-NAI PIC X(32). ! -503700* LIEU DE NAISSANCE ! -503800 07 WS-4DCO-PHYS-CD-DPT-NAIS PIC X(02). ! -503900* CODE DEPARTEMENT DE NAISSANCE ! -504000 07 WS-4DCO-PHYS-CD-COMM-NAIS PIC X(03). ! -504100* CODE INSEE COMMUNE DE NAISSANCE ! -504200 07 WS-4DCO-PHYS-NOM-PATRO PIC X(32). ! -504300* NOM PATRONIMIQUE ! -504400 07 WS-4DCO-PHYS-CD-SIT-FAM PIC X(01). ! -504500* CODE SITUATION FAMILIALE ! -504600 07 FILLER PIC X(02). ! -504700* ! -504800 07 WS-4DCO-PHYS-CD-SEXE PIC X(01). ! -504900* SEXE ! -505000 07 WS-4DCO-PHYS-CD-CSP PIC X(04). ! -505100* CODE CATEGORIE SOCIO PROFESSIONNELLE ! -505200 07 WS-4DCO-PHYS-DA-DCS PIC X(10). ! -505300* DATE DECES PERSONNE PHYSIQUE ! -505400 07 WS-4DCO-PHYS-CD-OSCE-PAYS-N PIC X(03). ! -505500* CODE OSCEE PAYS ! -505600 07 WS-4DCO-PHYS-CD-OSCE-PAYS-NT PIC X(03). ! -505700* CODE OSCEE PAYS ! -505800 07 WS-4DCO-PHYS-CD-OSCE-PAYS-F PIC X(03). ! -505900* CODE OSCEE PAYS ! -506000 07 WS-4DCO-PHYS-CD-RGM-MTM PIC X(01). ! -506100* CODE REGIME MATRIMONIALE ! -506200 07 WS-4DCO-PHYS-CD-SIT-LOG PIC X(01). ! -506300* CODE SITUATION LOGEMENT ! -506400 07 WS-4DCO-PHYS-CD-CPC-JUR PIC X(02). ! -506500* CODE CAPACITE JURIDIQUE ! -506600 07 WS-4DCO-PHYS-CD-NIV-CFL-PSE PIC X(01). ! -506700* CODE NIVEAU CONFIDENTIALITE PERSONNE ! -506800 07 WS-4DCO-PHYS-CD-ORIG-DC PIC X(01). ! -506900* CODE ORIGINE ! -507000 07 FILLER PIC X(124). ! -507100* FILLER ! -507200* ! -507300 05 WS-4DCO-PERS-MORA REDEFINES WS-4DCO-PHYS. ! -507400* COMMAREA PERSONNE MORALE ! -507500 07 WS-4DCO-MORA-DA-CRE-EPS. ! -507600* DATE DE CREATION ENTREPRISE ! -507700 10 WS-4DCO-MORA-DA-CRE-EPS-SSAA PIC X(04). ! -507800* SIECLE ANNEE ! -507900 10 WS-4DCO-MORA-DA-CRE-EPS-MM PIC X(02). ! -508000* MOIS DE NAISSANCE ! -508100 10 WS-4DCO-MORA-DA-CRE-EPS-JJ PIC X(02). ! -508200* JOUR DE NAISSANCE ! -508300 07 WS-4DCO-MORA-RAI-SOC PIC X(32). ! -508400* RAISON SOCIALE ! -508500 07 WS-4DCO-MORA-LIB-ENS PIC X(32). ! -508600* ENSEIGNE COMMERCIALE ! -508700 07 WS-4DCO-MORA-LIB-NOM PIC X(32). ! -508800* NOM REPRESENTANT LEGAL ! -508900 07 WS-4DCO-MORA-NO-SIRET. ! -509000* NUMERO DE SIRET ! -509100 10 WS-4DCO-MORA-NO-IDT-EPS-SIT PIC X(09). ! -509200* NUMERO DE SIREN ! -509300 10 WS-4DCO-MORA-NO-IDT-CPL-SIT PIC X(05). ! -509400* COMPLEMENT AU SIREN ! -509500 07 WS-4DCO-MORA-JURID. ! -509600* CLASSIFICATION JURIDIQUE DE L'ENTREPRISE ! -509700 10 WS-4DCO-MORA-CD-DIV-FRM-JUR PIC X(02). ! -509800* CODE DIVISION FORME JURIDIQUE ! -509900 10 WS-4DCO-MORA-CD-SUB-FRM-JUR PIC X(02). ! -510000* CODE SUBDIVISION FORME JURIDIQUE ! -510100 07 WS-4DCO-MORA-NAF. ! -510200* CODE NORME ACTIVITE FRANCAISE ! -510300 10 WS-4DCO-MORA-CD-DIV-NAF PIC X(02). ! -510400* CODE DIVISION NAF ! -510500 10 WS-4DCO-MORA-CD-CLS-NAF PIC X(02). ! -510600* CODE CLASSIFICATION NAF ! -510700 07 WS-4DCO-MORA-CD-INT-REP PIC X(02). ! -510800* CODE INTITULE REPRESENTANT LEGAL ! -510900 07 WS-4DCO-MORA-LIB-CD-INT-REP PIC X(12). ! -511000* LIBELLE INTITULE REPRESENTANT LEGAL ! -511100 07 WS-4DCO-MORA-NO-FAX PIC X(12). ! -511200* NUMERO DU FAX ! -511300 07 WS-4DCO-RECH-SEL-MO. ! -511400* SELECTION ! -511500 10 WS-4DCO-RECH-SELOP-MO PIC X OCCURS 15. ! -511600* SELECTION ZOOM ! -511700 07 WS-4DCO-MORA-PAGE. ! -511800 20 WS-4DCO-MORA-IDC-OCC-SPL PIC X(001). ! -511900 20 WS-4DCO-MORA-NB-PAG-TS PIC 9(002). ! -512000 20 WS-4DCO-MORA-SAUV-PAGE-AREA PIC X(090). ! -512100 07 FILLER PIC X(040). ! -512200* ! -512300 05 WS-4DCO-PERS-AUTADR PIC X. ! -512400* INDIC SI AUTRE ADRESSE ! -512500 05 WS-4DCO-PERS-LIB-CD-INT-CT PIC X(10). ! -512600* LIBELLE CODE INTITULE COURT ! -512700 05 WS-4DCO-TOP-HOMONY PIC X. ! -512800* TOP VERIF DES HOMONYMES ! -512900 05 WS-4DCO-NBPAGES PIC 9(002). ! -513000* NOMBRE DE PAGES ! -513100* ! -513200 05 WS-4DCO-RECHERCHE. ! -513300* COMMAREA RECHERCHE PERSONNE ! -513400 07 WS-4DCO-RECH-CD-PTN PIC X(05). ! -513500* NUMERO EXTERNE PARTENAIRE ! -513600 07 WS-4DCO-RECH-NO-STR-DIS PIC X(06). ! -513700* NUMERO STRUCTURE DE DISTRIBUTION ! -513800 07 WS-4DCO-RECH-CD-CLI-PTN. ! -513900* NUMERO EXTERNE CLIENT ! -514000 10 WS-4DCO-RECH-CD-CLI1-PTN PIC X(07). ! -514100* NUMERO EXTERNE CLIENT PARTIE 1 ! -514200 10 WS-4DCO-RECH-CD-CLI2-PTN PIC X(08). ! -514300* NUMERO EXTERNE CLIENT PARTIE 2 ! -514400 07 WS-4DCO-RECH-LIB-NOM PIC X(32). ! -514500* NOM ! -514600 07 WS-4DCO-RECH-LIB-PRN PIC X(32). ! -514700* PRENOM ! -514800 07 WS-4DCO-RECH-LIB-ENS REDEFINES ! -514900 WS-4DCO-RECH-LIB-PRN PIC X(32). ! -515000* ENSEIGNE ! -515100 07 WS-4DCO-RECH-NOM-PATRO PIC X(32). ! -515200* NOM PATRONIMIQUE ! -515300 07 WS-4DCO-RECH-RAI-SOC REDEFINES ! -515400 WS-4DCO-RECH-NOM-PATRO PIC X(32). ! -515500* RAISON SOCIALE ! -515600 07 WS-4DCO-RECH-DA-NAI. ! -515700* DATE DE NAISSANCE ! -515800 10 WS-4DCO-RECH-DA-NAI-SSAA PIC X(04). ! -515900* SIECLE ANNEE ! -516000 10 CARTIRET1 PIC X. ! -516100 10 WS-4DCO-RECH-DA-NAI-MM PIC X(02). ! -516200* MOIS DE NAISSANCE ! -516300 10 CARTIRET2 PIC X. ! -516400 10 WS-4DCO-RECH-DA-NAI-JJ PIC X(02). ! -516500* JOUR DE NAISSANCE ! -516600 05 WS-4DCO-RECH-SEL. ! -516700* SELECTION ! -516800 07 WS-4DCO-RECH-SELOP PIC X OCCURS 14. ! -516900* SELECTION ZOOM ! -517000 05 WS-4DCO-PERS-NO-STR-DIS PIC X(06). ! -517100* NUMERO STRUCTURE DE DISTRIBUTION ! -517200 05 WS-4DCO-RECH-PAGE-AREA PIC X(200). ! -517300* COMMAREA RECHERCHE PERSONNE ! -517400 05 WS-4DCO-MAJ-TM-STP. ! -517500* TIME STAMP ! -517600 07 WS-4DCO-TM-STP PIC X(26) OCCURS 3. ! -517700* TIMESTAMP DES TABLES ! -517800 05 WS-4DCO-CTR-SEL. ! -517900* SELECTION ! -518000 07 WS-4DCO-CTR-SELOP PIC X OCCURS 10. ! -518100* SELECTION ZOOM ! -518200 05 WS-4DCO-PERS-TRANS PIC X(004). ! -518300* CODE APPLICATION ! -518400 05 WS-4DCO-PERS-NBPAGES PIC 9(002). ! -518500* NOMBRE DE PAGES ! -518600 05 WS-4DCO-PERS-MONT PIC S9(15)V99 COMP-3. ! -518700* MONTANT SOLDE COMPTABLE ! -518800 05 WS-4DCO-TM-STP1 PIC X(26). ! -518900* TIMESTAMP SUPPLEMENTAIRE ! -519000 05 WS-4DCO-PERS-NO-ADR PIC 9(002). ! -519100* NOMBRE D'ADRESSES COURRIER ! -519200 05 WS-4DCO-PERS-NO-ADR-MAX PIC 9(002). ! -519300* NO D'ODRE ADR COURRIER LE PLUS GRAND ! -519400 05 WS-4DCO-PERS-NO-SAUV PIC 9(002). ! -519500* SAUVEGARDE DU NO PAGE ! -519600 05 WS-4DCO-PERS-LIB-CD-INT PIC X(12). ! -519700* LIBELLE CODE INTITULE AFFICHE ! -519800 05 WS-4DCO-PERS-CD-PRD PIC X(02). ! -519900* CODE PRODUIT ! -520000 05 WS-4DCO-PERS-NO-POL-PRB PIC X(09). ! -520100* NO DE CONTRAT ! -520200 05 WS-4DCO-PERS-IDC-PRD-UNT-CPT PIC X(01). ! -520300* INDICATEUR PRODUIT EN UNITE DE COMPTE ! -520400 05 WS-4DCO-PERS-DA-DCS. ! -520500* DATE DECES ! -520600 10 WS-4DCO-PERS-DA-DCS-JJ PIC X(02). ! -520700 10 FILLER PIC X. ! -520800 10 WS-4DCO-PERS-DA-DCS-MM PIC X(02). ! -520900 10 FILLER PIC X. ! -521000 10 WS-4DCO-PERS-DA-DCS-SSAA PIC X(04). ! -521100*-- DA3371 ! -521200*-- DATE DE MAJ DE L'ENCOURS GLOBAL ! -521300 05 WS-4DCO-PERS-DATMAJ. ! -521400 10 WS-DA-MAJP-SA PIC X(04). ! -521500 10 WS-DA-MAJP-MM PIC X(02). ! -521600 10 WS-DA-MAJP-JJ PIC X(02). ! -521700 05 FILLER PIC X(91). ! -521800* ! -521900*================================================================ ! -522000*= APPLICATION : GESTION DES AVANCES = ! -522100*================================================================ ! -522200 03 WS-4DCO-AVN REDEFINES WS-4DCO-PROGRAM. ! -522300* ============ ! -522400 ! -522500* ============== ! -522600* ------------------------------------------------------ * ! -522700* COMMAREA : AVN : GESTION DES AVANCES * ! -522800* LONGUEUR : 1800 * ! -522900* PREFIXE : WS-4DCO-AVN * ! -523000* ------------------------------------------------------ * ! -523100 ! -523200 05 WS-4DCO-AVN-NO-STR-GTN PIC X(06). ! -523300* NUMERO STRUCTURE GESTION ! -523400 05 WS-4DCO-AVN-NO-AGT-GTN PIC X(08). ! -523500* NUMERO AGENT GESTION ! -523600 05 WS-4DCO-AVN-DA-PAS-DNR-PAB PIC X(08). ! -523700* DATE DE PASSAGE DERNIER PAB ! -523800 05 WS-4DCO-AVN-SLD-TPS-REAL PIC S9(15) COMP-3. ! -523900* SOLDE TEMPS REEL CONTRAT ! -524000 05 WS-4DCO-AVN-SLD-AV PIC S9(15) COMP-3. ! -524100* SOLDE AVANCES ! -524200 05 WS-4DCO-AVN-NB-AV-ACD PIC 9(02). ! -524300* NOMBRE AVANCES DEJA ACCORDEES ! -524400 05 WS-4DCO-AVN-MT-ITT-EXE PIC S9(15) COMP-3. ! -524500* MT INTERETS AVANCES EXE EN-COURS ! -524600 05 WS-4DCO-AVN-MT-ITT-EXE-1 PIC S9(15) COMP-3. ! -524700* MT INTERETS AVANCES EXE -1 ! -524800 05 WS-4DCO-AVN-MT-FRS-EXE PIC S9(15) COMP-3. ! -524900* MT FRAIS AVANCES EXE EN-COURS ! -525000 05 WS-4DCO-AVN-MT-FRS-EXE-1 PIC S9(15) COMP-3. ! -525100* MT FRAIS AVANCES EXE -1 ! -525200 05 WS-4DCO-AVN-MT-FRS-EXEG PIC S9(15) COMP-3. ! -525300* MT FRAIS GESTION AVANCES EXE EN-COURS ! -525400 05 WS-4DCO-AVN-MT-FRS-EXE-1G PIC S9(15) COMP-3. ! -525500* MT FRAIS GESTION AVANCES EXE -1 ! -525600 05 WS-4DCO-AVN-MT-FRS-EXEC PIC S9(15) COMP-3. ! -525700* MT FRAIS COMMISSION AVANCES EXE EN-COURS ! -525800 05 WS-4DCO-AVN-MT-FRS-EXE-1G PIC S9(15) COMP-3. ! -525900* MT FRAIS COMMISSION AVANCES EXE -1 ! -526000 05 WS-4DCO-AVN-IDT-CLT PIC X(32). ! -526100* IDENTITE CLIENT ! -526200 05 WS-4DCO-AVN-LIB-CTR PIC X(16). ! -526300* LIBELLE CONTRAT ( NO ADHESION / NO COMPTE ) ! -526400 05 WS-4DCO-AVN-NO-CTR PIC X(15). ! -526500* NUMERO DE CONTRAT ! -526600 05 WS-4DCO-AVN-NO-CTR-CCM REDEFINES WS-4DCO-AVN-NO-CTR. ! -526700* NUMERO DE CONTRAT CCM ! -526800 10 WS-4DCO-AVN-RACINE PIC X(07). ! -526900 10 WS-4DCO-AVN-FILLER PIC X(01). ! -527000 10 WS-4DCO-AVN-CLE-RAC PIC X(01). ! -527100 10 WS-4DCO-AVN-FILLER PIC X(01). ! -527200 10 WS-4DCO-AVN-CAT PIC X(02). ! -527300 10 WS-4DCO-AVN-FILLER PIC X(01). ! -527400 10 WS-4DCO-AVN-RANG PIC X(02). ! -527500 05 WS-4DCO-AVN-NO-CTR-EXT REDEFINES WS-4DCO-AVN-NO-CTR. ! -527600* NUMERO DE CONTRAT PARTENAIRES EXTERIEURS ! -527700 10 WS-4DCO-AVN-PRD PIC X(02). ! -527800 10 WS-4DCO-AVN-FILLER PIC X(01). ! -527900 10 WS-4DCO-AVN-NO-POL PIC X(08). ! -528000 10 WS-4DCO-AVN-FILLER PIC X(01). ! -528100 10 WS-4DCO-AVN-CLE-POL PIC X(01). ! -528200 10 WS-4DCO-AVN-FILLER PIC X(02). ! -528300 05 WS-4DCO-AVN-DA-OPE. ! -528400* DATE D OPERATION ! -528500 10 WS-4DCO-AVN-DA-OPE-A PIC X(04). ! -528600 10 WS-4DCO-AVN-DA-OPE-M PIC X(02). ! -528700 10 WS-4DCO-AVN-DA-OPE-J PIC X(02). ! -528800 05 WS-4DCO-AVN-DA-EFF. ! -528900* DATE D EFFET ! -529000 10 WS-4DCO-AVN-DA-EFF-A PIC X(04). ! -529100 10 WS-4DCO-AVN-DA-EFF-M PIC X(02). ! -529200 10 WS-4DCO-AVN-DA-EFF-J PIC X(02). ! -529300 05 WS-4DCO-AVN-NO-RIB. ! -529400* NUMERO RIB ! -529500 10 WS-4DCO-AVN-CD-BANQUE PIC X(05). ! -529600 10 WS-4DCO-AVN-CD-GUICHET PIC X(05). ! -529700 10 WS-4DCO-AVN-NO-CPT-RIB PIC X(11). ! -529800 10 WS-4DCO-AVN-NO-CLE-RIB PIC X(02). ! -529900 05 WS-4DCO-AVN-MT-AV PIC S9(13)V9(2). ! -530000* MONTANT AVANCE ! -530100 05 FILLER PIC X(10). ! -530200* FILLER ! -530300 05 WS-4DCO-AVN-MODE-RGL PIC X(01). ! -530400* MODE REGLEMENT ! -530500 05 WS-4DCO-AVN-NO-CHQ PIC X(07). ! -530600* NUMERO DE CHEQUE ! -530700 05 WS-4DCO-AVN-TAB-MVT OCCURS 20. ! -530800* TABLE DES LIBELLES MOUVEMENTS ! -530900 10 WS-4DCO-AVN-LIB-MVT PIC X(32). ! -531000* LIBELLE MOUVEMENT ! -531100 10 WS-4DCO-AVN-CD-SENS-MVT PIC X(01). ! -531200* CODE SENS MOUVEMENT ! -531300 05 WS-4DCO-AVN-ITEM-ZOOM PIC S9(04) COMP. ! -531400* NO DE L'ITEM A ZOOMER ! -531500 05 WS-4DCO-AVN-PAGE-AREA PIC X(198). ! -531600* PAGE AREA START ! -531700 05 WS-4DCO-AVN-STOCK. ! -531800 10 WS-4DCO-AVN-NO-ENREG OCCURS 12 PIC X(02). ! -531900* STOCK TYPE DE MOUVEMENT DE LA PAGE ! -532000 10 WS-4DCO-AVN-MT-STOCK OCCURS 12 ! -532100 PIC S9(13)V99 COMP-3. ! -532200* STOCK MT DE MOUVEMENT DE LA PAGE ! -532300 05 WS-4DCO-AVN-NOM-PATRO PIC X(32). ! -532400* NOM PATRONYMIQUE ! -532500 05 WS-4DCO-AVN-CD-NTS PIC X(01). ! -532600* CODE NANTISSEMENT ! -532700 05 WS-4DCO-AVN-TYP-ANN PIC X. ! -532800 88 ANNULATION-JOUR VALUE ' '. ! -532900 88 ANNULATION-NON-JOUR VALUE 'N'. ! -533000* TOP ANNULATION AVANCE ! -533100 05 WS-4DCO-AVN-TYP-CONF PIC X(10). ! -533200* TYPE CONFIDENCIALITE ! -533300 05 WS-4DCO-AVN-CHX1 PIC X(02). ! -533400* CHOIX 1 ! -533500 05 WS-4DCO-AVN-CHX2 PIC X(02). ! -533600* CHOIX 2 ! -533700 05 WS-4DCO-AVN-LIB-CONF-1 PIC X(32). ! -533800* LIBELLE CONFIDENCIALITE 1 ! -533900 05 WS-4DCO-AVN-LIB-CONF-2 PIC X(32). ! -534000* LIBELLE CONFIDENCIALITE 2 ! -534100 05 WS-4DCO-AVN-DEBJ PIC X(02). ! -534200* DATE DEBUT JOUR ! -534300 05 WS-4DCO-AVN-DEBM PIC X(02). ! -534400* DATE DEBUT MOIS ! -534500 05 WS-4DCO-AVN-DEBSA PIC X(04). ! -534600* DATE DEBUT SIECLE ANNEE ! -534700 05 WS-4DCO-AVN-FINJ PIC X(02). ! -534800* DATE FIN JOUR ! -534900 05 WS-4DCO-AVN-FINM PIC X(02). ! -535000* DATE FIN MOIS ! -535100 05 WS-4DCO-AVN-FINSA PIC X(04). ! -535200* DATE FIN SIECLE ANNEE ! -535300 05 WS-4DCO-AVN-IMP PIC X(07). ! -535400* IMPRIMANTE ! -535500 05 WS-4DCO-AVN-MT-NET-VER-PER PIC S9(15) COMP-3. ! -535600* MT NET DU VERSEMENT PERIODIQUE ! -535700 05 WS-4DCO-AVN-CD-PROR-CTR PIC X(01). ! -535800* CODE PROROGATION DU CONTRAT ! -535900 05 WS-4DCO-AVN-DA-ECN-CTR PIC X(08). ! -536000* DATE ECHEANCE DU CONTRAT ! -536100 05 WS-4DCO-AVN-DA-ECN-PROR PIC X(08). ! -536200* DATE ECHEANCE PROROGEE DU CONTRAT ! -536300 05 WS-4DCO-AVN-DATRB PIC X(08). ! -536400* DATE DE REMBOURSEMENT TOTAL ! -536500 05 WS-4DCO-AVN-IDC-EDI-CM PIC X(01). ! -536600* indicateur edition cheque ccm ! -536700 05 WS-4DCO-AVN-NO-AV PIC 9(08) COMP. ! -536800* numero d'avance ! -536900 05 WS-4DCO-AVN-DA-DEM. ! -537000* DATE D EFFET ! -537100 10 WS-4DCO-AVN-DA-DEM-A PIC X(04). ! -537200 10 WS-4DCO-AVN-DA-DEM-M PIC X(02). ! -537300 10 WS-4DCO-AVN-DA-DEM-J PIC X(02). ! -537400 05 FILLER PIC X(400). ! -537500***************************************************************** ! -537600*================================================================ ! -537700*= APPLICATION : STATISTIQUES PRODUCTION ET ENCOURS = ! -537800*================================================================ ! -537900 03 WS-4DCO-STAT-PROD-ENC REDEFINES WS-4DCO-PROGRAM. ! -538000* ===================== ! -538100 ! -538200* ============== ! -538300* ------------------------------------------------------ * ! -538400* COMMAREA : STA : STATISTIQUES PRODUCTION ET ENCOURS * ! -538500* LONGUEUR : 1800 * ! -538600* PREFIXE : WS-4DCO-93C0 (PARTIE COMMUNE) 200C * ! -538700* ------------------------------------------------------ * ! -538800 ! -538900 05 WS-4DCO-93C0-GZONCOM. ! -539000* ZONE COMMUNE GESTION DES STATISTIQUES ! -539100* LIBELLE MESSAGE ! -539200 10 WS-4DCO-93C0-LMSG PIC X(050). ! -539300* CODE CHOIX ! -539400 10 WS-4DCO-93C0-CCHX PIC X(001). ! -539500* CODE ACTION ! -539600 10 WS-4DCO-93C0-CACT PIC X(001). ! -539700* CLE POLICE RACINE ! -539800 10 WS-4DCO-93C0-GCLE. ! -539900* CODE PARTENAIRE ! -540000 15 WS-4DCO-93C0-CPRN PIC X(005). ! -540100* NUMERO PRODUIT ! -540200 15 WS-4DCO-93C0-CPRD PIC X(002). ! -540300* NUMERO POLICE ! -540400 15 WS-4DCO-93C0-NPOL. ! -540500 20 WS-4DCO-93C0-NPOLRAC PIC X(008). ! -540600 20 WS-4DCO-93C0-NPOLCLE PIC X(001). ! -540700* NUMERO PROGRAMME ! -540800 10 WS-4DCO-93C0-PGM PIC X(008). ! -540900* ! -541000 10 WS-4DCO-93C0-LCOUPRN PIC X(012). ! -541100* ! -541200 10 WS-4DCO-93C0-LCOUPRD PIC X(012). ! -541300* ! -541400 10 WS-4DCO-93C0-LNOM PIC X(032). ! -541500* ! -541600 10 WS-4DCO-93C0-CTLAGE PIC X(008). ! -541700* ! -541800 10 WS-4DCO-93C0-TRMID PIC X(4). ! -541900* ! -542000 10 WS-4DCO-93C0-TIME PIC S9(7) COMP-3. ! -542100* ! -542200 10 WS-4DCO-93C0-NIVEAU PIC X. ! -542300* ! -542400 10 WS-4DCO-93C0-GESED PIC X. ! -542500* ! -542600 10 WS-4DCO-93C0-IND PIC X(1). ! -542700* CODE CHOIX SUR 2 CAR. ! -542800 10 WS-4DCO-93C0-CHOIX PIC X(002). ! -542900* ! -543000 10 WS-4DCO-93C0-VAL PIC X(001). ! -543100* ! -543200 10 WS-4DCO-93C0-NO-ECRAN PIC S9(04) COMP. ! -543300* ! -543400 10 WS-4DCO-93C0-NUM PIC 9(04). ! -543500* ! -543600 10 FILLER PIC X(040). ! -543700 ! -543800* ============== ! -543900* ------------------------------------------------------ * ! -544000* COMMAREA : STA : STATISTIQUES PRODUCTION ET ENCOURS * ! -544100* LONGUEUR : 1800 * ! -544200* PREFIXE : WS-4DCO-93C5 (PARTIE VARIABLE) 1600C * ! -544300* ------------------------------------------------------ * ! -544400* ! -544500 05 WS-4DCO-93C5-GZONSPC5. ! -544600 ! -544700* AGENCE PREAFFICHEE '0' (NON) ! -544800* '1' (OUI) ! -544900 10 WS-4DCO-93C5-TOPAGE PIC X(001). ! -545000* ZONES ECRAN ! -545100 10 WS-4DCO-93C5-ECRAN. ! -545200* CODE NATURE '1' OU '2' ! -545300 15 WS-4DCO-93C5-CNAT PIC X(001). ! -545400* CODE ACTION '1' '2' '3' ! -545500* '4' OU '5' ! -545600 15 WS-4DCO-93C5-CACT PIC X(001). ! -545700* CODES PRODUITS ! -545800 15 WS-4DCO-93C5-CPRD1 PIC X(002). ! -545900 15 WS-4DCO-93C5-CPRD2 PIC X(002). ! -546000 15 WS-4DCO-93C5-CPRD3 PIC X(002). ! -546100 15 WS-4DCO-93C5-CPRD4 PIC X(002). ! -546200 15 WS-4DCO-93C5-CPRD5 PIC X(002). ! -546300* CODE AGENCE ! -546400 15 WS-4DCO-93C5-AGENCE-S. ! -546500 20 FILLER PIC X(002). ! -546600 20 WS-4DCO-93C5-AGENCE PIC X(006). ! -546700* CODE AGENT ! -546800 15 WS-4DCO-93C5-AGENT PIC X(008). ! -546900* DATE DEBUT ! -547000 15 WS-4DCO-93C5-DDEB. ! -547100 20 WS-4DCO-93C5-DDEBSA PIC X(004). ! -547200 20 WS-4DCO-93C5-DDEBMM PIC X(002). ! -547300 20 WS-4DCO-93C5-DDEBJJ PIC X(002). ! -547400* DATE FIN ! -547500 15 WS-4DCO-93C5-DFIN. ! -547600 20 WS-4DCO-93C5-DFINSA PIC X(004). ! -547700 20 WS-4DCO-93C5-DFINMM PIC X(002). ! -547800 20 WS-4DCO-93C5-DFINJJ PIC X(002). ! -547900* ! -548000 15 WS-4DCO-93C5-CPRD1I PIC 9(003). ! -548100 15 WS-4DCO-93C5-CPRD2I PIC 9(003). ! -548200 15 WS-4DCO-93C5-CPRD3I PIC 9(003). ! -548300 15 WS-4DCO-93C5-CPRD4I PIC 9(003). ! -548400 15 WS-4DCO-93C5-CPRD5I PIC 9(003). ! -548500* ! -548600 10 WS-4DCO-93C5-LCOUPRD1 PIC X(032). ! -548700 10 WS-4DCO-93C5-LCOUPRD2 PIC X(032). ! -548800 10 WS-4DCO-93C5-LCOUPRD3 PIC X(032). ! -548900 10 WS-4DCO-93C5-LCOUPRD4 PIC X(032). ! -549000 10 WS-4DCO-93C5-LCOUPRD5 PIC X(032). ! -549100* POSSIBILITE ZOOM ECRAN M4DLG0 ' ' (NON) ! -549200* '*' (OUI) ! -549300 10 WS-4DCO-93C5-OUV-ZOOM PIC X(001). ! -549400* MONTANT ENCOURS NET POUR PRODUIT 74 ! -549500 10 WS-4DCO-93C5-MT-ENC-74 PIC S9(15) COMP-3. ! -549600* DATE REFERENCE POUR ZOOM 74 ! -549700 10 WS-4DCO-93C5-DAT-REF-74 PIC X(08). ! -549800* CODE PRODUIT POPT ! -549900 10 WS-4DCO-93C5-CPRD-74 PIC X(02). ! -550000* NUMERO INTERNE PRODUIT POPT ! -550100 10 WS-4DCO-93C5-CPRDI-74 PIC 9(03). ! -550200* LIBELLE PRODUIT 74 ! -550300 10 WS-4DCO-93C5-LPRD-74 PIC X(32). ! -550400* MONTANT ENCOURS VALORISE POUR PRODUIT 74 ! -550500 10 WS-4DCO-93C5-MT-VAL-74 PIC S9(15) COMP-3. ! -550600* ---- LIB ABR�G� PRODUITS ! -550700 10 WS-4DCO-93C5-LA-PRD OCCURS 5 PIC X(016). ! -550800* ---- LISTE DES PRODUITS EN ENTETE D'�CRAN ! -550900 10 WS-4DCO-93C5-LISTE-PRD PIC X(065). ! -551000* ---- INDICATEUR DE VISUALISATION DES STATS ! -551100 10 WS-4DCO-93C5-IDC-VSU-STAT OCCURS 5 PIC X(01). ! -551200* ! -551300 10 WS-4DCO-93C5-no-spp-fnc PIC 9(06). ! -551400* ! -551500 10 WS-4DCO-93C5-MODIF-ZONE pic x(01). ! -551600* ! -551700 10 WS-4DCO-93C5-IDC-OCC-SPL PIC X(001). ! -551800* ! -551900 10 WS-4DCO-93C5-IDC-nopage PIC X(001). ! -552000* ! -552100 10 FILLER PIC X(1159). ! -552200 ! -552300* ------------------------------------------------------ * ! -552400* COMMAREA : EDITIONS MINITEL * ! -552500* LONGUEUR : 1800 * ! -552600* PREFIXE : WS-4DCO-93C6 (PARTIE VARIABLE) 1600C * ! -552700* ------------------------------------------------------ * ! -552800* ! -552900 05 WS-4DCO-93C6-GZONSPC6 REDEFINES WS-4DCO-93C5-GZONSPC5. ! -553000 ! -553100* TOP REQUETE ! -553200 10 WS-4DCO-93C6-TOPREQ PIC X(001). ! -553300* ZONES ECRAN ! -553400 10 WS-4DCO-93C6-ECRAN. ! -553500* CHOIX '1' EDITION OU ! -553600* '2' REEDITION ! -553700 15 WS-4DCO-93C6-CHOIX PIC X(001). ! -553800* IMPRIMANTE ! -553900 15 WS-4DCO-93C6-IMPR PIC X(008). ! -554000* CODES PRODUITS ! -554100 15 WS-4DCO-93C6-CPRD1 PIC X(002). ! -554200 15 WS-4DCO-93C6-CPRD2 PIC X(002). ! -554300 15 WS-4DCO-93C6-CPRD3 PIC X(002). ! -554400 15 WS-4DCO-93C6-CPRD4 PIC X(002). ! -554500 15 WS-4DCO-93C6-CPRD5 PIC X(002). ! -554600* DATE DEBUT ! -554700 15 WS-4DCO-93C6-DDEB. ! -554800 20 WS-4DCO-93C6-DDEBSA PIC X(004). ! -554900 20 WS-4DCO-93C6-DDEBMJ. ! -555000 25 WS-4DCO-93C6-DDEBMM PIC X(002). ! -555100 25 WS-4DCO-93C6-DDEBJJ PIC X(002). ! -555200* DATE FIN ! -555300 15 WS-4DCO-93C6-DFIN. ! -555400 20 WS-4DCO-93C6-DFINSA PIC X(004). ! -555500 20 WS-4DCO-93C6-DFINMJ. ! -555600 25 WS-4DCO-93C6-DFINMM PIC X(002). ! -555700 25 WS-4DCO-93C6-DFINJJ PIC X(002). ! -555800* PROCHAINE DATE DEBUT EDITION ! -555900 15 WS-4DCO-93C6-DDED. ! -556000 20 WS-4DCO-93C6-DDEDJM. ! -556100 25 WS-4DCO-93C6-DDEDJJ PIC X(002). ! -556200 25 WS-4DCO-93C6-DDEDMM PIC X(002). ! -556300 20 WS-4DCO-93C6-DDEDSA PIC X(004). ! -556400* ! -556500 10 FILLER PIC X(1556). ! -556600* ! -556700* ============== ! -556800* ------------------------------------------------------ * ! -556900* COMMAREA : REQUETES * ! -557000* LONGUEUR : 1800 * ! -557100* PREFIXE : WS-4DCO-93C7 (PARTIE VARIABLE) 1600C * ! -557200* ------------------------------------------------------ * ! -557300* ! -557400 05 WS-4DCO-93C7-GZONSPC7 REDEFINES WS-4DCO-93C5-GZONSPC5. ! -557500* TOP EOF FICHER REQUETE ! -557600 10 WS-4DCO-93C7-REQ-BOF PIC X(1). ! -557700 10 WS-4DCO-93C7-REQ-EOF PIC X(1). ! -557800* OCCURENCE IMAGE REQUETE ! -557900 10 WS-4DCO-93C7-IMAREQ PIC S9(2). ! -558000* NBR DE REQUETES AFFICHEES ! -558100 10 WS-4DCO-93C7-NBREQ PIC S9(2). ! -558200* ! -558300* CLE REQUETE RETOUR ZOOM ! -558400 10 WS-4DCO-93C7-GCLEREQ. ! -558500* CODE REQUETE ! -558600 15 WS-4DCO-93C7-CODREQ PIC X(02). ! -558700* NO REQUETE ! -558800 15 WS-4DCO-93C7-NOREQ PIC X(04). ! -558900* PARTENAIRE ! -559000 15 WS-4DCO-93C7-CPRN PIC X(05). ! -559100* DATE / HEURE REQUETE ! -559200 15 WS-4DCO-93C7-DHREQ. ! -559300 20 WS-4DCO-93C7-DREQ. ! -559400 25 WS-4DCO-93C7-DREQ-SA. ! -559500 30 WS-4DCO-93C7-DREQ-SS PIC X(02). ! -559600 30 WS-4DCO-93C7-DREQ-AA PIC X(02). ! -559700 25 WS-4DCO-93C7-DREQ-MM PIC X(02). ! -559800 25 WS-4DCO-93C7-DREQ-JJ PIC X(02). ! -559900 20 WS-4DCO-93C7-HREQ. ! -560000 25 WS-4DCO-93C7-HREQ-HH PIC X(02). ! -560100 25 WS-4DCO-93C7-HREQ-MM PIC X(02). ! -560200 25 WS-4DCO-93C7-HREQ-SS PIC X(02). ! -560300* ! -560400* CLE REQUETE ZOOM ! -560500 10 WS-4DCO-93C7-GCLEREQZ. ! -560600* CODE REQUETE ! -560700 15 WS-4DCO-93C7-CODREQZ PIC X(02). ! -560800* NO REQUETE ! -560900 15 WS-4DCO-93C7-NOREQZ PIC X(04). ! -561000* PARTENAIRE ! -561100 15 WS-4DCO-93C7-CPRNZ PIC X(05). ! -561200* DATE / HEURE REQUETE ! -561300 15 WS-4DCO-93C7-DHREQZ. ! -561400 20 WS-4DCO-93C7-DREQZ. ! -561500 25 WS-4DCO-93C7-DREQZ-SA. ! -561600 30 WS-4DCO-93C7-DREQZ-SS PIC X(02). ! -561700 30 WS-4DCO-93C7-DREQZ-AA PIC X(02). ! -561800 25 WS-4DCO-93C7-DREQZ-MM PIC X(02). ! -561900 25 WS-4DCO-93C7-DREQZ-JJ PIC X(02). ! -562000 20 WS-4DCO-93C7-HREQZ. ! -562100 25 WS-4DCO-93C7-HREQZ-HH PIC X(02). ! -562200 25 WS-4DCO-93C7-HREQZ-MM PIC X(02). ! -562300 25 WS-4DCO-93C7-HREQZ-SS PIC X(02). ! -562400* ! -562500* TOP REQUETE ECRAN ! -562600 15 WS-4DCO-93C7-TOPREQ PIC X(01) OCCURS 14. ! -562700* ! -562800 10 FILLER PIC X(1530). ! -562900* ! -563000*================================================================ ! -563100*= APPLICATION : PROROGATION CONTRAT / EDITION AVENANT = ! -563200*================================================================ ! -563300 03 WS-4DCO-AVT REDEFINES WS-4DCO-PROGRAM. ! -563400* ============ ! -563500 ! -563600* ============== ! -563700* ------------------------------------------------------ * ! -563800* COMMAREA : AVT : PROROG. CONTRAT / EDIT. AVENANT * ! -563900* LONGUEUR : 1800 * ! -564000* PREFIXE : WS-4DCO-AVT * ! -564100* ------------------------------------------------------ * ! -564200 ! -564300 05 WS-4DCO-AVT-PRG-AVANT PIC X(01). ! -564400* CODE PROROGATION AVANT ! -564500 05 WS-4DCO-AVT-PRG-APRES PIC X(01). ! -564600* CODE PROROGATION APRES ! -564700 05 WS-4DCO-AVT-PRG-EDIT PIC X(01). ! -564800* CODE EDITION ! -564900 05 WS-4DCO-AVT-NOM-PATRO PIC X(32). ! -565000* NOM PRENOM ! -565100 05 WS-4DCO-AVT-DA-SCR. ! -565200* DATE SOUSCRIPTION ! -565300 10 WS-4DCO-AVT-DA-SCR-SA PIC X(04). ! -565400* DATE SOUSCRIPTION SIECLE ANNEE ! -565500 10 WS-4DCO-AVT-DA-SCR-MM PIC X(02). ! -565600* DATE SOUSCRIPTION MOIS ! -565700 10 WS-4DCO-AVT-DA-SCR-JJ PIC X(02). ! -565800* DATE SOUSCRIPTION JOUR ! -565900 05 WS-4DCO-AVT-DA-ECN. ! -566000* DATE ECHEANCE CONTRAT ! -566100 10 WS-4DCO-AVT-DA-ECN-SA PIC X(04). ! -566200* DATE ECHEANCE SIECLE ANNEE ! -566300 10 WS-4DCO-AVT-DA-ECN-MM PIC X(02). ! -566400* DATE ECHEANCE MOIS ! -566500 10 WS-4DCO-AVT-DA-ECN-JJ PIC X(02). ! -566600* DATE ECHEANCE JOUR ! -566700 05 WS-4DCO-AVT-RUE-1 PIC X(32). ! -566800* LIBELLE RUE 1 ! -566900 05 WS-4DCO-AVT-RUE-2 PIC X(32). ! -567000* LIBELLE RUE 2 ! -567100 05 WS-4DCO-AVT-CD-POST PIC X(05). ! -567200* CODE POSTAL ! -567300 05 WS-4DCO-AVT-COMMUNE PIC X(32). ! -567400* COMMUNE ! -567500 05 WS-4DCO-AVT-BUR-DIST PIC X(26). ! -567600* BUREAU DISTRIBUTEUR ! -567700 05 WS-4DCO-AVT-TX-MIN PIC 99V9(3). ! -567800* TX MINIMUM GARANTI ! -567900 05 WS-4DCO-AVT-DA-FIN-TX. ! -568000* DATE FIN TX MIN GARANTI ! -568100 10 WS-4DCO-AVT-DA-FIN-TX-SA PIC X(04). ! -568200* DATE FIN TX MIN GARANTI SIECLE ANNEE ! -568300 10 WS-4DCO-AVT-DA-FIN-TX-MM PIC X(02). ! -568400* DATE FIN TX MIN GARANTI MOIS ! -568500 10 WS-4DCO-AVT-DA-FIN-TX-JJ PIC X(02). ! -568600* DATE FIN TX MIN GARANTI JOUR ! -568700 05 WS-4DCO-AVT-BQE PIC X(05). ! -568800* BANQUE DOMICILIATAIRE ! -568900 05 WS-4DCO-AVT-GCHT PIC X(05). ! -569000* GUICHET DOMICILIATAIRE ! -569100 05 WS-4DCO-AVT-CPT PIC X(11). ! -569200* COMPTE DOMICILIATAIRE ! -569300 05 WS-4DCO-AVT-CLE PIC X(02). ! -569400* CLE DOMICILIATAIRE ! -569500 05 WS-4DCO-AVT-DA-ECN-PROR. ! -569600* DATE ECHEANCE PROROGATION ! -569700 10 WS-4DCO-AVT-DA-ECN-PRO-SA PIC X(04). ! -569800* DATE ECHEANCE SIECLE ANNEE ! -569900 10 WS-4DCO-AVT-DA-ECN-PRO-MM PIC X(02). ! -570000* DATE ECHEANCE MOIS ! -570100 10 WS-4DCO-AVT-DA-ECN-PRO-JJ PIC X(02). ! -570200* DATE ECHEANCE JOUR ! -570300 05 WS-4DCO-AVT-DA-PROR. ! -570400* DATE PROROGATION ! -570500 10 WS-4DCO-AVT-DA-PRO-SA PIC X(04). ! -570600* DATE ECHEANCE SIECLE ANNEE ! -570700 10 WS-4DCO-AVT-DA-PRO-MM PIC X(02). ! -570800* DATE ECHEANCE MOIS ! -570900 10 WS-4DCO-AVT-DA-PRO-JJ PIC X(02). ! -571000* DATE ECHEANCE JOUR ! -571100 05 WS-4DCO-AVT-DUREE-PRO PIC 9(02). ! -571200* DUREE DE LA PROROGATION ! -571300 05 WS-4DCO-AVT-TY-PROR PIC X(01) . ! -571400 88 WS-4DCO-AVT-TY-ANC VALUE '1' . ! -571500 88 WS-4DCO-AVT-TY-NOUV VALUE '2' . ! -571600 88 WS-4DCO-AVT-TY-TACITE VALUE '3' . ! -571700 05 FILLER PIC X(1567). ! -571800 ! -571900* ==================== ! -572000 03 WS-4DCO-PROROG-LISTE REDEFINES WS-4DCO-PROGRAM. ! -572100* ==================== ! -572200* ------------------------------------------------------ * ! -572300* COMMAREA : PROROGATION / REEDITION D AVENANT * ! -572400* LONGUEUR : 1800 * ! -572500* PREFIXE : WS-4DCO-PRG * ! -572600* ------------------------------------------------------ * ! -572700 10 WS-4DCO-4DIT-RETOUR PIC XXXX. ! -572800 10 WS-4DCO-PRG-TC4DIT0. ! -572900 15 WS-4DCO-PRG-TC4DIT0-SEL OCCURS 15. ! -573000 20 WS-4DCO-4DIT-SELEC PIC X. ! -573100* TOP SELECTION CONTRAT ! -573200 20 WS-4DCO-4DIT-NO-PTN PIC 999. ! -573300* NO PARTENAIRE INTERNE LIGNE CONTRAT ! -573400 20 WS-4DCO-4DIT-NO-PRD-PTN PIC 999. ! -573500* NO PRODUIT INTERNE LIGNE CONTRAT ! -573600 20 WS-4DCO-4DIT-NO-CLI-PTN PIC 9(7). ! -573700* NO CLIENT INTERNE LIGNE CONTRAT ! -573800 20 WS-4DCO-4DIT-NO-ORD-CTR PIC 99. ! -573900* NO ORDRE INTERNE LIGNE CONTRAT ! -574000 20 WS-4DCO-4DIT-IDC-CM PIC X. ! -574100* INDICATEUR CMM LIGNE CONTRAT ! -574200 20 WS-4DCO-4DIT-RAC PIC X(7). ! -574300* RACINE EXTERNE LIGNE CONTRAT ! -574400 20 WS-4DCO-4DIT-CLE-RAC PIC X(1). ! -574500* CLE EXTERNE LIGNE CONTRAT ! -574600 20 WS-4DCO-4DIT-CAT PIC X(2). ! -574700* CATEGORIE EXTERNE LIGNE CONTRAT ! -574800 20 WS-4DCO-4DIT-RANG PIC X(2). ! -574900* NUMERO DE RANG LIGNE CONTRAT ! -575000 20 WS-4DCO-4DIT-NO-POL-PRB PIC X(9). ! -575100* NUMERO DE RANG LIGNE CONTRAT ! -575200 20 WS-4DCO-4DIT-CD-PRD-PO PIC X(2). ! -575300* NUMERO DE PRODUIT EXTERNE CONTRAT ! -575400 20 WS-4DCO-4DIT-DUREE PIC 9(2). ! -575500* DUREE DE LA PROROGATION CONTRAT ! -575600* 20 WS-4DCO-4DIT-IDC-PRD-UNT-CPT PIC X(1). ! -575700* INDICATEUR PRODUIT EN UC ! -575800 10 WS-4DCO-NBR-AVENANT PIC 99. ! -575900* NOMBRE D'AVENANT A EDITER ! -576000 10 WS-4DCO-4DIT-NOSTR-SAI PIC X(6). ! -576100 10 WS-4DCO-4DIT-NOPTN-SAI PIC X(5). ! -576200 10 WS-4DCO-4DIT-CD-PROR PIC X(1) OCCURS 15. ! -576300 10 WS-4DCO-4DIT-DA-ECN PIC X(8) . ! -576400 10 WS-4DCO-4DIT-NO-STR-GTN PIC X(6) . ! -576500 10 WS-4DCO-4DIT-LIB-STR PIC X(32) . ! -576600 10 WS-4DCO-4DIT-IDC-STR PIC X(1) . ! -576700 10 WS-4DCO-4DIT-IDC-PRD-UNT-CPT PIC X(1) OCCURS 15. ! -576800 10 FILLER PIC X(1076). ! -576900* ZONES DISPONIBLES ! -577000***************************************************************** ! -577100* ! -577200*================================================================ ! -577300*= APPLICATION : SAISIE CONTRAT EN ANOMALIE = ! -577400*================================================================ ! -577500 03 WS-4DCO-CTR-ANO REDEFINES WS-4DCO-PROGRAM. ! -577600* ============ ! -577700* ============== ! -577800* ------------------------------------------------------ * ! -577900* COMMAREA : SAISIE CONTRAT EN ANOMALIE * ! -578000* LONGUEUR : 1800 * ! -578100* PREFIXE : WS-4DCO-CTR-ANO * ! -578200* ------------------------------------------------------ * ! -578300 ! -578400 05 WS-4DCO-4DJA-CD-CHX PIC X(02). ! -578500* CHOIX EDITION ! -578600 05 WS-4DCO-4DJA-STOCK. ! -578700* STOCKAGE ! -578800 07 WS-4DCO-4DJA-INTERNE OCCURS 78. ! -578900* ELEMENTS POUR CLE INTERNE ! -579000 09 WS-4DCO-4DJA-CLI PIC 9(07). ! -579100* NO CLIENT ! -579200 09 WS-4DCO-4DJA-RNG PIC 9(02). ! -579300* RANG ! -579400 07 WS-4DCO-4DJA-STOCK-CPT. ! -579500 09 WS-4DCO-4DJA-CPT OCCURS 78. ! -579600* COMPTE ! -579700 11 WS-4DCO-4DJA-RAC PIC X(07). ! -579800* RACINE ! -579900 11 WS-4DCO-4DJA-CLE-RAC PIC X(01). ! -580000* CLE ! -580100 11 WS-4DCO-4DJA-RNG-CPT PIC X(02). ! -580200* RANG ! -580300* ! -580400 07 WS-4DCO-4DJA-STOCK-POL REDEFINES ! -580500 WS-4DCO-4DJA-STOCK-CPT. ! -580600 09 WS-4DCO-4DJA-POL OCCURS 78. ! -580700* POLICE 9 CAR ! -580800 11 WS-4DCO-4DJA-NOPOL PIC X(08). ! -580900* NO POLICE ! -581000 11 WS-4DCO-4DJA-CLEPOL PIC X(01). ! -581100* CLE POLICE ! -581200 09 FILLER PIC X(78). ! -581300* ! -581400 05 FILLER PIC X(0316). ! -581500* FILLER DE WS-4DCO-ANOMALIE ! -581600***************************************************************** ! -581700* ! -581800*================================================================ ! -581900*= APPLICATION : EDITION DE FIN D ANNEE = ! -582000*================================================================ ! -582100 03 WS-4DCO-4E REDEFINES WS-4DCO-PROGRAM. ! -582200* ============ ! -582300* ------------------------------------------------------ * ! -582400* COMMAREA : EDITION DE FIN D ANNEE * ! -582500* LONGUEUR : 1800 * ! -582600* PREFIXE : WS-4DCO-4E * ! -582700* ------------------------------------------------------ * ! -582800 ! -582900 05 WS-4DCO-4E-CD-DOC PIC X(05). ! -583000* CODE DOCUMENT ('CF ','IFU ', OU 'RDC ') ! -583100 05 WS-4DCO-4E-NOM-USU-PSE PIC X(32). ! -583200* NOM USUEL PERSONNE DU CONTRAT ! -583300 05 WS-4DCO-4E-CLE . ! -583400* STOCKAGE CLE FICHIER ANOMALIE ! -583500* STUCTURE = CODE PARTENAIRE, STRUCTURE DISTRIBUTION ! -583600* NUMERO DE COMPTE EDIT RANG ! -583700 10 WS-4DCO-4E-CD-PTN PIC X(05). ! -583800 10 WS-4DCO-4E-NO-STR-DIS PIC X(06). ! -583900 10 WS-4DCO-4E-NUM-CPT PIC X(20). ! -584000 10 WS-4DCO-4E-RANG PIC X(02). ! -584100 10 FILLER PIC X(01). ! -584200* ! -584300 05 WS-4DCO-4E-ENR PIC X(1300). ! -584400* STOCKAGE ENREGISTREMENT ANOMALIE POUR CORRECTION ! -584500 05 WS-4DCO-4E050-LIBELLES REDEFINES WS-4DCO-4E-ENR. ! -584600* LIBELLES A TRANSMETTRE POUR EDITION CERT FISCAUX ! -584700 10 WS-4DCO-4E050-NO-FDS-PG PIC X(4). ! -584800* NUMERO DE FOND DE PAGE ! -584900 10 WS-4DCO-4E050-LIBELLE-PRODUIT PIC X(32). ! -585000* LIBELLE DU PRODUIT ! -585100 10 WS-4DCO-4E050-LIBELLE-NOM-PTN PIC X(50). ! -585200* NOM DU PARTENAIRE ! -585300 10 WS-4DCO-4E050-LIBELLE-SPECIAL PIC X(16). ! -585400* LIBELLE SPECIAL (RENTE SURVIE OU EPARGNE HANDICAP ! -585500 10 WS-4DCO-4E050-LIBELLE-BENEF PIC X(80). ! -585600* LIBELLE BENEF SI RENTE SURVIE ! -585700 10 WS-4DCO-4E050-COMMENT-PRIME-1 PIC X(80). ! -585800* COMMENTAIRE PRIME LIGNE 1 ! -585900 10 WS-4DCO-4E050-COMMENT-PRIME-2 PIC X(80). ! -586000* COMMENTAIRE PRIME LIGNE 2 ! -586100 10 WS-4DCO-4E050-COMMENT-CF-1 PIC X(80). ! -586200* COMMENTAIRE PRIME CERT FISCAUX LIGNE 1 ! -586300 10 WS-4DCO-4E050-COMMENT-CF-2 PIC X(80). ! -586400* COMMENTAIRE PRIME CERT FISCAUX LIGNE 2 ! -586500 10 WS-4DCO-4E050-DAT-EDI PIC X(10). ! -586600* DATE D'EDITION ! -586700 10 FILLER PIC X(788). ! -586800*** ZONE POUR REEDITION DES IMPRIMMES ! -586900 05 WS-4DCO-4E020-LIBELLES REDEFINES WS-4DCO-4E-ENR. ! -587000 10 WS-4DCO-4E020-CD-CHOIX PIC X(1). ! -587100* CHOIX IMPRESSION TOUS LES CONTRATS OU NON ! -587200 10 WS-4DCO-4E020-NB-CPT PIC 99. ! -587300* NOMBRE DE CONTRATS A IMPRIMER ! -587400 10 WS-4DCO-4E020-LISTE-CPT. ! -587500 12 WS-4DCO-4E020-LISTE OCCURS 11. ! -587600* CLES DES CONTRATS A IMPRIMER ! -587700 15 WS-4DCO-4E020-NUM-CPT PIC X(20). ! -587800 15 WS-4DCO-4E020-RANG PIC X(2). ! -587900 10 WS-4DCO-4E020-PAGE-SUIV PIC X. ! -588000 10 FILLER PIC X(1054). ! -588100*** ZONE POUR REEDITION RDC PREVI-OPTIONS ! -588200 05 WS-4DCO-4E090-LIBELLES REDEFINES WS-4DCO-4E-ENR. ! -588300 10 WS-4DCO-4E090-CD-CHOIX PIC X(1). ! -588400* CHOIX IMPRESSION TOUS LES CONTRATS OU NON ! -588500 10 WS-4DCO-4E090-NB-CPT PIC 99. ! -588600* NOMBRE DE CONTRATS A IMPRIMER ! -588700 10 WS-4DCO-4E090-LISTE-CPT. ! -588800 12 WS-4DCO-4E090-LISTE OCCURS 11. ! -588900* CLES DES CONTRATS A IMPRIMER ! -589000 15 WS-4DCO-4E090-CD-PTN PIC X(5). ! -589100 15 WS-4DCO-4E090-CD-PRD PIC X(2). ! -589200 15 WS-4DCO-4E090-DAT-EDI PIC X(8). ! -589300 15 WS-4DCO-4E090-NUM-CPT PIC X(20). ! -589400 15 WS-4DCO-4E090-CD-TY-DOC PIC X(5). ! -589500 10 WS-4DCO-4E090-PAGE-SUIV PIC X. ! -589600 10 FILLER PIC X(856). ! -589700 05 WS-4DCO-4E800-LIBELLES REDEFINES WS-4DCO-4E-ENR. ! -589800 10 WS-4DCO-4E800-CD-CHOIX PIC X(1). ! -589900* CHOIX IMPRESSION TOUS LES CONTRATS OU NON ! -590000 10 WS-4DCO-4E800-NB-CPT PIC 99. ! -590100* NOMBRE DE CONTRATS A IMPRIMER ! -590200 10 WS-4DCO-4E800-PAGE-SUIV PIC X. ! -590300 10 WS-4DCO-4E800-SEL PIC X. ! -590400 10 WS-4DCO-4E800-LISTE-CPT. ! -590500 12 WS-4DCO-4E800-LISTE OCCURS 11. ! -590600* CLES DES CONTRATS A IMPRIMER ! -590700 15 WS-4DCO-4E800-NO-PSE PIC 9(8). ! -590800 15 WS-4DCO-4E800-LIB-NOM-PRN PIC X(32). ! -590900 15 WS-4DCO-4E800-CD-ANO PIC X(2). ! -591000 10 WS-4DCO-4E800-SV-LIGN. ! -591100 12 WS-4DCO-4E800-LIB-ACT PIC X(79). ! -591200 12 WS-4DCO-4E800-TAB OCCURS 10. ! -591300 15 WS-4DCO-4E800-CD-ACTION PIC X(01). ! -591400 12 WS-4DCO-4E800-NB-ACT PIC 9(02). ! -591500 12 WS-4DCO-4E800-CD-AUT PIC X(01). ! -591600 10 FILLER PIC X(741). ! -591700 05 WS-4DCO-4E-SEL. ! -591800 10 WS-4DCO-4E-SELOP PIC X(01) OCCURS 14. ! -591900* STOCKAGE SELECTION ! -592000 05 WS-4DCO-4E-CODE-ADRESSE PIC X. ! -592100 05 WS-4DCO-4E-NOM-BENEF PIC X(32). ! -592200 05 WS-4DCO-4E-PAGE-NUMBER-SAVE PIC 99. ! -592300 05 WS-4DCO-4E-NB-PAGES PIC 99. ! -592400 05 WS-4DCO-4E-PAGE-AREA PIC X(200). ! -592500* COMMAREA SAUVEGARDE LIST ! -592600*** 4E010 : ZONES SAUVEGARDE SAISIE COMPTE OU CLIENT ! -592700*** AU NIVEAU DU MENU ! -592800 05 WS-4DCO-4E010-NUM-CPT PIC X(20). ! -592900 05 WS-4DCO-4E010-NO-PSE PIC X(8). ! -593000*** 4E070 : ZONES SAUVEGARDES - CORRECTION DES RDC ! -593100 05 WS-4DCO-4E070-NB-LIGNE PIC 9(02). ! -593200 05 WS-4DCO-4E070-NAME-TS PIC X(8). ! -593300 05 WS-4DCO-4E070-NB-OCC-RES PIC 9(04). ! -593400*** 4E010 : ZONES SAUVEGARDE CHOIX PUC ! -593500 05 WS-4DCO-4E010-PUC PIC X(1). ! -593600** 4E050 ! -593700 05 WS-4DCO-ANC-SAISIE PIC X(1). ! -593800 05 WS-4DCO-4E-MONTANT-9 PIC 9(15). ! -593900 05 FILLER PIC X(0119). ! -594000* FILLER DE WS-4DCO-4E ! -594100* ! -594200*================================================================ ! -594300*= APPLICATION : EDITION DES DAMIERS CUMULES = ! -594400*================================================================ ! -594500 03 WS-4DCO-DAM REDEFINES WS-4DCO-PROGRAM. ! -594600* ============ ! -594700* ------------------------------------------------------ * ! -594800* COMMAREA : EDITION DES DAMIERS CUMULES * ! -594900* LONGUEUR : 1800 * ! -595000* PREFIXE : WS-4DCO-DAM * ! -595100* ------------------------------------------------------ * ! -595200 ! -595300 05 WS-4DCO-DAM-LI-ECR PIC X(32). ! -595400* LIBELLE ECRAN ! -595500 05 WS-4DCO-DAM-CD-APPL PIC X(02). ! -595600* CODE APPLICATION ! -595700 05 WS-4DCO-DAM-LI-APPL PIC X(32). ! -595800* LIBELLE APPLICATION ! -595900 05 WS-4DCO-DAM-CD-PTN PIC X(05). ! -596000* CODE PARTENAIRE ! -596100 05 WS-4DCO-DAM-NOM-PTN PIC X(32). ! -596200* NOM PARTENAIRE ! -596300 05 WS-4DCO-DAM-CD-PRD PIC X(02). ! -596400* CODE PRODUIT ! -596500 05 WS-4DCO-DAM-LI-PRD PIC X(32). ! -596600* CODE PRODUIT ! -596700 05 WS-4DCO-DAM-NO-GEN PIC X(03). ! -596800* CODE PRODUIT ! -596900 05 WS-4DCO-DAM-CD-RGP PIC X(03). ! -597000* CODE REGROUPEMENT ! -597100 05 WS-4DCO-DAM-LI-RGP PIC X(32). ! -597200* LIBELLE REGROUPEMENT ! -597300 05 WS-4DCO-DAM-NO-TY-PRD PIC 9(02). ! -597400* NUMERO TYPE PRODUIT ! -597500 05 WS-4DCO-DAM-REVAL OCCURS 4. ! -597600* ANNEE ET TAUX DE REVALORISATION ! -597700 10 WS-4DCO-DAM-AN-CLOT PIC X(04). ! -597800 10 WS-4DCO-DAM-TX-REVAL PIC 9(03)V9(03). ! -597900 05 WS-4DCO-DAM-TY-TRT PIC 9. ! -598000* TYPE TRAITEMENT ! -598100 88 DAMIER-APPLICATION VALUE 1. ! -598200 88 DAMIER-PARTICULIER VALUE 2. ! -598300 88 DAMIER-REGROUPE VALUE 3. ! -598400 05 WS-4DCO-DAM-TY-DAM PIC 9. ! -598500* TYPE DAMIER ! -598600 88 DAMIER-PRODUCTION VALUE 1. ! -598700 88 DAMIER-AVANCES VALUE 2. ! -598800 05 FILLER PIC X(1581). ! -598900 ! -599000*================================================================ ! -599100*= APPLICATION : GESTION DES CALENDRIERS PUC = ! -599200*================================================================ ! -599300 03 WS-4DCO-4DNE REDEFINES WS-4DCO-PROGRAM. ! -599400* ============ ! -599500* ------------------------------------------------------ * ! -599600* COMMAREA : GESTION DES CALENDRIERS PREVI-OPTION * ! -599700* LONGUEUR : 1800 * ! -599800* PREFIXE : WS-4DCO-4DNE * ! -599900* ------------------------------------------------------ * ! -600000 ! -600100 05 WS-4DCO-4DNE-COMMA. ! -600200* ZONNE DE COMMAREA POUR LE P4DQB0 ! -600300 07 WS-4DCO-4DNE-ANNEE PIC 9(4). ! -600400* ANNEE SAISIE ! -600500 07 WS-4DCO-4DNE-CHOIX PIC XX. ! -600600* CHOIX CALENDRIER ! -600700 07 WS-4DCO-4DNE-LIBEL PIC X(25). ! -600800* LIBELLE CALENDRIER ! -600900 07 WS-4DCO-4DNE-MESS PIC X(32). ! -601000* MESSAGE ! -601100 07 WS-4DCO-4DNE-MOD PIC X. ! -601200* MODIF ! -601300 07 WS-4DCO-4DNE-SUP PIC X. ! -601400* SUPPRESSION ! -601500 07 WS-4DCO-4DNE-CRE PIC X. ! -601600* CREATION ! -601700 07 WS-4DCO-4DNE-ENT PIC X. ! -601800* ENTETE ! -601900 07 WS-4DCO-4DNE-NUMJJ PIC 99. ! -602000* NUMJJ-RET ! -602100 07 WS-4DCO-4DNE-NBJ PIC 999. ! -602200* NBJ-RET ! -602300 07 FILLER PIC X(27). ! -602400 07 WS-4DCO-4DNE-RETOUR PIC X. ! -602500* RETOUR DU P4DQB0 ! -602600* ! -602700* ! -602800 05 WS-4DCO-4DNE-ZONE-SAISIE. ! -602900 07 WS-4DCO-4DNE-CAL PIC 9(2). ! -603000* NUMERO DU CALENDRIER ! -603100 07 WS-4DCO-4DNE-LIB-CAL PIC X(25). ! -603200* LIBELLE DU CALENDRIER ! -603300 07 WS-4DCO-4DNE-NB-UTI-RUB PIC 9(6). ! -603400* NOMBRE D UTILISATION DE LA RUBRIQUE ! -603500 07 FILLER PIC X(67). ! -603600 ! -603700* SAUVEGARDE DES NUMEROS DE CAL POUR LESQUELLES LA ! -603800* VISU DU DETAIL EST DEMANDEE ! -603900 ! -604000 05 WS-4DCO-4DNE-SAUV-ACT-DETAIL. ! -604100 07 WS-4DCO-4DNE-SAUV-ACT-CAL PIC 9(2) OCCURS 14. ! -604200 07 WS-4DCO-4DNE-SAUV-ACT-LIB PIC X(25) OCCURS 14. ! -604300* ! -604400 05 WS-4DCO-4DNE-SAUV-ACT-NB PIC 9(2). ! -604500* NOMBRE D ACTIONS A TRAITER ! -604600 05 WS-4DCO-4DNE-SAUV-ACT-TRT PIC 9(2). ! -604700* NOMBRE D ACTIONS TRAITEES ! -604800 ! -604900 05 WS-4DCO-4DNE-TYP-ACTION PIC X. ! -605000 88 MODIFICATION VALUE 'M'. ! -605100 88 ANNULATION VALUE 'D'. ! -605200 ! -605300* ZONNE DE PAGINATION ! -605400 05 WS-4DCO-4DNE-NB-PAG-TS PIC 9(02). ! -605500 05 WS-4DCO-4DNE-SAUV-PAGE-AREA PIC X(160). ! -605600 ! -605700* FILLER DE RESERVE ! -605800 05 FILLER PIC X(1055). ! -605900 ! -606000*================================================================ ! -606100*= APPLICATION : CONSOLIDATION SUPPORTS = ! -606200*================================================================ ! -606300 03 WS-4DCO-4DNF REDEFINES WS-4DCO-PROGRAM. ! -606400* ============ ! -606500* ------------------------------------------------------ * ! -606600* COMMAREA : CONSOLIDATION SUPPORTS ! -606700* LONGUEUR : 1800 * ! -606800* PREFIXE : WS-4DCO-4DNF * ! -606900* ------------------------------------------------------ * ! -607000 ! -607100* SAUVEGARDE DES NUMEROS DE SUPPORT DONT LA ! -607200* VISU DU DETAIL EST DEMANDEE ! -607300 ! -607400 05 WS-4DCO-4DNF-ACT-DETAIL. ! -607500 07 WS-4DCO-4DNF-NO-SPP-FNC-DTL ! -607600 PIC 9(6) COMP-3 OCCURS 14. ! -607700 07 WS-4DCO-4DNF-NO-CAL-DTL ! -607800 PIC X(2) OCCURS 14. ! -607900 07 WS-4DCO-4DNF-LIB-SPP-DTL ! -608000 PIC X(32) OCCURS 14. ! -608100 ! -608200* SAUVEGARDE DES NUMEROS DE SUPPORT DONT LA ! -608300* MODIF DU DETAIL EST DEMANDEE ! -608400* ! -608500 05 WS-4DCO-4DNF-ACT-MODIF REDEFINES ! -608600 WS-4DCO-4DNF-ACT-DETAIL. ! -608700 07 WS-4DCO-4DNF-NO-SPP-FNC-MOD ! -608800 PIC 9(6) COMP-3 OCCURS 14. ! -608900 07 WS-4DCO-4DNF-NO-CAL-MOD ! -609000 PIC X(2) OCCURS 14. ! -609100 07 WS-4DCO-4DNF-LIB-SPP-MOD ! -609200 PIC X(32) OCCURS 14. ! -609300 ! -609400* SAUVEGARDE DES NUMEROS DE SUPPORT DONT L'AJOUT ! -609500* DE MVT MANUELS EST DEMANDEE ! -609600* ! -609700 05 WS-4DCO-4DNF-ACT-AJOUT REDEFINES ! -609800 WS-4DCO-4DNF-ACT-DETAIL. ! -609900 07 WS-4DCO-4DNF-NO-SPP-FNC-AJT ! -610000 PIC 9(6) COMP-3 OCCURS 14. ! -610100 07 WS-4DCO-4DNF-NO-CAL-AJT ! -610200 PIC X(2) OCCURS 14. ! -610300 07 WS-4DCO-4DNF-LIB-SPP-AJT ! -610400 PIC X(32) OCCURS 14. ! -610500* ! -610600 05 WS-4DCO-4DNF-DA-CSL-SPP-FNC PIC X(8). ! -610700 05 WS-4DCO-4DNF-NO-SPP-FNC PIC 9(6). ! -610800 05 WS-4DCO-4DNF-NO-CAL PIC X(2). ! -610900 05 WS-4DCO-4DNF-LIB-SPP PIC X(32). ! -611000 ! -611100 05 WS-4DCO-4DNF-ACT-NB PIC 9(2). ! -611200* NOMBRE D ACTIONS A TRAITER ! -611300 05 WS-4DCO-4DNF-ACT-TRT PIC 9(2). ! -611400* NOMBRE D ACTIONS TRAITEES ! -611500 ! -611600 05 WS-4DCO-4DNF-TYP-ACTION PIC X. ! -611700 88 ENAJOUT VALUE 'A'. ! -611800 88 ENMODIF VALUE 'M'. ! -611900 88 ENVISU VALUE 'D'. ! -612000 ! -612100* ZONE DE PAGINATION ! -612200 05 WS-4DCO-4DNF-NB-PAG-TS PIC 9(02). ! -612300 05 WS-4DCO-4DNF-PAGE-AREA PIC X(160). ! -612400 05 wS-4DCO-4DNF-IDC-OCC-SPL pic x(1). ! -612500 ! -612600 05 WS-4DCO-4DNG-ENR. ! -612700 10 WS-4DCO-4DNF-MT-ORD-ACH PIC S9(13)V99 COMP-3. ! -612800 10 WS-4DCO-4DNF-NB-PART-VTE PIC 9(11)V9(4) COMP-3. ! -612900 10 WS-4DCO-4DNF-NB-OPE-ORD-ACH PIC 9(7) COMP-3. ! -613000 10 WS-4DCO-4DNF-NB-OPE-ORD-VTE PIC 9(7) COMP-3. ! -613100 10 WS-4DCO-4DNF-NB-CTR-ORD-ACH PIC 9(7) COMP-3. ! -613200 10 WS-4DCO-4DNF-NB-CTR-ORD-VTE PIC 9(7) COMP-3. ! -613300 05 WS-4DCO-4DNG-ZONE-SAISIE. ! -613400 10 WS-4DCO-4DNF-MT PIC S9(13)V99 COMP-3. ! -613500 10 WS-4DCO-4DNF-NB PIC 9(11)V9(04) COMP-3. ! -613600 05 WS-4DCO-4DNG-INDIC PIC 9. ! -613700* FILLER DE RESERVE ! -613800 05 FILLER PIC X(1003). ! -613900 ! -614000*================================================================ ! -614100*= APPLICATION : ENREGISTREMENT DES VALEURS LIQUIDATIVES = ! -614200*================================================================ ! -614300 03 WS-4DCO-4DNI REDEFINES WS-4DCO-PROGRAM. ! -614400* ============ ! -614500* ------------------------------------------------------ * ! -614600* COMMAREA : ENREGISTREMENT DES VL ! -614700* LONGUEUR : 1800 * ! -614800* PREFIXE : WS-4DCO-4DNI * ! -614900* ------------------------------------------------------ * ! -615000 ! -615100* -- 1ER ECRAN. SAUVEGARDE DES DONNEES A PASSER AU 2EME ECRAN ! -615200 05 WS-4DCO-4DNI-ACT-SAUVE. ! -615300 07 WS-4DCO-4DNI-NO-SPP-FNC ! -615400 PIC 9(6) COMP-3 OCCURS 14. ! -615500 07 WS-4DCO-4DNI-CD-VLR ! -615600 PIC X(12) OCCURS 14. ! -615700 07 WS-4DCO-4DNI-LIB-SPP ! -615800 PIC X(32) OCCURS 14. ! -615900 07 WS-4DCO-4DNI-CD-TY-VLR ! -616000 PIC X(01) OCCURS 14. ! -616100 07 WS-4DCO-4DNI-NO-CAL ! -616200 PIC X(2) OCCURS 14. ! -616300 07 WS-4DCO-4DNI-DEL-ENV-ORD ! -616400 PIC S9(3) COMP-3 OCCURS 14. ! -616500 07 WS-4DCO-4DNI-CD-TY-SPP ! -616600 PIC X(01) OCCURS 14. ! -616700* ! -616800 05 WS-4DCO-4DNI-ACT-NB PIC 9(2). ! -616900* NOMBRE D ACTIONS A TRAITER ! -617000 05 WS-4DCO-4DNI-ACT-TRT PIC 9(2). ! -617100* NOMBRE D ACTIONS TRAITEES ! -617200 ! -617300* ZONE DE PAGINATION ! -617400 05 WS-4DCO-4DNi-IDC-OCC-SPL pic x(1). ! -617500 05 WS-4DCO-4DNI-NB-PAG-TS PIC 9(02). ! -617600 05 WS-4DCO-4DNI-PAGE-AREA PIC X(160). ! -617700* ! -617800 05 WS-4DCO-4DNI-SUITE PIC 9. ! -617900* INDICATEUR MEME PROGRAMME MAIS ENREG SUIVANT ! -618000* ! -618100* CLE DE REPOSITIONNEMENT ! -618200 05 WS-4DCO-4DNI-NO-SUP-FNC PIC X(0006). ! -618300 ! -618400* -- 2ER ECRAN. SAUVEGARDE DES DONNEES A PASSER AU 3EME ECRAN ! -618500 05 WS-4DCO-4DNJ-ACT-SAUVE. ! -618600 07 WS-4DCO-4DNJ-DA-VLR-LIQ ! -618700 PIC X(8) OCCURS 12. ! -618800 07 WS-4DCO-4DNJ-MT-VLR-LIQ-A ! -618900 PIC S9(13)V99 COMP-3 OCCURS 12. ! -619000 07 WS-4DCO-4DNJ-MT-VLR-LIQ-V ! -619100 PIC S9(13)V99 COMP-3 OCCURS 12. ! -619200 07 WS-4DCO-4DNJ-NB-PART-SURA ! -619300 PIC 9(11)V9(4) COMP-3 OCCURS 12. ! -619400 07 WS-4DCO-4DNJ-MT-GLB-ORD-ACH ! -619500 PIC S9(13)V99 COMP-3 OCCURS 12. ! -619600 07 WS-4DCO-4DNJ-NB-PART-VTE ! -619700 PIC 9(11)V9(4) COMP-3 OCCURS 12. ! -619800 07 WS-4DCO-4DNJ-MT-GLB-ORD-VTE ! -619900 PIC S9(13)V99 COMP-3 OCCURS 12. ! -620000* ! -620100 05 WS-4DCO-4DNJ-ACT-NB PIC 9(2). ! -620200* NOMBRE D ACTIONS A TRAITER ! -620300 05 WS-4DCO-4DNJ-ACT-TRT PIC 9(2). ! -620400* NOMBRE D ACTIONS TRAITEES ! -620500 ! -620600* TYPE D'ACTION SUR L'ECRAN MC4DNK0 ! -620700 05 WS-4DCO-4DNK-TYP-ACTION PIC X. ! -620800 88 4DNK-ENAJOUT VALUE 'A'. ! -620900 88 4DNK-ENVISU VALUE 'D'. ! -621000 88 4DNK-ENMODIF VALUE 'M'. ! -621100 88 4DNK-ENCONF VALUE 'C'. ! -621200 88 4DNK-ENTOLER VALUE 'T'. ! -621300 88 4DNK-ENSUPPR VALUE 'S'. ! -621400 ! -621500* SAUVEGARDE DES ZONES SAISIES ! -621600 05 WS-4DCO-4DNK-VLAC PIC S9(13)V99 COMP-3. ! -621700 05 WS-4DCO-4DNK-VLVC PIC S9(13)V99 COMP-3. ! -621800* ! -621900 05 WS-4DCO-4DNK-ACTION PIC X. ! -622000* ZONE DE PAGINATION ! -622100 05 WS-4DCO-4DNM. ! -622200 07 WS-4DCO-4DNM-IDC-OCC-SPL PIC X(001). ! -622300 07 WS-4DCO-4DNM-NB-PAG-TS PIC 9(02). ! -622400 07 WS-4DCO-4DNM-PAGE-AREA PIC X(160). ! -622500* CLE DE REPOSITIONNEMENT ! -622600 07 WS-4DCO-4DNM-DA-VLR-LIQ PIC X(0008). ! -622700* FILLER DE RESERVE ! -622800 05 FILLER PIC X(0004). ! -622900 ! -623000 ! -623100*================================================================ ! -623200*= APPLICATION : GESTION TAUX PAR TRANCHES = ! -623300*================================================================ ! -623400 03 WS-4DCO-4DDA REDEFINES WS-4DCO-PROGRAM. ! -623500* ============ ! -623600* ------------------------------------------------------ * ! -623700* COMMAREA : TAUX PAR TRANCHES ! -623800* LONGUEUR : 1800 * ! -623900* PREFIXE : WS-4DCO-4DDA * ! -624000* ------------------------------------------------------ * ! -624100 ! -624200 05 WS-4DCO-4DDA-TOPMODIF PIC 9. ! -624300* INDIC MAJ COMMAREA PARTENAIRE ! -624400* -- 1ER ECRAN. SAUVEGARDE DES DONNEES A PASSER AU 2EME ECRAN ! -624500 05 WS-4DCO-4DDA-TY-TAUX PIC 9. ! -624600* TYPE DE TAUX CHOISI ! -624700* -- 2EM ECRAN. MAJ DES TAUX PAR TRANCHES ! -624800 05 WS-4DCO-4DDA-NB-OCC PIC 99. ! -624900* NOMBRE DE TAUX PAR TRANCHE TROUVE ! -625000 05 WS-4DCO-4DDA-INITECR PIC X. ! -625100* INITIALISATION DE L'ECRAN ! -625200 05 WS-4DCO-4DDA-ACTION PIC X. ! -625300 88 4DDA-CREAT VALUE ' '. ! -625400 88 4DDA-MODIF VALUE 'M'. ! -625500 88 4DDA-SUPPR VALUE 'A'. ! -625600* ACTION SAISIE (MAJ,SUP,CREATION) ! -625700 05 WS-4DCO-4DDA-TESTMAJ PIC X. ! -625800* TOP INDIC ECRAN MODE MAJ ! -625900 05 WS-4DCO-4DDA-ITEM PIC 99. ! -626000* NO DE L'ITEM SELECTIONNEE ! -626100 05 WS-4DCO-4DDA-TRANCHE. ! -626200* INFOS DE LA TRANCHE EN COURS DE (CREAT, MAJ, SUP) ! -626300 10 WS-4DCO-4DDA-TMSTP PIC X(26). ! -626400* TIMESTAMP DE LA TRANCHE (MAJ ET SUP) ! -626500 10 WS-4DCO-4DDA-TX-POSS PIC 9(3)V9(4) COMP-3. ! -626600* TAUX DE LA TRACHE ! -626700 10 WS-4DCO-4DDA-MT-MIN PIC 9(13)V99 COMP-3. ! -626800* MONTANT MINIMUM ! -626900 10 WS-4DCO-4DDA-MT-MAX PIC 9(13)V99 COMP-3. ! -627000* MONTANT MAXIMUM ! -627100 ! -627200 05 FILLER PIC X(1745). ! -627300 ! -627400*================================================================ ! -627500*= APPLICATION : AUTRES DEROGATIONS TAUX PAR TRANCHE = ! -627600*================================================================ ! -627700 03 WS-4DCO-4DDD REDEFINES WS-4DCO-PROGRAM. ! -627800* ============ ! -627900* ------------------------------------------------------ * ! -628000* COMMAREA : AUTRES DEROGATIONS * ! -628100* LONGUEUR : 1800 * ! -628200* PREFIXE : WS-4DCO-4DDD * ! -628300* ------------------------------------------------------ * ! -628400 ! -628500 05 WS-4DCO-4DDD-TOPMODIF PIC 9. ! -628600* INDIC MAJ COMMAREA PARTENAIRE ! -628700 05 WS-4DCO-4DDD-NB-OCC PIC 99. ! -628800* NBRE OCCURENCES SELECTIONNEES ! -628900 ! -629000* -- 1ER ECRAN. SAUVEGARDE DES DONNEES TAUX HORS TRANCHE ! -629100 05 WS-4DCO-4DDD-ACT-SAUVE. ! -629200 07 WS-4DCO-4DDD-TM-STP PIC X(26). ! -629300 07 WS-4DCO-4DDD-NO-PTN PIC 9(3) COMP-3. ! -629400 07 WS-4DCO-4DDD-NO-CTR-PTN PIC X(15). ! -629500 07 WS-4DCO-4DDD-DA-OPE PIC X(10). ! -629600 07 WS-4DCO-4DDD-NO-OPE-TX PIC 9(3) COMP-3. ! -629700 07 WS-4DCO-4DDD-NO-PRD-PTN PIC 9(3) COMP-3. ! -629800 07 WS-4DCO-4DDD-NO-STR-DIS PIC X(6). ! -629900 07 WS-4DCO-4DDD-MT-BRT-OPE PIC S9(13)V9(2) COMP-3. ! -630000 07 WS-4DCO-4DDD-TY-TX PIC X. ! -630100 07 WS-4DCO-4DDD-TX-TCH-DRG PIC S9(3)V9(4) COMP-3. ! -630200 07 WS-4DCO-4DDD-CD-MAJ PIC X. ! -630300 07 WS-4DCO-4DDD-DA-MAJ PIC X(8). ! -630400 07 WS-4DCO-4DDD-TXT-CMT. ! -630500 09 WS-4DCO-4DDD-LIB-ETA-1 PIC X(70). ! -630600 09 WS-4DCO-4DDD-LIB-ETA-2 PIC X(70). ! -630700 09 WS-4DCO-4DDD-LIB-ETA-3 PIC X(70). ! -630800 09 WS-4DCO-4DDD-LIB-ETA-4 PIC X(70). ! -630900 09 WS-4DCO-4DDD-LIB-ETA-5 PIC X(70). ! -631000* ! -631100* TYPE D'ACTION SUR L'ECRAN MC4DDD0 ! -631200 05 WS-4DCO-4DDD-TYP-ACTION PIC X. ! -631300 88 4DDD-CREAT VALUE 'W'. ! -631400 88 4DDD-MODIF VALUE 'M'. ! -631500 88 4DDD-SUPP VALUE 'A'. ! -631600 88 4DDD-VISU VALUE 'C'. ! -631700* ! -631800 05 WS-4DCO-4DDD-ACTION PIC X. ! -631900 88 4DDD-CONSULTATION VALUE 'C'. ! -632000 88 4DDD-MODIFICATION VALUE 'M'. ! -632100* ! -632200 05 WS-4DCO-4DDD-PARA. ! -632300* REPRISE DES INFOS DE WS-4DCO-4DAB UTILISEES PAR ! -632400* LES TRANSACTIONS TC4DCE0 ET TC4DCF0 ! -632500 07 WS-4DCO-4DDD-TIMESTAMP1 PIC X(26). ! -632600 07 WS-4DCO-4DDD-MT-MIN-VER-INI PIC S9(07)V99 COMP-3. ! -632700 07 WS-4DCO-4DDD-MT-MIN-VER-EXC PIC S9(07)V99 COMP-3. ! -632800 07 WS-4DCO-4DDD-MT-MX-DRT-ENT PIC S9(07)V99 COMP-3. ! -632900 07 WS-4DCO-4DDD-MT-MIN-RCH-PART ! -633000 PIC S9(07)V99 COMP-3. ! -633100 07 WS-4DCO-4DDD-MT-MIN-EPG-RST PIC S9(07)V99 COMP-3. ! -633200 07 WS-4DCO-4DDD-MT-MIN-AV PIC S9(13)V99 COMP-3. ! -633300 07 WS-4DCO-4DDD-MT-EPG-RST-AV PIC S9(13)V99 COMP-3. ! -633400 07 WS-4DCO-4DDD-TX-MX-EPG-DSP PIC S9(03)V999 COMP-3. ! -633500 07 WS-4DCO-4DDD-NB-MX-AV-A PIC S9(02) COMP-3. ! -633600 07 WS-4DCO-4DDD-IDC-PRD-MTL PIC X(01). ! -633700 07 WS-4DCO-4DDD-AGE-MIN PIC S9(02) COMP-3. ! -633800 07 WS-4DCO-4DDD-MT-MIN-VER PIC S9(07)V99 COMP-3. ! -633900 ! -634000 05 WS-4DCO-4DDD-EXT-POL PIC X(09). ! -634100 05 WS-4DCO-4DDD-NO-STR-CLE PIC X(06). ! -634200 05 WS-4DCO-4DDD-POSIT PIC X. ! -634300 05 WS-4DCO-4DDD-PAGE-SUIV PIC X. ! -634400* FILLER DE RESERVE X(1262) ! -634500*= SOUS-APPLICATION : SAISIE DES ASSOCIATIONS : 400 DE LONG = ! -634600 05 WS-4DCO-4DDG-ECRAN. ! -634700 07 WS-4DCO-4DDG-TM-STP PIC X(26). ! -634800 07 WS-4DCO-4DDG-CD-ASS-AS PIC X(03). ! -634900 07 WS-4DCO-4DDG-NOM-PATRO-PR PIC X(32). ! -635000 07 WS-4DCO-4DDG-NOM-PATRO-AS PIC X(32). ! -635100 07 WS-4DCO-4DDG-LIB-ENS-1 PIC X(32). ! -635200 07 WS-4DCO-4DDG-LIB-ENS-2 PIC X(32). ! -635300 07 WS-4DCO-4DDG-LIB-RUE-1 PIC X(32). ! -635400 07 WS-4DCO-4DDG-LIB-RUE-2 PIC X(32). ! -635500 07 WS-4DCO-4DDG-LIB-COMMUNE PIC X(32). ! -635600 07 WS-4DCO-4DDG-CD-POST PIC X(05). ! -635700 07 WS-4DCO-4DDG-LIB-BUR-DIST PIC X(27). ! -635800 07 WS-4DCO-4DDG-NO-TEL PIC X(11). ! -635900* MAX(CD-ASS-AS) POUR INCREMENTATION LORS DE CREATION ! -636000 07 WS-4DCO-4DDG-CD-ASS-MAX PIC 9(03). ! -636100 07 FILLER PIC X(101). ! -636200 05 WS-4DCO-4DDD-AGE-LIM PIC 9(02). ! -636300 05 WS-4DCO-4DDD-MT-MIN-ARBT PIC S9(13)V9(2) COMP-3. ! -636400* FILLER DE RESERVE X(1252) - X(400) ! -636500 05 FILLER PIC X(852). ! -636600*================================================================ ! -636700*= APPLICATION : PREPARATION EDITIONS = ! -636800*================================================================ ! -636900 03 WS-4DCO-SA REDEFINES WS-4DCO-PROGRAM. ! -637000* ============ ! -637100 05 WS-4DCO-SA-ECRAN. ! -637200 10 WS-4DCO-SA-TY-LET PIC X(03). ! -637300 10 WS-4DCO-SA-LIB-DEST PIC X(10). ! -637400 10 WS-4DCO-SA-LIB-PTN PIC X(32). ! -637500 10 WS-4DCO-SA-LIB-CD-INT-D PIC X(32). ! -637600 10 WS-4DCO-SA-NOM-PATRO-D PIC X(32). ! -637700 10 WS-4DCO-SA-NO-ORD-ADR-D PIC 9(02). ! -637800 10 WS-4DCO-SA-LIB-RUE-D1 PIC X(32). ! -637900 10 WS-4DCO-SA-LIB-RUE-D2 PIC X(32). ! -638000 10 WS-4DCO-SA-LIB-COMMUNE-D PIC X(32). ! -638100 10 WS-4DCO-SA-CD-POST-D PIC X(05). ! -638200 10 WS-4DCO-SA-LIB-BUR-DIST-D PIC X(26). ! -638300 10 WS-4DCO-SA-IDC-COP-AVIS-CL PIC X(01). ! -638400 10 WS-4DCO-SA-IDC-COP-AVIS-PT PIC X(01). ! -638500 10 WS-4DCO-SA-IDC-ARC PIC X(01). ! -638600 05 WS-4DCO-SA-CONTROL-TY-LET PIC X(01). ! -638700 88 TYPE-LETTRE-RECHERCHE VALUE 'R'. ! -638800 88 TYPE-LETTRE-TROUVE VALUE 'O'. ! -638900 88 TYPE-LETTRE-NON-TROUVE VALUE 'N'. ! -639000 05 WS-4DCO-SA-TABLE-ADRESSE PIC X(645). ! -639100 05 FILLER REDEFINES ! -639200 WS-4DCO-SA-TABLE-ADRESSE OCCURS 5. ! -639300 10 WS-4DCO-SA-NO-ORD-ADR-POST PIC 9(02). ! -639400 10 WS-4DCO-SA-LIB-RUE-1 PIC X(32). ! -639500 10 WS-4DCO-SA-LIB-RUE-2 PIC X(32). ! -639600 10 WS-4DCO-SA-LIB-COMMUNE PIC X(32). ! -639700 10 WS-4DCO-SA-CD-POST PIC X(05). ! -639800 10 WS-4DCO-SA-LIB-BUR-DIST PIC X(26). ! -639900 05 FILLER REDEFINES ! -640000 WS-4DCO-SA-TABLE-ADRESSE. ! -640100 10 FILLER PIC X(129) OCCURS 4. ! -640200 10 FILLER PIC X(97). ! -640300 10 WS-4DCO-SA-NOM-RETRAITE PIC X(32). ! -640400 05 WS-4DCO-SA-CONTROL-ECRAN PIC X(01). ! -640500 88 OUI-ECRAN-AFFICHE VALUE 'O'. ! -640600 88 NON-ECRAN-AFFICHE VALUE 'N'. ! -640700 05 WS-4DCO-SA-TY-LET-ORIGINE PIC X(03). ! -640800 05 WS-4DCO-SA-TY-LET-EQ-1 PIC X(03). ! -640900 05 WS-4DCO-SA-TY-LET-EQ-2 PIC X(03). ! -641000 05 WS-4DCO-SA-TY-LET-EQ-3 PIC X(03). ! -641100 05 WS-4DCO-SA-TY-LET-EQ-4 PIC X(03). ! -641200 05 WS-4DCO-SA-IDC-PAI-CHQ PIC X(01). ! -641300 05 WS-4DCO-SA-CD-EXP PIC X(01). ! -641400 05 WS-4DCO-SA-CD-TT PIC X(01). ! -641500 05 WS-4DCO-SA-CD-EVE-TY PIC X(06). ! -641600 05 WS-4DCO-SA-LIB-OPE PIC X(32). ! -641700 05 WS-4DCO-SA-IDC-COP-AVIS-S1 PIC X(01). ! -641800 05 WS-4DCO-SA-IDC-COP-AVIS-S2 PIC X(01). ! -641900 05 WS-4DCO-SA-IDC-COP-AVIS-S3 PIC X(01). ! -642000 05 WS-4DCO-SA-LIB-CD-INT PIC X(32). ! -642100 05 WS-4DCO-SA-NOM-PATRO PIC X(32). ! -642200 05 WS-4DCO-SA-TRAN PIC X(04). ! -642300* ZONES POUR LE PROGRAMME TC4DPI0 ! -642400* ! -642500* ZONE DE PAGINATION ! -642600 05 WS-4DCO-SA-4DPI. ! -642700 15 WS-4DCO-4DPI-PAGE. ! -642800 20 WS-4DCO-4DPI-IDC-OCC-SPL PIC X(001). ! -642900 20 WS-4DCO-4DPI-NB-PAG-TS PIC 9(002). ! -643000 20 WS-4DCO-4DPI-SAUV-PAGE-AREA PIC X(198). ! -643100* ACTION SAUVEGARDEE ! -643200 15 WS-4DCO-4DPI-SAUV-ACT PIC X. ! -643300* NOMBRE D'OCCURENCES DE LA LISTE ! -643400 15 WS-4DCO-4DPI-NB-TS-ITEM PIC S9(04) COMP. ! -643500* NUMERO D'ITEM SELECTIONNE ! -643600 15 WS-4DCO-4DPI-NO-ITEM-SEL PIC S9(04) COMP. ! -643700* CLE DE REPOSITIONNEMENT ! -643800 15 WS-4DCO-4DPI-CLE. ! -643900 20 WS-4DCO-4DPI-NO-ETAT-PRIM PIC 9(06). ! -644000 20 WS-4DCO-4DPI-CD-PTN PIC 9(05). ! -644100 20 WS-4DCO-4DPI-CD-MTF-DEM PIC X(02). ! -644200 20 WS-4DCO-4DPI-NO-SEQ-MVT-POS PIC 9(05). ! -644300* CLE DE SAUVEGARDE. ! -644400 15 WS-4DCO-4DPI-SAV-CLE. ! -644500 20 WS-4DCO-4DPI-SAV-PRIM PIC 9(06). ! -644600 20 WS-4DCO-4DPI-SAV-PTN PIC 9(05). ! -644700 20 WS-4DCO-4DPI-SAV-MTF PIC X(02). ! -644800 20 WS-4DCO-4DPI-SAV-NO-POS PIC 9(05). ! -644900* INITIALISATION ECRAN SUIVANT. ! -645000 15 WS-4DCO-4DPI-NOM-PTN PIC X(32). ! -645100 15 WS-4DCO-4DPI-DATE-OPE. ! -645200 20 WS-4DCO-4DPI-AAOPE PIC X(04). ! -645300 20 WS-4DCO-4DPI-MMOPE PIC X(02). ! -645400 20 WS-4DCO-4DPI-JJOPE PIC X(02). ! -645500 15 WS-4DCO-4DPI-MDREGL PIC X(01). ! -645600 15 WS-4DCO-4DPI-NO-RIB-DOM. ! -645700 20 WS-4DCO-4DPI-CD-BQE PIC X(05). ! -645800 20 WS-4DCO-4DPI-CD-GUI PIC X(05). ! -645900 20 WS-4DCO-4DPI-NO-CPT PIC X(11). ! -646000 20 WS-4DCO-4DPI-CLE-RIB PIC X(02). ! -646100 15 WS-4DCO-4DPI-SLD-A-PAYER PIC S9(15)V99 COMP-3. ! -646200*===> variables -4dpj- ! -646300 05 WS-4DCO-SA-4DPJ. ! -646400 15 WS-4DCO-4DPJ-MT-ASST-CRDS PIC S9(13)V99 COMP-3. ! -646500* assiette crds ! -646600 15 WS-4DCO-4DPJ-MT-ASST-CSG PIC S9(13)V99 COMP-3. ! -646700* assiette csg ! -646800 15 WS-4DCO-4DPJ-MT-VER-RDS PIC S9(13)V99 COMP-3. ! -646900* montant crds ! -647000 15 WS-4DCO-4DPJ-MT-CSG PIC S9(13)V99 COMP-3. ! -647100* montant csg ! -647200 15 WS-4DCO-4DPJ-TOT-CRDS-CSG PIC S9(13)V99 COMP-3. ! -647300* cumul montant (crds & csg) ! -647400 15 WS-4DCO-4DPJ-MT-NET PIC S9(13)V99 COMP-3. ! -647500* montant net vers� au client ! -647600 15 WS-4DCO-4DPJ-IDC-DEBL-ATP PIC X. ! -647700* indicateur de d�blocage anticip� ! -647800 15 WS-4DCO-4DPJ-IDC-CRDS PIC X. ! -647900* indicateur de pr�l�vement CRDS & CSG ! -648000 15 WS-4DCO-4DPJ-MDREGL-DA PIC X. ! -648100* mode r�glement compte de passage(dbloc. ant.) ! -648200 15 WS-4DCO-4DPJ-MT-ASST-SOC PIC S9(13)V99 COMP-3. ! -648300* assiette soc ! -648400 15 WS-4DCO-4DPJ-MT-PLV-SOC PIC S9(13)V99 COMP-3. ! -648500* montant prelevement ! -648600* FILLER DE RESERVE ! -648700 05 FILLER PIC X(0401). ! -648800*================================================================ ! -648900*= APPLICATION : SORTIES DE FONDS = ! -649000*================================================================ ! -649100 03 WS-4DCO-ESDF REDEFINES WS-4DCO-PROGRAM. ! -649200* ============ ! -649300* ------------------------------------------------------ * ! -649400* COMMAREA : EDITION SORTIE DE FONDS * ! -649500* LONGUEUR : 1800 * ! -649600* PREFIXE : WS-4DCO-ESDF * ! -649700* ------------------------------------------------------ * ! -649800 05 WS-4DCO-ESDF-NO-ADH PIC X(20). ! -649900* NUMERO D'ADHESION ! -650000 05 WS-4DCO-ESDF-NOM-PATRO PIC X(32). ! -650100* NOM PATRONIMIQUE ! -650200 05 WS-4DCO-ESDF-TY-LET PIC X(03). ! -650300* TYPE DE LETTRE ! -650400 05 WS-4DCO-ESDF-TY-OPE PIC X(06). ! -650500* TYPE D'OPERATION ! -650600 05 WS-4DCO-ESDF-MT-OPE PIC S9(09)V99. ! -650700* TYPE D'OPERATION ! -650800 05 WS-4DCO-ESDF-DA-OPE. ! -650900* DATE DE L'OPERATION ! -651000 07 WS-4DCO-ESDF-DA-OPE-A PIC X(04). ! -651100 07 WS-4DCO-ESDF-DA-OPE-M PIC X(02). ! -651200 07 WS-4DCO-ESDF-DA-OPE-J PIC X(02). ! -651300 05 WS-4DCO-ESDF-NO-CHQ PIC X(07). ! -651400* NUMERO DE CHEQUE ! -651500 05 WS-4DCO-ESDF-AFFICHE PIC X(01). ! -651600* TOP AFFICHAGE ECRAN ! -651700 05 WS-4DCO-F463 PIC X(01). ! -651800* TOP BLOCAGE ECRAN ! -651900 05 WS-4DCO-ESDF-TRAN PIC X(04). ! -652000* TOP BLOCAGE ECRAN ! -652100 05 FILLER PIC X(1707). ! -652200* ! -652300* ! -652400*================================================================ ! -652500*= APPLICATION : TRAITEMENT DES CHEQUES = ! -652600*================================================================ ! -652700 03 WS-4DCO-CHEQ REDEFINES WS-4DCO-PROGRAM. ! -652800* ============ ! -652900* ------------------------------------------------------ * ! -653000* COMMAREA : TRAITEMENT DES CHEQUES * ! -653100* LONGUEUR : 1800 * ! -653200* PREFIXE : WS-4DCO-CHEQ : TOUS PROG GES CHEQUES * ! -653300* WS-4DCO-LOTS : TOUS PROG GES LOTS * ! -653400* WS-4DCO-4DF? : SPECIFIQUES PROGRAM * ! -653500* ------------------------------------------------------ * ! -653600* ==> SAISIE MENUS ! -653700 05 WS-4DCO-CHEQ-NO-LOT PIC 9(3) COMP-3. ! -653800* NUMERO DU LOT ! -653900 05 WS-4DCO-CHEQ-DA-LOT PIC X(10). ! -654000* DATE DU LOT ! -654100* ! -654200* ==> INFORMATIONS D'UN CHEQUE ! -654300 05 WS-4DCO-INFOS-CHEQUE. ! -654400* IMAGE DE V4D01380 ! -654500 10 WS-4DCO-CHEQ-TM-STP PIC X(26). ! -654600* TIME STAMP ! -654700 10 WS-4DCO-CHEQ-DA-CRE-LOT PIC X(10). ! -654800* DATE DE CREATION DU LOT ! -654900 10 WS-4DCO-CHEQ-NO-LOT-CHQ PIC 9(3) COMP-3. ! -655000* NUMERO LOT CHEQUE ! -655100 10 WS-4DCO-CHEQ-NO-ORD-LOT-CHQ PIC 9(3) COMP-3. ! -655200* NUMERO ORDRE LOT CHEQUE ! -655300 10 WS-4DCO-CHEQ-NO-PTN PIC 9(3) COMP-3. ! -655400* NUMERO PARTENAIRE ! -655500 10 WS-4DCO-CHEQ-NO-CTR-PTN PIC X(15). ! -655600* NUMERO CONTRAT PARTENAIRE ! -655700 10 WS-4DCO-CHEQ-CD-VTL PIC X(1). ! -655800* CODE VENTILATION ! -655900 10 WS-4DCO-CHEQ-REM-CHQ PIC S9(13)V9(2) COMP-3. ! -656000* MONTANT REMISE CHEQUE ! -656100 10 WS-4DCO-CHEQ-LIB-ABR-DOM PIC X(6). ! -656200* LIBELLE ABREGE DOMICILIATION ! -656300 10 WS-4DCO-CHEQ-NOM-PATRO PIC X(16). ! -656400* NOM PATRONYMIQUE ! -656500 10 WS-4DCO-CHEQ-DA-OPE-VER PIC X(10). ! -656600* DATE OPERATION VERSEMENT ! -656700 10 WS-4DCO-CHEQ-NO-STR-OPE PIC X(6). ! -656800* NUMERO STRUCTURE OPERATIONNELLE ! -656900 10 WS-4DCO-CHEQ-NO-AGT-OPE PIC X(8). ! -657000* NUMERO AGENT OPERATION ! -657100 10 WS-4DCO-CHEQ-LIB-CPL PIC X(32). ! -657200* LIBELLE COMPLEMENT ! -657300 10 WS-4DCO-CHEQ-CD-MAJ PIC X(1). ! -657400* CODE MAJ ! -657500 10 WS-4DCO-CHEQ-CD-PTN PIC X(5). ! -657600* CODE PERTENAIRE EXTERNE ! -657700 10 WS-4DCO-CHEQ-IDC-PTN-CM PIC X. ! -657800* INDICATEUR PARTENAIRE CREDIT-MUTUEL ! -657900 88 CHEQ-CCM VALUE 'O'. ! -658000 88 CHEQ-EXT VALUE 'N'. ! -658100* ! -658200* ==> INFORMATIONS D'UN LOT ! -658300 05 WS-4DCO-INFOS-LOT. ! -658400* IMAGE DE V4D01390 ! -658500 15 WS-4DCO-LOTS-TM-STP PIC X(26). ! -658600* TIME STAMP ! -658700 15 WS-4DCO-LOTS-DA-CRE-LOT PIC X(10). ! -658800* DATE DE CREATION DU LOT ! -658900 15 WS-4DCO-LOTS-NO-LOT-CHQ PIC 9(3) COMP-3. ! -659000* NUMERO LOT CHEQUE ! -659100 15 WS-4DCO-LOTS-COMPTE. ! -659200* NUMERO DE COMPTE ! -659300 20 WS-4DCO-LOTS-CD-BANQUE PIC X(5). ! -659400* CODE BANQUE ! -659500 20 WS-4DCO-LOTS-CD-GUICHET PIC X(5). ! -659600* CODE GUICHET ! -659700 20 WS-4DCO-LOTS-NO-CPT-RIB PIC X(11). ! -659800* NUMERO COMPTE RIB ! -659900 20 WS-4DCO-LOTS-CLE-RIB PIC X(2). ! -660000* CLE RIB ! -660100 15 WS-4DCO-LOTS-NO-PTN-OP PIC 9(3) COMP-3. ! -660200* NUMERO PARTENAIRE ! -660300 15 WS-4DCO-LOTS-NO-STR-OPE PIC X(6). ! -660400* NUMERO STRUCTURE OPERATIONNELLE ! -660500 15 WS-4DCO-LOTS-NO-AGT-OPE PIC X(8). ! -660600* NUMERO AGENT OPERATION ! -660700 15 WS-4DCO-LOTS-MT-REM-LO PIC S9(13)V9(2) COMP-3. ! -660800* MONTANT REMISE ! -660900 15 WS-4DCO-LOTS-CD-MAJ PIC X(1). ! -661000* CODE MAJ ! -661100 15 WS-4DCO-LOTS-CD-ENV PIC X(1). ! -661200* CODE ENVOI ! -661300 15 WS-4DCO-LOTS-DA-ENV-LOT PIC X(10). ! -661400* DATE ENVOI LOT ! -661500 15 WS-4DCO-LOTS-MT-REM-CHQ PIC S9(13)V9(2) COMP-3. ! -661600* MONTANT REMISES CHEQUES TOTALISES ! -661700 15 WS-4DCO-LOTS-NB-REM-CHQ PIC 9(7) COMP-3. ! -661800* NOMBRE REMISES CHEQUES TOTALISES ! -661900 15 WS-4DCO-LOTS-CD-PTN PIC X(5). ! -662000* CODE PARTENAIRE EXTERNE ! -662100 ! -662200* ==> ZONES DE TRAVAIL POUR SAISIE CRITERES DE SELECTION ! -662300* POUR LISTE DE LOTS ! -662400 ! -662500 05 WS-4DCO-SELECTION-LOT. ! -662600* SELECTION : DATE DEBUT ! -662700 07 WS-4DCO-4DFF-DA-DEB. ! -662800 10 WS-4DCO-4DFF-DA-DEB-SA PIC X(04). ! -662900 10 WS-4DCO-4DFF-DA-DEB-MM PIC X(02). ! -663000 10 WS-4DCO-4DFF-DA-DEB-JJ PIC X(02). ! -663100* SELECTION : DATE FIN ! -663200 07 WS-4DCO-4DFF-DA-FIN. ! -663300 10 WS-4DCO-4DFF-DA-FIN-SA PIC X(04). ! -663400 10 WS-4DCO-4DFF-DA-FIN-MM PIC X(02). ! -663500 10 WS-4DCO-4DFF-DA-FIN-JJ PIC X(02). ! -663600* SELECTION : NUMERO LOT DEBUT ! -663700 07 WS-4DCO-4DFF-NO-LOT-DEB PIC 9(03) COMP-3. ! -663800* SELECTION : NUMERO LOT FIN ! -663900 07 WS-4DCO-4DFF-NO-LOT-FIN PIC 9(03) COMP-3. ! -664000* SELECTION : COMPTE BANCAIRE DESTINATAIRE ! -664100 07 WS-4DCO-4DFF-CD-BANQUE PIC X(05). ! -664200 07 WS-4DCO-4DFF-CD-GUICHET PIC X(05). ! -664300 07 WS-4DCO-4DFF-NO-CPT-RIB PIC X(11). ! -664400 07 WS-4DCO-4DFF-CLE-RIB PIC X(02). ! -664500 ! -664600* ==> ZONES DE TRAVAIL POUR DETAIL SUCCESSIF DE LOTS ! -664700 ! -664800 05 WS-4DCO-SUCCESSION-LOT. ! -664900* ZONE DE PAGINATION ! -665000 07 WS-4DCO-4DFG-NB-PAG-TS PIC 9(02). ! -665100 07 WS-4DCO-4DFG-PAGE-AREA PIC X(198). ! -665200* ! -665300 07 WS-4DCO-4DFG-SAUV-ACTION. ! -665400 10 WS-4DCO-4DFG-SAUV-ITEM PIC 9(3) OCCURS 12. ! -665500* ! -665600 07 WS-4DCO-4DFG-SAUV-ACT-NB PIC 9(2). ! -665700* NOMBRE D ACTIONS A TRAITER ! -665800 07 WS-4DCO-4DFG-SAUV-ACT-TRT PIC 9(2). ! -665900* NOMBRE D ACTIONS TRAITEES ! -666000 ! -666100 07 WS-4DCO-4DFG-TYP-ACTION PIC X. ! -666200 88 CONSULTATION-LOT VALUE '1'. ! -666300 88 MODIFICATION-LOT VALUE '2'. ! -666400 88 SUPPRESSION-LOT VALUE '3'. ! -666500 88 ENVOI-LOT VALUE '4'. ! -666600 88 ANNULATION-ENVOI-LOT VALUE '5'. ! -666700 ! -666800 07 WS-4DCO-4DFC-IDC-OCC-SPL PIC X. ! -666900 07 WS-4DCO-4DFC-SANS-CREAT PIC X. ! -667000 07 WS-4DCO-4DFG-SANS-ENV PIC X. ! -667100 ! -667200* ==> ZONES DE TRAVAIL POUR SAISIE CRITERES DE SELECTION ! -667300* POUR LISTE DE CHEQUES ! -667400 ! -667500 05 WS-4DCO-SELECTION-CHEQUE. ! -667600* SELECTION : DATE DEBUT ! -667700 07 WS-4DCO-4DFI-DA-DEB. ! -667800 10 WS-4DCO-4DFI-DA-DEB-SA PIC X(04). ! -667900 10 WS-4DCO-4DFI-DA-DEB-MM PIC X(02). ! -668000 10 WS-4DCO-4DFI-DA-DEB-JJ PIC X(02). ! -668100* SELECTION : DATE FIN ! -668200 07 WS-4DCO-4DFI-DA-FIN. ! -668300 10 WS-4DCO-4DFI-DA-FIN-SA PIC X(04). ! -668400 10 WS-4DCO-4DFI-DA-FIN-MM PIC X(02). ! -668500 10 WS-4DCO-4DFI-DA-FIN-JJ PIC X(02). ! -668600* SELECTION : NUMERO LOT DEBUT ! -668700 07 WS-4DCO-4DFI-NO-LOT-DEB PIC 9(03) COMP-3. ! -668800* SELECTION : NUMERO LOT FIN ! -668900 07 WS-4DCO-4DFI-NO-LOT-FIN PIC 9(03) COMP-3. ! -669000* SELECTION : COMPTE BANCAIRE DESTINATAIRE ! -669100 07 WS-4DCO-4DFI-CD-BANQUE PIC X(05). ! -669200 07 WS-4DCO-4DFI-CD-GUICHET PIC X(05). ! -669300 07 WS-4DCO-4DFI-NO-CPT-RIB PIC X(11). ! -669400 07 WS-4DCO-4DFI-CLE-RIB PIC X(02). ! -669500* SELECTION : LIBELLE ABREGE DOMICILIATION ! -669600 07 WS-4DCO-4DFI-LIB-ABR-DOM PIC X(06). ! -669700* SELECTION : NOM CLIENT ! -669800 07 WS-4DCO-4DFI-NOM-PATRO PIC X(16). ! -669900* SELECTION : PARTENAIRE DE GESTION ! -670000 07 WS-4DCO-4DFI-CD-PTN PIC X(05). ! -670100* SELECTION : NUMERO CONTRAT ! -670200 07 WS-4DCO-4DFI-NO-CTR-PTN PIC X(09). ! -670300* SELECTION : CODE VENTILATION ! -670400 07 WS-4DCO-4DFI-CD-VTL PIC X. ! -670500* SELECTION : MONTANT MINIMUM ! -670600 07 WS-4DCO-4DFI-MT-MINI PIC S9(13)V9(2) COMP-3. ! -670700* SELECTION : MONTANT MAXIMUM ! -670800 07 WS-4DCO-4DFI-MT-MAXI PIC S9(13)V9(2) COMP-3. ! -670900 07 WS-4DCO-4DFI-NO-PTN PIC 9(3) COMP-3. ! -671000 ! -671100* ==> ZONES DE TRAVAIL POUR DETAIL SUCCESSIF DE CHEQUES ! -671200 ! -671300 05 WS-4DCO-SUCCESSION-CHEQUE. ! -671400* ZONE DE PAGINATION ! -671500 ! -671600 07 WS-4DCO-4DFJ-NB-PAG-TS PIC 9(02). ! -671700 07 WS-4DCO-4DFJ-PAGE-AREA PIC X(198). ! -671800* ! -671900 07 WS-4DCO-4DFJ-SAUV-ACTION. ! -672000 10 WS-4DCO-4DFJ-SAUV-ITEM PIC 9(3) OCCURS 12. ! -672100* ! -672200 07 WS-4DCO-4DFJ-SAUV-ACT-NB PIC 9(2). ! -672300* NOMBRE D ACTIONS A TRAITER ! -672400 07 WS-4DCO-4DFJ-SAUV-ACT-TRT PIC 9(2). ! -672500* NOMBRE D ACTIONS TRAITEES ! -672600 ! -672700 07 WS-4DCO-4DFJ-TYP-ACTION PIC X. ! -672800 88 CONSULTATION-CHEQUE VALUE '1'. ! -672900 88 MODIFICATION-CHEQUE VALUE '2'. ! -673000 88 SUPPRESSION-CHEQUE VALUE '3'. ! -673100 ! -673200 07 WS-4DCO-4DFJ-IDC-CHQ PIC X. ! -673300 07 WS-4DCO-4DFJ-CD-PTN-SAUV PIC X(05). ! -673400* ! -673500 07 WS-4DCO-4DFH-IDC-OCC-SPL PIC X. ! -673600* ! -673700 05 WS-4DCO-SELECTION-PTN. ! -673800* SELECTION : DATE DEBUT ! -673900 07 WS-4DCO-4DFK-DA-DEB. ! -674000 10 WS-4DCO-4DFK-DA-DEB-SA PIC X(04). ! -674100 10 WS-4DCO-4DFK-DA-DEB-MM PIC X(02). ! -674200 10 WS-4DCO-4DFK-DA-DEB-JJ PIC X(02). ! -674300* SELECTION : DATE FIN ! -674400 07 WS-4DCO-4DFK-DA-FIN. ! -674500 10 WS-4DCO-4DFK-DA-FIN-SA PIC X(04). ! -674600 10 WS-4DCO-4DFK-DA-FIN-MM PIC X(02). ! -674700 10 WS-4DCO-4DFK-DA-FIN-JJ PIC X(02). ! -674800* SELECTION : CODE EXTERNE PTN ! -674900 07 WS-4DCO-4DFK-CD-PTN PIC X(05). ! -675000* SELECTION : NUMERO PTN INTERNE ! -675100 07 WS-4DCO-4DFK-NO-PTN PIC 9(03) COMP-3. ! -675200* MONTANT REMISES CHEQUES TOTALISES ! -675300 07 WS-4DCO-4DFK-MT-REM-CHQ PIC S9(13)V9(2) COMP-3. ! -675400* NOMBRE REMISES CHEQUES TOTALISES ! -675500 07 WS-4DCO-4DFK-NB-REM-CHQ PIC 9(7) COMP-3. ! -675600 05 FILLER PIC X(855). ! -675700* ! -675800* ! -675900*================================================================ ! -676000*= APPLICATION : RACHATS PREVI-7 = ! -676100*================================================================ ! -676200 03 WS-4DCO-RCH-P7 REDEFINES WS-4DCO-PROGRAM. ! -676300* ============ ! -676400* ------------------------------------------------------ * ! -676500* COMMAREA : RACHATS PREVI-7 * ! -676600* LONGUEUR : 1800 * ! -676700* PREFIXE : WS-P7CO-RCH * ! -676800* ------------------------------------------------------ * ! -676900* ! -677000 05 WS-P7CO-RCH-INFO-SCP. ! -677100* INFORMATIONS GENERALES SOUSCRIPTION ! -677200 07 WS-P7CO-RCH-CAPO PIC X(005). ! -677300 07 WS-P7CO-RCH-NGEN PIC X(002). ! -677400 07 WS-P7CO-RCH-NSCP PIC X(008). ! -677500 07 WS-P7CO-RCH-DSCP. ! -677600 09 WS-P7CO-RCH-DSCP-SA. ! -677700 11 WS-P7CO-RCH-DSCP-SS PIC 9(002). ! -677800 11 WS-P7CO-RCH-DSCP-AA PIC 9(002). ! -677900 09 WS-P7CO-RCH-DSCP-MM PIC 9(002). ! -678000 09 WS-P7CO-RCH-DSCP-JJ PIC 9(002). ! -678100 07 WS-P7CO-RCH-DEFF. ! -678200 09 WS-P7CO-RCH-DEFF-SA. ! -678300 11 WS-P7CO-RCH-DEFF-SS PIC 9(002). ! -678400 11 WS-P7CO-RCH-DEFF-AA PIC 9(002). ! -678500 09 WS-P7CO-RCH-DEFF-MM PIC 9(002). ! -678600 09 WS-P7CO-RCH-DEFF-JJ PIC 9(002). ! -678700 07 WS-P7CO-RCH-TXGARMIN PIC S9(3)V9(4) COMP-3. ! -678800 07 WS-P7CO-RCH-TXFRSGES PIC S9(3)V9(4) COMP-3. ! -678900 07 WS-P7CO-RCH-TXCOMSCP PIC S9(3)V9(4) COMP-3. ! -679000 07 WS-P7CO-RCH-NOM-PATRO-SC PIC X(032). ! -679100* NOM PATRONYMIQUE DU SOUSCRIPTEUR ! -679200 07 WS-P7CO-RCH-NCERDEP PIC X(008). ! -679300* ! -679400 05 WS-P7CO-RCH-INFO-RCH. ! -679500* INFORMATIONS GENERALES RACHAT ! -679600 07 WS-P7CO-RCH-DRAC. ! -679700 09 WS-P7CO-RCH-DRACSA. ! -679800 11 WS-P7CO-RCH-DRACSS PIC X(002). ! -679900 11 WS-P7CO-RCH-DRACAA PIC X(002). ! -680000 09 WS-P7CO-RCH-DRACMM PIC X(002). ! -680100 09 WS-P7CO-RCH-DRACJJ PIC X(002). ! -680200* ! -680300 07 WS-P7CO-RCH-OPTRAC PIC X(001). ! -680400 07 WS-P7CO-RCH-NO-STR-GTN PIC X(006). ! -680500 07 WS-P7CO-RCH-LIB-STR PIC X(032). ! -680600 07 WS-P7CO-RCH-CPT-DOM. ! -680700* COMPTE BANCAIRE ! -680800 09 WS-P7CO-RCH-CD-BQE-DOM PIC X(005). ! -680900 09 WS-P7CO-RCH-CD-GUI-DOM PIC X(005). ! -681000 09 WS-P7CO-RCH-NO-CPT-DOM PIC X(011). ! -681100 09 WS-P7CO-RCH-CLE-RIB-DOM PIC X(002). ! -681200 07 WS-P7CO-RCH-IDT-FIS. ! -681300* IDENTIFIANT FISCAL ! -681400 09 WS-P7CO-RCH-CD-BQE-FIS PIC X(005). ! -681500 09 WS-P7CO-RCH-CD-GUI-FIS PIC X(005). ! -681600 09 WS-P7CO-RCH-NO-CPT-FIS PIC X(011). ! -681700 09 WS-P7CO-RCH-CLE-RIB-FIS PIC X(002). ! -681800 07 WS-P7CO-RCH-IDC-PAI-CHQ PIC X(001). ! -681900* ! -682000 05 WS-P7CO-RCH-INFO-VAL-RCH. ! -682100* INFORMATIONS MONTANTS RACHAT ! -682200 07 WS-P7CO-RCH-PLUVAL PIC S9(11)V99 COMP-3. ! -682300 07 WS-P7CO-RCH-MNTPL PIC S9(11)V99 COMP-3. ! -682400 07 WS-P7CO-RCH-MNTCS PIC S9(11)V99 COMP-3. ! -682500 07 WS-P7CO-RCH-MNTPS PIC S9(11)V99 COMP-3. ! -682600 07 WS-P7CO-RCH-MNTCSG PIC S9(11)V99 COMP-3. ! -682700 07 WS-P7CO-RCH-MNTIGF PIC S9(11)V99 COMP-3. ! -682800 07 WS-P7CO-RCH-MNTDEP PIC S9(11)V99 COMP-3. ! -682900 07 WS-P7CO-RCH-VRACNET PIC S9(11)V99 COMP-3. ! -683000 07 WS-P7CO-RCH-VRACBRU PIC S9(11)V99 COMP-3. ! -683100 07 WS-P7CO-MT-ASST-CRDS PIC S9(11)V99 COMP-3. ! -683200 07 WS-P7CO-MT-VER-RDS PIC S9(11)V99 COMP-3. ! -683300 07 WS-P7CO-MT-ASST-CSG PIC S9(11)V99 COMP-3. ! -683400 07 FILLER PIC X(1) . ! -683500 07 WS-P7CO-TX-CTB-TP PIC S9(2)V9(3) COMP-3. ! -683600 07 WS-P7CO-TX-CSG-TP PIC S9(2)V9(3) COMP-3. ! -683700 07 WS-P7CO-TX-CRDS-TP PIC S9(2)V9(3) COMP-3. ! -683800* ! -683900 05 WS-P7CO-RCH-INFO-COUR. ! -684000* INFORMATIONS COURRIER ! -684100 07 WS-P7CO-RCH-INFO-COUR-PORT. ! -684200* INFORMATIONS SUR LE PORTEUR DES TITRES ! -684300 09 WS-P7CO-RCH-TY-LET PIC X(003). ! -684400 09 WS-P7CO-RCH-CODINT PIC X(001). ! -684500 09 WS-P7CO-RCH-LI-INT PIC X(016). ! -684600 09 WS-P7CO-RCH-LI-INT-CT PIC X(010). ! -684700 09 WS-P7CO-RCH-NOM PIC X(032). ! -684800 09 WS-P7CO-RCH-PRENOM PIC X(032). ! -684900 09 WS-P7CO-RCH-NOMJF PIC X(032). ! -685000 09 WS-P7CO-RCH-ADR1 PIC X(032). ! -685100 09 WS-P7CO-RCH-ADR2 PIC X(032). ! -685200 09 WS-P7CO-RCH-CODPOS PIC X(005). ! -685300 09 WS-P7CO-RCH-BURDIS PIC X(026). ! -685400 07 WS-P7CO-RCH-INFO-TRT. ! -685500 09 WS-P7CO-RCH-IDC-CPT PIC X(01). ! -685600 09 WS-P7CO-RCH-IDC-CCL PIC X(01). ! -685700 09 WS-P7CO-RCH-IDC-ARC PIC X(01). ! -685800 09 WS-P7CO-RCH-CD-EXP PIC X(01). ! -685900 09 WS-P7CO-RCH-CTRL-TY-LET PIC X(01). ! -686000 88 TY-LET-RECHERCHE VALUE 'R'. ! -686100 88 TY-LET-TROUVE VALUE 'O'. ! -686200 88 TY-LET-NON-TROUVE VALUE 'N'. ! -686300 09 WS-P7CO-RCH-TY-LET-ORI PIC X(03). ! -686400 ! -686500 07 WS-P7CO-RCH-INFO-COUR-DEST. ! -686600* INFORMATIONS SUR LE DESTINATAIRE DU COURRIER ! -686700 09 WS-P7CO-RCH-NOM-DST PIC X(032). ! -686800 09 WS-P7CO-RCH-PRENOM-DST PIC X(032). ! -686900 09 WS-P7CO-RCH-ADR1-DST PIC X(032). ! -687000 09 WS-P7CO-RCH-ADR2-DST PIC X(032). ! -687100 09 WS-P7CO-RCH-CODPOS-DST PIC X(005). ! -687200 09 WS-P7CO-RCH-BURDIS-DST PIC X(026). ! -687300 ! -687400 07 WS-P7CO-RCH-NBR-EX PIC 9(001). ! -687500* NBRE D'EXEMPLAIRES A EDITER ! -687600* ! -687700 07 WS-P7CO-RCH-NO-CHQ PIC X(007). ! -687800* NUMERO DE CHEQUE ! -687900* ! -688000 05 WS-P7CO-RCH-INFO-SPIT. ! -688100* INFORMATIONS ISSUES DU PARAMETRAGE SPITAB ! -688200 07 WS-P7CO-RCH-CD-TY-CRO PIC X(003). ! -688300 07 WS-P7CO-RCH-CD-EVE-TY PIC X(006). ! -688400 07 WS-P7CO-RCH-LIB-OPE PIC X(032). ! -688500 07 WS-P7CO-RCH-LIB-LET PIC X(032). ! -688600* ! -688700 05 WS-P7CO-RCH-INFO-TS. ! -688800* INFORMATIONS CONCERNANT LA TS - LISTE TITRES ! -688900 07 WS-P7CO-RCH-TS-LG PIC S9(04) COMP. ! -689000 07 WS-P7CO-RCH-TS-ITEM OCCURS 15 PIC S9(04) COMP. ! -689100 07 WS-P7CO-RCH-TS-NB-ITEM PIC S9(04) COMP. ! -689200 07 WS-P7CO-RCH-TS-NB-ZOOM PIC S9(04) COMP. ! -689300 07 WS-P7CO-RCH-TS-NOM PIC X(07). ! -689400 07 WS-P7CO-RCH-TS-NB-MODIF PIC 9(2). ! -689500* ! -689600 05 WS-P7CO-RCH-EDIT. ! -689700 07 WS-P7CO-RCH-LIB-LET-0 PIC X(30). ! -689800 07 WS-P7CO-RCH-LIB-LET-1 PIC X(30). ! -689900 07 WS-P7CO-RCH-REF-IMP-EXT PIC X(10). ! -690000* ! -690100*-- DUREE DU CONTRAT EN NOMBRE DE JOURS ! -690200 05 WS-P7CO-RCH-NB-JOURS PIC 9(05). ! -690300*-- INDICE FISCALITE ! -690400 05 WS-P7CO-RCH-IND-FIS PIC X(01). ! -690500 ! -690600*-- INDICATEUR EDITION POUR IMPRESSION RDI ! -690700 05 WS-P7CO-E-IDC-EDIT PIC X(04). ! -690800 88 IMPR-SUIVANTE VALUE 'SU'. ! -690900 88 IMPR-TERMINER VALUE 'FF'. ! -691000*-- NOM PROGRAMME RETOUR APRES IMPRESSION RDI ! -691100 05 WS-P7CO-E-NO-PGM-CICS-RE PIC X(08). ! -691200*-- DATE ET HEURE DE MISE A JOUR DES CROS ! -691300 05 WS-P7CO-RCH-DA-CRE-CRO PIC X(08). ! -691400 05 WS-P7CO-RCH-HEU-CRE-CRO PIC 9(06). ! -691500*-- NOM DE LA TS D'EDITION ! -691600 05 WS-P7CO-RCH-E-TS-NOM PIC X(08). ! -691700*-- COMPTE EXONERE ! -691800 05 WS-P7CO-RCH-EXO PIC X(01). ! -691900 ! -692000* - AGENCE ! -692100 05 WS-P7CO-SCR-NAPO PIC X(8). ! -692200* - NUMERO DE CLIENT INTERNE DU CLIENT SOUSCRIPTEUR ! -692300 05 WS-P7CO-SCR-NO-CLI PIC 9(7). ! -692400* - CODE EXTERNE DU CLIENT SOUSCRIPTEUR ! -692500 05 WS-P7CO-SCR-CD-CLI. ! -692600* - CODE EXTERNE DU CLIENT SOUSCRIPTEUR PARTIE 1 ! -692700 10 WS-P7CO-SCR-CD-CLI-PART1 PIC X(7). ! -692800* - CODE EXTERNE DU CLIENT SOUSCRIPTEUR PARTIE 2 ! -692900 10 WS-P7CO-SCR-CD-CLI-PART2 PIC X(8). ! -693000* - DATE NAISSANCE ! -693100 05 WS-P7CO-SCR-DNAI. ! -693200 10 WS-P7CO-SCR-DNAI-SA. ! -693300 15 WS-P7CO-SCR-DNAI-SS PIC 9(2). ! -693400 15 WS-P7CO-SCR-DNAI-AA PIC 9(2). ! -693500 10 WS-P7CO-SCR-DNAI-MM PIC 9(2). ! -693600 10 WS-P7CO-SCR-DNAI-JJ PIC 9(2). ! -693700* - LIEU NAISSANCE ! -693800 05 WS-P7CO-SCR-LOCNAI PIC X(32). ! -693900* - DEPARTEMENT NAISSANCE ! -694000 05 WS-P7CO-SCR-DEPNAI PIC X(32). ! -694100* - CODE EXPEDITION (TYPE D'ENVOI) 1:EN CCM 2:A DOMICILE ! -694200 05 WS-P7CO-SCR-CEXPEDI PIC X(1). ! -694300* - DATE ACCUSE DE RECEPTION ! -694400 05 WS-P7CO-SCR-DACRECEP. ! -694500 10 WS-P7CO-SCR-DACRECP-SA. ! -694600 15 WS-P7CO-SCR-DACRECP-SS PIC X(2). ! -694700 15 WS-P7CO-SCR-DACRECP-AA PIC X(2). ! -694800 10 WS-P7CO-SCR-DACRECP-MM PIC X(2). ! -694900 10 WS-P7CO-SCR-DACRECP-JJ PIC X(2). ! -695000* - OPTION GARDIENNAGE A LA SOUSCRIPTION ! -695100 05 WS-P7CO-SCR-OPTGARD PIC X(1). ! -695200* ! -695300 05 WS-P7CO-SCR-NANTI PIC X(1). ! -695400* - CODE RENONCIATION 0:NON 1:OUI ! -695500 05 WS-P7CO-SCR-CRENONC PIC X(1). ! -695600* - DATE RENONCIATION ! -695700 05 WS-P7CO-SCR-DREN. ! -695800 10 WS-P7CO-SCR-DREN-SA. ! -695900 15 WS-P7CO-SCR-DREN-SS PIC 9(2). ! -696000 15 WS-P7CO-SCR-DREN-AA PIC 9(2). ! -696100 10 WS-P7CO-SCR-DREN-MM PIC 9(2). ! -696200 10 WS-P7CO-SCR-DREN-JJ PIC 9(2). ! -696300* - MONTANT SOUSCRIT ! -696400 05 WS-P7CO-SCR-MNTSCP PIC S9(13) COMP-3. ! -696500* - FRAIS GESTION ! -696600 05 WS-P7CO-SCR-FRSGES PIC S9(13) COMP-3. ! -696700* - TAUX FRAIS GESTION ! -696800 05 WS-P7CO-SCR-TXFRSGES PIC S9(3)V9(4) COMP-3. ! -696900* - COMMISSION ! -697000 05 WS-P7CO-SCR-COMSCP PIC S9(13) COMP-3. ! -697100* - TAUX COMMISSION ! -697200 05 WS-P7CO-SCR-TXCOMSCP PIC S9(3)V9(4) COMP-3. ! -697300* - NOMBRE ET MONTANT DES TITRES SOUSCRITS ! -697400 05 WS-P7CO-SCR-GTITRE OCCURS 7. ! -697500* - MONTANT DU TITRE ! -697600 10 WS-P7CO-SCR-MNTTIT PIC S9(13) COMP-3. ! -697700* - NB TIT DE CE MONTANT ! -697800 10 WS-P7CO-SCR-NBTIT PIC S9(5) COMP-3. ! -697900* - NOMBRE D'ITEMS DANS LA TS TITS ! -698000 05 WS-P7CO-TIT-NB-ITEM PIC S9(4) COMP. ! -698100* - NUMERO D'ITEM DE LA TS TITS ! -698200 05 WS-P7CO-TIT-NO-ITEM PIC S9(4) COMP. ! -698300* - CODE OPTION FISCALE ! -698400 05 WS-P7CO-CD-OPT-FIS PIC X(01). ! -698500* - CODE NATURE PIECE IDENTITE ! -698600 05 WS-P7CO-CD-NAT-PCE-IDT PIC X(02). ! -698700* - CODE INSEE COMMUNE ! -698800 05 WS-P7CO-RCH-CD-DPT PIC X(02). ! -698900* - NUMERO INSEE COMMUNE ! -699000 05 WS-P7CO-RCH-CD-COMM PIC X(03). ! -699100* - INDICATEUR SOUSCRIPTION ECHUE ( TERME PR�VI-7 ) ! -699200 05 WS-P7CO-SCR-IDC-ECH PIC X(01). ! -699300* - DATE ECHEANCE SOUSCRIPTION ! -699400 05 WS-P7CO-SCR-DAECHSCP. ! -699500 10 WS-P7CO-SCR-DAECHSCPSA. ! -699600 15 WS-P7CO-SCR-DAECHSC-SS PIC 9(2). ! -699700 15 WS-P7CO-SCR-DAECHSC-AA PIC 9(2). ! -699800 10 WS-P7CO-SCR-DAECHSC-MM PIC 9(2). ! -699900 10 WS-P7CO-SCR-DAECHSC-JJ PIC 9(2). ! -700000* - AFFICHAGE TCP7510 ! -700100 05 WS-P7CO-LIB-SEL PIC X(030). ! -700200 05 WS-P7CO-SEL-TS-TIT PIC X(001). ! -700300* - AFFICHAGE TCP7520- APPEL DE VALEUR ! -700400 05 WS-P7CO-RCH-CODINT2 PIC X(002). ! -700500 05 WS-P7CO-RCH-LI-INT2 PIC X(016). ! -700600* - RESERVATION DU NUMERO DE TITRE SAISI ! -700700 05 WS-P7CO-RCH-NSER PIC X(04). ! -700800 05 WS-P7CO-RCH-NCAR PIC X(07). ! -700900 05 WS-P7CO-RCH-NTIT PIC X(07). ! -701000 05 WS-P7CO-RCH-IDC-MESS-FISCALITE PIC X(01). ! -701100* - CONTRIBUTION ADDITIONNELLE ! -701200 05 WS-P7CO-RCH-MT-CTB PIC S9(11)V99 COMP-3. ! -701300* - NOUVEAU FILLER DE FIN ! -701400 05 FILLER PIC X(587). ! -701500 ! -701600* ! -701700*================================================================ ! -701800*= APPLICATION : GESTION SINISTRE DECES = ! -701900*================================================================ ! -702000 03 WS-4DCO-4DDS REDEFINES WS-4DCO-PROGRAM. ! -702100* ============ ! -702200 ! -702300* ============== ! -702400* ------------------------------------------------------ * ! -702500* COMMAREA : PARAMETRAGE : REGLE DE DELEGATION * ! -702600* LONGUEUR : 1800 * ! -702700* PREFIXE : WS-4DCO-4DDS * ! -702800* ------------------------------------------------------ * ! -702900 ! -703000 10 WS-4DCO-4DDS. ! -703100 ! -703200 15 FILLER PIC X(28). ! -703300* AJUSTEMENT ! -703400 15 WS-4DCO-4DDS-PAGE-AREA PIC X(198). ! -703500* PAGE AREA POUR LISTE ! -703600 15 WS-4DCO-4DDS-NO-PTN PIC S9(05) COMP-3. ! -703700* NUMERO INTERNE PARTENAIRE ! -703800 15 WS-4DCO-4DDS-CD-PTN PIC 9(05). ! -703900* NUMERO EXTERNE PARTENAIRE ! -704000 15 WS-4DCO-4DDS-NO-STR PIC X(06). ! -704100* NUMERO EXTERNE PARTENAIRE ! -704200 15 WS-4DCO-4DDS-CD-RGL-DLG PIC X(03). ! -704300* CODE REGLE DELEGATION ! -704400 15 WS-4DCO-4DDS-DA-VAL-DBT PIC X(08). ! -704500* DATE DEBUT-VALIDITE ! -704600 15 WS-4DCO-4DDS-DA-FIN-VAL PIC X(08). ! -704700* DATE FIN VALIDITE ! -704800 15 WS-4DCO-4DDS-MT-MX-PRIM ! -704900 PIC S9(13)V9(02) COMP-3. ! -705000* INDICATEUR FONCTION DEMANDE ! -705100 15 WS-4DCO-4DDS-FCT-DEM PIC X(03). ! -705200* MONTANT MAXIMUM DE PRESTATION ! -705300 15 WS-4DCO-4DDS-CD-RGL-DLG-LST PIC X(03). ! -705400* CODE REGLE DELEGATION ! -705500 15 WS-4DCO-4DDS-DA-VAL-DBT-LST PIC X(08). ! -705600* DATE DEBUT-VALIDITE ! -705700 15 FILLER PIC X(1519). ! -705800* ! -705900*================================================================ ! -706000*= APPLICATION : TRANSFERT PARTENAIRE = ! -706100*================================================================ ! -706200 03 WS-4DCO-TRANSFER-DEST REDEFINES WS-4DCO-PROGRAM. ! -706300* ============ ! -706400* ------------------------------------------------------ * ! -706500* COMMAREA : TRANSFERT PARTENAIRE * ! -706600* LONGUEUR : 1800 * ! -706700* PREFIXE : ! -706800* ------------------------------------------------------ * ! -706900* ! -707000 05 WS-4DCO-TRANSF-DEST. ! -707100* NUMERO DE PARTENAIRE EXTERNE (DESTINATAIRE) ! -707200 10 WS-4DCO-CD-PTN-DEST PIC X(005). ! -707300* LIBELLE PARTENAIRE EXTERNE (DESTINATAIRE) ! -707400 10 WS-4DCO-LIB-PTN-DEST PIC X(032). ! -707500* NUMERO DE PARTENAIRE INTERNE (DESTINATAIRE) ! -707600 10 WS-4DCO-NO-PTN-DEST PIC 9(003). ! -707700* NUMERO AGENCE (DESTINATAIRE) ! -707800 10 WS-4DCO-NO-AGC-DEST PIC X(006). ! -707900* NOM AGENCE (DESTINATAIRE) ! -708000 10 WS-4DCO-NOM-AGC-DEST PIC X(032). ! -708100* ADRESSE AGENCE (DESTINATAIRE) ! -708200 10 WS-4DCO-LIB-RUE-1-STR-DEST PIC X(032). ! -708300 10 WS-4DCO-LIB-RUE-2-STR-DEST PIC X(032). ! -708400 10 WS-4DCO-LIB-COMMUNE-STR-DES PIC X(032). ! -708500 10 WS-4DCO-CD-POST-STR-DEST PIC X(005). ! -708600 10 WS-4DCO-LIB-BUR-DIST-STR-DEST PIC X(026). ! -708700* NUMERO STRUCTURE GESTIONNAIRE (EMMETTEUR ) ! -708800 10 WS-4DCO-NO-STR-GTN-EMET PIC X(006). ! -708900* NUMERO AGENECE GESTIONNAIRE (EMMETTEUR ) ! -709000 10 WS-4DCO-NO-AGT-GTN-EMET PIC X(008). ! -709100 10 WS-4DCO-PRODUIT-DEST. ! -709200* NUMERO DE PRODUIT EXTERNE (DESTINATAIRE) ! -709300 15 WS-4DCO-CD-PRD-DEST PIC X(002). ! -709400* LIBELLE PRODUIT EXTERNE (DESTINATAIRE) ! -709500 15 WS-4DCO-LIB-PROD-DEST PIC X(032). ! -709600* NUMERO DE PRODUIT INTERNE (DESTINATAIRE) ! -709700 15 WS-4DCO-NO-PRD-DEST PIC 9(003). ! -709800* NUMERO GENERATION PRODUIT (DESTINATAIRE) ! -709900 15 WS-4DCO-NO-GEN-PRD-DEST PIC X(003). ! -710000* TYPE GENERATION PRODUIT (DESTINATAIRE) ! -710100 15 WS-4DCO-NO-TYP-PRD-DEST PIC 9(002). ! -710200* NUMERO CLIENT EXTERNE (DESTINATAIRE) ! -710300 10 WS-4DCO-CD-CLI-DEST PIC X(015). ! -710400* NUMERO CLIENT INTERNE (DESTINATAIRE) ! -710500 10 WS-4DCO-NO-CLI-DEST PIC 9(007). ! -710600* NOM PRENOM CLIENT (DESTINATAIRE) ! -710700 10 WS-4DCO-NOM-CLIENT-DEST PIC X(032). ! -710800* NOM CLIENT (DESTINATAIRE) ! -710900 10 WS-4DCO-NOM-DEST PIC X(032). ! -711000* PRENOM CLIENT (DESTINATAIRE) ! -711100 10 WS-4DCO-PRENOM-DEST PIC X(032). ! -711200* CODE INTITULE CLIENT (DESTINATAIRE) ! -711300 10 WS-4DCO-CD-INT-CLI-DEST PIC X(002). ! -711400* ADRESSE CLIENT (DESTINATAIRE) ! -711500 10 WS-4DCO-LIB-RUE-1-CLI-DEST PIC X(032). ! -711600 10 WS-4DCO-LIB-RUE-2-CLI-DEST PIC X(032). ! -711700 10 WS-4DCO-LIB-COMMUNE-CLI-DEST PIC X(032). ! -711800 10 WS-4DCO-CD-POST-CLI-DEST PIC X(005). ! -711900 10 WS-4DCO-LIB-BUR-DIST-CLI-DEST PIC X(026). ! -712000* DATE DE NAISSANCE CLIENT (DESTINATAIRE) ! -712100 10 WS-4DCO-DA-NAIS-DEST. ! -712200 15 WS-4DCO-DA-NAIS-SSAA-DEST PIC X(004). ! -712300 15 FILLER PIC X(001). ! -712400 15 WS-4DCO-DA-NAIS-MM-DEST PIC X(002). ! -712500 15 FILLER PIC X(001). ! -712600 15 WS-4DCO-DA-NAIS-JJ-DEST PIC X(002). ! -712700* NUMERO DU CONTRAT (DESTINATAIRE) ! -712800 10 WS-4DCO-CONTRAT-DEST PIC X(009). ! -712900* NUMERO D ORDRE CONTRAT (DESTINATAIRE) ! -713000 10 WS-4DCO-NO-ORD-CTR-DEST PIC 9(002). ! -713100 10 WS-4DCO-DRAP-RC-DEST PIC X(001). ! -713200* NUMERO RIB DOM (DESTINATAIRE) ! -713300 10 WS-4DCO-RIB-PER-DEST. ! -713400 15 WS-4DCO-BNQ-DOM-DEST PIC X(005). ! -713500 15 WS-4DCO-GCH-DOM-DEST PIC X(005). ! -713600 15 WS-4DCO-RAC-DOM-DEST PIC X(011). ! -713700 15 WS-4DCO-CLE-DOM-DEST PIC X(002). ! -713800* NUMERO RIB DOM (EMMETTEUR ) ! -713900 10 WS-4DCO-RIB-PER-EMET. ! -714000 15 WS-4DCO-BNQ-DOM-EMET PIC X(005). ! -714100 15 WS-4DCO-GCH-DOM-EMET PIC X(005). ! -714200 15 WS-4DCO-RAC-DOM-EMET PIC X(011). ! -714300 15 WS-4DCO-CLE-DOM-EMET PIC X(002). ! -714400* PROVISION MATHEMATIQUE OUVERT (DESTINATAIRE) ! -714500 10 WS-4DCO-PVS-MTH-OUV-EXE PIC S9(15) COMP-3. ! -714600* MONANT NET VERSEMENT ANNEE (DESTINATAIRE) ! -714700 10 WS-4DCO-MT-NET-VER-EXE PIC S9(15) COMP-3. ! -714800* MONANT CREDIT SOCIETAIRE (DESTINATAIRE) ! -714900 10 WS-4DCO-MT-CRD-SOC PIC S9(15) COMP-3. ! -715000* MONANT COTISATION VIEILLESSE (DESTINATAIRE) ! -715100 10 WS-4DCO-MT-CTS-VLL PIC S9(9) COMP-3. ! -715200* MONANT PRELEVEMENT SOCIALE (DESTINATAIRE) ! -715300 10 WS-4DCO-MT-PLV-SOC PIC S9(9) COMP-3. ! -715400* MONANT C.S.G (DESTINATAIRE) ! -715500 10 WS-4DCO-MT-CSG PIC S9(13)V9(2) COMP-3. ! -715600* MONANT CONTRIBUTION DEPERTEMT (DESTINATAIRE) ! -715700 10 WS-4DCO-MT-CTB-DPT PIC S9(15) COMP-3. ! -715800* MONANT PRELEVEMENT LIBERATOIRE(DESTINATAIRE) ! -715900 10 WS-4DCO-MT-PLV-LBL PIC S9(13)V9(2) COMP-3. ! -716000* SOLDE DES AVANCES (DESTINATAIRE) ! -716100 10 WS-4DCO-SLD-AV-DEST PIC 9(15) COMP-3. ! -716200* MONTANT DES FRAIS SUR AVANCES (DESTINATAIRE) ! -716300 10 WS-4DCO-MT-FRS-AV-EXE PIC S9(15) COMP-3. ! -716400* MONTANT DES FRAIS RPP (DESTINATAIRE) ! -716500 10 WS-4DCO-MT-FRS-RPP-A PIC S9(13)V9(2) COMP-3. ! -716600* SOLDE TEMPS REEL (DESTINATAIRE) ! -716700 10 WS-4DCO-SLD-TPS-REAL-DEST PIC S9(15) COMP-3. ! -716800* INDICATEUR CREDIT MUTUEL ! -716900 10 WS-4DCO-IDC-PTN-CM-DEST PIC X(001). ! -717000* INDICATEUR NANTISSEMENT ! -717100 10 WS-4DCO-CD-NTS-DEST PIC X(001). ! -717200* INDICATEUR FONCTIONNALITE ! -717300 10 WS-4DCO-CD-FCT-DEST PIC X(001). ! -717400* INDICATEUR MOUVEMENTS DANS LA JOURNNE ! -717500 10 WS-4DCO-MVT-JOUR-DEST PIC X(001). ! -717600* INDICATEUR P.A.B ! -717700 10 WS-4DCO-DNR-PAB-DEST PIC X(001). ! -717800* DATE P.A.B ! -717900 10 WS-4DCO-DA-PAS-PAB PIC X(008). ! -718000* INDICATEUR VERSEMENT PERIODIQUE ! -718100 10 WS-4DCO-CD-VER-PER-DEST PIC X(001). ! -718200 10 WS-4DCO-NB-PASSAGE-DEST PIC 9(001). ! -718300 10 WS-4DCO-TX-FRS-DEST PIC S9(2)V9(5) COMP-3. ! -718400 10 WS-4DCO-IDC-TRF-DSK PIC X(001). ! -718500 10 WS-4DCO-CD-PTN-DEST-A PIC X(005). ! -718600 10 WS-4DCO-NO-CTR-DEST-A PIC X(009). ! -718700 10 WS-4DCO-MT-CTB-DEST PIC S9(13)V99 COMP-3. ! -718800* MONTANT PRELEVEMENT LIBERATOIRE(DESTINATAIRE) ! -718900 10 WS-4DCO-MT-PLV-LBL-F8 PIC S9(13)V9(2) COMP-3. ! -719000 10 FILLER PIC X(1084). ! -719100 ! -719200*================================================================ ! -719300*= APPLICATION : PARAMETRAGE : GESTION PRIME ETAT = ! -719400*================================================================ ! -719500* ! -719600 03 WS-4DCO-PRM-ETAT REDEFINES WS-4DCO-PROGRAM. ! -719700* ============ ! -719800 ! -719900* ============== ! -720000* ------------------------------------------------------ * ! -720100* COMMAREA : PARAMETRAGE : GESTION DE LA PRIME ETAT -* ! -720200* LONGUEUR : 1800 * ! -720300* PREFIXE : WS-4DCO-PRCP * ! -720400* ------------------------------------------------------ * ! -720500* ! -720600* ZONES COMMUNES ! -720700* ZONE GROUPE POUR LE PROGRAMME TC4DPD0 ! -720800* ! -720900 05 WS-4DCO-4DPD. ! -721000* ! -721100* ZONE DE PAGINATION ! -721200 15 WS-4DCO-4DPD-PAGE. ! -721300 20 WS-4DCO-4DPD-IDC-OCC-SPL PIC X(001). ! -721400 20 WS-4DCO-4DPD-NB-PAG-TS PIC 9(002). ! -721500 20 WS-4DCO-4DPD-SAUV-PAGE-AREA PIC X(198). ! -721600* ! -721700* ACTION SAUVEGARDEE ! -721800 15 WS-4DCO-4DPD-SAUV-ACT PIC X. ! -721900* ! -722000* CODE MESSAGE ERREUR ! -722100 15 WS-4DCO-4DPD-ERRMSG1 PIC X(006). ! -722200* ! -722300* NOMBRE D'OCCURENCES DE LA LISTE ! -722400 15 WS-4DCO-4DPD-NB-TS-ITEM PIC S9(04) COMP. ! -722500* ! -722600* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -722700 15 WS-4DCO-4DPD-POS-CURSOR PIC 9(002). ! -722800* NB DE DETAILS TRAITES ! -722900 15 WS-4DCO-4DPD-SAUV-ACT-TRT PIC S9(4) COMP. ! -723000* NB DE DETAILS DEMANDES ! -723100 15 WS-4DCO-4DPD-SAUV-ACT-NB PIC S9(4) COMP. ! -723200* ! -723300************************************ NOMBRE PRIS 216 ! -723400************************************ NOMBRE DISPONIBLE 1584 ! -723500 ! -723600* ZONE GROUPE POUR LE PROGRAMME TC4DPH0 ! -723700* ! -723800 05 WS-4DCO-4DPH. ! -723900* ! -724000* ZONE DE PAGINATION ! -724100 15 WS-4DCO-4DPH-PAGE. ! -724200 20 WS-4DCO-4DPH-IDC-OCC-SPL PIC X(001). ! -724300 20 WS-4DCO-4DPH-NB-PAG-TS PIC 9(002). ! -724400 20 WS-4DCO-4DPH-SAUV-PAGE-AREA PIC X(198). ! -724500* ! -724600* CLE DE REPOSITIONNEMENT ! -724700 15 WS-4DCO-4DPH-CLE. ! -724800 20 WS-4DCO-4DPH-CD-PTN PIC 9(005). ! -724900 20 WS-4DCO-4DPH-NO-SEQ-MVT-POS PIC 9(005). ! -725000* CLE DE SAUVEGARDE. ! -725100 15 WS-4DCO-4DPH-CLE-REF. ! -725200 20 WS-4DCO-4DPH-CD-PTN-REF PIC 9(05). ! -725300 20 WS-4DCO-4DPH-NO-SEQ-MVT-REF PIC 9(5). ! -725400* ! -725500* ACTION SAUVEGARDEE ! -725600 15 WS-4DCO-4DPH-SAUV-ACT PIC X. ! -725700* ! -725800* CODE MESSAGE ERREUR ! -725900 15 WS-4DCO-4DPH-ERRMSG1 PIC X(006). ! -726000* ! -726100* NOMBRE D'OCCURENCES DE LA LISTE ! -726200 15 WS-4DCO-4DPH-NB-TS-ITEM PIC S9(04) COMP. ! -726300* ! -726400* ZOOM DEBUT 447 ! -726500* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -726600 15 WS-4DCO-4DPH-POS-CURSOR PIC 9(002). ! -726700* NB DE DETAILS TRAITES ! -726800 15 WS-4DCO-4DPH-SAUV-ACT-TRT PIC S9(4) COMP. ! -726900* NB DE DETAILS DEMANDES ! -727000 15 WS-4DCO-4DPH-SAUV-ACT-NB PIC S9(4) COMP. ! -727100* ZOOM FIN ! -727200************************************ NOMBRE PRIS 452 ! -727300************************************ NOMBRE DISPONIBLE 1348 ! -727400* ! -727500* ZONE GROUPE POUR ZOOM (C4DPE0, C4DPF0, C4DPG0, C4DPH0) ! -727600 ! -727700 05 WS-4DCO-4DPD-ZOOM. ! -727800 ! -727900 15 WS-4DCO-4DPD-NO-ETAT-PRIM PIC S9(6) COMP-3. ! -728000 15 WS-4DCO-4DPD-DA-TT-PRIM PIC X(10). ! -728100 15 WS-4DCO-4DPD-DA-PAI-PRIM PIC X(10). ! -728200 15 WS-4DCO-4DPD-NB-CPT-CCN PIC S9(6) COMP-3. ! -728300 15 WS-4DCO-4DPD-MT-GLB-PRIM-DEM PIC S9(13)V99 COMP-3. ! -728400 15 WS-4DCO-4DPD-MT-GLB-PRIM-VER PIC S9(13)V99 COMP-3. ! -728500 15 WS-4DCO-4DPD-CD-VAL-PAI PIC X. ! -728600* RUBRIQUES SPECIFIQUES C4DPF0 ! -728700 15 WS-4DCO-4DPF-MT-GLB-PRIM-RJ PIC S9(13)V99 COMP-3. ! -728800 15 WS-4DCO-4DPF-MT-GLB-PRIM-SAI PIC S9(13)V99 COMP-3. ! -728900* RUBRIQUES SPECIFIQUES C4DPE0 ! -729000 15 WS-4DCO-4DPE-NO-IMPL PIC X(08). ! -729100 15 WS-4DCO-4DPE-NB-EXEMP PIC 99. ! -729200* RUBRIQUES SPECIFIQUES C4DPH0 ! -729300 15 WS-4DCO-4DPH-IDC-PTN-CM PIC X. ! -729400 ! -729500************************************ NOMBRE PRIS 523 ! -729600************************************ NOMBRE DISPONIBLE 1276 ! -729700 ! -729800* 03 WS-4DCO-PAIEMENT-PRIME REDEFINES WS-4DCO-PROGRAM. ! -729900* ====================== ! -730000* !!! CETTE PARTIE EST INTEGREE A LA NOUVELLE APPLICATION !!!!!!! ! -730100* ------------------------------------------------------ * ! -730200* COMMAREA : PAIEMENT DE LA PRIME DE L'ETAT * ! -730300* LONGUEUR : 1800 * ! -730400* PREFIXE : WS-4DCO-PA- / WS-4DCO-MD- * ! -730500* ------------------------------------------------------ * ! -730600* COMMAREA SPECIFIQUE P4DHE0 ! -730700 ! -730800 05 WS-4DCO-PA-NOM-TIT-PEP PIC X(032). ! -730900* NOM ! -731000 05 WS-4DCO-PA-DA-SEL. ! -731100* DATE DE DEMANDE ENR Y4D99P ! -731200 10 WS-4DCO-PA-DA-SA-SEL PIC X(4). ! -731300 10 WS-4DCO-PA-DA-MM-SEL PIC X(2). ! -731400 10 WS-4DCO-PA-DA-JJ-SEL PIC X(2). ! -731500 05 WS-4DCO-PA-POS-CURS PIC S9(04) COMP. ! -731600* POSITION DU CURSEUR ! -731700 05 WS-4DCO-PA-IND-FIC PIC X(001). ! -731800* CODE RETOUR POUR FICHIER (P4299P) VIDE ! -731900 05 WS-4DCO-PA-TAB-TRAV. ! -732000* TABLE DES 12 ENREGISTREMENTS P4299P ! -732100 10 WS-4DCO-PA-TAB-POSTE OCCURS 12. ! -732200* ! -732300 15 WS-4DCO-PA-NO-ORD-ENR-99 PIC 9(03). ! -732400* ! -732500 15 WS-4DCO-PA-DAT-DEM. ! -732600* ! -732700 20 WS-4DCO-PA-DAT-DEM-SA. ! -732800* ! -732900 25 WS-4DCO-PA-DAT-DEM-S PIC X(002). ! -733000* ! -733100 25 WS-4DCO-PA-DAT-DEM-A PIC X(002). ! -733200* ! -733300 20 WS-4DCO-PA-DAT-DEM-MM PIC X(002). ! -733400* ! -733500 20 WS-4DCO-PA-DAT-DEM-JJ PIC X(002). ! -733600* ! -733700 15 WS-4DCO-PA-MT-DEM PIC S9(15) COMP-3. ! -733800* ! -733900 15 WS-4DCO-PA-MT-DEM-D REDEFINES WS-4DCO-PA-MT-DEM ! -734000 PIC S9(13)V9(02) COMP-3. ! -734100* ! -734200 15 WS-4DCO-PA-NBRE-PEP PIC S9(05). ! -734300* ! -734400 15 WS-4DCO-PA-DAT-PAI. ! -734500* ! -734600 20 WS-4DCO-PA-DAT-PAI-SA. ! -734700* ! -734800 25 WS-4DCO-PA-DAT-PAI-S PIC X(002). ! -734900* ! -735000 25 WS-4DCO-PA-DAT-PAI-A PIC X(002). ! -735100* ! -735200 20 WS-4DCO-PA-DAT-PAI-MM PIC X(002). ! -735300* ! -735400 20 WS-4DCO-PA-DAT-PAI-JJ PIC X(002). ! -735500* ! -735600 15 WS-4DCO-PA-CD-PAI PIC X(001). ! -735700* ! -735800 15 WS-4DCO-PA-CD-VAL-PAI PIC 9(01). ! -735900* ! -736000 15 WS-4DCO-PA-MT-PAI PIC S9(15) COMP-3. ! -736100* ! -736200 15 WS-4DCO-PA-MT-PAI-D REDEFINES WS-4DCO-PA-MT-PAI ! -736300 PIC S9(13)V9(02) COMP-3. ! -736400* ! -736500 15 WS-4DCO-PA-MT-PAI-X REDEFINES WS-4DCO-PA-MT-PAI ! -736600 PIC X(008). ! -736700* ! -736800 05 WS-4DCO-PA-ENR-99-AFF PIC S9(02). ! -736900* NB ENREG P4299P LUS ET STOCKES ! -737000 05 WS-4DCO-PA-SAISIES PIC X(001). ! -737100* INDIC EXERCICES RESTANT A SAISIR ! -737200 ! -737300* ------------------------------------------------------ * ! -737400* ZONES SPECIFIQUES PROGRAMME DE MODIFICATION DU MONTANT * ! -737500* PRIME POUR REJET APPELE PAR ZOOM PF10 * ! -737600* ------------------------------------------------------ * ! -737700 ! -737800 05 WS-4DCO-MD-TAB-TRAV. ! -737900* ! -738000 10 WS-4DCO-MD-02-COURANT PIC 9(2). ! -738100* INDICE DE L' ARTICLE 02 QUE L'ON TRAITE ! -738200 10 WS-4DCO-MD-TAB-POSTE OCCURS 10. ! -738300* ! -738400 15 WS-4DCO-MD-ANNEE-VER PIC 9(04). ! -738500* ! -738600 15 WS-4DCO-MD-ANNEE-IMP PIC 9(04). ! -738700* ! -738800 15 WS-4DCO-MD-VER PIC S9(09) COMP-3. ! -738900* ! -739000 15 WS-4DCO-MD-VER-D REDEFINES WS-4DCO-MD-VER ! -739100 PIC S9(07)V9(02) COMP-3. ! -739200* ! -739300 15 WS-4DCO-MD-PRIM PIC S9(09) COMP-3. ! -739400* ! -739500 15 WS-4DCO-MD-PRIM-D REDEFINES WS-4DCO-MD-PRIM ! -739600 PIC S9(07)V9(02) COMP-3. ! -739700* ! -739800 15 WS-4DCO-MD-TAUX PIC S9(02)V9(03). ! -739900* ! -740000 15 WS-4DCO-MD-INT PIC S9(09) COMP-3. ! -740100* ! -740200 15 WS-4DCO-MD-INT-D REDEFINES WS-4DCO-MD-INT ! -740300 PIC S9(07)V9(02) COMP-3. ! -740400* ! -740500 15 WS-4DCO-MD-IMP PIC X(001). ! -740600* ! -740700 15 WS-4DCO-MD-DAT-DEM. ! -740800* ! -740900 20 WS-4DCO-MD-DEM-SA. ! -741000* ! -741100 25 WS-4DCO-MD-DEM-S PIC X(002). ! -741200* ! -741300 25 WS-4DCO-MD-DEM-A PIC X(002). ! -741400* ! -741500 20 WS-4DCO-MD-DEM-M PIC X(002). ! -741600* ! -741700 20 WS-4DCO-MD-DEM-J PIC X(002). ! -741800* ! -741900 15 WS-4DCO-MD-SAISIE-REJET PIC X. ! -742000* CODE REJET PAIEMENT (O OU N) ! -742100 15 WS-4DCO-MD-NO-IND-03 PIC 9(02). ! -742200* INDICE DU TABLEAU WS-4DCO-MD-ART03-POSTE DU PAIEMENT CORR ! -742300 15 WS-4DCO-MD-NO-ETAT-PRIM PIC S9(6) COMP-3. ! -742400* N� ETAT CONTENANT LA DEMANDE DE PRIME POUR L'ANNEE ! -742500* ! -742600 05 WS-4DCO-MD-TAB-ART03. ! -742700* ! -742800 10 WS-4DCO-MD-ART03-POSTE OCCURS 10. ! -742900* ! -743000 15 WS-4DCO-MD-NO-ORD PIC 9(03). ! -743100* NUMERO D' ORDRE LE L'ENREG 03 CORRESPONDANT A CETTE ANNEE ! -743200 15 WS-4DCO-MD-CD-ETAT-PRIME PIC X. ! -743300* CODE ETAT DE LA DEMANDE DE PRIME ! -743400 15 WS-4DCO-MD-MT-GLB-PRIM-DEM PIC S9(13)V9(2) COMP-3. ! -743500* MONTANT DEMANDE DANS CETTE DEMANDE ! -743600 15 WS-4DCO-MD-MT-GLB-PRIM-VER PIC S9(13)V9(2) COMP-3. ! -743700* MONTANT ACCEPTE DANS CETTE DEMANDE ! -743800 05 WS-4DCO-MD-CUM-PRI PIC S9(09) COMP-3. ! -743900* CUMUL PRIMES (POUR EXE CONCERNES) ! -744000 05 WS-4DCO-MD-CUM-PRI-D REDEFINES WS-4DCO-MD-CUM-PRI ! -744100 PIC S9(07)V9(02) COMP-3. ! -744200* CUMUL PRIMES (POUR EXE CONCERNES) ! -744300 05 WS-4DCO-MD-CUM-INT PIC S9(09) COMP-3. ! -744400* CUMUL INTERETS PRIMES (EXE CONCERNES) ! -744500 05 WS-4DCO-MD-CUM-INT-D REDEFINES WS-4DCO-MD-CUM-INT ! -744600 PIC S9(07)V9(02) COMP-3. ! -744700* CUMUL INTERETS PRIMES (EXE CONCERNES) ! -744800 05 WS-4DCO-MD-TOT PIC S9(11) COMP-3. ! -744900* TOTAL GENERAL ! -745000 05 WS-4DCO-MD-TOT-D REDEFINES WS-4DCO-MD-TOT ! -745100 PIC S9(09)V9(02) COMP-3. ! -745200* TOTAL GENERAL ! -745300 05 WS-4DCO-MD-PRIM-ACC PIC S9(09) COMP-3. ! -745400* PRIME ACCEPTEE ! -745500 05 WS-4DCO-MD-PRIM-ACC-D REDEFINES WS-4DCO-MD-PRIM-ACC ! -745600 PIC S9(07)V9(02) COMP-3. ! -745700* PRIME ACCEPTEE ! -745800 05 WS-4DCO-MD-NBRE-EXER PIC S9(02). ! -745900* NB EXERCICES NON IMPOSABLES ! -746000 05 WS-4DCO-MD-NBRE-DEM PIC S9(02). ! -746100* NB ART 03 CONCERNES PAR DEMANDE GLOBALE ! -746200 05 WS-4DCO-MD-CD-REJET PIC X(002). ! -746300* CODE REJET ! -746400 05 WS-4DCO-MD-PRIM-RJ PIC S9(15) COMP-3. ! -746500* CUMUL PRIMES (POUR EXE CONCERNES) ! -746600 05 WS-4DCO-MD-PRIM-RJ-D REDEFINES WS-4DCO-MD-PRIM-RJ ! -746700 PIC S9(13)V9(02) COMP-3. ! -746800 05 FILLER PIC X(0049). ! -746900* ZONES DISPONIBLES ! -747000* ------------------------------------------------------ * ! -747100 ! -747200*================================================================ ! -747300*= APPLICATION : saisie ponctuelle de dde prime ! -747400*================================================================ ! -747500* ! -747600 03 WS-4DCO-PRM-PONCT REDEFINES WS-4DCO-PROGRAM. ! -747700* ============ ! -747800 ! -747900* ============== ! -748000* ------------------------------------------------------ * ! -748100* COMMAREA : PARAMETRAGE : GESTION DEMANDE PONCTUELLE -* ! -748200* LONGUEUR : 1800 PRIME ETAT * ! -748300* PREFIXE : WS-4DCO-4DPW * ! -748400* ------------------------------------------------------ * ! -748500* ! -748600* ZONES COMMUNES ! -748700* ZONE GROUPE POUR LE PROGRAMME TC4DPW0 ! -748800* ! -748900 ! -749000 05 WS-4DCO-4DPW-DET. ! -749100 ! -749200 15 WS-4DCO-4DPW-NO-PTN PIC 9(03). ! -749300 15 WS-4DCO-4DPW-NO-PRD-PTN PIC 9(03). ! -749400 15 WS-4DCO-4DPW-NO-CLI-PTN PIC 9(07). ! -749500 15 WS-4DCO-4DPW-NO-ORD-CTR PIC 9(02). ! -749600 15 WS-4DCO-4DPW-CD-PTN PIC X(05). ! -749700 15 WS-4DCO-4DPW-NUMCPT PIC X(12). ! -749800 15 WS-4DCO-4DPW-LIB-NOM PIC X(32). ! -749900 15 WS-4DCO-4DPW-LIB-PRENOM PIC X(32). ! -750000 15 WS-4DCO-4DPW-NOM-PATRO PIC X(32). ! -750100 15 WS-4DCO-4DPW-LIB-STR PIC X(32). ! -750200 15 WS-4DCO-4DPW-RUE1 PIC X(32). ! -750300 15 WS-4DCO-4DPW-RUE2 PIC X(32). ! -750400 15 WS-4DCO-4DPW-RUE3 PIC X(32). ! -750500 15 WS-4DCO-4DPW-RUE4 PIC X(32). ! -750600 15 WS-4DCO-4DPW-CDPOST PIC 9(05). ! -750700 15 WS-4DCO-4DPW-BURDIST PIC X(28). ! -750800 15 WS-4DCO-4DPW-DA-SCR. ! -750900 20 WS-4DCO-4DPW-SASCR PIC X(04). ! -751000 20 WS-4DCO-4DPW-MMSCR PIC X(02). ! -751100 20 WS-4DCO-4DPW-JJSCR PIC X(02). ! -751200 15 WS-4DCO-4DPW-DA-DDE. ! -751300 20 WS-4DCO-4DPW-SADEM PIC X(04). ! -751400 20 WS-4DCO-4DPW-MMDEM PIC X(02). ! -751500 20 WS-4DCO-4DPW-JJDEM PIC X(02). ! -751600 15 WS-4DCO-4DPW-COMPL PIC X(01). ! -751700 15 WS-4DCO-4DPW-NOSTR PIC X(06). ! -751800 15 WS-4DCO-4DPW-NBEXE PIC 9(02). ! -751900 15 WS-4DCO-4DPW-CDMTF PIC X(02). ! -752000 15 WS-4DCO-4DPW-MTPRIM PIC S9(13)V99 COMP-3. ! -752100 15 WS-4DCO-4DPW-MTITT PIC S9(13)V99 COMP-3. ! -752200 15 WS-4DCO-4DPW-TOP PIC X(01). ! -752300* indicateur de blocage ! -752400 15 WS-4DCO-4DPW-ACTION PIC X(01). ! -752500* ind. action (creation, modif, sup) ! -752600 15 WS-4DCO-4DPW-DDE PIC X(01). ! -752700* ind. prime ponctuelle deja demandee ! -752800 15 WS-4DCO-4DPW-COMPLM PIC X(01). ! -752900* ind. demande normale ou compl�mentaire ! -753000 15 WS-4DCO-4DPW-TOP-ENTREE PIC X(01). ! -753100* ind. pour affichage msg+entr�e avant validation ! -753200 15 WS-4DCO-4DPW-MTPRIM-OLD PIC S9(13)V99 COMP-3. ! -753300 15 FILLER PIC X(1423). ! -753400*================================================================ ! -753500*= APPLICATION : PRELEVEMENTS LIBERATOIRES = ! -753600*================================================================ ! -753700* ! -753800 03 WS-4DCO-PLIB REDEFINES WS-4DCO-PROGRAM. ! -753900* ============ ! -754000 ! -754100* ============== ! -754200* ------------------------------------------------------ * ! -754300* COMMAREA : PARAMETRAGE : PRELEV. LIB. POUR LA DGI * ! -754400* LONGUEUR : 1800 * ! -754500* PREFIXE : WS-4DCO-PLIB * ! -754600* ------------------------------------------------------ * ! -754700* ! -754800* ZONES COMMUNES ! -754900* ZONE GROUPE POUR LE PROGRAMME TC4DPN0 ! -755000* ! -755100 05 WS-4DCO-PLIB-MVT. ! -755200* MOUVEMENT AU FORMAT DGI 250 CARACTERES ! -755300 10 WS-4DCO-PLIB-CD-TY-MVT-DGI PIC X(3). ! -755400* CODE TYPE MOUVEMENT DGI ! -755500 10 WS-4DCO-PLIB-NO-PTN PIC 9(3). ! -755600* NUMERO PARTENAIRE ! -755700 10 WS-4DCO-PLIB-NO-PRD-PTN PIC 9(3). ! -755800* NUMERO PRODUIT PARTENAIRE ! -755900 10 WS-4DCO-PLIB-REF-GEODES. ! -756000* REFERENCE GEODES ! -756100 15 WS-4DCO-PLIB-NO-CLI-PTN PIC 9(7). ! -756200* NUMERO CLIENT PARTENAIRE ! -756300 15 WS-4DCO-PLIB-NO-ORD-CTR PIC 9(2). ! -756400* NUMERO ORDRE CONTRAT ! -756500 15 FILLER PIC X(9). ! -756600* ! -756700 10 WS-4DCO-PLIB-REF-PREVI7. ! -756800* REFERENCE PREVI 7 ! -756900 15 WS-4DCO-PLIB-NO-SER PIC X(4). ! -757000* NUMERO SERIE BON CAPITALISATION ! -757100 15 WS-4DCO-PLIB-NO-CNT PIC 9(7). ! -757200* NUMERO CARNET BON CAPITALISATION ! -757300 15 WS-4DCO-PLIB-NO-TIT PIC 9(7). ! -757400* NUMERO TITRE BON CAPITALISATION ! -757500 10 WS-4DCO-PLIB-DA-CRE-CRO PIC X(8). ! -757600* DATE CREATION CRO ! -757700 10 WS-4DCO-PLIB-HEU-CRE-CRO. ! -757800* HEURE CREATION CRO ! -757900 15 WS-4DCO-PLIB-HEU-CRE-HH PIC 9(2). ! -758000 15 WS-4DCO-PLIB-HEU-CRE-MM PIC 9(2). ! -758100 15 WS-4DCO-PLIB-HEU-CRE-SS PIC 9(2). ! -758200 10 WS-4DCO-PLIB-CD-CRO PIC X(3). ! -758300* CODE TYPE CRO ! -758400 10 WS-4DCO-PLIB-CD-APT-APLI PIC X(2). ! -758500* CODE APPARTENANCE APPLICATION ! -758600 10 WS-4DCO-PLIB-NOM-PATRO PIC X(32). ! -758700* NOM PATRONYMIQUE ! -758800 10 WS-4DCO-PLIB-CD-FIS PIC X(3). ! -758900* CODE FISCALITE PRELEVEMENT ! -759000 10 WS-4DCO-PLIB-CD-PTN PIC X(5). ! -759100* CODE PARTENAIRE ! -759200 10 WS-4DCO-PLIB-CD-PRD PIC X(2). ! -759300* CODE PRODUIT ! -759400 10 WS-4DCO-PLIB-NO-GEN-PRD PIC X(3). ! -759500* NUM�RO DE G�N�RATION DANS LE PRODUIT ! -759600 10 WS-4DCO-PLIB-REF-DOS PIC X(10). ! -759700* VALEUR REFERENCE DOSSIER ! -759800 10 WS-4DCO-PLIB-NO-GAM-PRD PIC 9(2). ! -759900* NUMERO GAMME PRODUIT ! -760000 10 WS-4DCO-PLIB-NO-TY-PRD PIC 9(2). ! -760100* NUMERO TYPE PRODUIT ! -760200 10 WS-4DCO-PLIB-NO-GEN-TY-PRD PIC X(3). ! -760300* NUMERO GENERATION TYPE PRODUIT ! -760400 10 WS-4DCO-PLIB-NO-SCR-BON-CAP PIC X(8). ! -760500* NUMERO SOUSCRIPTION BON CAPITALISATION ! -760600 10 WS-4DCO-PLIB-CD-SI PIC X(3). ! -760700* CODE S.I. ! -760800 10 WS-4DCO-PLIB-CD-ORIG-MVT PIC X(2). ! -760900* CODE ORIGINE MOUVEMENT ! -761000 10 WS-4DCO-PLIB-IDC-PTN-CM PIC X(1). ! -761100* INDICATEUR PARTENAIRE CREDIT-MUTUEL ! -761200 10 WS-4DCO-PLIB-OPT-ANY PIC X(1). ! -761300* INDICATEUR OPTION ANONYMAT ! -761400 10 WS-4DCO-PLIB-DA-SCR PIC X(8). ! -761500* DATE SOUSCRIPTION ! -761600 10 WS-4DCO-PLIB-DA-RAC. ! -761700* DATE OPERATION RACHAT ! -761800 15 WS-4DCO-PLIB-DA-RAC-A PIC X(4). ! -761900* DATE OPERATION ANNEE ! -762000 15 WS-4DCO-PLIB-DA-RAC-M PIC X(2). ! -762100* DATE OPERATION MOIS ! -762200 15 WS-4DCO-PLIB-DA-RAC-J PIC X(2). ! -762300* DATE OPERATION JOUR ! -762400 10 WS-4DCO-PLIB-DA-CRE-TEC PIC X(8). ! -762500* DATE CREATION TECHNIQUE ! -762600 10 WS-4DCO-PLIB-DA-AFF. ! -762700* DATE D'AFFECTATION PRODUIT COMPTABLE ! -762800 15 WS-4DCO-PLIB-DA-AFF-A PIC X(4). ! -762900* DATE AFFECTATION ANNEE ! -763000 15 WS-4DCO-PLIB-DA-AFF-M PIC X(2). ! -763100* DATE AFFECTATION MOIS ! -763200 15 WS-4DCO-PLIB-DA-AFF-J PIC X(2). ! -763300* DATE AFFECTATION JOUR ! -763400 10 WS-4DCO-PLIB-MT-CLO PIC S9(13)V9(2) COMP-3. ! -763500* MONTANT CLOTURE ! -763600 10 WS-4DCO-PLIB-MT-PLV PIC S9(13)V9(2) COMP-3. ! -763700* MONTANT PLUS-VALUE ! -763800 10 WS-4DCO-PLIB-PLV-LBL PIC S9(13)V9(2) COMP-3. ! -763900* MONTANT PRELEVEMENT LIBERATOIRE ! -764000 10 WS-4DCO-PLIB-PLV-SOC PIC S9(13)V9(2) COMP-3. ! -764100* MONTANT PRELEVEMENT SOCIALE ! -764200 10 WS-4DCO-PLIB-CTS-VLL PIC S9(13)V9(2) COMP-3. ! -764300* MONTANT COTISATION VIEILLESSE ! -764400 10 WS-4DCO-PLIB-MT-CSG PIC S9(13)V9(2) COMP-3. ! -764500* MONTANT C.S.G. ! -764600 10 WS-4DCO-PLIB-ASST-CRDS PIC S9(13)V9(2) COMP-3. ! -764700* MONTANT ASSIETTE CRDS ! -764800 10 WS-4DCO-PLIB-MT-ISF PIC S9(13)V9(2) COMP-3. ! -764900* MONTANT ISF ! -765000 10 WS-4DCO-PLIB-MT-RDS PIC S9(13)V9(2) COMP-3. ! -765100* MONTANT VERSEMENT RDS ! -765200 10 WS-4DCO-PLIB-CD-SNS-MVT PIC X. ! -765300* MONTANT VERSEMENT RDS ! -765400 10 WS-4DCO-PLIB-PAY-ISO PIC X(3). ! -765500* NUMERO PAYS ! -765600 10 WS-4DCO-PLIB-ASST-CSG PIC S9(13)V9(2) COMP-3. ! -765700* MONTANT ASSIETTE CSG ! -765800 10 WS-4DCO-PLIB-DATE-SAISIE PIC X(10). ! -765900* DATE saisie acompte ! -766000 10 FILLER PIC X(01). ! -766100* ! -766200 05 WS-4DCO-PLIB-LIB-PTN PIC X(32). ! -766300* LIBELLE DU PARTENAIRE ! -766400 05 WS-4DCO-PLIB-CAPO PIC X(5). ! -766500* CODE APPORTEUR PREVI-7 ! -766600 05 WS-4DCO-PLIB-LIB-PRD PIC X(32). ! -766700* LIBELLE DU PRODUIT ! -766800 05 WS-4DCO-PLIB-IDC-PRD-UNT PIC X. ! -766900* INDIC PRODUIT EN UC ! -767000 05 WS-4DCO-PLIB-TYP-CTR PIC X. ! -767100* TYPE DE CONTRAT ! -767200 88 CONTRAT-CMB VALUE 'C'. ! -767300 88 CONTRAT-EXT VALUE 'E'. ! -767400 88 CONTRAT-PR7 VALUE '7'. ! -767500* ! -767600* ZONES COMMUNES ! -767700* ZONE GROUPE POUR LE PROGRAMME TC4DPO0 ! -767800 ! -767900* SAUVEGARDE CLE DE LA DECLARATION SELECTIONNEE ! -768000 05 WS-4DCO-PLIB-SAUV-DECLA. ! -768100 10 WS-4DCO-PLIB-SAUV-CD-SI PIC X(3). ! -768200 10 WS-4DCO-PLIB-SAUV-TY-FCT PIC X(4). ! -768300 10 WS-4DCO-PLIB-SAUV-AA-DEC PIC X(4). ! -768400 10 WS-4DCO-PLIB-SAUV-MM-DEC PIC X(2). ! -768500 10 WS-4DCO-PLIB-SAUV-CD-DCR PIC 9. ! -768600* NUMERO D'ITEM SELECTIONNE ! -768700 05 WS-4DCO-PLIB-SAUV-ITEM PIC 99. ! -768800* ACTION SELECTIONNEE ! -768900 05 WS-4DCO-PLIB-TYP-ACTION PIC X. ! -769000 88 DETAIL-DECLA VALUE 'D'. ! -769100 88 VALID-DECLA VALUE 'V'. ! -769200 88 ANNUL-DECLA VALUE 'A'. ! -769300 ! -769400* ZONNE DE PAGINATION ! -769500 05 WS-4DCO-PLIB-NB-PAG-TS PIC 9(02). ! -769600 05 WS-4DCO-PLIB-PAGE-AREA PIC X(160). ! -769700 ! -769800* ZONE GROUPE POUR LE PROGRAMME TC4DPP0 ! -769900* ENREGITREMENT DECLARATION 2777 (=Y4DDGIDE) ! -770000 05 WS-4DCO-PLIB-DECLA. ! -770100 07 WS-4DCO-PLIB-DECL-CD-SI PIC X(3). ! -770200 07 WS-4DCO-PLIB-DECL-TY-FCT PIC X(4). ! -770300 07 WS-4DCO-PLIB-DECL-DA-DCR-A PIC X(4). ! -770400 07 WS-4DCO-PLIB-DECL-DA-DCR-M PIC X(2). ! -770500 07 WS-4DCO-PLIB-DECL-CD-DCR PIC 9(1). ! -770600 07 WS-4DCO-PLIB-DECL-NB-MVT-LOT PIC S9(7) COMP-3. ! -770700 07 WS-4DCO-PLIB-DECL-CD-STA PIC X(1). ! -770800 07 WS-4DCO-PLIB-DECL-CD-MODE-RGL PIC X(1). ! -770900 07 WS-4DCO-PLIB-DECL-DA-CRE-TEC PIC X(8). ! -771000 07 WS-4DCO-PLIB-DECL-DA-RGL PIC X(8). ! -771100 07 WS-4DCO-PLIB-DECL-MT-BASE-DE PIC S9(13)V9(2) COMP-3. ! -771200 07 WS-4DCO-PLIB-DECL-MT-DE PIC S9(13)V9(2) COMP-3. ! -771300 07 WS-4DCO-PLIB-DECL-MT-BASE-DF PIC S9(13)V9(2) COMP-3. ! -771400 07 WS-4DCO-PLIB-DECL-MT-DF PIC S9(13)V9(2) COMP-3. ! -771500 07 WS-4DCO-PLIB-DECL-MT-BASE-DG PIC S9(13)V9(2) COMP-3. ! -771600 07 WS-4DCO-PLIB-DECL-MT-DG PIC S9(13)V9(2) COMP-3. ! -771700 07 WS-4DCO-PLIB-DECL-MT-BASE-DH PIC S9(13)V9(2) COMP-3. ! -771800 07 WS-4DCO-PLIB-DECL-MT-DH PIC S9(13)V9(2) COMP-3. ! -771900 07 WS-4DCO-PLIB-DECL-MT-BASE-DI PIC S9(13)V9(2) COMP-3. ! -772000 07 WS-4DCO-PLIB-DECL-MT-DI PIC S9(13)V9(2) COMP-3. ! -772100 07 WS-4DCO-PLIB-DECL-MT-BASE-DJ PIC S9(13)V9(2) COMP-3. ! -772200 07 WS-4DCO-PLIB-DECL-MT-DJ PIC S9(13)V9(2) COMP-3. ! -772300 07 WS-4DCO-PLIB-DECL-MT-BASE-FJ PIC S9(13)V9(2) COMP-3. ! -772400 07 WS-4DCO-PLIB-DECL-MT-FJ PIC S9(13)V9(2) COMP-3. ! -772500 07 WS-4DCO-PLIB-DECL-MT-MM PIC S9(13)V9(2) COMP-3. ! -772600 07 WS-4DCO-PLIB-DECL-MT-OP PIC S9(13)V9(2) COMP-3. ! -772700 07 WS-4DCO-PLIB-DECL-MT-BASE-PO PIC S9(13)V9(2) COMP-3. ! -772800 07 WS-4DCO-PLIB-DECL-MT-PO PIC S9(13)V9(2) COMP-3. ! -772900 07 WS-4DCO-PLIB-DECL-MT-BASE-PP PIC S9(13)V9(2) COMP-3. ! -773000 07 WS-4DCO-PLIB-DECL-MT-PP PIC S9(13)V9(2) COMP-3. ! -773100 07 WS-4DCO-PLIB-DECL-MT-BASE-PR PIC S9(13)V9(2) COMP-3. ! -773200 07 WS-4DCO-PLIB-DECL-MT-PR PIC S9(13)V9(2) COMP-3. ! -773300 07 WS-4DCO-PLIB-DECL-MT-BASE-PS PIC S9(13)V9(2) COMP-3. ! -773400 07 WS-4DCO-PLIB-DECL-MT-PS PIC S9(13)V9(2) COMP-3. ! -773500 07 WS-4DCO-PLIB-DECL-MT-BASE-PT PIC S9(13)V9(2) COMP-3. ! -773600 07 WS-4DCO-PLIB-DECL-MT-PT PIC S9(13)V9(2) COMP-3. ! -773700 07 WS-4DCO-PLIB-DECL-MT-BASE-PU PIC S9(13)V9(2) COMP-3. ! -773800 07 WS-4DCO-PLIB-DECL-MT-PU PIC S9(13)V9(2) COMP-3. ! -773900 07 WS-4DCO-PLIB-DECL-MT-BASE-RS PIC S9(13)V9(2) COMP-3. ! -774000 07 WS-4DCO-PLIB-DECL-MT-RS PIC S9(13)V9(2) COMP-3. ! -774100 07 WS-4DCO-PLIB-DECL-MT-BASE-RT PIC S9(13)V9(2) COMP-3. ! -774200 07 WS-4DCO-PLIB-DECL-MT-RT PIC S9(13)V9(2) COMP-3. ! -774300 07 WS-4DCO-PLIB-DECL-MT-TB PIC S9(13)V9(2) COMP-3. ! -774400 07 WS-4DCO-PLIB-DECL-MT-SB REDEFINES ! -774500 WS-4DCO-PLIB-DECL-MT-TB PIC S9(13)V9(2) COMP-3. ! -774600 07 WS-4DCO-PLIB-DECL-MT-TC PIC S9(13)V9(2) COMP-3. ! -774700 07 WS-4DCO-PLIB-DECL-MT-TD PIC S9(13)V9(2) COMP-3. ! -774800 07 WS-4DCO-PLIB-DECL-MT-SC REDEFINES ! -774900 WS-4DCO-PLIB-DECL-MT-TD PIC S9(13)V9(2) COMP-3. ! -775000 07 WS-4DCO-PLIB-DECL-MT-TG PIC S9(13)V9(2) COMP-3. ! -775100 07 WS-4DCO-PLIB-DECL-MT-SF REDEFINES ! -775200 WS-4DCO-PLIB-DECL-MT-TG PIC S9(13)V9(2) COMP-3. ! -775300 07 WS-4DCO-PLIB-DECL-MT-QR PIC S9(13)V9(2) COMP-3. ! -775400 07 WS-4DCO-PLIB-DECL-MT-BASE-DK PIC S9(13)V9(2) COMP-3. ! -775500 07 WS-4DCO-PLIB-DECL-MT-DK PIC S9(13)V9(2) COMP-3. ! -775600 07 WS-4DCO-PLIB-DECL-MT-BASE-DL PIC S9(13)V9(2) COMP-3. ! -775700 07 WS-4DCO-PLIB-DECL-MT-DL PIC S9(13)V9(2) COMP-3. ! -775800 07 WS-4DCO-PLIB-DECL-MT-BASE-PW PIC S9(13)V9(2) COMP-3. ! -775900 07 WS-4DCO-PLIB-DECL-MT-PW PIC S9(13)V9(2) COMP-3. ! -776000 07 WS-4DCO-PLIB-DECL-MT-BASE-PX PIC S9(13)V9(2) COMP-3. ! -776100 07 WS-4DCO-PLIB-DECL-MT-PX PIC S9(13)V9(2) COMP-3. ! -776200 07 WS-4DCO-PLIB-DECL-MT-BASE-PY PIC S9(13)V9(2) COMP-3. ! -776300 07 WS-4DCO-PLIB-DECL-MT-PY PIC S9(13)V9(2) COMP-3. ! -776400 07 WS-4DCO-PLIB-DECL-MT-BASE-RV PIC S9(13)V9(2) COMP-3. ! -776500 07 WS-4DCO-PLIB-DECL-MT-RV PIC S9(13)V9(2) COMP-3. ! -776600 07 WS-4DCO-PLIB-DECL-MT-BASE-RW PIC S9(13)V9(2) COMP-3. ! -776700 07 WS-4DCO-PLIB-DECL-MT-RW PIC S9(13)V9(2) COMP-3. ! -776800 07 WS-4DCO-PLIB-DECL-MT-RX PIC S9(13)V9(2) COMP-3. ! -776900 07 WS-4DCO-PLIB-DECL-MT-RZ PIC S9(13)V9(2) COMP-3. ! -777000 07 WS-4DCO-PLIB-DECL-MT-BASE-DA PIC S9(13)V9(2) COMP-3. ! -777100 07 WS-4DCO-PLIB-DECL-MT-DA PIC S9(13)V9(2) COMP-3. ! -777200 07 WS-4DCO-PLIB-DECL-MT-BASE-DB PIC S9(13)V9(2) COMP-3. ! -777300 07 WS-4DCO-PLIB-DECL-MT-DB PIC S9(13)V9(2) COMP-3. ! -777400 07 WS-4DCO-PLIB-DECL-MT-BASE-PJ PIC S9(13)V9(2) COMP-3. ! -777500 07 WS-4DCO-PLIB-DECL-MT-PJ PIC S9(13)V9(2) COMP-3. ! -777600 07 WS-4DCO-PLIB-DECL-MT-BASE-PM PIC S9(13)V9(2) COMP-3. ! -777700 07 WS-4DCO-PLIB-DECL-MT-PM PIC S9(13)V9(2) COMP-3. ! -777800 07 WS-4DCO-PLIB-DECL-MT-PZ PIC S9(13)V9(2) COMP-3. ! -777900 07 WS-4DCO-PLIB-DECL-MT-RU PIC S9(13)V9(2) COMP-3. ! -778000 07 WS-4DCO-PLIB-DECL-MT-BASE-RR PIC S9(13)V9(2) COMP-3. ! -778100 07 WS-4DCO-PLIB-DECL-MT-RR PIC S9(13)V9(2) COMP-3. ! -778200 07 WS-4DCO-PLIB-DECL-MT-BASE-RY PIC S9(13)V9(2) COMP-3. ! -778300 07 WS-4DCO-PLIB-DECL-MT-RY PIC S9(13)V9(2) COMP-3. ! -778400 07 WS-4DCO-PLIB-DECL-MT-RA PIC S9(13)V9(2) COMP-3. ! -778500 07 FILLER PIC X(120). ! -778600* MONTANTS CALCULES POUR L'ECRAN C4DPP0 ! -778700 05 WS-4DCO-PLIB-MONT. ! -778800 07 WS-4DCO-PLIB-MONT-IL PIC S9(13)V9(2) COMP-3. ! -778900 07 WS-4DCO-PLIB-MONT-PQ PIC S9(13)V9(2) COMP-3. ! -779000 07 WS-4DCO-PLIB-BASE-PQ PIC S9(13)V9(2) COMP-3. ! -779100 07 WS-4DCO-PLIB-MONT-PV PIC S9(13)V9(2) COMP-3. ! -779200 07 WS-4DCO-PLIB-BASE-PV PIC S9(13)V9(2) COMP-3. ! -779300 07 WS-4DCO-PLIB-MONT-RU PIC S9(13)V9(2) COMP-3. ! -779400 07 WS-4DCO-PLIB-MONT-SA PIC S9(13)V9(2) COMP-3. ! -779500 07 WS-4DCO-PLIB-MONT-TA PIC S9(13)V9(2) COMP-3. ! -779600 07 WS-4DCO-PLIB-MONT-SB PIC S9(13)V9(2) COMP-3. ! -779700 07 WS-4DCO-PLIB-MONT-TB PIC S9(13)V9(2) COMP-3. ! -779800 07 WS-4DCO-PLIB-MONT-SC PIC S9(13)V9(2) COMP-3. ! -779900 07 WS-4DCO-PLIB-MONT-TC PIC S9(13)V9(2) COMP-3. ! -780000 07 WS-4DCO-PLIB-MONT-SD PIC S9(13)V9(2) COMP-3. ! -780100 07 WS-4DCO-PLIB-MONT-TD PIC S9(13)V9(2) COMP-3. ! -780200 07 WS-4DCO-PLIB-MONT-SE PIC S9(13)V9(2) COMP-3. ! -780300 07 WS-4DCO-PLIB-MONT-TE PIC S9(13)V9(2) COMP-3. ! -780400 07 WS-4DCO-PLIB-MONT-SF PIC S9(13)V9(2) COMP-3. ! -780500 07 WS-4DCO-PLIB-MONT-TF PIC S9(13)V9(2) COMP-3. ! -780600 07 WS-4DCO-PLIB-MONT-TG PIC S9(13)V9(2) COMP-3. ! -780700 07 WS-4DCO-PLIB-MONT-PFL PIC S9(13)V9(2) COMP-3. ! -780800* ne pas oublier de diminuer le filler en cas d'ajout ici ! -780900* ! -781000* ZONES COMMUNES ! -781100* ZONE GROUPE POUR LE PROGRAMME TC4DPY0 ! -781200 05 WS-4DCO-PLIB-MT-CSG-J PIC S9(13)V9(2) COMP-3. ! -781300* MONTANT C.S.G. janvier ! -781400 05 WS-4DCO-PLIB-ASST-CSG-J PIC S9(13)V9(2) COMP-3. ! -781500* MONTANT ASSIETTE CSG janvier ! -781600 05 WS-4DCO-PLIB-CD-SNS-MVT-J PIC X. ! -781700* MONTANT VERSEMENT RDS ! -781800 05 WS-4DCO-PLIB-VALIDATION PIC X. ! -781900* passage sur deuxieme ecran ! -782000 05 WS-4DCO-PLIB-MT-SOC PIC S9(13)V9(2) COMP-3. ! -782100* MONTANT pr�l�vement social d�cembre ! -782200 05 WS-4DCO-PLIB-ASST-SOC PIC S9(13)V9(2) COMP-3. ! -782300* MONTANT ASSIETTE prelevement social d�cembre ! -782400 05 WS-4DCO-PLIB-CD-SNS-MVT-SOC PIC X. ! -782500* MONTANT sens mvt prel soc d�cembre ! -782600 05 WS-4DCO-PLIB-MT-SOC-J PIC S9(13)V9(2) COMP-3. ! -782700* MONTANT pr�l�vement social janvier ! -782800 05 WS-4DCO-PLIB-ASST-SOC-J PIC S9(13)V9(2) COMP-3. ! -782900* MONTANT ASSIETTE prelevement social janvier ! -783000 05 WS-4DCO-PLIB-CD-SNS-MVT-SOC-J PIC X. ! -783100* MONTANT sens mvt prel soc janvier ! -783200* ===> ZONE GROUPE POUR LE PROGRAMME TC4DPN0 ! -783300 05 WS-4DCO-PLIB-MT-CSG97 PIC S9(13)V9(2) COMP-3. ! -783400* MONTANT C.S.G. de 1997 (3,4%) ! -783500 05 WS-4DCO-PLIB-ASST-CSG97 PIC S9(13)V9(2) COMP-3. ! -783600* MONTANT ASSIETTE CSG 1997 ! -783700 05 WS-4DCO-PLIB-ASST-PLV-SOC PIC S9(13)V9(2) COMP-3. ! -783800* MONTANT assiette prelev. soc. ! -783900 05 WS-4DCO-PLIB-ASST-PLV-LBL-8A PIC S9(13)V9(2) COMP-3. ! -784000* MONTANT ASSIETTE prelev. liber. � 7,5% ! -784100 05 WS-4DCO-PLIB-MT-CTB PIC S9(13)V9(2) COMP-3. ! -784200* MONTANT Contribution additionnelle ! -784300 05 WS-4DCO-PLIB-ASST-CTB PIC S9(13)V9(2) COMP-3. ! -784400* MONTANT ASSIETTE Contribution additionnelle ! -784500 05 WS-4DCO-PLIB-MT-CTB-J PIC S9(13)V9(2) COMP-3. ! -784600* MONTANT Contribution additionnelle janvier ! -784700 05 WS-4DCO-PLIB-ASST-CTB-J PIC S9(13)V9(2) COMP-3. ! -784800* MONTANT ASSIETTE Contribution additionnelle janvier ! -784900 05 WS-4DCO-PLIB-DATELIB PIC X(15). ! -785000* date acompte ! -785100 05 WS-4DCO-PLIB-CICS PIC X(04). ! -785200* type de cics ! -785300 ! -785400* ZONES DISPONIBLES ! -785500 05 FILLER PIC X(0287). ! -785600*================================================================ ! -785700*= APPLICATION : GESTION DES CONTRATS ENTREPRISE = ! -785800*================================================================ ! -785900* ! -786000 03 WS-4DCO-CTR-ENT REDEFINES WS-4DCO-PROGRAM. ! -786100* ============ ! -786200 ! -786300* ============== ! -786400* ------------------------------------------------------ * ! -786500* COMMAREA : GESTION DES CONTRATS ENTREPRISE * ! -786600* LONGUEUR : 1800 * ! -786700* PREFIXE : WS-4DCO-CTRE * ! -786800* ------------------------------------------------------ * ! -786900* ! -787000 05 WS-4DCO-CTRE-DA-SCR. ! -787100* DATE DE SOUSCRITPION ! -787200 10 WS-4DCO-CTRE-DA-SCR-JJ PIC X(2). ! -787300* DATE DE SOUSCRITPION - JOUR ! -787400 10 FILLER PIC X(1). ! -787500* SEPARATEUR DE DATE ! -787600 10 WS-4DCO-CTRE-DA-SCR-MM PIC X(2). ! -787700* DATE DE SOUSCRIPTION - MOIS ! -787800 10 FILLER PIC X(1). ! -787900* SEPARATEUR DE DATE ! -788000 10 WS-4DCO-CTRE-DA-SCR-SSAA PIC X(4). ! -788100* DATE DE SOUSCRIPTION - ANNEE ! -788200 05 WS-4DCO-CTRE-NO-STR-GTN PIC X(6). ! -788300* NUMERO STRUCTURE GESTIONNAIRE ! -788400 05 WS-4DCO-CTRE-LIB-STR-GTN PIC X(32). ! -788500* LIBELLE STRUCTURE GESTIONNAIRE ! -788600 05 WS-4DCO-CTRE-LIB-EFF-1 PIC X(50). ! -788700* LIEBLLE EFFECTIF 1 ! -788800 05 WS-4DCO-CTRE-LIB-EFF-2 PIC X(50). ! -788900* LIEBLLE EFFECTIF 2 ! -789000 05 WS-4DCO-CTRE-CD-CLC-IFC PIC X(1). ! -789100* MODE DE CALCUL INDEMNIT�S FIN CARRI�RE ! -789200 05 WS-4DCO-CTRE-TX-CTS-SAL-CO PIC S9(3)V99. ! -789300* TX COTISATION SALAIRE CONTRAT COLLECTIF ! -789400 05 WS-4DCO-CTRE-TX-CTS-TCH-A-CO PIC S9(3)V99. ! -789500* TX COTISATION TRANCHE A CONTRAT COLLECTIF ! -789600 05 WS-4DCO-CTRE-TX-CTS-TCH-B-CO PIC S9(3)V99. ! -789700* TX COTISATION TRANCHE B CONTRAT COLLECTIF ! -789800 05 WS-4DCO-CTRE-TX-CTS-TCH-C-CO PIC S9(3)V99. ! -789900* TX COTISATION TRANCHE C CONTRAT COLLECTIF ! -790000 05 WS-4DCO-CTRE-TX-CTS-SAL-IN PIC S9(3)V99. ! -790100* TX COTISATION SALAIRE CONTRAT INDIVIDUEL ! -790200 05 WS-4DCO-CTRE-TX-CTS-TCH-A-IN PIC S9(3)V99. ! -790300* TX COTISATION TRANCHE A CONTRAT INDIVIDUEL ! -790400 05 WS-4DCO-CTRE-TX-CTS-TCH-B-IN PIC S9(3)V99. ! -790500* TX COTISATION TRANCHE B CONTRAT INDIVIDUEL ! -790600 05 WS-4DCO-CTRE-TX-CTS-TCH-C-IN PIC S9(3)V99. ! -790700* TX COTISATION TRANCHE C CONTRAT INDIVIDUEL ! -790800 05 WS-4DCO-CTRE-MT-VER-INI PIC S9(13)V99. ! -790900* MONTANT VERSEMENT INITIAL ! -791000 05 WS-4DCO-CTRE-NB-A-RATR PIC S9(2). ! -791100* MONTANT VERSEMENT INITIAL ! -791200 05 WS-4DCO-CTRE-LIB-TY-CLA-1 PIC X(50). ! -791300* LIBELLE TYPE CLAUSE 1 ! -791400 05 WS-4DCO-CTRE-LIB-TY-CLA-2 PIC X(50). ! -791500* LIBELLE TYPE CLAUSE 2 ! -791600 05 WS-4DCO-CTRE-TM-STP PIC X(26). ! -791700* TIMESTAMP DE LA LECTURE CONTRAT ENTREPRISE ! -791800 05 WS-4DCO-CTRE-PAGE-AREA PIC X(198). ! -791900* SAUVEGARDE PAGE AREA START ! -792000 05 WS-4DCO-CTRE-NOM-USU-PSE PIC X(32). ! -792100* NOM + PRENOM OU ENSEIGNE ! -792200 05 WS-4DCO-CTRE-MONT PIC S9(15)V99 COMP-3. ! -792300* MONTANT SOLDE COMPTABLE ! -792400 05 WS-4DCO-CTRE-NBPAGES PIC 9(002). ! -792500* NOMBRE DE PAGES ! -792600 05 WS-4DCO-CTRE1-NBPAGES PIC 9(002). ! -792700* NOMBRE DE PAGES SUR TC4DRT0 ! -792800*-- DA3371 ! -792900*-- DATE DE MAJ DE L'ENCOURS GLOBAL ! -793000 05 WS-4DCO-CTRE-DATMAJ. ! -793100 10 WS-DA-MAJC-SA PIC X(004). ! -793200 10 WS-DA-MAJC-MM PIC X(002). ! -793300 10 WS-DA-MAJC-JJ PIC X(002). ! -793400*================================================================ ! -793500*= APPLICATION : VERSEMENT SUR CONTRATS LIES AU = ! -793600*= CONTRAT ENTREPRISE (TC4DRV0) = ! -793700*================================================================ ! -793800* ! -793900 03 WS-4DCO-4DRV REDEFINES WS-4DCO-PROGRAM. ! -794000* ============ ! -794100 ! -794200* ============== ! -794300* ------------------------------------------------------ * ! -794400* COMMAREA : VERSEMENT SUR LES CONTRATS LIES AU * ! -794500* CONTRAT ENTREPRISE * ! -794600* LONGUEUR : 1800 * ! -794700* PREFIXE : WS-4DCO-4DRV * ! -794800* ------------------------------------------------------ * ! -794900 05 WS-4DCO-4DRV-CPT-DOM. ! -795000* COMPTE DOM ! -795100 10 WS-4DCO-4DRV-CD-BQE PIC X(005). ! -795200* CODE BANQUE ! -795300 10 WS-4DCO-4DRV-CD-GUI PIC X(005). ! -795400* CODE GUICHET ! -795500 10 WS-4DCO-4DRV-NO-CPT PIC X(011). ! -795600* NUMERO COMPTE ! -795700 10 WS-4DCO-4DRV-CLE-RIB PIC X(002). ! -795800* CLE RIB ! -795900 05 WS-4DCO-4DRV-TX-FRAIS PIC 9(02)V9(03). ! -796000* TAUX DE FRAIS ! -796100 05 WS-4DCO-4DRV-DA-OPE. ! -796200* DATE D'OPERATION ! -796300 10 WS-4DCO-4DRV-DA-OPE-J PIC X(2). ! -796400* DATE D'OPERATION - JOUR ! -796500 10 FILLER PIC X(1). ! -796600* SEPARATEUR DE DATE ! -796700 10 WS-4DCO-4DRV-DA-OPE-M PIC X(2). ! -796800* DATE D'OPERATION - MOIS ! -796900 10 FILLER PIC X(1). ! -797000* SEPARATEUR DE DATE ! -797100 10 WS-4DCO-4DRV-DA-OPE-A PIC X(4). ! -797200* DATE D'OPERATION - ANNEE ! -797300 05 WS-4DCO-4DRV-DA-EFF. ! -797400* DATE D'EFFET ! -797500 10 WS-4DCO-4DRV-DA-EFF-J PIC X(2). ! -797600* DATE D'EFFET - JOUR ! -797700 10 FILLER PIC X(1). ! -797800* SEPARATEUR DE DATE ! -797900 10 WS-4DCO-4DRV-DA-EFF-M PIC X(2). ! -798000* DATE D'EFFET - MOIS ! -798100 10 FILLER PIC X(1). ! -798200* SEPARATEUR DE DATE ! -798300 10 WS-4DCO-4DRV-DA-EFF-A PIC X(4). ! -798400* DATE D'EFFET - ANNEE ! -798500 05 WS-4DCO-4DRV-MT-BRUT PIC S9(09)V9(02). ! -798600* MONTANT BRUT ! -798700 05 WS-4DCO-4DRV-LIB-CPT PIC X(13). ! -798800* LIBELLE COMPTE SUR ECRAN ! -798900 05 WS-4DCO-4DRV-NOM-TS-PARAM PIC X(08). ! -799000* NOM TS PARAMETRE PRODUIT ! -799100 05 WS-4DCO-4DRV-DA-EFF-CTR PIC X(08). ! -799200* DATE D'EFFET DU CONTRAT GEODES ! -799300 05 WS-4DCO-4DRV-DA-EFF-CLC PIC X(08). ! -799400* DATE D'EFFET CALCULEE ! -799500 05 WS-4DCO-4DRV-MTBRUT PIC S9(09)V9(02). ! -799600* MONTANT BRUT VERSEMENT ! -799700 05 WS-4DCO-4DRV-MTBRUT-C REDEFINES ! -799800 WS-4DCO-4DRV-MTBRUT ! -799900 PIC S9(11). ! -800000* MONTANT BRUT VERSEMENT ! -800100 05 WS-4DCO-4DRV-MTNET PIC S9(09)V9(02). ! -800200* MONTANT NET VERSEMENT ! -800300 05 WS-4DCO-4DRV-MTNET-C REDEFINES ! -800400 WS-4DCO-4DRV-MTNET ! -800500 PIC S9(11). ! -800600 05 WS-4DCO-4DRV-NOM-TS-VERS PIC X(08). ! -800700* NOM TS VERSEMENT ! -800800 05 WS-4DCO-4DRV-NB-OCC-RES PIC 9(03). ! -800900* NOMBRE D'ELEMENTS RESTITUES PAR TN00LIS ! -801000 05 WS-4DCO-4DRV-NO-STR-GTN-CTR PIC X(06). ! -801100* NUMERO STRUCTURE GESTIONNAIRE CONTRAT ! -801200 05 WS-4DCO-4DRV-NO-AGT-GTN-CTR PIC X(08). ! -801300* NUMERO AGENT GESTIONNAIRE CONTRAT ! -801400 05 WS-4DCO-4DRV-CD-TY-ECG-FNC PIC X(05). ! -801500* CODE TYPE ECHEANCE ! -801600 05 WS-4DCO-4DRV-ERREUR PIC X(01). ! -801700* INDICATEUR ERREUR BLOQUANTE ! -801800 88 ERREUR-BLOQUANTE VALUE 'O'. ! -801900* CODE MESSAGE ERREUR BLOQUANTE ! -802000 05 WS-4DCO-4DRV-CD-MES-ERR PIC X(06). ! -802100* LIBELLE COMPLEMENTAIRE MESSAGE ERREUR ! -802200 05 WS-4DCO-4DRV-LIB-CPL-MES PIC X(32). ! -802300*--DME DEBUT ! -802400* CODE IDENTIFIANT STOCK ! -802500 05 WS-4DCO-4DRV-CD-IDT-STK PIC X(03). ! -802600* DATE BASCULEMENT EFFECTIVE ! -802700 05 WS-4DCO-4DRV-DA-BSC-EFF PIC X(08). ! -802800* DATE BASCULEMENT EFFECTIVE ! -802900 05 WS-4DCO-4DRV-DA-OPE-DNR-RP PIC X(08). ! -803000*--DME FIN ! -803100*--DA3371 deb ! -803200 05 WS-4DCO-4DRV-NOM-USU-PSE PIC X(32). ! -803300* NOM + PRENOM OU ENSEIGNE ! -803400*--DA3371 fin ! -803500*================================================================ ! -803600*= APPLICATION : DADS2 : declaration des donnees sociales = ! -803700*= a la dgi = ! -803800*================================================================ ! -803900* ! -804000 03 WS-4DCO-DADS REDEFINES WS-4DCO-PROGRAM. ! -804100* ============ ! -804200 ! -804300* ============== ! -804400* ------------------------------------------------------ * ! -804500* COMMAREA : GESTION TC4DZF0 : SAISE MVT DADS2 * ! -804600* LONGUEUR : 1800 * ! -804700* PREFIXE : WS-4DCO-dads * ! -804800* ------------------------------------------------------ * ! -804900 05 WS-4DCO-DADS-MVT. ! -805000* DECLARATION D'UN MOUVEMENT ! -805100 10 WS-4DCO-DADS-CD-TY-FRN PIC X(2). ! -805200 10 WS-4DCO-DADS-NO-FRN PIC 9(8). ! -805300 10 WS-4DCO-DADS-A-DCR PIC 9(4). ! -805400 10 WS-4DCO-DADS-NO-ORD-MT PIC 9(3). ! -805500 10 WS-4DCO-DADS-LIB-NOM-FRN PIC X(30). ! -805600 10 WS-4DCO-DADS-LIB-PRN PIC X(20). ! -805700 10 WS-4DCO-DADS-LIB-RAI-SOC-FRN PIC X(50). ! -805800 10 WS-4DCO-DADS-LIB-RUE PIC X(32). ! -805900 10 WS-4DCO-DADS-LIB-CPL PIC X(32). ! -806000 10 WS-4DCO-DADS-CD-POST PIC X(5). ! -806100 10 WS-4DCO-DADS-LIB-BUR-DIST PIC X(26). ! -806200 10 WS-4DCO-DADS-MT-DGI-HN PIC S9(13)V99 COMP-3. ! -806300 10 WS-4DCO-DADS-MT-DGI-JT PIC S9(13)V99 COMP-3. ! -806400 10 WS-4DCO-DADS-FILLER PIC X(72). ! -806500 05 WS-4DCO-DADS-LIB-MAP PIC X(050). ! -806600* ! -806700 05 WS-4DCO-DADS-LIST. ! -806800* DONNEES UTILIS�ES POUR LA TRANSACTION DE LISTE 4DZG ! -806900 10 WS-4DCO-DADS-TOP-POS PIC X. ! -807000 10 WS-4DCO-DADS-TY-FOUSAIS PIC XX. ! -807100 10 WS-4DCO-DADS-NO-FOUSAIS PIC 9(8). ! -807200 10 WS-4DCO-DADS-AA-FOUSAIS PIC 9(4). ! -807300* ! -807400 05 FILLER PIC X(1435). ! -807500* ! -807600* ! -807700*================================================================ ! -807800*= APPLICATION : PAB : declaration a la DGI des mvts = ! -807900*= PAB (CSG et CRDS) = ! -808000*================================================================ ! -808100* ! -808200 03 WS-4DCO-PAB REDEFINES WS-4DCO-PROGRAM. ! -808300* ============ ! -808400* ! -808500* ============== ! -808600* ------------------------------------------------------ * ! -808700* COMMAREA : GESTION TC4DPZ0 : Saisie mvts PAB * ! -808800* LONGUEUR : 1800 * ! -808900* PREFIXE : WS-4DCO-PAB * ! -809000* ------------------------------------------------------ * ! -809100 05 WS-4DCO-PAB-DONNEES. ! -809200 10 WS-4DCO-PAB-CD-PTN PIC X(5). ! -809300 10 WS-4DCO-PAB-LIB-PTN PIC X(5). ! -809400 10 WS-4DCO-PAB-NO-PTN PIC 9(3). ! -809500 10 WS-4DCO-PAB-CD-APT-APLI PIC X(2). ! -809600 10 WS-4DCO-PAB-MT-CSG PIC S9(13)V99 COMP-3. ! -809700 10 WS-4DCO-PAB-MT-ASST-CSG PIC S9(13)V99 COMP-3. ! -809800 10 WS-4DCO-PAB-MT-VER-RDS PIC S9(13)V99 COMP-3. ! -809900 10 WS-4DCO-PAB-MT-ASST-CRDS PIC S9(13)V99 COMP-3. ! -810000 10 WS-4DCO-PAB-MT-PLV-SOC PIC S9(13)V99 COMP-3. ! -810100 10 WS-4DCO-PAB-MT-ASST-SOC PIC S9(13)V99 COMP-3. ! -810200 10 WS-4DCO-PAB-MT-CTS-VLL PIC S9(7)V99 COMP-3. ! -810300 10 WS-4DCO-PAB-MT-CTB PIC S9(13)V99 COMP-3. ! -810400 10 WS-4DCO-PAB-MT-ASST-CTB PIC S9(13)V99 COMP-3. ! -810500 10 WS-4DCO-PAB-MT-CSG-P7 PIC S9(13)V99 COMP-3. ! -810600 10 WS-4DCO-PAB-MT-ASST-CSG-P7 PIC S9(13)V99 COMP-3. ! -810700 10 WS-4DCO-PAB-MT-VER-RDS-P7 PIC S9(13)V99 COMP-3. ! -810800 10 WS-4DCO-PAB-MT-ASST-CRDS-P7 PIC S9(13)V99 COMP-3. ! -810900 10 WS-4DCO-PAB-MT-PLV-SOC-P7 PIC S9(13)V99 COMP-3. ! -811000 10 WS-4DCO-PAB-MT-ASST-SOC-P7 PIC S9(13)V99 COMP-3. ! -811100 10 WS-4DCO-PAB-MT-CTS-VLL-P7 PIC S9(7)V99 COMP-3. ! -811200 10 WS-4DCO-PAB-MT-CTB-P7 PIC S9(13)V99 COMP-3. ! -811300 10 WS-4DCO-PAB-MT-ASST-CTB-P7 PIC S9(13)V99 COMP-3. ! -811400 10 WS-4DCO-PAB-MODIF-PR PIC X(1). ! -811500 10 WS-4DCO-PAB-MODIF-P7 PIC X(1). ! -811600 05 FILLER PIC X(1644). ! -811700* ------------------------------------------------------ * ! -811800* ! -811900*================================================================ ! -812000*= APPLICATION : DIH : liste des mouvements dgi = ! -812100*================================================================ ! -812200* ! -812300 03 WS-4DCO-DIH REDEFINES WS-4DCO-PROGRAM. ! -812400* ============ ! -812500* ! -812600* ============== ! -812700* ------------------------------------------------------ * ! -812800* COMMAREA : GESTION TC4DQA0 et TC4DQB0 * ! -812900* Liste des mouvements DGI et detail * ! -813000* LONGUEUR : 1800 * ! -813100* PREFIXE : WS-4DCO-DIH * ! -813200* ------------------------------------------------------ * ! -813300 05 WS-4DCO-DIH-DONNEES. ! -813400 10 WS-4DCO-DIH-DA-CRE-CRO PIC X(8). ! -813500 10 WS-4DCO-DIH-CD-TY-MVT-DGI PIC X(3). ! -813600 10 WS-4DCO-DIH-DA-CRE-TEC PIC X(8). ! -813700 10 WS-4DCO-DIH-CD-TY-MVT-DGI-CL PIC X(3). ! -813800 10 WS-4DCO-DIH-NO-SEQ PIC X(6). ! -813900 10 WS-4DCO-DIH-NO-PTN PIC X(3). ! -814000 10 WS-4DCO-DIH-NO-PRD-PTN PIC X(3). ! -814100 10 WS-4DCO-DIH-REF-GEODES PIC X(18). ! -814200 10 WS-4DCO-DIH-DA-CRE-CRO-CL PIC X(8). ! -814300 10 WS-4DCO-DIH-HEU-CRE-CRO PIC X(6). ! -814400 10 WS-4DCO-DIH-CD-TY-CRO PIC X(3). ! -814500 10 WS-4DCO-DIH-TOP-POS PIC X(1). ! -814600 10 WS-4DCO-DIH-CD-ORI-ENR PIC X(1). ! -814700 10 WS-4DCO-DIH-TABLE OCCURS 15. ! -814800 15 WS-4DCO-DIH-NO-SEQ-TB PIC X(06). ! -814900 15 WS-4DCO-DIH-CD-ORI-ENR-TB PIC X(01). ! -815000 05 FILLER PIC X(1624). ! -815100* ------------------------------------------------------ * ! -815200*================================================================ ! -815300*= APPLICATION : parametrage des clauses = ! -815400*================================================================ ! -815500* ! -815600 03 WS-4DCO-CLA REDEFINES WS-4DCO-PROGRAM. ! -815700* ============ ! -815800* ! -815900* ============== ! -816000* ------------------------------------------------------ * ! -816100* COMMAREA : GESTION TC4GQA0, QB0, QC0, QE0, QF0 * ! -816200* LONGUEUR : 1800 * ! -816300* PREFIXE : WS-4DCO-CLA * ! -816400* ------------------------------------------------------ * ! -816500 05 WS-4DCO-CLA-DONNEES. ! -816600 10 WS-4DCO-CLA-TY-CLA-BNF PIC X(04). ! -816700* Type de clause b�n�ficiaire ! -816800 10 WS-4DCO-CLA-NO-GEN PIC 9(03). ! -816900* No de g�n�ration ! -817000 10 WS-4DCO-CLA-LIB-TY-CLA-BNF PIC X(32). ! -817100* Libell� type de clause ! -817200 10 WS-4DCO-CLA-IDC-TXT-STD PIC X(01). ! -817300* Indicateur texte standard ! -817400 10 WS-4DCO-CLA-IDC-CLA-NOMI PIC X(01). ! -817500* Indicateur Clause nominative ! -817600 10 WS-4DCO-CLA-IDC-ACC-BENF PIC X(01). ! -817700* Indicateur Acceptation b�n�fice ! -817800 10 WS-4DCO-CLA-IDC-AUT-DRG PIC X(01). ! -817900* Indicateur Autorisation D�r�gation ! -818000 10 WS-4DCO-CLA-CLE-REPO. ! -818100 15 WS-4DCO-CLA-TY-CLA-BNF-R PIC X(04). ! -818200* Repositionnement Type de clause b�n�ficiaire ! -818300 15 WS-4DCO-CLA-NO-GEN-R PIC 9(03). ! -818400* Repositionnement No de g�n�ration ! -818500 10 WS-4DCO-CLA-CPOSN PIC S9(04) COMP. ! -818600* Curseur positionnement ! -818700 10 WS-4DCO-CLA-PAGE-AREA PIC X(80). ! -818800* SAUVEGARDE PAGE AREA START ! -818900 10 WS-4DCO-CLA-TM-STP PIC X(26). ! -819000* TIME STAMP ! -819100 10 WS-4DCO-CLA-LA-TY-CLA-BNF PIC X(20). ! -819200* Libell� type de clause ! -819300 10 WS-4DCO-CLA-IDC-CLA-NTR PIC X(01). ! -819400* Indicateur Clause notaire ! -819500 10 WS-4DCO-CLA-IDC-CLA-DMB PIC X(01). ! -819600* Indicateur Clause d�membrement ! -819700 10 WS-4DCO-CLA-IDC-CLA-DFT PIC X(01). ! -819800* Indicateur Clause par d�faut ! -819900 10 WS-4DCO-CLA-IDC-CLA-TUT PIC X(01). ! -820000* Indicateur Clause mineur majeur sous tutelle ! -820100* ! -820200 05 FILLER PIC X(618). ! -820300* lien clause / autres applications ! -820400 05 WS-4DCO-LIEN-CLA PIC X(1000). ! -820500* APPLICATION : parametrage Clause / type de produit ! -820600 05 WS-4DCO-4DDY-CLA REDEFINES WS-4DCO-LIEN-CLA. ! -820700* ================= ! -820800 10 WS-4DCO-4DDY-TYPRD PIC S9(02) COMP-3. ! -820900* NUMERO TYPE DE PRODUIT ! -821000 10 WS-4DCO-4DDY-LIB-TY-PRD PIC X(32). ! -821100* LIBELLE TYPE DE PRODUIT ! -821200 10 WS-4DCO-4DDY-NOGEN PIC X(03). ! -821300* NUMERO DE GENERATION ! -821400 10 WS-4DCO-4DDY-DA-VAL-DBT PIC X(10). ! -821500* DATE DEBUT ! -821600 10 WS-4DCO-4DDY-DA-FIN-VAL PIC X(10). ! -821700* DATE FIN ! -821800 10 WS-4DCO-4DDY-NO-GAM-PRD PIC S9(02) COMP-3. ! -821900* NUMERO GAMME DE PRODUIT ! -822000 10 WS-4DCO-4DDY-TX-MIN-ITT-GAR PIC X(06). ! -822100* Taux minimum de garde ! -822200 10 WS-4DCO-4DDY-TX-AJU-CTS PIC X(06). ! -822300* Taux ajustement contrat ! -822400 10 WS-4DCO-4DDY-PRC-PAB-RCH PIC X(07). ! -822500* Pourcent. PAB Rachat ! -822600 10 WS-4DCO-4DDY-PRC-PAB-SIN PIC X(07). ! -822700* Pourcent. PAB Sinistre ! -822800 10 WS-4DCO-4DDY-DEL-SAI-RNO PIC S9(02) COMP-3. ! -822900* Delai de renonciation ! -823000 10 WS-4DCO-4DDY-MT-PLAF-VER-CTR PIC X(10). ! -823100* Mtant max contrat ! -823200 10 WS-4DCO-4DDY-MT-CTRL-OPE-DTX PIC X(16). ! -823300* Mtant controle op�ration insolite ! -823400 10 WS-4DCO-4DDY-MT-MIN-CTRL-CLI PIC X(16). ! -823500* Mtant controle client ! -823600 10 WS-4DCO-4DDY-MT-MIN-VER-A PIC X(10). ! -823700* Mtant minimum annuel ouvrant droit � d�duction fiscale ! -823800 10 WS-4DCO-4DDY-MT-MAX-VER-A PIC X(10). ! -823900* Mtant maximum annuel ouvrant droit � d�duction fiscale ! -824000 10 WS-4DCO-4DDY-TX-SML-PAB PIC X(06). ! -824100* Taux simulation PAB ! -824200 10 WS-4DCO-4DDY-TX-DNR-PAB PIC X(08). ! -824300* Taux derniere PAB ! -824400 10 WS-4DCO-4DDY-TX-DNR-PAB-MI PIC X(08). ! -824500* Taux derniere PAB ! -824600 10 WS-4DCO-4DDY-TX-CRDS PIC X(07). ! -824700* Taux CRDS ! -824800 10 WS-4DCO-4DDY-TX-CSG PIC X(07). ! -824900* Taux CSG ! -825000 10 WS-4DCO-4DDY-TX-CSG-97 PIC X(07). ! -825100* Taux CSG 97 ! -825200 10 WS-4DCO-4DDY-DA-PAB-A-MI PIC X(10). ! -825300* Date PAB minitel ! -825400 10 WS-4DCO-4DDY-CD-TY-TX-RMN PIC X(01). ! -825500* Code Type taux min. ! -825600 10 WS-4DCO-4DDY-CD-TY-RCH-AUT PIC X(10). ! -825700* Code Type rachat automatique ! -825800 10 WS-4DCO-4DDY-CD-TY-VER-AUT PIC X(10). ! -825900* Code Type versement automatique ! -826000 10 WS-4DCO-4DDY-CD-PER-VER-AUT PIC X(10). ! -826100* Code p�riodicit� versement automatique ! -826200 10 WS-4DCO-4DDY-DUR-CTR PIC X(04). ! -826300* Dur�e contrat ! -826400 10 WS-4DCO-4DDY-CD-FIS-AUT PIC X(10). ! -826500* Code fiscal autoris� ! -826600 10 WS-4DCO-4DDY-CD-MTF-RCH-AUT PIC X(10). ! -826700* Code motif rachat autoris� ! -826800 10 WS-4DCO-4DDY-IDC-NTS PIC X(01). ! -826900* Indicateur nantissement ! -827000 10 WS-4DCO-4DDY-CD-TY-PSE PIC X(01). ! -827100* Code type personne ! -827200 10 WS-4DCO-4DDY-IDC-UNI-PRD PIC X(01). ! -827300* Unicit� type produit ! -827400 10 WS-4DCO-4DDY-CD-CAT-FIS PIC X(02). ! -827500* Code cat�gorie fiscale ! -827600 10 WS-4DCO-4DDY-CD-TAB-DU PIC X(02). ! -827700* Code dur�e ! -827800 10 WS-4DCO-4DDY-IDC-PRD-UNT-CPT PIC X(01). ! -827900* indicateur P.U.C ! -828000 10 WS-4DCO-4DDY-IDC-ACTION PIC X(01). ! -828100 88 WS-4DCO-4DDY-CREATION VALUE 'C'. ! -828200* indicateur action ! -828300 10 WS-4DCO-4DDY-IDC-PRD-pd PIC X(01). ! -828400* indicateur type produit eligible previ-duo trans ! -828500 10 FILLER PIC X(733). ! -828600* ! -828700 ! -828800 03 WS-4DCO-PMO-4DFL REDEFINES WS-4DCO-PROGRAM. ! -828900* ================== ! -829000* ------------------------------------------------------ * ! -829100* COMMAREA : MODIFICATION MONTANT PMO/VERST BRUT * ! -829200* LONGUEUR : 1800 * ! -829300* PREFIXE : WS-4DCO-4DFL- * ! -829400* ------------------------------------------------------ * ! -829500 ! -829600 05 WS-4DCO-4DFL-TAB-STO-GEST OCCURS 10. ! -829700 07 WS-4DCO-4DFL-PMO-AV PIC S9(13)V9(2) COMP-3. ! -829800 07 WS-4DCO-4DFL-PMO-AP PIC S9(13)V9(2) COMP-3. ! -829900 07 WS-4DCO-4DFL-FLAG-MODIF-PMO PIC X(01). ! -830000 07 WS-4DCO-4DFL-MT-BRT-VER-AV PIC S9(13)V9(2) COMP-3. ! -830100 07 WS-4DCO-4DFL-MT-BRT-VER-AP PIC S9(13)V9(2) COMP-3. ! -830200 07 WS-4DCO-4DFL-FLAG-MODIF-VER PIC X(01). ! -830300 07 WS-4DCO-4DFL-FLAG-EXIST-STOCK PIC X(01). ! -830400 05 WS-4DCO-4DFL-TAB-STO-FISCA OCCURS 2. ! -830500 07 WS-4DCO-4DFL-MT-RCH-NET-AV PIC S9(13)V9(2) COMP-3. ! -830600 07 WS-4DCO-4DFL-MT-RCH-NET-AP PIC S9(13)V9(2) COMP-3. ! -830700 07 WS-4DCO-4DFL-FLAG-MODIF-RN PIC X(01). ! -830800 07 WS-4DCO-4DFL-MT-PV-AV PIC S9(13)V9(2) COMP-3. ! -830900 07 WS-4DCO-4DFL-MT-PV-AP PIC S9(13)V9(2) COMP-3. ! -831000 07 WS-4DCO-4DFL-FLAG-MODIF-PV PIC X(01). ! -831100 07 WS-4DCO-4DFL-FLAG-EXIST-FISCA PIC X(01). ! -831200 05 WS-4DCO-4DFL-MT-PMO-TOT-AV PIC S9(15) COMP-3. ! -831300 05 WS-4DCO-4DFL-MT-PMO-TOT-R REDEFINES ! -831400 WS-4DCO-4DFL-MT-PMO-TOT-AV PIC S9(13)V9(2) COMP-3. ! -831500 05 WS-4DCO-4DFL-MT-PMO-TOT-AP PIC S9(13)V9(2) COMP-3. ! -831600 05 WS-4DCO-4DFL-TAB-EXIST-STOC OCCURS 6. ! -831700 07 WS-4DCO-4DFL-FLAG-EXIST-STOC PIC X(01). ! -831800 05 FILLER PIC X(1358). ! -831900* ZONES DISPONIBLES ! -832000 ! -832100 03 WS-4DCO-4DDU REDEFINES WS-4DCO-PROGRAM. ! -832200* ============ ! -832300* ! -832400* ============== ! -832500* ------------------------------------------------------ * ! -832600* COMMAREA : GESTION TC4DDU0, DDZ * ! -832700* LONGUEUR : 1800 * ! -832800* PREFIXE : WS-4DCO-4DDU * ! -832900* ------------------------------------------------------ * ! -833000 05 WS-4DCO-4DDU-DONNEES. ! -833100 10 WS-4DCO-4DDU-CD-RGL-SURA PIC X(06). ! -833200* Code r�gle param�trage ! -833300 10 WS-4DCO-4DDU-LIB-RGL-SURA PIC X(32). ! -833400* Code r�gle param�trage ! -833500 10 WS-4DCO-4DDU-CLE-REPO. ! -833600 15 WS-4DCO-4DDU-CD-RGL-SURA-R PIC X(06). ! -833700* Repositionnement Code R�gle param�trage ! -833800 10 WS-4DCO-4DDU-CPOSN PIC S9(04) COMP. ! -833900* Curseur positionnement ! -834000 10 WS-4DCO-4DDU-PAGE-AREA PIC X(80). ! -834100* SAUVEGARDE PAGE AREA START ! -834200* ! -834300 05 FILLER PIC X(1674). ! -834400 03 WS-4DCO-4DDV REDEFINES WS-4DCO-PROGRAM. ! -834500* ============ ! -834600* ! -834700* ============== ! -834800* ------------------------------------------------------ * ! -834900* COMMAREA : GESTION TC4DDV0 * ! -835000* LONGUEUR : 1800 * ! -835100* PREFIXE : WS-4DCO-4DDV * ! -835200* ------------------------------------------------------ * ! -835300 05 WS-4DCO-4DDV-DONNEES. ! -835400 10 WS-4DCO-4DDV-CD-EVE-SURA PIC X(07). ! -835500* Code �v�nement param�trage ! -835600 10 WS-4DCO-4DDV-LIB-EVE-SURA PIC X(32). ! -835700* libell� �v�nement param�trage ! -835800 10 WS-4DCO-4DDV-LA-EVE-SURA PIC X(20). ! -835900* libell� court �v�nement param�trage ! -836000 10 WS-4DCO-4DDV-CLE-REPO. ! -836100 15 WS-4DCO-4DDV-CD-EVE-SURA-R PIC X(07). ! -836200* Repositionnement Code �v�nement param�trage ! -836300 10 WS-4DCO-4DDV-PAGE-AREA PIC X(80). ! -836400* SAUVEGARDE PAGE AREA START ! -836500 10 WS-4DCO-4DDV-CD-EVE-SURA-SE PIC X(07). ! -836600* Code �v�nement param�trage ! -836700* ! -836800 05 FILLER PIC X(1647). ! -836900 03 WS-4DCO-4DDW REDEFINES WS-4DCO-PROGRAM. ! -837000* ============ ! -837100* ! -837200* ============== ! -837300* ------------------------------------------------------ * ! -837400* COMMAREA : GESTION TC4DDW0, DDF * ! -837500* LONGUEUR : 1800 * ! -837600* PREFIXE : WS-4DCO-4DDW * ! -837700* ------------------------------------------------------ * ! -837800 05 WS-4DCO-4DDW-DONNEES. ! -837900 10 WS-4DCO-4DDW-CD-EVE-SURA PIC X(07). ! -838000* Code Ev�nement param�trage ! -838100 10 WS-4DCO-4DDW-LIB-EVE PIC X(32). ! -838200* Libell� �v�nement ! -838300 10 WS-4DCO-4DDW-CD-RGL-SURA PIC X(06). ! -838400* Code r�gle param�trage ! -838500 10 WS-4DCO-4DDW-LIB-RGL PIC X(32). ! -838600* Libell� R�gle ! -838700 10 WS-4DCO-4DDW-NO-ORD-APLI PIC 9(03). ! -838800* Num�ro d'ordre apli ! -838900 10 WS-4DCO-4DDW-CLE-REPO. ! -839000 15 WS-4DCO-4DDW-CD-EVE-SURA-R PIC X(07). ! -839100* Repositionnement Code Ev�nement param�trage ! -839200 10 WS-4DCO-4DDW-CPOSN PIC S9(04) COMP. ! -839300* Curseur positionnement ! -839400 10 WS-4DCO-4DDW-PAGE-AREA PIC X(80). ! -839500* SAUVEGARDE PAGE AREA START ! -839600 10 WS-4DCO-4DDW-CD-RGL-SEL PIC X(06). ! -839700* Code r�gle s�lectionn� ! -839800 10 WS-4DCO-4DDW-SCAT-EVE PIC X(04). ! -839900* sous cat�gorie �v�nement ! -840000 10 WS-4DCO-4DDW-SCAT-RGL PIC X(04). ! -840100* sous cat�gorie r�gle ! -840200 10 WS-4DCO-4DDW-SCAT-DFT PIC X(04). ! -840300* sous cat�gorie par d�faut ! -840400 10 WS-4DCO-4DDW-CD-EVE-SURA-GR PIC X(07). ! -840500* Code Ev�nement groupe ! -840600 10 WS-4DCO-4DDW-IDC-DET PIC X(01). ! -840700* indicateur d�tail ! -840800 10 WS-4DCO-4DDW-CAT-EVE PIC X(04). ! -840900* cat�gorie �v�nement ! -841000* ! -841100 05 FILLER PIC X(1601). ! -841200* ! -841300 03 WS-4DCO-4DD1 REDEFINES WS-4DCO-PROGRAM. ! -841400* ============ ! -841500* ! -841600* ============== ! -841700* ------------------------------------------------------ * ! -841800* COMMAREA : GESTION TC4DD10 * ! -841900* LONGUEUR : 1800 * ! -842000* PREFIXE : WS-4DCO-4DD1 * ! -842100* ------------------------------------------------------ * ! -842200 05 WS-4DCO-4DD1-DONNEES. ! -842300 10 WS-4DCO-4DD1-DA-DEB-PER PIC X(08). ! -842400* Date D�but p�riode ! -842500 10 WS-4DCO-4DD1-DA-FIN-PER PIC X(08). ! -842600* Date Fin p�riode ! -842700 10 WS-4DCO-4DD1-CD-ACT PIC X(01). ! -842800* Code action ! -842900 10 WS-4DCO-4DD1-CD-TY-ENR PIC X(01). ! -843000* Code Type Enregistrement ! -843100 10 WS-4DCO-4DD1-WK-ZON-CLE PIC X(50). ! -843200* Argument cl� ! -843300 10 WS-4DCO-4DD1-TM-STP PIC X(26). ! -843400* Time stamp pass� ! -843500 10 WS-4DCO-4DD1-NO-SAL-MAJ PIC X(08). ! -843600* Num�ro Sal. Maj ! -843700 10 WS-4DCO-4DD1-CPOSN PIC S9(04) COMP. ! -843800* Curseur positionnement ! -843900 10 WS-4DCO-4DD1-PAGE-AREA PIC X(80). ! -844000* SAUVEGARDE PAGE AREA START ! -844100 10 WS-4DCO-4DD1-DA-DEB-PER-SEL PIC X(08). ! -844200* Date D�but p�riode ! -844300 10 WS-4DCO-4DD1-DA-FIN-PER-SEL PIC X(08). ! -844400* Date Fin p�riode ! -844500 10 WS-4DCO-4DD1-CD-ACT-SEL PIC X(01). ! -844600* Code Action ! -844700 10 WS-4DCO-4DD1-CD-TY-ENR-SEL PIC X(01). ! -844800* Code type enregist ! -844900 10 WS-4DCO-4DD1-NO-SAL-MAJ-SEL PIC X(06). ! -845000* Code salarie ! -845100 05 FILLER PIC X(1592). ! -845200* ! -845300 03 WS-4DCO-4DD7 REDEFINES WS-4DCO-PROGRAM. ! -845400* ============ ! -845500* ! -845600* ============== ! -845700* ------------------------------------------------------ * ! -845800* COMMAREA : GESTION TC4DD70 * ! -845900* LONGUEUR : 1800 * ! -846000* PREFIXE : WS-4DCO-4DD7 * ! -846100* ------------------------------------------------------ * ! -846200 05 WS-4DCO-4DD7-DONNEES. ! -846300 10 WS-4DCO-4DD7-CD-IMPR PIC X(08). ! -846400* Code imprimante ! -846500 05 FILLER PIC X(1792). ! -846600* ! -846700 03 WS-4DCO-4DG1 REDEFINES WS-4DCO-PROGRAM. ! -846800* ============ ! -846900* ! -847000* ============== ! -847100* ------------------------------------------------------ * ! -847200* COMMAREA : GESTION TC4DG10 * ! -847300* LONGUEUR : 1800 * ! -847400* PREFIXE : WS-4DCO-4DG1 * ! -847500* ------------------------------------------------------ * ! -847600 05 WS-4DCO-4DG1-ZON-CLE. ! -847700 07 WS-4DCO-4DG1-DONNEES. ! -847800 10 WS-4DCO-4DG1-NO-RGM-GE PIC 9(03). ! -847900 10 WS-4DCO-4DG1-A-REF PIC 9(04). ! -848000* TYPE D'ACTION SUR L'ECRAN MC4DG10 ! -848100 07 WS-4DCO-4DG1-SAV-ACTION PIC X. ! -848200 88 4DG1-CREAT VALUE 'C'. ! -848300 88 4DG1-MODIF VALUE 'M'. ! -848400 88 4DG1-SUPP VALUE 'A'. ! -848500 88 4DG1-VISU VALUE 'D'. ! -848600* ! -848700 05 WS-4DCO-4DG1-NB-OCC-RES PIC 9(04). ! -848800 05 WS-4DCO-4DG1-SAUV-PAGE-AREA PIC X(198). ! -848900 05 WS-4DCO-4DG1-NB-PAGES PIC 9(02). ! -849000 05 WS-4DCO-4DG1-NO-RGM-GE-SEL PIC S9(03) COMP-3. ! -849100 05 WS-4DCO-4DG1-A-REF-SEL PIC X(04). ! -849200 05 FILLER PIC X(1582). ! -849300* ! -849400 03 WS-4DCO-4DG2 REDEFINES WS-4DCO-PROGRAM. ! -849500* ============ ! -849600* ! -849700* ====m========= ! -849800* ------------------------------------------------------ * ! -849900* COMMAREA : GESTION TC4DG20 * ! -850000* LONGUEUR : 1800 * ! -850100* PREFIXE : WS-4DCO-4DG2 * ! -850200* ------------------------------------------------------ * ! -850300 05 WS-4DCO-4DG2-DONNEES. ! -850400 ! -850500 10 WS-4DCO-4DG2-ZON-CLE. ! -850600 15 WS-4DCO-4DG2-NO-RGM-GE PIC 9(03). ! -850700* NUMERO REGIME ! -850800 15 WS-4DCO-4DG2-A-REF PIC 9(04). ! -850900* ANNEE REFERENCE ! -851000 15 WS-4DCO-4DG2-SAV-ACTION PIC X. ! -851100 88 4DG2-CREAT VALUE 'C'. ! -851200 88 4DG2-MODIF VALUE 'M'. ! -851300 88 4DG2-SUPP VALUE 'A'. ! -851400 88 4DG2-VISU VALUE 'D'. ! -851500 ! -851600 10 WS-4DCO-4DG2-ZON-APLI. ! -851700 15 WS-4DCO-4DG2-LIB-RGM-GE PIC X(32). ! -851800* LIBELLE REGIME ! -851900 15 WS-4DCO-4DG2-TX-MIN-ITT-GAR ! -852000 PIC S9(2)V9(3) COMP-3. ! -852100* TAUX MINIMUM INT�R�TS GARANTIS ! -852200 15 WS-4DCO-4DG2-TX-PAB PIC S9(2)V9(3) COMP-3. ! -852300* TAUX PAB ! -852400 15 WS-4DCO-4DG2-TX-FRS-GTN-AN ! -852500 PIC S9(2)V9(3) COMP-3. ! -852600* TAUX FRAIS GESTION ! -852700 15 WS-4DCO-4DG2-TX-FRS-STD-ENT ! -852800 PIC S9(2)V9(3) COMP-3. ! -852900* TAUX FRAIS STANDARD ENTREE ! -853000 15 WS-4DCO-4DG2-TX-RBT-SR ! -853100 PIC S9(3)V9(4) COMP-3. ! -853200* TAUX REMBOURSEMENT ! -853300 15 WS-4DCO-4DG2-TX-FRS-ARBT ! -853400 PIC S9(3)V9(4) COMP-3. ! -853500* TAUX FRAIS ARBITRAGE ! -853600 15 WS-4DCO-4DG2-MT-FOF-GLB ! -853700 PIC S9(13)V9(2) COMP-3. ! -853800* MONTANT FORFAITAIRE FRAIS ARBITRAGE ! -853900 15 WS-4DCO-4DG2-MT-MIN-ARBT ! -854000 PIC S9(13)V9(2) COMP-3. ! -854100* MONTANT MINIMUM PAR ARBITRAGE ! -854200 15 WS-4DCO-4DG2-MT-MX-ARBT ! -854300 PIC S9(13)V9(2) COMP-3. ! -854400* MONTANT MAXIMUM PAR ARBITRAGE ! -854500* ! -854600 10 WS-4DCO-4DG2-ZON-SAV. ! -854700 15 WS-4DCO-4DG2-SV-LIB-RGM-GE PIC X(32). ! -854800* LIBELLE REGIME ! -854900 15 WS-4DCO-4DG2-SV-TX-MIN-ITT-GAR ! -855000 PIC S9(2)V9(3) COMP-3. ! -855100* TAUX MINIMUM INT�R�TS GARANTIS ! -855200 15 WS-4DCO-4DG2-SV-TX-PAB ! -855300 PIC S9(2)V9(3) COMP-3. ! -855400* TAUX PAB ! -855500 15 WS-4DCO-4DG2-SV-TX-FRS-GTN-AN ! -855600 PIC S9(2)V9(3) COMP-3. ! -855700* TAUX FRAIS GESTION ! -855800 15 WS-4DCO-4DG2-SV-TX-FRS-STD-ENT ! -855900 PIC S9(2)V9(3) COMP-3. ! -856000* TAUX FRAIS STANDARD ENTREE ! -856100 15 WS-4DCO-4DG2-SV-TX-RBT-SR ! -856200 PIC S9(3)V9(4) COMP-3. ! -856300* TAUX REMBOURSEMENT ! -856400 15 WS-4DCO-4DG2-SV-TX-FRS-ARBT ! -856500 PIC S9(3)V9(4) COMP-3. ! -856600* TAUX FRAIS ARBITRAGE ! -856700 15 WS-4DCO-4DG2-SV-MT-FOF-GLB ! -856800 PIC S9(13)V9(2) COMP-3. ! -856900* MONTANT FORFAITAIRE FRAIS ARBITRAGE ! -857000 15 WS-4DCO-4DG2-SV-MT-MIN-ARBT ! -857100 PIC S9(13)V9(2) COMP-3. ! -857200* MONTANT MINIMUM PAR ARBITRAGE ! -857300 15 WS-4DCO-4DG2-SV-MT-MX-ARBT ! -857400 PIC S9(13)V9(2) COMP-3. ! -857500* MONTANT MAXIMUM PAR ARBITRAGE ! -857600 ! -857700 10 WS-4DCO-4DG2-LIB-OPE PIC X(30). ! -857800* LIBELLE OPERATION ! -857900 ! -858000 05 FILLER PIC X(1610). ! -858100* ! -858200 03 WS-4DCO-4DTP REDEFINES WS-4DCO-PROGRAM. ! -858300* ============ ! -858400* ! -858500* ============== ! -858600* ------------------------------------------------------ * ! -858700* COMMAREA : GESTION TC4DTP0 * ! -858800* LONGUEUR : 1800 * ! -858900* PREFIXE : WS-4DCO-4DTP * ! -859000* ------------------------------------------------------ * ! -859100 05 WS-4DCO-4DTP-DONNEES. ! -859200 15 WS-4DCO-4DTP-TYPRD PIC S9(02) COMP-3. ! -859300* NUMERO TYPE DE PRODUIT ! -859400 15 WS-4DCO-4DTP-LIB-TYPRD PIC X(32). ! -859500* LIBELLE TYPE DE PRODUIT ! -859600 15 WS-4DCO-4DTP-NOGEN PIC X(03). ! -859700* NUMERO DE GENERATION ! -859800 15 WS-4DCO-4DTP-CDGAR PIC X(02). ! -859900* CODE DE GARANTIE ! -860000* ! -860100 05 WS-4DCO-4DTP-SAUV-PAGE-AREA PIC X(198). ! -860200 05 WS-4DCO-4DTP-SAV-ACTION PIC X. ! -860300 05 FILLER PIC X(1562). ! -860400* ! -860500 03 WS-4DCO-4DM1 REDEFINES WS-4DCO-PROGRAM. ! -860600* ============ ! -860700* ! -860800* ============== ! -860900* ------------------------------------------------------ * ! -861000* COMMAREA : GESTION TC4DM10 * ! -861100* PARAMETRAGE MS:LISTE RESULTATS PAR STOCK * ! -861200* LONGUEUR : 1800 * ! -861300* PREFIXE : WS-4DCO-4DM1 * ! -861400* ------------------------------------------------------ * ! -861500 05 WS-4DCO-4DM1-DONNEES. ! -861600 15 WS-4DCO-4DM1-DA-DBT-PR-1 PIC X(10). ! -861700* DATE DEBUT PROROGATION 1 ! -861800 15 WS-4DCO-4DM1-DA-DBT-PR-2 PIC X(10). ! -861900* DATE DEBUT PROROGATION 2 ! -862000 15 WS-4DCO-4DM1-DA-DBT-PR-3 PIC X(10). ! -862100* DATE DEBUT PROROGATION 3 ! -862200 15 WS-4DCO-4DM1-DA-FIN-PR-1 PIC X(10). ! -862300* DATE DEBUT PROROGATION 1 ! -862400 15 WS-4DCO-4DM1-DA-FIN-PR-2 PIC X(10). ! -862500* DATE DEBUT PROROGATION 2 ! -862600 15 WS-4DCO-4DM1-DA-FIN-PR-3 PIC X(10). ! -862700* DATE DEBUT PROROGATION 3 ! -862800 05 WS-4DCO-4DM1-SAUV-PAGE-AREA PIC X(198). ! -862900 05 WS-4DCO-4DM1-SAV-ACT1 PIC X. ! -863000 05 WS-4DCO-4DM1-SAV-ACT2 PIC X. ! -863100 05 WS-4DCO-4DM1-SAV-ACT3 PIC X. ! -863200 05 WS-4DCO-4DM1-OCCUR PIC X. ! -863300 88 WS-4DCO-4DM1-OCCUR-OK VALUE 'O'. ! -863400 88 WS-4DCO-4DM1-OCCUR-KO VALUE 'N'. ! -863500 05 FILLER PIC X(1538). ! -863600* ! -863700 03 WS-4DCO-4DM2 REDEFINES WS-4DCO-PROGRAM. ! -863800* ============ ! -863900* ! -864000* ============== ! -864100* ------------------------------------------------------ * ! -864200* COMMAREA : GESTION TC4DM20 * ! -864300* PARAMETRAGE MS:resultats regimes gestion * ! -864400* LONGUEUR : 1800 * ! -864500* PREFIXE : WS-4DCO-4DM2 * ! -864600* ------------------------------------------------------ * ! -864700 05 WS-4DCO-4DM2-DONNEES. ! -864800 15 WS-4DCO-4DM2-A-REF PIC X(4). ! -864900* ANNEE DE REFERENCE ! -865000 15 WS-4DCO-4DM2-LIB-RGM-GE PIC X(32). ! -865100* ANNEE DE REFERENCE ! -865200 15 WS-4DCO-4DM2-TX-MIN-ITT-GAR PIC S9(2)V9(3). ! -865300* TAUX MINIMUM INTERETS GARANTIS ! -865400 15 WS-4DCO-4DM2-TX-PAB PIC S9(2)V9(3). ! -865500* TAUX DE PAB ! -865600 15 WS-4DCO-4DM2-TX-FRS-GTN-AN PIC S9(2)V9(3). ! -865700* TAUX DE FRAIS DE GESTION ! -865800 15 WS-4DCO-4DM2-TX-FRS-STD-ENT PIC S9(2)V9(3). ! -865900* TAUX DE FRAIS STANDARD ! -866000 15 WS-4DCO-4DM2-TX-RBT-SR PIC S9(3)V9(4). ! -866100* TAUX DE REMBOURSEMENT ! -866200 15 WS-4DCO-4DM2-TX-FRS-ARBT PIC S9(3)V9(4). ! -866300* TAUX DE FRAIS D'ARBITRAGE ! -866400 15 WS-4DCO-4DM2-MT-FOF-GLB PIC S9(13)V9(2). ! -866500* MONTANT FORFAITAIRE FRAIS D'ARBITRAGE ! -866600 05 WS-4DCO-4DM2-SAUV-PAGE-AREA PIC X(198). ! -866700 05 WS-4DCO-4DM2-SAV-ACTION PIC X. ! -866800 05 FILLER PIC X(1516). ! -866900* ! -867000 03 WS-4DCO-4DM4 REDEFINES WS-4DCO-PROGRAM. ! -867100* ============ ! -867200* ! -867300* ============== ! -867400* ------------------------------------------------------ * ! -867500* COMMAREA : GESTION TC4DM40 * ! -867600* PARAMETRAGE MS: regimes fiscaux * ! -867700* LONGUEUR : 1800 * ! -867800* PREFIXE : WS-4DCO-4DM4 * ! -867900* ------------------------------------------------------ * ! -868000 05 WS-4DCO-4DM4-DONNEES. ! -868100 15 WS-4DCO-4DM4-NO-GEN-RF PIC 9(3). ! -868200* NUMERO DE GENERATION ! -868300 15 WS-4DCO-4DM4-CD-DRG-RF PIC X(2). ! -868400* CODE DEROGATION ! -868500 15 WS-4DCO-4DM4-DA-VAL-DBT-RF PIC X(10). ! -868600* DATE DEBUT REGIME ! -868700 15 WS-4DCO-4DM4-DA-FIN-VAL-RF PIC X(10). ! -868800* DATE FIN REGIME ! -868900 15 WS-4DCO-4DM4-LIB-RGM-FI PIC X(32). ! -869000* LIBELLE REGIME ! -869100 15 WS-4DCO-4DM4-TX-PLV-SOC PIC S9(3)V9(8). ! -869200* TAUX PRELEVEMENT SOCIAL ! -869300 15 WS-4DCO-4DM4-LIB-TY-TX-SO PIC X(32). ! -869400* LIBELLE TYPE DE TAUX ! -869500 15 WS-4DCO-4DM4-TX-CRDS PIC S9(2)V9(3). ! -869600* TAUX CRDS ! -869700 15 WS-4DCO-4DM4-LIB-TY-TX-CR PIC X(32). ! -869800* LIBELLE TYPE DE TAUX ! -869900 15 WS-4DCO-4DM4-TX-CTB PIC S9(2)V9(3). ! -870000* TAUX CTB ! -870100 15 WS-4DCO-4DM4-LIB-TX-CTB PIC X(32). ! -870200* LIBELLE TYPE DE TAUX ! -870300 15 WS-4DCO-4DM4-TX-CSG PIC S9(2)V9(3). ! -870400* TAUX CSG ! -870500 15 WS-4DCO-4DM4-LIB-TY-TX-CS PIC X(32). ! -870600* LIBELLE TYPE DE TAUX ! -870700 15 WS-4DCO-4DM4-TX-CSG-97 PIC S9(2)V9(3). ! -870800* TAUX CSG 97 ! -870900 15 WS-4DCO-4DM4-LIB-TY-TX-97 PIC X(32). ! -871000* LIBELLE TYPE DE TAUX CSG 97 ! -871100 15 WS-4DCO-4DM4-TX-CSG-98 PIC S9(2)V9(3). ! -871200* TAUX CSG 98 ! -871300 15 WS-4DCO-4DM4-LIB-TY-TX-98 PIC X(32). ! -871400* LIBELLE TYPE DE TAUX CSG 98 ! -871500 15 WS-4DCO-4DM4-TX-PLV-LBL-1 PIC S9(2)V9(3). ! -871600* TAUX PRELEVEMENT LIBERATOIRE 1 ! -871700 15 WS-4DCO-4DM4-LIB-TY-TX-1 PIC X(32). ! -871800* LIBELLE TYPE DE TAUX 1 ! -871900 15 WS-4DCO-4DM4-DUR-FIS-1 PIC 9(4). ! -872000* DUREE FISCALE 1 ! -872100 15 WS-4DCO-4DM4-TX-PLV-LBL-2 PIC S9(2)V9(3). ! -872200* TAUX PRELEVEMENT LIBERATOIRE 2 ! -872300 15 WS-4DCO-4DM4-LIB-TY-TX-2 PIC X(32). ! -872400* LIBELLE TYPE DE TAUX 2 ! -872500 15 WS-4DCO-4DM4-DUR-FIS-2 PIC 9(4). ! -872600* DUREE FISCALE 2 ! -872700 15 WS-4DCO-4DM4-TX-PLV-LBL-3 PIC S9(2)V9(3). ! -872800* TAUX PRELEVEMENT LIBERATOIRE 3 ! -872900 15 WS-4DCO-4DM4-LIB-TY-TX-3 PIC X(32). ! -873000* LIBELLE TYPE DE TAUX 3 ! -873100 15 WS-4DCO-4DM4-DUR-FIS-3 PIC 9(4). ! -873200* DUREE FISCALE 3 ! -873300 15 WS-4DCO-4DM4-TX-PLV-LBL-4 PIC S9(2)V9(3). ! -873400* TAUX PRELEVEMENT LIBERATOIRE 4 ! -873500 15 WS-4DCO-4DM4-LIB-TY-TX-4 PIC X(32). ! -873600* LIBELLE TYPE DE TAUX 4 ! -873700 15 WS-4DCO-4DM4-DUR-FIS-4 PIC 9(4). ! -873800* DUREE FISCALE 4 ! -873900 15 WS-4DCO-4DM4-TX-PLV-LBL-5 PIC S9(2)V9(3). ! -874000* TAUX PRELEVEMENT LIBERATOIRE 5 ! -874100 15 WS-4DCO-4DM4-LIB-TY-TX-5 PIC X(32). ! -874200* LIBELLE TYPE DE TAUX 5 ! -874300 15 WS-4DCO-4DM4-DUR-FIS-5 PIC 9(4). ! -874400* DUREE FISCALE 5 ! -874500 05 WS-4DCO-4DM4-SAUV-PAGE-AREA PIC X(198). ! -874600 05 WS-4DCO-4DM4-SAV-ACTION PIC X. ! -874700 05 FILLER PIC X(1109). ! -874800* ! -874900 03 WS-4DCO-4DF1 REDEFINES WS-4DCO-PROGRAM. ! -875000* ============ ! -875100* ! -875200* ============== ! -875300* ------------------------------------------------------ * ! -875400* COMMAREA : GESTION TC4DF10 * ! -875500* LONGUEUR : 1800 * ! -875600* PREFIXE : WS-4DCO-4DF1 * ! -875700* ------------------------------------------------------ * ! -875800 05 WS-4DCO-4DF1-ZON-CLE. ! -875900 07 WS-4DCO-4DF1-DONNEES. ! -876000 10 WS-4DCO-4DF1-NO-RGM-FI PIC 9(03). ! -876100 10 WS-4DCO-4DF1-NO-GEN-RF PIC 9(03). ! -876200 10 WS-4DCO-4DF1-CD-DRG-RF PIC X(02). ! -876300 07 WS-4DCO-4DF1-ACTIONS. ! -876400* TYPE D'ACTION SUR L'ECRAN MC4DF10 ! -876500 10 WS-4DCO-4DF1-SAV-ACTION PIC X. ! -876600 88 4DF1-CREAT VALUE 'C'. ! -876700 88 4DF1-MODIF VALUE 'M'. ! -876800 88 4DF1-SUPP VALUE 'A'. ! -876900 88 4DF1-VISU VALUE 'D'. ! -877000* ! -877100 05 WS-4DCO-4DF1-NB-OCC-RES PIC 9(04). ! -877200 05 WS-4DCO-4DF1-SAUV-PAGE-AREA PIC X(198). ! -877300 05 WS-4DCO-4DF1-NB-PAGES PIC 9(02). ! -877400 05 FILLER PIC X(1587). ! -877500* ! -877600* ! -877700 03 WS-4DCO-4DF2 REDEFINES WS-4DCO-PROGRAM. ! -877800* ============ ! -877900* ! -878000* ============== ! -878100* ------------------------------------------------------ * ! -878200* COMMAREA : GESTION TC4DF20 * ! -878300* LONGUEUR : 1800 * ! -878400* PREFIXE : WS-4DCO-4DF2 * ! -878500* ------------------------------------------------------ * ! -878600 05 WS-4DCO-4DF2-ZON-CLE. ! -878700 07 WS-4DCO-4DF2-SAISIES. ! -878800 10 WS-4DCO-4DF2-NO-RGM-FI PIC 9(03). ! -878900 10 WS-4DCO-4DF2-NO-GEN-RF PIC 9(03). ! -879000 10 WS-4DCO-4DF2-CD-DRG-RF PIC X(02). ! -879100 07 WS-4DCO-4DF2-ACTIONS. ! -879200* TYPE D'ACTION SUR L'ECRAN MC4DF10 ! -879300 10 WS-4DCO-4DF2-SAV-ACTION PIC X. ! -879400 88 4DF2-CREAT VALUE 'C'. ! -879500 88 4DF2-MODIF VALUE 'M'. ! -879600 88 4DF2-SUPP VALUE 'A'. ! -879700 88 4DF2-VISU VALUE 'D'. ! -879800 05 WS-4DCO-4DF2-DONNEES. ! -879900 10 WS-4DCO-4DF2-DA-VAL-DBT-RF PIC X(10). ! -880000 10 WS-4DCO-4DF2-DA-FIN-VAL-RF PIC X(10). ! -880100 10 WS-4DCO-4DF2-LIB-RGM-FI PIC X(32). ! -880200 10 WS-4DCO-4DF2-TX-PLV-SOC PIC S9(3)V9(8) COMP-3. ! -880300 10 WS-4DCO-4DF2-LIB-TY-TX-SO PIC X(32). ! -880400 10 WS-4DCO-4DF2-TX-CRDS PIC S9(3)V9(8) COMP-3. ! -880500 10 WS-4DCO-4DF2-LIB-TY-TX-CR PIC X(32). ! -880600 10 WS-4DCO-4DF2-TX-CSG PIC S9(3)V9(8) COMP-3. ! -880700 10 WS-4DCO-4DF2-LIB-TY-TX-CS PIC X(32). ! -880800 10 WS-4DCO-4DF2-TX-CSG-97 PIC S9(3)V9(8) COMP-3. ! -880900 10 WS-4DCO-4DF2-LIB-TY-TX-97 PIC X(32). ! -881000 10 WS-4DCO-4DF2-TX-CSG-98 PIC S9(3)V9(8) COMP-3. ! -881100 10 WS-4DCO-4DF2-LIB-TY-TX-98 PIC X(32). ! -881200 10 WS-4DCO-4DF2-TX-CTB-AD PIC S9(3)V9(8) COMP-3. ! -881300 10 WS-4DCO-4DF2-LIB-TY-TX-AD PIC X(32). ! -881200 10 WS-4DCO-4DF2-TX-RSA PIC S9(3)V9(8) COMP-3. ! -881300 10 WS-4DCO-4DF2-LIB-TY-TX-RSA PIC X(32). ! -881400 10 WS-4DCO-4DF2-TX-PLV-LBL-1 PIC S9(3)V9(8) COMP-3. ! -881500 10 WS-4DCO-4DF2-LIB-TY-TX-1 PIC X(32). ! -881600 10 WS-4DCO-4DF2-DUR-FIS-1 PIC S9(4). ! -881700 10 WS-4DCO-4DF2-TX-PLV-LBL-2 PIC S9(3)V9(8) COMP-3. ! -881800 10 WS-4DCO-4DF2-LIB-TY-TX-2 PIC X(32). ! -881900 10 WS-4DCO-4DF2-DUR-FIS-2 PIC S9(4). ! -882000 10 WS-4DCO-4DF2-TX-PLV-LBL-3 PIC S9(3)V9(8) COMP-3. ! -882100 10 WS-4DCO-4DF2-LIB-TY-TX-3 PIC X(32). ! -882200 10 WS-4DCO-4DF2-DUR-FIS-3 PIC S9(4). ! -882300 10 WS-4DCO-4DF2-TX-PLV-LBL-4 PIC S9(3)V9(8) COMP-3. ! -882400 10 WS-4DCO-4DF2-LIB-TY-TX-4 PIC X(32). ! -882500 10 WS-4DCO-4DF2-DUR-FIS-4 PIC S9(4). ! -882600 10 WS-4DCO-4DF2-TX-PLV-LBL-5 PIC S9(3)V9(8) COMP-3. ! -882700 10 WS-4DCO-4DF2-LIB-TY-TX-5 PIC X(32). ! -882800 10 WS-4DCO-4DF2-DUR-FIS-5 PIC S9(4). ! -882900 05 WS-4DCO-4DF2-LIB-OPE PIC X(30). ! -883000 05 WS-4DCO-4DF2-SV-DONNEES. ! -883100 10 WS-4DCO-4DF2-SV-NO-RGM-FI PIC 9(03). ! -883200 10 WS-4DCO-4DF2-SV-NO-GEN-RF PIC 9(03). ! -883300 10 WS-4DCO-4DF2-SV-CD-DRG-RF PIC X(02). ! -883400 10 WS-4DCO-4DF2-SV-DA-VAL-DBT-RF PIC X(10). ! -883500 10 WS-4DCO-4DF2-SV-DA-FIN-VAL-RF PIC X(10). ! -883600 10 WS-4DCO-4DF2-SV-LIB-RGM-FI PIC X(32). ! -883700 10 WS-4DCO-4DF2-SV-TX-PLV-SOC PIC S9(3)V9(8) COMP-3. ! -883800 10 WS-4DCO-4DF2-SV-LIB-TY-TX-SO PIC X(32). ! -883900 10 WS-4DCO-4DF2-SV-TX-CRDS PIC S9(3)V9(8) COMP-3. ! -884000 10 WS-4DCO-4DF2-SV-LIB-TY-TX-CR PIC X(32). ! -884100 10 WS-4DCO-4DF2-SV-TX-CSG PIC S9(3)V9(8) COMP-3. ! -884200 10 WS-4DCO-4DF2-SV-LIB-TY-TX-CS PIC X(32). ! -884300 10 WS-4DCO-4DF2-SV-TX-CSG-97 PIC S9(3)V9(8) COMP-3. ! -884400 10 WS-4DCO-4DF2-SV-LIB-TY-TX-97 PIC X(32). ! -884500 10 WS-4DCO-4DF2-SV-TX-CSG-98 PIC S9(3)V9(8) COMP-3. ! -884600 10 WS-4DCO-4DF2-SV-LIB-TY-TX-98 PIC X(32). ! -884700 10 WS-4DCO-4DF2-SV-TX-CTB-AD PIC S9(3)V9(8) COMP-3. ! -884800 10 WS-4DCO-4DF2-SV-LIB-TY-TX-AD PIC X(32). ! -884700 10 WS-4DCO-4DF2-SV-TX-RSA PIC S9(3)V9(8) COMP-3. ! -884800 10 WS-4DCO-4DF2-SV-LIB-TY-TX-RSA PIC X(32). ! -884900 10 WS-4DCO-4DF2-SV-TX-PLV-LBL-1 PIC S9(3)V9(8) COMP-3. ! -885000 10 WS-4DCO-4DF2-SV-LIB-TY-TX-1 PIC X(32). ! -885100 10 WS-4DCO-4DF2-SV-DUR-FIS-1 PIC S9(4). ! -885200 10 WS-4DCO-4DF2-SV-TX-PLV-LBL-2 PIC S9(3)V9(8) COMP-3. ! -885300 10 WS-4DCO-4DF2-SV-LIB-TY-TX-2 PIC X(32). ! -885400 10 WS-4DCO-4DF2-SV-DUR-FIS-2 PIC S9(4). ! -885500 10 WS-4DCO-4DF2-SV-TX-PLV-LBL-3 PIC S9(3)V9(8) COMP-3. ! -885600 10 WS-4DCO-4DF2-SV-LIB-TY-TX-3 PIC X(32). ! -885700 10 WS-4DCO-4DF2-SV-DUR-FIS-3 PIC S9(4). ! -885800 10 WS-4DCO-4DF2-SV-TX-PLV-LBL-4 PIC S9(3)V9(8) COMP-3. ! -885900 10 WS-4DCO-4DF2-SV-LIB-TY-TX-4 PIC X(32). ! -886000 10 WS-4DCO-4DF2-SV-DUR-FIS-4 PIC S9(4). ! -886100 10 WS-4DCO-4DF2-SV-TX-PLV-LBL-5 PIC S9(3)V9(8) COMP-3. ! -886200 10 WS-4DCO-4DF2-SV-LIB-TY-TX-5 PIC X(32). ! -886300 10 WS-4DCO-4DF2-SV-DUR-FIS-5 PIC S9(4). ! -882900 05 FILLER PIC X(697). ! -886400* ! -886500 03 WS-4DCO-BLOCNOTE REDEFINES WS-4DCO-PROGRAM. ! -886600* ============ ! -886700* ! -886800* ============== ! -886900* ------------------------------------------------------ * ! -887000* COMMAREA : GESTION TC4DB60 -TC4DB70 * ! -887100* LONGUEUR : 1800 * ! -887200* PREFIXE : WS-4DCO-4DB6 * ! -887300* ------------------------------------------------------ * ! -887400 05 WS-4DCO-4DB6-CMT-RSC PIC X(79). ! -887500 05 WS-4DCO-4DB6-NAME-TS PIC X(08). ! -887600 05 WS-4DCO-4DB6-NO-ITEM PIC 9(04) COMP. ! -887700 05 WS-4DCO-4DB6-NB-ITEM PIC 9(04) COMP. ! -887800 05 WS-4DCO-4DB6-NB-OCC-RES PIC 9(04). ! -887900 05 WS-4DCO-4DB6-SAUV-PAGE-AREA PIC X(198). ! -888000 05 WS-4DCO-4DB6-NB-PAGES PIC 9(02). ! -888100 05 WS-4DCO-4DB6-IDC-OCC-SPL PIC X(01). ! -888200 05 WS-4DCO-4DB6-NO-SEQ-HIS PIC S9(07) COMP-3. ! -888300* TYPE D'ACTION SUR ECRANS MC4DB60 - MC4DB70 ! -888400 05 WS-4DCO-4DB6-TOP-ACTION PIC X. ! -888500 88 4DB6-CREAT VALUE 'C'. ! -888600 88 4DB6-MODIF VALUE 'M'. ! -888700 88 4DB6-SUPP VALUE 'A'. ! -888800 88 4DB6-VISU VALUE 'D'. ! -888900 05 FILLER PIC X(1306). ! -889000* ! -889100 03 WS-4DCO-4ET1 REDEFINES WS-4DCO-PROGRAM. ! -889200* ============ ! -889300* ! -889400* ============== ! -889500* ------------------------------------------------------ * ! -889600* COMMAREA : GESTION TC4ET10 * ! -889700* LONGUEUR : 1800 * ! -889800* PREFIXE : WS-4DCO-4ET1 * ! -889900* ------------------------------------------------------ * ! -890000 05 WS-4DCO-4ET1-PAGE-AREA-START PIC X(80). ! -890100* SAUVEGARDE DE L'ECRAN DE LISTE ! -890200 05 WS-4DCO-4ET1-LIB-EVE-TY PIC X(32). ! -890300* LIBELLE EVENEMENT ! -890400 05 WS-4DCO-4ET1-NO-SEQ-DO PIC 9(03). ! -890500* NUMERO SEQUENTIELLE DOCUMENT ! -890600 05 WS-4DCO-4ET1-IDC-DUP PIC X(01). ! -890700* INDICATEUR DUPLICATA ! -890800 05 WS-4DCO-4ET1-IDC-NV-CD PIC X(01). ! -890900* INDICATEUR CODE BARRE ! -891000 05 WS-4DCO-4ET1-IDC-REL-TT PIC X(01). ! -891100* INDICATEUR RELANCE ! -891200 05 WS-4DCO-4ET1-DA-CRE PIC X(08). ! -891300* DATE CREATION DOCUMENT ! -891400 05 WS-4DCO-4ET1-HEU-CRE PIC X(06). ! -891500* HEURE CREATION DOCUMENT ! -891600 05 WS-4DCO-4ET1-CD-EVE-TY PIC X(06). ! -891700* CODE EVENEMENT TYPE ! -891800 05 WS-4DCO-4ET1-NB-PG-DOC-REDI PIC 9(04) COMP. ! -891900* NOMBRE DE PAGE EDITION ! -892000 05 WS-4DCO-4ET1-CD-DEL PIC X(02). ! -892100* CODE DELAI ! -892200 05 WS-4DCO-4ET1-CD-EVE-TY-CF PIC X(06). ! -892300* CODE EVENEMENT TYPE CONFIRMATION ! -892400 05 WS-4DCO-4ET1-CONF-FORCEE PIC X(01). ! -892500* CODE EVENEMENT TYPE CONFIRMATION ! -892600 05 FILLER PIC X(1651). ! -892700* ! -892800 03 WS-4DCO-4DA4 REDEFINES WS-4DCO-PROGRAM. ! -892900* ============ ! -893000* ! -893100* ============== ! -893200* ------------------------------------------------------ * ! -893300* COMMAREA : GESTION DEROGATION PAR PROFIL ET TRANCHES * ! -893400* LONGUEUR : 1800 * ! -893500* PREFIXE : WS-4DCO-4DA4- * ! -893600* ------------------------------------------------------ * ! -893700* AFFICHAGE ENTETE (TC4DA40) ! -893800 05 WS-4DCO-4DA4-CD-PTN-TT PIC X(5). ! -893900 05 WS-4DCO-4DA4-NO-PTN-TT PIC 9(3) COMP-3. ! -894000 05 WS-4DCO-4DA4-LIB-PTN PIC X(32). ! -894100 05 WS-4DCO-4DA4-CD-PRF PIC X(3). ! -894200 05 WS-4DCO-4DA4-LIB-PRF PIC X(32). ! -894300 05 WS-4DCO-4DA4-CD-PRD1 PIC X(2). ! -894400 05 WS-4DCO-4DA4-NO-PRD-TT PIC 9(3) COMP-3. ! -894500 05 WS-4DCO-4DA4-CD-PRD-TT PIC X(2). ! -894600 05 WS-4DCO-4DA4-LIB-ACT PIC X(79). ! -894700 05 WS-4DCO-4DA4-TX-STD PIC S9(2)V9(5). ! -894800 05 WS-4DCO-4DA4-TY-TX PIC X(1). ! -894900 05 WS-4DCO-4DA4-LIB-TX PIC X(32). ! -895000 05 WS-4DCO-4DA4-LIB-PRD1 PIC X(32). ! -895100* ZONE DE SAUVEGARDE DU BORDEREAU ENTETE (CAS 2) ! -895200 05 WS-4DCO-4DA4-CD-PTN-TT-S PIC X(5). ! -895300 05 WS-4DCO-4DA4-NO-PTN-TT-S PIC 9(3) COMP-3. ! -895400 05 WS-4DCO-4DA4-LIB-PTN-S PIC X(32). ! -895500 05 WS-4DCO-4DA4-CD-PRF-S PIC X(3). ! -895600 05 WS-4DCO-4DA4-LIB-PRF-S PIC X(32). ! -895700 05 WS-4DCO-4DA4-CD-PRD1-S PIC X(2). ! -895800 05 WS-4DCO-4DA4-NO-PRD-TT-S PIC 9(3) COMP-3. ! -895900 05 WS-4DCO-4DA4-TX-STD-S PIC S9(2)V9(5). ! -896000 05 WS-4DCO-4DA4-TY-TX-S PIC X(1). ! -896100 05 WS-4DCO-4DA4-LIB-TX-S PIC X(32). ! -896200 05 WS-4DCO-4DA4-LIB-PRD1-S PIC X(32). ! -896300 05 WS-4DCO-4DA4-IND-PAGE PIC X(1). ! -896400 05 WS-4DCO-4DA4-IND PIC X(1). ! -896500* ZONE DEDIEE A LA LISTE (TC4DA40) ! -896600 05 WS-4DCO-4DA4-NB-PAGES PIC 9(2). ! -896700 05 WS-4DCO-4DA4-NO-PAGES PIC 9(2). ! -896800 05 WS-4DCO-4DA4-PAGE-AREA PIC X(198). ! -896900 05 WS-4DCO-4DA4-CD-ACTION PIC X(1). ! -897000* ZONE DEDIEE A LA CREATION (TC4DA50) ! -897100 05 WS-4DCO-4DA4-PFL-CRE PIC X(3). ! -897200 05 WS-4DCO-4DA4-PRD-CRE PIC X(2). ! -897300 05 WS-4DCO-4DA4-TX-STD-CRE PIC S9(2)V9(5). ! -897400 05 WS-4DCO-4DA4-TY-CRE PIC X(1). ! -897500* ZONE DEDIEE A LA SAUVEGARDE DE L'ENTETE ! -897600 05 WS-4DCO-4DA4-SVG-PTN PIC X(5). ! -897700 05 WS-4DCO-4DA4-SVG-PFL PIC X(3). ! -897800 05 WS-4DCO-4DA4-SVG-PRD PIC X(2). ! -897900 05 WS-4DCO-4DA4-SVG-STD PIC S9(2)V9(5). ! -898000 05 WS-4DCO-4DA4-SVG-TY PIC X(1). ! -898100* ZONE DEDIEE AUX DIVERS INDICATEURS (TOUS) ! -898200 05 WS-4DCO-4DA4-INDICE PIC 9(1). ! -898300 05 WS-4DCO-4DA4-CD-INDICATEUR PIC 9(1). ! -898400 05 WS-4DCO-4DA4-CD-INDICATEUR2 PIC 9(1). ! -898500 05 WS-4DCO-4DA4-CD-INDICATEUR3 PIC 9(1). ! -898600* ZONE DEDIEE A L'AIDE A LA CREATION (TC4DA60) ! -898700 05 WS-4DCO-4DA4-CD-PTN-AIDE PIC X(5). ! -898800 05 WS-4DCO-4DA4-CD-PFL-AIDE PIC X(3). ! -898900 05 WS-4DCO-4DA4-CD-PRD-AIDE PIC X(2). ! -899000 05 WS-4DCO-4DA4-TY-TX-AIDE PIC X(1). ! -899100 05 WS-4DCO-4DA4-TX-STD-AIDE PIC S9(2)V9(5). ! -899200* AFFICHAGE DU % (TC4DA50) ! -899300 05 WS-4DCO-4DA4-AFFICHAGE OCCURS 12. ! -899400 10 WS-4DCO-4DA4-SIGLE PIC X(1). ! -899500* SAUVEGARDE DES TRANCHES CREEES (TC4DA50) ! -899600 05 WS-4DCO-4DA4-SVG OCCURS 12. ! -899700 10 WS-4DCO-4DA4-SVG-TX-DRD PIC S9(3)V9(4). ! -899800 10 WS-4DCO-4DA4-SVG-MT-MIN PIC S9(13)V99 COMP-3. ! -899900 10 WS-4DCO-4DA4-SVG-MT-MAX PIC S9(13)V99 COMP-3. ! -900000* SAUVEGARDE DES TRANCHES (TC4DA50) ! -900100 05 WS-4DCO-4DA4-TRANCHE OCCURS 12. ! -900200 10 WS-4DCO-4DA4-TX-TCH-DRG PIC S9(3)V9(4) COMP-3. ! -900300 10 WS-4DCO-4DA4-MIN-TCH-DRG PIC S9(13)V99 COMP-3. ! -900400 10 WS-4DCO-4DA4-MAX-TCH-DRG PIC S9(13)V99 COMP-3. ! -900500* SAUVEGARDE DE LA CLE DE REPOSITIONNEMENT (TC4DA40) ! -900600 05 WS-4DCO-4DA4-SV-CLE-PRD1 PIC 9(3) COMP-3. ! -900700 05 WS-4DCO-4DA4-CLE-POS. ! -900800 10 WS-4DCO-4DA4-SV-CLE-PRF PIC X(3). ! -900900 10 WS-4DCO-4DA4-SV-CLE-PRD PIC X(2). ! -901000 10 WS-4DCO-4DA4-SV-CLE-TYTX PIC X(1). ! -901100 10 WS-4DCO-4DA4-SV-CLE-TXSTD PIC 9(2)V9(5). ! -901200* APPLICATION HABILITATION (PARTIE COMMUNE) (TC98720) ! -901300 05 WS-4DCO-HABI-4DA4. ! -901400* LONGUEUR : 0400 ! -901500 10 WS-4DCO-4AD4-CD-PTN-DLGAIRE PIC X(05). ! -901600 10 WS-4DCO-4DA4-LA-PTN-DLGAIRE PIC X(16). ! -901700 10 WS-4DCO-4DA4-CD-PFL-DLGAIRE PIC X(03). ! -901800 10 WS-4DCO-4DA4-LA-PFL-DLGAIRE PIC X(16). ! -901900 10 WS-4DCO-4DA4-CD-IDT-DLGAIRE PIC X(08). ! -902000 10 WS-4DCO-4DA4-CD-PTN-DLGUE PIC X(05). ! -902100 10 WS-4DCO-4DA4-LA-PTN-DLGUE PIC X(16). ! -902200 10 WS-4DCO-4DA4-CD-PFL-DLGUE PIC X(03). ! -902300 10 WS-4DCO-4DA4-LA-PFL-DLGUE PIC X(16). ! -902400 10 WS-4DCO-4DA4-CD-IDT-DLGUE PIC X(08). ! -902500 10 WS-4DCO-4DA4-IDC-MAJ PIC X(01). ! -902600 10 WS-4DCO-4DA4-LIB-PTN-DLGAIRE PIC X(32). ! -902700 10 WS-4DCO-4DA4-CD-TY-PFL-DLGUE PIC X(01). ! -902800 10 WS-4DCO-4DA4-NO-PTN-DLGAIRE PIC 9(03). ! -902900 10 WS-4DCO-4DA4-NO-PTN-DLGUE PIC 9(03). ! -903000 10 WS-4DCO-4DA4-IDC-IDT-ITN PIC X(1). ! -903100 10 WS-4DCO-4DA4-NIV-DRG PIC 9(3). ! -903200 10 WS-4DCO-4DA4-NO-TEL-SL PIC X(11). ! -903300 10 WS-4DCO-4DA4-NO-TEL-DM PIC X(11). ! -903400 10 WS-4DCO-4DA4-NO-FAX PIC X(12). ! -903500 10 WS-4DCO-4DA4-CD-PROV PIC X(03). ! -903600 88 ADMINISTRATEUR VALUE 'ADM'. ! -903700 88 DELEGUE VALUE 'DLG'. ! -903800 88 IDENTIFICATEUR VALUE 'IDT'. ! -903900 10 FILLER PIC X(223). ! -904000* LIBELLE DE L'ACTION EN COURS (C4DA50) ! -904100 05 WS-4DCO-4DA4-LIB-TITRE PIC X(012). ! -904200* TAUX TRANCHE DEROGATOIRE MAXIMUM (C4DA50) ! -904300 05 WS-4DCO-4DA4-TRANCE-MAXI OCCURS 12. ! -904400 10 WS-4DCO-4DA4-TX-TCH-DRG-MX PIC S9(3)V9(4) COMP-3. ! -904500* FILLER ! -904600 05 FILLER PIC X(038). ! -904700* ! -904800 03 WS-4DCO-4ERIA REDEFINES WS-4DCO-PROGRAM. ! -904900* ============ ! -905000* ! -905100* ============== ! -905200* ------------------------------------------------------ * ! -905300* COMMAREA : GESTION DES RELEVES D'INFO ANNUELLE * ! -905400* LONGUEUR : 1800 * ! -905500* PREFIXE : WS-4DCO-4ERIA * ! -905600* ------------------------------------------------------ * ! -905700 05 WS-4DCO-4ERIA-NUM-CPT PIC X(15). ! -905800 05 WS-4DCO-4ERIA-NOM-PATRO PIC X(32). ! -905900 05 WS-4DCO-4ERIA-LIB-PFL PIC X(32). ! -906000 05 WS-4DCO-4ERIA-SAV-ACTION PIC X(01). ! -906100 05 WS-4DCO-4ERIA-CD-ACTION PIC X(01). ! -906200 05 WS-4DCO-4ERIA-A-REF-RLV-CPT PIC 9(04). ! -906300 05 WS-4DCO-4ERIA-CD-PTN PIC X(05). ! -906400 05 WS-4DCO-4ERIA-PERIODE PIC X(01). ! -906500 88 RIA-ANNEE-1 VALUE '1'. ! -906600 88 RIA-ANNEE-2 VALUE '2'. ! -906700 05 FILLER PIC X(44). ! -906800 05 WS-4DCO-4E13. ! -906900 10 WS-4DCO-4E13-LIB-TITRE PIC X(30). ! -907000 10 WS-4DCO-4E13-NB-PAGES PIC 9(02). ! -907100 10 WS-4DCO-4E13-NO-PAGES PIC 9(02). ! -907200 10 WS-4DCO-4E13-PAGE-AREA PIC X(198). ! -907300 10 WS-4DCO-4E13-LIB-ACT PIC X(78). ! -907400 10 WS-4DCO-4E13-UC-CRE PIC X(16). ! -907500 10 WS-4DCO-4E13-DAT-CRE PIC S9(10)V9(04). ! -907600 10 WS-4DCO-4E13-ACH-CRE PIC S9(10)V9(04). ! -907700 10 WS-4DCO-4E13-VEN-CRE PIC S9(10)V9(04). ! -907800 10 WS-4DCO-4E13-FAG-CRE PIC S9(10)V9(04). ! -907900 10 WS-4DCO-4E13-IDC-MODIF PIC 9(1). ! -908000 10 WS-4DCO-4E13-CPN-CRE PIC S9(10)V9(04). ! -908100 10 FILLER PIC X(85). ! -908200 05 WS-4DCO-4E12. ! -908300 10 WS-4DCO-4E12-LIB-TITRE PIC X(37). ! -908400 10 FILLER PIC X(63). ! -908500 05 WS-4DCO-4E16. ! -908600 10 WS-4DCO-4E16-NB-PAGES PIC 9(02). ! -908700 10 WS-4DCO-4E16-NO-PAGES PIC 9(02). ! -908800 10 WS-4DCO-4E16-PAGE-AREA PIC X(198). ! -908900 10 WS-4DCO-4E16-NO-PART PIC X(03). ! -909000 10 WS-4DCO-4E16-NO-CTR PIC X(15). ! -909100 10 FILLER PIC X(30). ! -909200 05 WS-4DCO-4E14. ! -909300 10 WS-4DCO-4E14-NB-PAGES PIC 9(02). ! -909400 10 WS-4DCO-4E14-NO-PAGES PIC 9(02). ! -909500 10 WS-4DCO-4E14-PAGE-AREA PIC X(198). ! -909600 10 FILLER PIC X(48). ! -909700 05 WS-4DCO-4E15. ! -909800 10 WS-4DCO-4E15-IND-MODIF PIC X(01). ! -909900 10 WS-4DCO-4E15-IND-PAGE PIC 9(01). ! -910000 10 WS-4DCO-4E15-LIB-TITRE PIC X(37). ! -910100 10 WS-4DCO-4E15-LIB-ACTION PIC X(40). ! -910200 10 WS-4DCO-4E15-PAGE-AREA PIC X(198). ! -910300 10 WS-4DCO-4E15-NB-PAGES PIC 9(02). ! -910400 10 WS-4DCO-4E15-CD-ACTION PIC X(01). ! -910500 10 WS-4DCO-4E15-SVG-INDICE PIC 9(03). ! -910600 10 WS-4DCO-4E15-LIBOPEC PIC X(32). ! -910700 10 WS-4DCO-4E15-DA-EFF-C PIC X(10). ! -910800 10 WS-4DCO-4E15-DEBITC PIC X(14). ! -910900 10 WS-4DCO-4E15-CREDITC PIC X(14). ! -911000 10 FILLER PIC X(07). ! -911100 05 WS-4DCO-4E18. ! -911200 10 WS-4DCO-4E18-LIB-TITRE PIC X(42). ! -911300 10 FILLER PIC X(08). ! -911400 05 FILLER PIC X(040). ! -911500* ! -911600 03 WS-4DCO-GLG REDEFINES WS-4DCO-PROGRAM. ! -911700* ================ ! -911800* ------------------------------------------------------ * ! -911900* COMMAREA : VERSEMENT SUITE A TRANSFERT C4GLG0 * ! -912000* LONGUEUR : 1800 * ! -912100* PREFIXE : WS-4DCO-MNC * ! -912200* ------------------------------------------------------ * ! -912300 ! -912400 05 WS-4DCO-GLG-CTR-ECHU PIC X(001). ! -912500* TOP INDICATEUR DE CONTRAT ECHU ! -912600 05 FILLER PIC X(1799). ! -912700* ZONES DISPONIBLES ! -912800* ------------------------------------------------------ * ! -912900* ! -913000 03 WS-4DCO-4FMB REDEFINES WS-4DCO-PROGRAM. ! -913100* ================ ! -913200* ------------------------------------------------------ * ! -913300* COMMAREA : RENTES DETAIL TC4FMB0 * ! -913400* LONGUEUR : 1800 * ! -913500* PREFIXE : WS-4DCO-4FMB * ! -913600* ------------------------------------------------------ * ! -913700 ! -913800 05 WS-4DCO-4FMB-CD-PTN PIC X(05). ! -913900* CODE PARTENAIRE ! -914000 05 WS-4DCO-4FMB-IDT-CTR PIC X(15). ! -914100* IDENTIFIANT CONTRAT ! -914200 05 WS-4DCO-4FMB-NOM-PRN PIC X(32). ! -914300* NOM PRENOM ! -914400 05 WS-4DCO-4FMB-DA-NAIS PIC X(08). ! -914500* DATE NAISSANCE ! -914600 05 WS-4DCO-4FMB-DA-DCS PIC X(08). ! -914700* DATE DECES ! -914800 05 WS-4DCO-4FMB-NO-RIB-RT PIC X(23). ! -914900* NUMERO RIB RENTE ! -915000 05 FILLER PIC X(1709). ! -915100* ZONES DISPONIBLES ! -915200* ------------------------------------------------------ * ! -915300* ! -915400 03 WS-4DCO-4DCR REDEFINES WS-4DCO-PROGRAM. ! -915500* ================ ! -915600* ------------------------------------------------------ * ! -915700* COMMAREA : CALCUL CLE RIB TC4DCR0 * ! -915800* LONGUEUR : 1800 * ! -915900* PREFIXE : WS-4DCO-4DCR * ! -916000* ------------------------------------------------------ * ! -916100 ! -916200 05 WS-4DCO-4DCR-CD-BANQUE PIC X(05). ! -916300* CODE BANQUE ! -916400 05 WS-4DCO-4DCR-CD-GUICHET PIC X(05). ! -916500* CODE GUICHET ! -916600 05 WS-4DCO-4DCR-NO-CPT-RIB PIC X(11). ! -916700* NUMERO COMPTE RIB ! -916800 05 WS-4DCO-4DCR-CLE-RIB PIC X(02). ! -916900* CLE RIB ! -917000 05 FILLER PIC X(1777). ! -917100* ZONES DISPONIBLES ! -917200* ------------------------------------------------------ * ! -917300 03 WS-4DCO-4FPT REDEFINES WS-4DCO-PROGRAM. ! -917400* ============ ! -917500* ! -917600* ============== ! -917700* ------------------------------------------------------ * ! -917800* GESTION SOUS MANDAT : LISTE PROFIL MANDAT DE GESTION * ! -917900* COMMAREA : GESTION TC4FPT0 * ! -918000* LONGUEUR : 1800 * ! -918100* PREFIXE : WS-4DCO-4FPT * ! -918200* ------------------------------------------------------ * ! -918300 05 WS-4DCO-4FPT-ZON-CLE. ! -918400 07 WS-4DCO-4FPT-DONNEES. ! -918500 10 WS-4DCO-4FPT-CD-PFL-MDT PIC X(03). ! -918600* TYPE D'ACTION SUR L'ECRAN MC4FPT0 ! -918700 07 WS-4DCO-4FPT-SAV-ACTION PIC X. ! -918800 88 4FPT-CREAT VALUE 'C'. ! -918900 88 4FPT-MODIF VALUE 'M'. ! -919000 88 4FPT-SUPP VALUE 'A'. ! -919100 88 4FPT-VISU VALUE 'D'. ! -919200* ! -919300 05 WS-4DCO-4FPT-DA-OUV-PFL PIC X(08). ! -919400 05 WS-4DCO-4FPT-DA-FIN-PFL PIC X(08). ! -919500 05 WS-4DCO-4FPT-NB-OCC-RES PIC 9(04). ! -919600 05 WS-4DCO-4FPT-SAUV-PAGE-AREA PIC X(198). ! -919700 05 WS-4DCO-4FPT-NB-PAGES PIC 9(02). ! -919800 05 WS-4DCO-4FPT-CD-PFL-MDT-SEL PIC X(03). ! -919900 05 FILLER PIC X(1573). ! -920000* ! -920100 03 WS-4DCO-4FPU REDEFINES WS-4DCO-PROGRAM. ! -920200* ============= ! -920300* ! -920400* ====m========= ! -920500* ------------------------------------------------------ * ! -920600* COMMAREA : GESTION sous mandat zoom, creation, supp * ! -920700* COMMAREA : TC4FPU0 * ! -920800* LONGUEUR : 1800 * ! -920900* PREFIXE : WS-4DCO-4FPT2 * ! -921000* ------------------------------------------------------ * ! -921100 05 WS-4DCO-4FPU-DONNEES. ! -921200 ! -921300 10 WS-4DCO-4FPU-ZON-CLE. ! -921400 15 WS-4DCO-4FPU-CD-PFL-MDT PIC X(03). ! -921500* CODE PROFIL MANDAT GESTION ! -921600 15 WS-4DCO-4FPU-SAV-ACTION PIC X. ! -921700 88 4FPU-CREAT VALUE 'C'. ! -921800 88 4FPU-MODIF VALUE 'M'. ! -921900 88 4FPU-SUPP VALUE 'A'. ! -922000 88 4FPU-VISU VALUE 'D'. ! -922100 ! -922200 10 WS-4DCO-4FPU-ZON-APLI. ! -922300 15 WS-4DCO-4FPU-LIB-PFL-MDT ! -922400 PIC X(32). ! -922500* LIBELL� LONG DU PROFIL ! -922600 15 WS-4DCO-4FPU-LA-PFL-MDT ! -922700 PIC X(20). ! -922800* LIBELL� COURT DU PROFIL ! -922900 15 WS-4DCO-4FPU-DA-OUV-PFL ! -923000 PIC X(10). ! -923100* DATE OUVERTURE ! -923200 15 WS-4DCO-4FPU-DA-FIN-PFL ! -923300 PIC X(10). ! -923400* DATE FERMETURE ! -923500 15 WS-4DCO-4FPU-PCG-MIN-ACT ! -923600 PIC S9(3)V9(4) COMP-3. ! -923700* POURCENTAGE MINIMUM ACTION ! -923800 15 WS-4DCO-4FPU-PCG-MX-ACT ! -923900 PIC S9(3)V9(4) COMP-3. ! -924000* POURCENTAGE MAXIMUM ACTION ! -924100 15 WS-4DCO-4FPU-PCG-MIN-EURO ! -924200 PIC S9(3)V9(4) COMP-3. ! -924300* POURCENTAGE MINIMUM FONDS EN EUROS ! -924400 15 WS-4DCO-4FPU-TX-FRS-PV ! -924500 PIC S9(3)V9(4) COMP-3. ! -924600* TAUX FRAIS SUR PLUS VALUE ! -924700 ! -924800 ! -924900 10 WS-4DCO-4FPU-ZON-SAV. ! -925000 15 WS-4DCO-4FPU-SV-LIB-PFL-MDT ! -925100 PIC X(32). ! -925200* LIBELL� LONG DU PROFIL ! -925300 15 WS-4DCO-4FPU-SV-LA-PFL-MDT ! -925400 PIC X(20). ! -925500* LIBELL� COURT DU PROFIL ! -925600 15 WS-4DCO-4FPU-SV-DA-OUV-PFL ! -925700 PIC X(10). ! -925800* DATE OUVERTURE ! -925900 15 WS-4DCO-4FPU-SV-DA-FIN-PFL ! -926000 PIC X(10). ! -926100* DATE FERMETURE ! -926200 15 WS-4DCO-4FPU-SV-PCG-MIN-ACT ! -926300 PIC S9(3)V9(4) COMP-3. ! -926400* POURCENTAGE MINIMUM ACTION ! -926500 15 WS-4DCO-4FPU-SV-PCG-MX-ACT ! -926600 PIC S9(3)V9(4) COMP-3. ! -926700* POURCENTAGE MAXIMUM ACTION ! -926800 15 WS-4DCO-4FPU-SV-PCG-MIN-EURO ! -926900 PIC S9(3)V9(4) COMP-3. ! -927000* POURCENTAGE MINIMUM FONDS EN EUROS ! -927100 15 WS-4DCO-4FPU-SV-TX-FRS-PV ! -927200 PIC S9(3)V9(4) COMP-3. ! -927300* TAUX FRAIS SUR PLUS VALUE ! -927400 ! -927500 ! -927600 10 WS-4DCO-4FPU-LIB-OPE PIC X(40). ! -927700* LIBELLE OPERATION ! -927800 05 FILLER PIC X(1580). ! -927900* ! -928000 03 WS-4DCO-4ELB REDEFINES WS-4DCO-PROGRAM. ! -928100* ============= ! -928200* ! -928300* ====m========= ! -928400* ------------------------------------------------------ * ! -928500* COMMAREA : EVOLUTION DE L'APPLICATIF LAB SURAVENIR * ! -928600* COMMAREA : TC4ELB0 * ! -928700* LONGUEUR : 1800 * ! -928800* PREFIXE : WS-4DCO-4ELB0 * ! -928900* ------------------------------------------------------ * ! -929000 05 WS-4DCO-4ELB-DONNEES. ! -929100 ! -929200 10 WS-4DCO-4ELB-DA-DBT-OPE. ! -929300 20 WS-4DCO-4ELB-DA-DBT-OPE-A PIC X(04). ! -929400 20 WS-4DCO-4ELB-DA-DBT-OPE-M PIC X(02). ! -929500 20 WS-4DCO-4ELB-DA-DBT-OPE-J PIC X(02). ! -929600* DATE DEBUT OPERATION ! -929700 10 WS-4DCO-4ELB-DA-FIN-OPE. ! -929800 20 WS-4DCO-4ELB-DA-FIN-OPE-A PIC X(04). ! -929900 20 WS-4DCO-4ELB-DA-FIN-OPE-M PIC X(02). ! -930000 20 WS-4DCO-4ELB-DA-FIN-OPE-J PIC X(02). ! -930100* DATE FIN OPERATION ! -930200 10 WS-4DCO-4ELB-CD-MTF PIC X(03). ! -930300* MOTIF ! -930400 10 WS-4DCO-4ELB-CD-PTN PIC X(05). ! -930500* PARTENAIRE ! -930600 10 WS-4DCO-4ELB-CD-CLI-PTN PIC X(15). ! -930700* IDENTIFIANT ! -930800 10 WS-4DCO-4ELB-SAUV-PAGE-AREA PIC X(160). ! -930900* ! -931000 10 WS-4DCO-4ELB-NB-PAG-TS PIC 9(002). ! -931100* ! -931200 05 FILLER PIC X(1599). ! -931300* 05 FILLER PIC X(1761). ! -931400* ! -931500 03 WS-4DCO-4ECOM REDEFINES WS-4DCO-PROGRAM. ! -931600* ============= ! -931700* ! -931800* ============== ! -931900* ------------------------------------------------------ * ! -932000* COMMAREA : GESTION DU R�F�RENTIEL COMMISSIONS * ! -932100* COMMAREA : TC4EM10 * ! -932200* LONGUEUR : 1800 * ! -932300* PREFIXE : WS-4DCO-4ECOM * ! -932400* ------------------------------------------------------ * ! -932500 05 WS-4DCO-4ECOM-DONNEES. ! -932600*--- GESTION DES HABILITATIONS LIGNE ACTIONS SUR �CRAN DE LISTE ! -932700 10 WS-4DCO-4ECOM-SV-LIGN. ! -932800 12 WS-4DCO-4ECOM-LIB-ACT PIC X(79). ! -932900 12 WS-4DCO-4ECOM-TAB OCCURS 10. ! -933000 15 WS-4DCO-4ECOM-CD-ACTION PIC X(01). ! -933100 12 WS-4DCO-4ECOM-NB-ACT PIC 9(02). ! -933200 12 WS-4DCO-4ECOM-CD-AUT-APLI-S PIC X(01). ! -933300*--- INFORMATIONS CODE EFS ! -933400 10 WS-4DCO-4ECOM-CD-EFS PIC X(02). ! -933500*--- INFORMATIONS DISTRIBUTEURS ! -933600 10 WS-4DCO-4ECOM-NO-DIS PIC 9(08). ! -933700 10 WS-4DCO-4ECOM-LIB-DIS PIC X(32). ! -933800 10 WS-4DCO-4ECOM-CD-NIV-HIE PIC X(03). ! -933900 10 WS-4DCO-4ECOM-CD-FCT-COM PIC X(01). ! -934000*--- INFORMATIONS CONVENTION ! -934100 10 WS-4DCO-4ECOM-NO-CNV-COM PIC X(25). ! -934200 10 WS-4DCO-4ECOM-DA-DBT-CNV-COM PIC X(08). ! -934300 10 WS-4DCO-4ECOM-DA-FIN-CNV-COM PIC X(08). ! -934400*--- INFORMATIONS entites rglt ! -934500 10 WS-4DCO-4ECOM-NO-ETT-RGL PIC S9(9) COMP. ! -934600*--- sauvegarde du contexte avant d�branchement ! -934700 10 WS-4DCO-4ECOM-SAUV-PAGE-AREA PIC X(200). ! -934800*--- sauvegarde cle de repositionnement avant d�branchement ! -934900 10 WS-4DCO-4ECOM-SAUV-CLE-POS PIC X(32). ! -935000*--- 10 WS-4DCO-4ECOM-SAUV-CLE-POS PIC Z(7)9. ! -935100*--- code partenaire ! -935200 10 WS-4DCO-4ECOM-CD-PTN PIC X(5). ! -935300*--- INFORMATIONS FAMILLES DE COMMISSION ! -935400 10 WS-4DCO-4ECOM-NO-FML-COM PIC X(3). ! -935500 10 WS-4DCO-4ECOM-CD-GRP-COM PIC X(2). ! -935600 10 WS-4DCO-4ECOM-CD-TY-COM PIC X(2). ! -935700 10 WS-4DCO-4ECOM-CD-CAT-COM PIC X(2). ! -935800 10 WS-4DCO-4ECOM-CD-CRI-COM PIC X(3). ! -935900 10 WS-4DCO-4ECOM-LIB-FML-COM PIC X(32). ! -936000 ! -936100 05 FILLER PIC X(1336). ! -936200*--- 05 FILLER PIC X(1380). ! -936300*--- 05 FILLER PIC X(1409). ! -936400 ! -936500 03 WS-4DCO-SIMPLV REDEFINES WS-4DCO-PROGRAM. ! -936600* ============== ! -936700* ------------------------------------------------------ * ! -936800* COMMAREA : SIMULATION PLAN DE VERSEMENT * ! -936900* LONGUEUR : 1800 * ! -937000* PREFIXE : WS-4DCO-SIMPLV * ! -937100* ------------------------------------------------------ * ! -937200 ! -937300 05 WS-4DCO-SIMPLV-DONNEES. ! -937400 10 WS-4DCO-SIMPLV-MT-CAP PIC S9(13)V99 COMP-3. ! -937500 10 WS-4DCO-SIMPLV-MT-BRT-VER-INI PIC S9(13)V99 COMP-3. ! -937600 10 WS-4DCO-SIMPLV-MT-NET-VER-INI PIC S9(13)V99 COMP-3. ! -937700 10 WS-4DCO-SIMPLV-TX-FRS-SCR PIC 9(02)V9(03). ! -937800 10 WS-4DCO-SIMPLV-TX-FRS PIC 9(02)V9(03). ! -937900 10 WS-4DCO-SIMPLV-TX-RVL-PRIM PIC 9(02)V9(03). ! -938000 10 WS-4DCO-SIMPLV-DUR-A PIC 9(02). ! -938100 10 WS-4DCO-SIMPLV-MT-BRT-VER-PER PIC S9(13)V99 COMP-3. ! -938200 10 WS-4DCO-SIMPLV-MT-NET-VER-PER PIC S9(13)V99 COMP-3. ! -938300 10 WS-4DCO-SIMPLV-NB-VER-AN PIC 9(02). ! -938400 10 WS-4DCO-SIMPLV-AN-1 PIC 9(04). ! -938500 10 WS-4DCO-SIMPLV-AN-FIN PIC 9(04). ! -938600 05 FILLER PIC X(1733). ! -938700*================================================================ ! -938800* ! -938900*= APPLICATION : GESTION SPECIFIQUE SURAVENIR = ! -939000* ! -939100*================================================================ ! -939200 ! -939300 03 WS-4DCO-GSS REDEFINES WS-4DCO-PROGRAM. ! -939400* ================ ! -939500* ------------------------------------------------------ * ! -939600* COMMAREA : * ! -939700* LONGUEUR : 1800 * ! -939800* PREFIXE : WS-4DCO-GSS * ! -939900* ------------------------------------------------------ * ! -940000 ! -940100 05 WS-4DCO-GSS-SAUV-PAGE-AREA PIC X(160). ! -940200* SAUVEGARDE PAGE AREA START ! -940300 05 WS-4DCO-GSS-NB-PAG-TS PIC 9(2). ! -940400* SAUVEGARDE NB PAGE TS ! -940500 05 FILLER PIC X(1638). ! -940600* ZONES DISPONIBLES ! -940700*================================================================ ! -940800* ! -940900*= APPLICATION : GESTION DES ADMINISTRATEURS = ! -941000* ! -941100*================================================================ ! -941200 ! -941300 03 WS-4DCO-ADM REDEFINES WS-4DCO-PROGRAM. ! -941400* ================ ! -941500* ------------------------------------------------------ * ! -941600* COMMAREA : * ! -941700* LONGUEUR : 1800 * ! -941800* PREFIXE : WS-4DCO-ADM * ! -941900* ------------------------------------------------------ * ! -942000 ! -942100 05 WS-4DCO-ADM-NO-GRP-PSE PIC 9(10) COMP. ! -942200* NUMERO GROUPE PERSONNE ! -942300 05 WS-4DCO-ADM-CD-ROL PIC X(06). ! -942400* CODE ROLE ! -942500 05 WS-4DCO-ADM-A-FIS PIC 9(04). ! -942600* ANNEE FISCALE ! -942700 05 FILLER PIC X(1782). ! -942800* ZONES DISPONIBLES ! -942900*================================================================ ! -943000* ! -943100*= APPLICATION : EDITION AVIS D'OPERE = ! -943200* ! -943300*================================================================ ! -943400 03 WS-4DCO-AVOP REDEFINES WS-4DCO-PROGRAM. ! -943500* ============ ! -943600* ------------------------------------------------------ * ! -943700* COMMAREA : * ! -943800* LONGUEUR : 1800 * ! -943900* PREFIXE : WS-4DCO-AVOP * ! -944000* ------------------------------------------------------ * ! -944100 05 FILLER PIC X(1793). ! -944200* ZONES DISPONIBLES ! -944300 05 WS-4DCO-AVOP-TRAN-PROV PIC X(04). ! -944400* TRANSACTION PRECEDENT AVIS OPERE ! -944500 05 WS-4DCO-AVOP-IDC-AVOP PIC X. ! -944600* INDICATEUR EDITION AVIS D'OPERATION ! -944700 05 WS-4DCO-AVOP-CD-AVOP PIC X(02). ! -944800* TYPE D'AVIS D'OPERE A EDITER ! -944900*================================================================ ! -945000* ! -945100*= APPLICATION : gestion du terme mono-supports = ! -945200* ! -945300*================================================================ ! -945400 03 WS-4DCO-4DGA REDEFINES WS-4DCO-PROGRAM. ! -945500* ============ ! -945600* ------------------------------------------------------ * ! -945700* COMMAREA : * ! -945800* LONGUEUR : 1800 * ! -945900* PREFIXE : WS-4DCO-4DGA * ! -946000* ------------------------------------------------------ * ! -946100 05 WS-4DCO-4DGA-IDC-TT-ECN PIC X(01). ! -946200* INDICATEUR TRAITEMENT ECHEANCE ! -946300 05 FILLER PIC X(1799). ! -946400* ZONES DISPONIBLES ! -946500*================================================================ ! -946600* ! -946700*= APPLICATION : rattachement au type de produit = ! -946800* ! -946900*================================================================ ! -947000 03 WS-4DCO-4DYT-PRM-FSC REDEFINES WS-4DCO-PROGRAM. ! -947100* ============ ! -947200* ------------------------------------------------------ * ! -947300* COMMAREA : * ! -947400* LONGUEUR : 1800 * ! -947500* PREFIXE : WS-4DCO-4DYT * ! -947600* ------------------------------------------------------ * ! -947700 05 WS-4DCO-4DYT-NO-GEN PIC X(003). ! -947800 05 WS-4DCO-4DYT-NO-TY-PRD PIC 9(002). ! -947900 05 WS-4DCO-4DYT-NO-GEN-TY-PRD PIC X(003). ! -948000 05 WS-4DCO-4DYT-CD-PTN PIC X(005). ! -948100 05 WS-4DCO-4DYT-CD-PRD PIC X(002). ! -948200 05 FILLER PIC X(1785). ! -948300* ZONES DISPONIBLES ! -948400*================================================================ ! -948500* ! -948600*= APPLICATION : rattachement au produit commercial ! -948700* ! -948800*================================================================ ! -948900 03 WS-4DCO-4DYs-PRM-FSC REDEFINES WS-4DCO-PROGRAM. ! -949000* ============ ! -949100* ------------------------------------------------------ * ! -949200* COMMAREA : * ! -949300* LONGUEUR : 1800 * ! -949400* PREFIXE : WS-4DCO-4DYs * ! -949500* ------------------------------------------------------ * ! -949600 05 WS-4DCO-4DYs-NO-GEN PIC X(003). ! -949700 05 WS-4DCO-4DYs-NO-TY-PRD PIC 9(002). ! -949800 05 WS-4DCO-4DYs-NO-GEN-TY-PRD PIC X(003). ! -949900 05 WS-4DCO-4DYs-CD-PTN PIC X(005). ! -950000 05 WS-4DCO-4DYs-CD-PRD PIC X(002). ! -950100 05 FILLER PIC X(1785). ! -950200* ZONES DISPONIBLES ! -950300 03 WS-4DCO-4DX REDEFINES WS-4DCO-PROGRAM. ! -950400* =========== ! -950500* ! -950600* ============== ! -950700* ------------------------------------------------------ * ! -950800* COMMAREA : GESTION DES CONTRATS ET CAM * ! -950900* LONGUEUR : 1800 * ! -951000* PREFIXE : WS-4DCO-4DX * ! -951100* ------------------------------------------------------ * ! -951200 05 WS-4DCO-4DX-DONNEES. ! -951300 10 WS-4DCO-4DX-CD-CTR PIC X(08). ! -951400* Code contrat assurance ! -951500 10 WS-4DCO-4DX-LIB-CTR-AS PIC X(32). ! -951600* Libell� contrat assurance ! -951700 10 WS-4DCO-4DX-PAGE-AREA PIC X(80). ! -951800* SAUVEGARDE PAGE AREA START ! -951900* Code �v�nement param�trage ! -952000 10 WS-4DCO-4DX-CD-CAT-MIT PIC X(06). ! -952100* CODE CATEGORIE MINISTERIELLE ! -952110* sauve parametres de la liste recue ! -952111 05 WS-4DCO-4DX-LISTE-TS. ! -952120 10 WS-4DCO-4DX-NB-PAG-TS PIC 9(02). ! -952130 10 WS-4DCO-4DX-NB-OCC-TS PIC S9(4) COMP. ! -952200* ! -952300 05 FILLER PIC X(1670). ! - *----------------------------------------------! END Y4DGEODE ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YC4ESDSF ! - *------------------------------------------------------------------- -000010*CPG* 11 YC4ESDSF COPY COMMAREA PLATEFORME ! -000020* LG=02000, STRUCTURE MAJ LE 14/04/06 PAR AS232 ! -000030* GENERE LE 14/04/06 A 10H55, PFX : YC4ESD- MEMBRE : YC4ESDSF ! -000040 03 YC4ESD-YC4ESDSF. ! -000050* COPY COMMAREA PLATEFORME 1 13/11/98 ! -000060 10 YC4ESD-PGM-CICS-APL PIC X(8). ! -000070* PROGRAMME CICS APPLICATION 1 30/07/03 ! -000080 10 YC4ESD-PGM-CICS-APL-D PIC X(8). ! -000090* PROGRAMME CICS APPLICATION SX:-D 9 - - ! -000100 10 YC4ESD-NB-PAG-TS PIC 9(3) COMP. ! -000110* NOMBRE DE PAGES EN TS 17 - - ! -000120 10 YC4ESD-CD-MES-ERR PIC X(6). ! -000130* CODE MESSAGE ERREUR 19 - - ! -000140 10 YC4ESD-ZONE-RCP. ! -010010* ZONE GROUPE POUR ECRANS RECAP 25 13/11/98 ! -010020 15 YC4ESD-DA-DBT PIC X(8). ! -010030* DATE DEBUT 25 30/07/03 ! -010040 15 YC4ESD-DA-FIN PIC X(8). ! -010050* DATE FIN 33 - - ! -010060 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -010070* CODE ENTREE SORTIE 41 - - ! -010080 15 YC4ESD-CD-DMN-OPE PIC X(2) OCCURS 12. ! -010090* CODE DOMAINE OPERATION 42 - - ! -010100 10 YC4ESD-NB-OCC PIC 9(2). ! -010110* NOMBRE OCCURRENCE 66 - - ! -010120 10 YC4ESD-LIST-DOM-HAB OCCURS 20. ! -010130* LISTE DOMAINES HABILIT�S PAR SALARI� 68 12/11/98 ! -010140 15 YC4ESD-CD-DMN-OPE PIC X(2). ! -020010* CODE DOMAINE OPERATION 68 30/07/03 ! -020020 15 YC4ESD-MT-MIN-M PIC 9(13)V9(2) COMP-3. ! -020030* MONTANT MINIMUM MOIS 70 - - ! -020040 15 YC4ESD-MT-MX-M PIC 9(13)V9(2) COMP-3. ! -020050* MONTANT MAXIMUM MOIS 78 - - ! -020060 15 YC4ESD-IDC-CRI PIC X(1). ! -020070* INDICATEUR CRITERE 86 - - ! -020080 10 YC4ESD-ZONE-VISU. ! -020090* ZONE GROUPE POUR LES ECRANS DE VISU 448 13/11/98 ! -020100 15 YC4ESD-LIB-NOM PIC X(32). ! -020110* LIBELLE NOM 448 30/07/03 ! -020120 15 YC4ESD-LIB-PRN PIC X(32). ! -020130* LIBELLE PRENOM 480 - - ! -020140 15 YC4ESD-CD-PTN PIC X(5). ! -030010* CODE PARTENAIRE 512 - - ! -030020 15 YC4ESD-NO-POL-9. ! -030030* NUMERO POLICE NEUF 517 12/08/05 ! -030040 17 YC4ESD-NO-POL PIC X(8). ! -030050* NUMERO POLICE 517 30/07/03 ! -030060 17 YC4ESD-CLE-POL PIC X(1). ! -030070* CLE POLICE 525 - - ! -030080 15 YC4ESD-NO-DOS-SIN-DCS PIC 9(13) COMP-3. ! -030090* NUMERO DOSSIER SINISTRE DECES 526 - - ! -030100 15 YC4ESD-MT-OPE-SIT PIC 9(13)V9(2). ! -030110* MONTANT OPERATION SIT 533 - - ! -030120 15 YC4ESD-CD-STA-OPE PIC X(1). ! -030130* CODE STATUT OPERATION 548 - - ! -030140 15 YC4ESD-CD-DMN-OPE PIC X(2). ! -040010* CODE DOMAINE OPERATION 549 - - ! -040020 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -040030* CODE ENTREE SORTIE 551 - - ! -040040 15 YC4ESD-RAC-CLE. ! -040050* GROUPE COMPTE 552 25/10/05 ! -040060 17 YC4ESD-RACINE PIC X(7). ! -040070* RACINE DU CLIENT 552 30/07/03 ! -040080 17 YC4ESD-CLE-RACINE PIC X(1). ! -040090* CL� DE LA RACINE DU CLIENT 559 - - ! -040100 15 YC4ESD-CD-PRD PIC X(2). ! -040110* CODE PRODUIT 560 - - ! -040120 10 YC4ESD-ZONE-VISU-DET. ! -040130* ZONE GROUPE POUR ECRANS VISU DETAIL 562 12/01/99 ! -040140 15 YC4ESD-CD-STA-OPE PIC X(1). ! -050010* CODE STATUT OPERATION 562 30/07/03 ! -050020 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -050030* CODE ENTREE SORTIE 563 - - ! -050040 15 YC4ESD-DA-ENT-OPE PIC X(8). ! -050050* DATE ENTREE OPERATION 564 - - ! -050060 15 YC4ESD-NO-SEQ-OP PIC X(6). ! -050070* NUMERO SEQUENCE SX:-OP 572 - - ! -050080 10 YC4ESD-ZONE-VALID. ! -050090* ZONE GROUPE POUR ECRANS DE VALIDATION 578 13/11/98 ! -050100 15 YC4ESD-CD-STA-OPE PIC X(1). ! -050110* CODE STATUT OPERATION 578 30/07/03 ! -050120 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -050130* CODE ENTREE SORTIE 579 - - ! -050140 15 YC4ESD-DA-ENT-OPE PIC X(8). ! -060010* DATE ENTREE OPERATION 580 - - ! -060020 15 YC4ESD-DA-THR-GEN-OPE PIC X(8). ! -060030* DATE THEORIQUE GENERATION OPERATION 588 - - ! -060040 15 YC4ESD-NO-SEQ PIC X(6). ! -060050* NUMERO SEQUENCE 596 - - ! -060060 15 YC4ESD-CD-DMN-OPE PIC X(2). ! -060070* CODE DOMAINE OPERATION 602 - - ! -060080 15 YC4ESD-LIB-DMN-OPE PIC X(32). ! -060090* LIBELLE DOMAINE OPERATION 604 - - ! -060100 15 YC4ESD-CD-PTN PIC X(5). ! -060110* CODE PARTENAIRE 636 - - ! -060120 15 YC4ESD-NO-DOS-SIN-DCS PIC 9(13) COMP-3. ! -060130* NUMERO DOSSIER SINISTRE DECES 641 - - ! -060140 15 YC4ESD-CD-PTN-R PIC X(5). ! -070010* CODE PARTENAIRE SX:-R 648 - - ! -070020 15 YC4ESD-NO-DOS-SIN-DCS-R PIC 9(13) COMP-3. ! -070030* NUMERO DOSSIER SINISTRE DECES SX:-R 653 - - ! -070040 15 YC4ESD-MT-OPE-SIT PIC 9(13)V9(2). ! -070050* MONTANT OPERATION SIT 660 - - ! -070060 10 YC4ESD-NO-OCC-M PIC 9(2). ! -070070* NUMERO OCCURRENCE SX:-M 675 - - ! -070080 10 YC4ESD-ZONE-MANUEL. ! -070090* ZONE GROUPE POUR ECRANS VIR. MANUEL 677 13/11/98 ! -070100 15 YC4ESD-NO-CHX-MNU PIC X(2). ! -070110* NUMERO CHOIX MENU 677 30/07/03 ! -070120 15 YC4ESD-ZONE-OCC-MAN OCCURS 14. ! -070130* ZONE OCC POUR MULTI-DETAIL MVTS MANUEL 679 02/03/99 ! -070140 20 YC4ESD-DA-ENT-OPE PIC X(8). ! -080010* DATE ENTREE OPERATION 679 30/07/03 ! -080020 20 YC4ESD-NO-SEQ PIC X(6). ! -080030* NUMERO SEQUENCE 687 - - ! -080040 20 YC4ESD-IDC-PEC-OPE PIC X(1). ! -080050* INDICATEUR PRISE-EN-COMPTE OPERATION 693 - - ! -080060 15 YC4ESD-IDT-CPT-FNC PIC X(4). ! -080070* IDENTIFIANT COMPTE FINANCIER 889 18/09/03 ! -080080 15 YC4ESD-MT-TOT-CPT-DEB PIC S9(13)V9(2) COMP-3. ! -080090* MONTANT TOTAL COMPTE DEBIT 893 30/07/03 ! -080100 15 YC4ESD-MT-OPE-CU PIC S9(13)V9(2) COMP-3. ! -080110* MONTANT OPERATION SX:-CU 901 - - ! -080120 15 YC4ESD-CD-BQE-EM PIC 9(5). ! -080130* CODE BANQUE EMETTEUR 909 - - ! -080140 15 YC4ESD-CD-GUI-EM PIC X(5). ! -090010* CODE GUICHET EMETTEUR 914 - - ! -090020 15 YC4ESD-NO-CPT-EM PIC X(11). ! -090030* NUMERO COMPTE EMETTEUR 919 - - ! -090040 15 YC4ESD-DA-VAL PIC X(8). ! -090050* DATE VALIDITE 930 - - ! -090060 15 YC4ESD-MT-OPE PIC S9(13)V9(2) COMP-3. ! -090070* MONTANT OPERATION 938 - - ! -090080 15 YC4ESD-CD-DVS-OPE PIC X(3). ! -090090* CODE DEVISE OPERATION 946 - - ! -090100 15 YC4ESD-RAI-SOC PIC X(32). ! -090110* RAISON SOCIALE 949 - - ! -090120 15 YC4ESD-LIB-DEB-VIR PIC X(32). ! -090130* LIBELLE DEBIT VIREMENT 981 - - ! -090140 10 YC4ESD-ZONE-MODIF. ! -100010* ZONE GROUPE POUR ECRANS MODIF ANOMALIE1013 01/12/98 ! -100020 15 YC4ESD-CD-STA-OPE PIC X(1). ! -100030* CODE STATUT OPERATION 1013 30/07/03 ! -100040 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -100050* CODE ENTREE SORTIE 1014 - - ! -100060 15 YC4ESD-DA-THR-GEN-OPE PIC X(8). ! -100070* DATE THEORIQUE GENERATION OPERATION 1015 - - ! -100080 15 YC4ESD-NO-SEQ PIC X(6). ! -100090* NUMERO SEQUENCE 1023 - - ! -100100 15 YC4ESD-CD-APLI-OPE PIC X(2). ! -100110* CODE APPLICATION OPERATION 1029 - - ! -100120 15 YC4ESD-LIB-APLI-OPE PIC X(32). ! -100130* LIBELLE APPLICATION OPERATION 1031 - - ! -100140 15 YC4ESD-CD-PTN PIC X(5). ! -110010* CODE PARTENAIRE 1063 - - ! -110020 15 YC4ESD-NO-DOS-SIN-DCS PIC 9(13) COMP-3. ! -110030* NUMERO DOSSIER SINISTRE DECES 1068 - - ! -110040 15 YC4ESD-MT-OPE-SIT PIC 9(13)V9(2). ! -110050* MONTANT OPERATION SIT 1075 - - ! -110060 10 YC4ESD-ZONE-DETAIL OCCURS 14. ! -110070* ZONE GROUPE POUR ECRANS DETAIL 1090 14/12/98 ! -110080 15 YC4ESD-DA-CRE-LOT PIC X(8). ! -110090* DATE CREATION LOT 1090 30/07/03 ! -110100 15 YC4ESD-NO-LOT-SIT PIC X(3). ! -110110* NUMERO LOT SIT 1098 - - ! -110120 10 YC4ESD-NO-OCC-D PIC 9(2). ! -110130* NUMERO OCCURRENCE SX:-D 1244 - - ! -110140 10 YC4ESD-ZONE-OCC-DET OCCURS 12. ! -120010* ZONE OCC POUR MULTI-DETAIL MVTS SIT 1246 26/02/99 ! -120020 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -120030* CODE ENTREE SORTIE 1246 30/07/03 ! -120040 15 YC4ESD-DA-ENT-OPE PIC X(8). ! -120050* DATE ENTREE OPERATION 1247 - - ! -120060 15 YC4ESD-NO-SEQ PIC X(6). ! -120070* NUMERO SEQUENCE 1255 - - ! -120080 15 YC4ESD-CD-STA-OPE PIC X(1). ! -120090* CODE STATUT OPERATION 1261 - - ! -120100 15 YC4ESD-NB-PRT-OPE PIC S9(9) COMP-3. ! -120110* NOMBRE PRESENTATION OPERATION 1262 - - ! -120120 10 YC4ESD-CD-PVN-DATA OCCURS 12. ! -120130* CODE PROVENANCE DONNEES 1498 22/12/93 ! -120140 14 FILLER PIC X(1). ! -130010* 1498 ! -130020 10 YC4ESD-IDC-CRI-VP PIC X(1). ! -130030* INDICATEUR CRITERE SX:-VP1510 30/07/03 ! -130040 10 YC4ESD-IDC-REDI-CR PIC X(1). ! -130050* INDICATEUR REEDITION COURRIER 1511 - - ! -130060 10 YC4ESD-CD-MODE-RGL PIC X(1). ! -130070* CODE MODE REGLEMENT 1512 - - ! -130080 10 YC4ESD-NO-AGT-OPE PIC X(8). ! -130090* NUMERO AGENT OPERATION 1513 - - ! -130100 10 YC4ESD-MT-MX PIC S9(13)V9(2) COMP-3. ! -130110* MONTANT MAXIMUM 1521 24/11/04 ! -130120 03 FILLER PIC X(472). ! -130130* FIN DE STRUCTURE PRINCIPALE 1529 ! - *----------------------------------------------! END YC4ESDSF ---- - - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY XFER3H0 ! - *------------------------------------------------------------------- - ************************************************************* ! - * WORKING PARTICULIERE * ! - ************************************************************* ! - * ! - * SAUVEGARDE DES VALEURS AFFICHEES A L'ECRAN ! - * ! - 03 XF-ZONE-AFF. ! - 05 XF-AFF-DA-PEC-DEM-SP. ! - 10 XF-AFF-DA-PEC-DEM-JJ PIC X(02). ! - 10 XF-AFF-DA-PEC-DEM-MM PIC X(02). ! - 10 XF-AFF-DA-PEC-DEM-SA PIC X(04). ! - 05 XF-AFF-DA-ECN-OPE. ! - 10 XF-AFF-DA-ECN-OPE-JJ PIC X(02). ! - 10 XF-AFF-DA-ECN-OPE-MM PIC X(02). ! - 10 XF-AFF-DA-ECN-OPE-SA PIC X(04). ! - 05 XF-AFF-CD-BQE-DST1 PIC X(05). ! - 05 XF-AFF-CD-GUI-DST1 PIC X(05). ! - 05 XF-AFF-NO-CPT-DST1 PIC X(11). ! - 05 XF-AFF-CLE-RIB1 PIC X(02). ! - 05 XF-AFF-NO-CHQ PIC X(07). ! - 05 XF-AFF-CD-PTN PIC X(05). ! - 05 XF-AFF-REF1L15 PIC X(13). ! - 05 XF-AFF-REF2L15 PIC X(04). ! - 05 XF-AFF-REF1L16 PIC X(02). ! - 05 XF-AFF-REF4L16 PIC X(06). ! - 05 XF-AFF-REF1L17 PIC X(32). ! - 05 XF-AFF-REF1L18. ! - 10 XF-AFF-RF1L18-J PIC X(02). ! - 10 XF-AFF-RF1L18-M PIC X(02). ! - 10 XF-AFF-RF1L18-S PIC X(04). ! - 05 XF-AFF-REF2L18. ! - 10 XF-AFF-RF2L18-J PIC X(02). ! - 10 XF-AFF-RF2L18-M PIC X(02). ! - 10 XF-AFF-RF2L18-S PIC X(04). ! - 05 XF-AFF-REF1L19. ! - 10 XF-AFF-RF1L19-J PIC X(02). ! - 10 XF-AFF-RF1L19-M PIC X(02). ! - 10 XF-AFF-RF1L19-S PIC X(04). ! - 05 XF-AFF-REF2L19 PIC X(03). ! - 05 XF-AFF-REF3L19 PIC X(01). ! - 05 XF-AFF-REF5L19 PIC X(01). ! - 05 XF-AFF-MEMO-YN4ESPS. ! - 10 XF-AFF-MEMO-ZON1 PIC X(127). ! - 10 XF-AFF-MEMO-ZON2 PIC 9(3) COMP-3. ! - 10 XF-AFF-MEMO-ZON3 PIC 9(3) COMP-3. ! - 10 XF-AFF-MEMO-ZON4 PIC 9(7) COMP-3. ! - 10 XF-AFF-MEMO-ZON5 PIC 9(2) COMP-3. ! - 10 XF-AFF-MEMO-ZON6 PIC X(124). ! - 10 XF-AFF-MEMO-ZON7 PIC 9(13) COMP-3. ! - 10 XF-AFF-MEMO-ZON8 PIC X(113). ! - 05 XF-VALIDATION PIC X. ! - 88 DEMANDE-DE-VALIDATION VALUE 'V'. ! - 88 ENTREE-PGM VALUE 'E'. ! - ! - *----------------------------------------------! END XFER3H0 ---- - - 02 SCREEN-IMAGE-AREA. - 05 SCI-AREA-HEADER. - 10 FILLER PIC X. - 10 SCI-WRITE-INDICATOR PIC X. - 88 SCREEN-HAS-BEEN-WRITTEN VALUE HIGH-VALUES. - 88 SCREEN-FIRST-WRITE VALUE LOW-VALUES. - 10 SCI-MODIFY-INDICATOR PIC X. - 88 FIELD-HAS-BEEN-MODIFIED VALUE HIGH-VALUES. - 88 NO-FIELD-MODIFIED VALUE LOW-VALUES. - 10 SCI-ALARM-INDICATOR PIC X. - 88 SET-ALARM-ON-WRITE VALUE HIGH-VALUES. - 88 NO-ALARM-ON-WRITE VALUE LOW-VALUES. - 10 FILLER PIC X(8). - 05 SCREEN-IMAGE PIC X(1051). - 05 SCREEN-IMAGE-END PIC X. - LINKAGE SECTION. - EJECT - ******************************************************** - * L I N K A G E S E C T I O N * - ******************************************************** - SKIP2 - SKIP2 - 01 DFHCOMMAREA. - 05 COM-SPA-AREA PIC X OCCURS 1 TO 32500 TIMES - DEPENDING ON EIBCALEN. - SKIP2 - EJECT - EJECT - ******************************************************** - * * - * P R O C E D U R E D I V I S I O N * - * * - ******************************************************** - PROCEDURE DIVISION. - SKIP3 - MAIN-LINE SECTION. - ******************************************************** - * M A I N L I N E * - ******************************************************** - SET SEC-INDEX TO 1. - MOVE 'TELON ID' TO TELON-RELEASE-EYECATCH. - SKIP1 - * PROGRAM CUSTOM CONTROL MAINI - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEMAINI ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEMAINI R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * Fonctionnalites : * ! - * GIEMAINI : * ! - * * ! - * traitement normalise effectue au debut de chaque programme * ! - * insere automatiquement au debut de la section MAIN-LINE * ! - * mise au format heure et date de traitement a afficher, puis * ! - * decalage de la commarea si programme de provenance NON TELON.* ! - * conversion des touches de fonction en fonctions. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEC300I * ! - **************************************************************** ! - ! - MOVE EIBTIME TO WS-TLN-TIME. ! - MOVE EIBDATE TO WORKFLD-NUMERIC. ! - CALL 'OJULIAN' USING WS-TLN-DATE ! - WS-TLN-DATE-LTH ! - WORKFLD-NUMERIC. ! - MOVE WS-TLN-JJ TO WS-TLN-MM-AFF. ! - MOVE WS-TLN-MM TO WS-TLN-JJ-AFF. ! - MOVE WS-TLN-AA TO WS-TLN-AA-AFF. ! - ! - MOVE WS-TLN-HH TO WS-TLN-HH-AFF. ! - MOVE WS-TLN-MN TO WS-TLN-MN-AFF. ! - ! - EXEC CICS ASKTIME ABSTIME (WS-TLN-ASKTIME) ! - END-EXEC. ! - ! - EXEC CICS FORMATTIME ABSTIME (WS-TLN-ASKTIME) ! - YEAR (WS-TLN-YEAR) ! - END-EXEC. ! - ! - MOVE WS-TLN-YEAR TO WS-TLN-YEAR-NUM. ! - MOVE WS-TLN-YEAR-NUM TO WS-TLN-SA-AFF. ! - ! - IF EIBCALEN > ZERO ! - MOVE SPACE TO WS-TLN-TYP-PROV ! - MOVE DFHCOMMAREA TO WS-TLN-DEB-SPA ! - IF (WS-TLN-BIN-SPA < WS-TLN-BIN-MIN OR ! - WS-TLN-BIN-SPA > WS-TLN-BIN-MAX) ! - MOVE 'A' TO WS-TLN-TYP-PROV ! - MOVE DFHCOMMAREA TO XFER-DBT-ZON-APL ! - MOVE EIBCALEN TO XFER-LG-SPA-PVN-TLN ! - MOVE ZERO TO EIBCALEN ! - ELSE NEXT SENTENCE ! - ELSE MOVE 'N' TO WS-TLN-TYP-PROV. ! - ! - MOVE 'P00721 ' TO WS-TLN-MODULE. ! - CALL WS-TLN-MODULE USING DFHEIBLK ! - DFHCOMMAREA ! - WS-TLN-PFKEY-INDICATOR ! - WS-TLN-FCT-VALIDATION. ! - ! - *----------------------------------------------! END GIEMAINI ---- - - SKIP1 - IF EIBCALEN = 0 - PERFORM Q-100-CICS-INIT - MOVE LOW-VALUES TO SPA-TRANSACTION-CODE - MOVE NEXT-PROGRAM-NAME TO SPA-NEXT-PROGRAM-NAME - MOVE 08192 TO SPA-LENGTH - MOVE PROCESS-OUTPUT-LIT TO CONTROL-INDICATOR - ELSE - MOVE DFHCOMMAREA TO SPA-AREA - PERFORM Q-100-CICS-INIT - IF SPA-TRANSACTION-CODE = PROGRAM-TRANSACTION-CODE - MOVE PROCESS-INPUT-LIT TO CONTROL-INDICATOR - PERFORM C-100-TERMIO-READ - ELSE - MOVE PROCESS-OUTPUT-LIT TO CONTROL-INDICATOR. - * - * PROCESS THE TRANSACTION - * - MOVE CONTROL-INDICATOR TO ENTRY-CONTROL-INDICATOR. - PERFORM MAIN-PROCESS UNTIL TRANSACTION-COMPLETE. - MAIN-LINE-RETURN. - SKIP1 - * PROGRAM CUSTOM CONTROL MAINT - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEMAINT ! - *------------------------------------------------------------------- - **************************************************************** ! - * CODE PERSONNALISATION : GIEMAINT R1 V1 * ! - * Date de creation : 13/11/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * Permettre un chainage par "RETURN TRANSID" avec une commarea* ! - * constitu�e de : * ! - * - entete telon (16 caracteres). * ! - * - 24 premiers caract�res de la partie applicative. * ! - * Dependance avec autres sections : * ! - **************************************************************** ! - ! - CALL 'ADLAATX' USING DFHEIBLK DFHCOMMAREA. ! - IF SPA-TRANSACTION-CODE = SPACES ! - EXEC CICS RETURN END-EXEC ! - ELSE ! - MOVE PROGRAM-TRANSACTION-CODE TO SPA-TRANSACTION-CODE ! - MOVE WS-TLN-SPA-LENGTH TO SPA-LENGTH ! - MOVE WS-TLN-HOLD-AREA-NAME-DFLT TO WS-TLN-HOLD-AREA-NAME ! - PERFORM K-300-HOLD-SAVE ! - MOVE 40 TO SPA-LENGTH ! - MOVE XFER-DBT-ZON-APL TO SPA-XFER-WORK-AREA ! - EXEC CICS RETURN TRANSID(SPA-TRANSACTION-CODE) ! - COMMAREA(SPA-AREA) ! - LENGTH(SPA-LENGTH) ! - END-EXEC. ! - GOBACK. ! - *----------------------------------------------! END GIEMAINT ---- - - SKIP1 - SKIP3 - ******************************************************** - * R E T U R N T O C I C S * - ******************************************************** - RETURN-TO-CICS. - SKIP1 - CALL 'ADLAATX' USING DFHEIBLK DFHCOMMAREA. - IF SPA-TRANSACTION-CODE = SPACES - EXEC CICS RETURN END-EXEC - ELSE - MOVE PROGRAM-TRANSACTION-CODE TO SPA-TRANSACTION-CODE - MOVE 08192 TO SPA-LENGTH - EXEC CICS RETURN TRANSID(SPA-TRANSACTION-CODE) - COMMAREA(SPA-AREA) - LENGTH(SPA-LENGTH) - END-EXEC. - GOBACK. - EJECT - SKIP3 - MAIN-PROCESS SECTION. - ******************************************************** - * * - * M A I N P R O C E S S * - * * - * PGMSTRUCT 3 * - * * - * THE FLOW OF THE PROGRAM IS CONTROLLED BY THE * - * VARIABLE NAMED CONTROL-INDICATOR. * - * * - * THERE ARE SIX VALUES WHICH INDICATE ACTION. THE * - * INDICATOR IS TESTED WITH THE 88 LEVEL ITEMS LISTED * - * BELOW. THERE ARE ALSO CORRESPONDING DATA ITEMS * - * WITH THE SUFFIX '-LIT' WHICH ARE USED TO SET THE * - * CONTROL-INDICATOR. * - * * - * 88 LEVEL NAME A C T I O N * - * ------------------- ----------------------- * - * PROCESS-OUTPUT - BUILD A SCREEN FOR OUTPUT * - * DO-WRITE - WRITE A SCREEN * - * PROCESS-INPUT - PROCESS AN INPUT MESSAGE * - * DO-TRANSFER - TRANSFER TO NEXT PROGRAM * - * TRANSACTION-COMPLETE - RETURN CONTROL TO CALLER * - * CONTINUE-PROCESS - PERFORM NEXT ROUTINE * - * * - ******************************************************** - SKIP1 - IF PROCESS-OUTPUT - PERFORM MAIN-OUTPUT - ELSE - IF DO-WRITE - PERFORM C-200-TERMIO-WRITE - ELSE - IF PROCESS-INPUT - PERFORM MAIN-INPUT - ELSE - IF DO-TRANSFER - PERFORM C-300-TERMIO-XFER - ELSE - PERFORM Z-990-PROGRAM-ERROR. - SKIP1 - MAIN-PROCESS-RETURN. - EXIT. - EJECT - MAIN-OUTPUT SECTION. - ******************************************************** - * M A I N O U T P U T * - ******************************************************** - SKIP1 - MOVE SPACE TO CONTROL-INDICATOR. - IF XFER-HOLD-INDICATOR = 'P' OR 'D' - MOVE XFER-HOLD-INDICATOR TO HOLD-AREA-TYPE - PERFORM K-100-HOLD-RESTORE - ELSE - PERFORM A-100-OUTPUT-INIT - IF CONTINUE-PROCESS - PERFORM B-100-OUTPUT-EDITS. - * - * SET DEFAULT ACTION TO DO-WRITE - * - IF CONTINUE-PROCESS - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR. - SKIP1 - MAIN-OUTPUT-RETURN. - EXIT. - SKIP3 - MAIN-INPUT SECTION. - ******************************************************** - * M A I N I N P U T * - ******************************************************** - SKIP1 - MOVE SPACE TO CONTROL-INDICATOR. - MOVE PROGRAM-NAME OF SYS-WORK-AREA TO NEXT-PROGRAM-NAME-ID. - PERFORM P-100-PFKEYS. - IF CONTINUE-PROCESS - PERFORM D-100-INPUT-INIT - IF CONTINUE-PROCESS - PERFORM E-100-INPUT-EDITS - IF CONTINUE-PROCESS - PERFORM X-100-CONSIS-EDITS - IF CONTINUE-PROCESS - PERFORM H-100-INPUT-TERM. - * - * SET DEFAULT ACTION TO DO-TRANSFER - * - IF CONTINUE-PROCESS - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR. - * - * IF TRANSFER IS TO THE SAME PROGRAM, PROCESS OUTPUT - * - IF DO-TRANSFER - AND (SPA-TRANSACTION-CODE NOT = SPACES) - IF NEXT-PROGRAM-NAME = CURRENT-PROGRAM-NAME - MOVE PROCESS-OUTPUT-LIT TO CONTROL-INDICATOR - ENTRY-CONTROL-INDICATOR. - SKIP1 - MAIN-INPUT-RETURN. - EXIT. - EJECT - A-100-OUTPUT-INIT SECTION. - ******************************************************** - * A - 1 0 0 - O U T P U T - I N I T * - ******************************************************** - * THIS ROUTINE INITIALIZES ANY FIELDS NECESSARY PRIOR * - * TO OUTPUT PROCESSING AND RETRIEVES OUTPUT/OUTIN * - * DATABASE SEGMENTS. * - * * - * GENERATED - TP-OUTPUT-BUFFER FIELD INITIALIZATION * - * COPY CODE - SCREEN/OINIT1 * - * GENERATED - OUTPUT/OUTIN DATA ACCESS AUTO CALLS * - * COPY CODE - SCREEN/OINIT2 * - ******************************************************** - SKIP1 - MOVE LOW-VALUES TO SCREEN-IMAGE-AREA TP-BUFFER. - SKIP1 - * SCREEN/OINIT1 COPY CODE - SKIP1 - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY OINIT1 ! - *------------------------------------------------------------------- - * INITIALISATION DIVERSES ! - ! - *---------------------------------------------------------------- ! - * GESTION DE LA PROVENANCE * ! - * COPY GIECPROV : CE COPY PERMET DE CONTROLER QUE L'APPEL A * ! - * +++++++ CET ECRAN S'EST FAIT A TRAVERS LES MENUS * ! - *---------------------------------------------------------------- ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIECPROV 2! - *------------------------------------------------------------------- - **************************************************************** 2! - * CODE PERSONNALISATION : CMB GIECPROV R1 V1 * 2! - * Date de creation : 27/01/1992 * 2! - * Date de modification : / / * 2! - * * 2! - * Fonctionnalites : * 2! - * Traitement normalise pour controle la validite de l'appel * 2! - * d'une application (appel � partir des menus alice et * 2! - * demande valider par 'f5'. * 2! - * * 2! - * Dependance avec autres sections : * 2! - **************************************************************** 2! - IF APPEL-NATIF 2! - THEN 2! - EXEC CICS SEND TEXT 2! - FROM (WS-TLN-MES-ERR-PROV) 2! - LENGTH (WS-TLN-LG-MES) 2! - ERASE 2! - END-EXEC 2! - MOVE TRANSACTION-COMPLETE-LIT TO CONTROL-INDICATOR 2! - MOVE SPACES TO SPA-TRANSACTION-CODE. 2! - *----------------------------------------------! END GIECPROV ---- - - IF NOT CONTINUE-PROCESS ! - GO TO A-100-OUTPUT-INIT-RETURN. ! - * ! - **************************************************************** ! - * Codification n�cessaire � la gestion automatis�e des * ! - * fonctions RETOUR MENU GENERAL, RETOUR MENU PRECEDENT, * ! - * RETOUR ECRAN PRECEDENT. * ! - **************************************************************** ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEINITI 2! - *------------------------------------------------------------------- - **************************************************************** 2! - * Code personnalisation : CMB GIEINITI R1 V1 * 2! - * Date de creation : 27/01/1992 * 2! - * Date de modification : / / * 2! - * * 2! - * Fonctionnalites : * 2! - * Traitement normalise effectue au debut de la section a-100 * 2! - * pour gestion des fonctions retour a l'ecran precedent, * 2! - * retour au menu precedent, retour au menu principal. * 2! - * permet de preciser que l'on se trouve sur un menu * 2! - * intermediaire. * 2! - * * 2! - * Dependance avec autres sections : * 2! - **************************************************************** 2! - PERFORM 2! - VARYING WS-TLN-IND FROM 1 BY 1 UNTIL 2! - WS-TLN-IND > XFER-NB 2! - IF XFER-PROG(WS-TLN-IND) = CURRENT-PROGRAM-NAME 2! - THEN MOVE WS-TLN-IND TO XFER-NB 2! - MOVE 98 TO WS-TLN-IND 2! - END-IF 2! - END-PERFORM 2! - IF CURRENT-PROGRAM-NAME = XFER-PROG(XFER-NB) 2! - NEXT SENTENCE 2! - ELSE 2! - IF XFER-NB < XFER-NB-MAX 2! - ADD 1 TO XFER-NB 2! - MOVE CURRENT-PROGRAM-NAME TO XFER-PROG(XFER-NB) 2! - MOVE 'M' TO XFER-MENU(XFER-NB) 2! - ELSE 2! - MOVE XFER-PROG2 TO XFER-TABLE-PROG2 2! - MOVE CURRENT-PROGRAM-NAME TO XFER-PROG(XFER-NB) 2! - MOVE 'M' TO XFER-MENU(XFER-NB) 2! - END-IF 2! - END-IF. 2! - 2! - *----------------------------------------------! END GIEINITI ---- - - ! - MOVE PROGRAM-TRANSACTION-CODE TO Y00TLN-CD-TRANS-PROV. ! - ! - MOVE 'TC4E3H0' TO YC4ESD-PGM-CICS-APL-D. ! - SET ENTREE-PGM TO TRUE. ! - PERFORM ACCES-TN4ESPS-005 THRU ACCES-TN4ESPS-005-FIN. ! - * ! - *----------------------------------------------! END OINIT1 ---- - - SKIP1 - SKIP1 - * SCREEN/OINIT2 COPY CODE - SKIP1 - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY OINIT2 ! - *------------------------------------------------------------------- - **************************************************************** ! - * * ! - * OINIT2 * ! - * * ! - **************************************************************** ! - MOVE 'YSP4E064' TO WS-TLN-CODTAB. ! - MOVE 2 TO WS-TLN-LTH-KEY. ! - MOVE '*AB' TO WS-TLN-EL-DEMANDES. ! - * ! - ****************************************************************** ! - * POUR AFFICHAGE DE L'ECRAN DES DIFFERENTES ZONES ! - * SUIVANT LE CODE APPLICATION ! - ****************************************************************** ! - MOVE 'D03' TO WS-TLN-TYPDATE ! - ! - MOVE YN4ESP-DA-PEC-DEM-SP OF YN4ESP-DETAIL-SIT ! - TO WS-DA-PEC-DEM-SP ! - XF-AFF-DA-PEC-DEM-SP. ! - ! - MOVE YN4ESP-DA-ECN-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-ECN-OPE ! - XF-AFF-DA-ECN-OPE. ! - ! - * CALCUL DE LA CLE RIB ! - ! - MOVE YN4ESP-CD-BQE-DST OF YN4ESP-DETAIL-SIT ! - TO WS-CPT-BQE. ! - MOVE YN4ESP-CD-GUI-DST OF YN4ESP-DETAIL-SIT ! - TO WS-CPT-GUI. ! - MOVE YN4ESP-NO-CPT-DST OF YN4ESP-DETAIL-SIT ! - TO WS-CPT-CPT. ! - MOVE ZERO TO WS-CPT-RIB-CLE. ! - ! - PERFORM ACCES-P00271 THRU ACCES-P00271-FIN. ! - MOVE WS-CPT-RIB-CLE TO WS-CLE-RIB. ! - ! - MOVE YN4ESP-CD-BQE-DST OF YN4ESP-DETAIL-SIT ! - TO WS-CD-BQE-DST1 ! - XF-AFF-CD-BQE-DST1 ! - MOVE YN4ESP-CD-GUI-DST OF YN4ESP-DETAIL-SIT ! - TO WS-CD-GUI-DST1 ! - XF-AFF-CD-GUI-DST1 ! - MOVE YN4ESP-NO-CPT-DST OF YN4ESP-DETAIL-SIT ! - TO WS-NO-CPT-DST1 ! - XF-AFF-NO-CPT-DST1 ! - ! - MOVE WS-CD-BQE-DST1 TO WS-CPT-BQE. ! - MOVE WS-CD-GUI-DST1 TO WS-CPT-GUI. ! - MOVE WS-NO-CPT-DST1 TO WS-CPT-CPT. ! - MOVE ZERO TO WS-CPT-RIB-CLE. ! - ! - PERFORM ACCES-P00271 THRU ACCES-P00271-FIN. ! - MOVE WS-CPT-RIB-CLE TO WS-CLE-RIB1. ! - ! - PERFORM ACCES-SPI053 THRU ACCES-SPI053-FIN. ! - MOVE YSP4E053-LIB-MODE-RGL TO WS-LIB-RGL. ! - ! - IF YN4ESP-CD-MODE-RGL-OPE OF YN4ESP-DETAIL-SIT NOT = 'C' ! - MOVE PROT-ATTR TO TPO-NOCHQ-ATTR ! - END-IF. ! - ! - MOVE YN4ESP-NO-CHQ OF YN4ESP-DETAIL-SIT ! - TO WS-NO-CHQ ! - XF-AFF-NO-CHQ ! - ! - * VALORISATION DES ZONES DE REFERENCE DE GESTION ! - * SELON LA VALEUR DU CODE APPLICATION ! - ! - EVALUATE YN4ESP-CD-APLI-OPE OF YN4ESP-DETAIL-SIT ! - WHEN 'CH' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER 'TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'NUM LOT CHEQUE :' TO WS-LIB2 ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - MOVE YN4ESP-NO-LOT-CHQ OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - MOVE PROT-ATTR TO TPO-REF2L15-ATTR ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE SPACES TO WS-LIB5 ! - MOVE PROT-ATTR TO TPO-REF1L17-ATTR ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE 'DATE EFFET ' TO WS-LIB6B ! - MOVE YN4ESP-DA-EFF OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L18 ! - XF-AFF-REF2L18 ! - * LIGNE 19 ! - MOVE PROT-ATTR TO TPO-RF1L19J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19A-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'P7' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER 'TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'SOUSCRIPTION :' TO WS-LIB2 ! - MOVE YN4ESP-NO-POL-9 OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - MOVE 'PRODUIT :' TO WS-LIB3 ! - MOVE YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L15 ! - XF-AFF-REF2L15 ! - IF YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT = SPACES ! - MOVE SPACES TO WS-REF3L15 ! - ELSE ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S NOT = ZERO ! - MOVE SPACES TO XF-AFF-REF2L15 ! - END-IF ! - END-IF ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE 'DATE SOUSCRIP. :' TO WS-LIB6 ! - MOVE YN4ESP-DA-SCR-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L18 ! - XF-AFF-REF1L18 ! - ! - MOVE 'DATE EFFET ' TO WS-LIB6B ! - MOVE YN4ESP-DA-EFF OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L18 ! - XF-AFF-REF2L18 ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE 'CODE MINITEL ' TO WS-LIB8 ! - MOVE YN4ESP-CD-MTL OF YN4ESP-DETAIL-SIT ! - TO WS-REF5L19 ! - XF-AFF-REF5L19 ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN '4D' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'CONTRAT :' TO WS-LIB2 ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE YN4ESP-RAC-CLE OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - ELSE ! - MOVE YN4ESP-NO-POL-9 OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - END-IF ! - MOVE 'PRODUIT :' TO WS-LIB3 ! - MOVE YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L15 ! - XF-AFF-REF2L15 ! - IF YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT = SPACES ! - MOVE SPACES TO WS-REF3L15 ! - ELSE ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S NOT = ZERO ! - MOVE SPACES TO XF-AFF-REF2L15 ! - END-IF ! - END-IF ! - * LIGNE 16 ! - MOVE 'RANG ' TO WS-LIB4 ! - MOVE YN4ESP-NO-ORD-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L16 ! - XF-AFF-REF1L16 ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE 'DATE SOUSCRIP. :' TO WS-LIB6 ! - MOVE YN4ESP-DA-SCR-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L18 ! - XF-AFF-REF1L18 ! - ! - MOVE 'DATE EFFET ' TO WS-LIB6B ! - MOVE YN4ESP-DA-EFF OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L18 ! - XF-AFF-REF2L18 ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE YN4ESP-CD-CLO-ECN OF YN4ESP-DETAIL-SIT ! - TO WS-REF3L19 ! - XF-AFF-REF3L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE 'CODE MINITEL ' TO WS-LIB8 ! - MOVE YN4ESP-CD-MTL OF YN4ESP-DETAIL-SIT ! - TO WS-REF5L19 ! - XF-AFF-REF5L19 ! - YN4ESP-CD-MTL OF YN4ESP-ZONE-ALLER ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN '4F' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'CONTRAT :' TO WS-LIB2 ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE YN4ESP-RAC-CLE OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - ELSE ! - MOVE YN4ESP-NO-POL-9 OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - END-IF ! - MOVE 'PRODUIT :' TO WS-LIB3 ! - MOVE YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L15 ! - XF-AFF-REF2L15 ! - IF YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT = SPACES ! - MOVE SPACES TO WS-REF3L15 ! - ELSE ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S NOT = ZERO ! - MOVE SPACES TO XF-AFF-REF2L15 ! - END-IF ! - END-IF ! - * LIGNE 16 ! - MOVE 'RANG ' TO WS-LIB4 ! - MOVE YN4ESP-NO-ORD-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L16 ! - XF-AFF-REF1L16 ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE 'DATE SOUSCRIP. :' TO WS-LIB6 ! - MOVE YN4ESP-DA-SCR-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L18 ! - XF-AFF-REF1L18 ! - ! - MOVE 'DATE EFFET ' TO WS-LIB6B ! - MOVE YN4ESP-DA-EFF OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L18 ! - XF-AFF-REF2L18 ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE 'CODE MINITEL ' TO WS-LIB8 ! - MOVE YN4ESP-CD-MTL OF YN4ESP-DETAIL-SIT ! - TO WS-REF5L19 ! - XF-AFF-REF5L19 ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN '37' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'NUMERO ADHESION :' TO WS-LIB2 ! - MOVE YN4ESP-NO-CLI-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - MOVE 'PRODUIT :' TO WS-LIB3 ! - MOVE YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L15 ! - XF-AFF-REF2L15 ! - IF YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT = SPACES ! - MOVE SPACES TO WS-REF3L15 ! - ELSE ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S NOT = ZERO ! - MOVE SPACES TO XF-AFF-REF2L15 ! - END-IF ! - END-IF ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE 'DATE SOUSCRIP. :' TO WS-LIB6 ! - MOVE YN4ESP-DA-SCR-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L18 ! - XF-AFF-REF1L18 ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE 'CODE MINITEL ' TO WS-LIB8 ! - MOVE YN4ESP-CD-MTL OF YN4ESP-DETAIL-SIT ! - TO WS-REF5L19 ! - XF-AFF-REF5L19 ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN '4G' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'SINISTRE :' TO WS-LIB2 ! - MOVE YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-ZONE-ALLER ! - MOVE PROT-ATTR TO TPO-REF2L15-ATTR ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE SPACES TO WS-LIB8 ! - MOVE SPACES TO WS-REF5L19 ! - ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'CO' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'DATE COMMISSION :' TO WS-LIB2 ! - MOVE YN4ESP-DA-CRE-LOT-COM OF YN4ESP-DETAIL-SIT ! - TO WS-DA8 ! - MOVE WS-DA8-JJ TO WS-DA10-JJ ! - MOVE WS-DA8-MM TO WS-DA10-MM ! - MOVE WS-DA8-SS TO WS-DA10-SS ! - MOVE WS-DA8-AA TO WS-DA10-AA ! - MOVE WS-DA10 TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - ! - MOVE 'TYPE ' TO WS-LIB3 ! - MOVE YN4ESP-CD-TY-COM OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L15 ! - XF-AFF-REF2L15 ! - MOVE PROT-ATTR TO TPO-REF2L15-ATTR ! - IF YN4ESP-CD-TY-COM OF YN4ESP-DETAIL-SIT = 'M' ! - MOVE 'PRODUCTION' TO WS-REF3L15 ! - ELSE ! - IF YN4ESP-CD-TY-COM OF YN4ESP-DETAIL-SIT = 'E' ! - MOVE 'ENCOURS' TO WS-REF3L15 ! - ELSE ! - IF YN4ESP-CD-TY-COM OF YN4ESP-DETAIL-SIT = 'Z' ! - MOVE 'PRODUCTION RETROACTIVE' ! - TO WS-REF3L15 ! - END-IF ! - END-IF ! - END-IF ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'CORRESPONDANT :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM-CRP-COM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE PROT-ATTR TO TPO-RF1L19J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19A-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'AS' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'NO DOSSIER :' TO WS-LIB2 ! - MOVE YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-ZONE-ALLER ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE PROT-ATTR TO TPO-RF1L19J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19A-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'RE' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'NO DOSSIER :' TO WS-LIB2 ! - MOVE YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-ZONE-ALLER ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE PROT-ATTR TO TPO-RF1L19J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19A-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'DG' ! - * LIGNE 14 ! - MOVE PROT-ATTR TO TPO-CDPTN-ATTR ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - TPO-REF2L15-ATTR ! - TPO-REF3L15-ATTR ! - * LIGNE 16 ! - MOVE '-' TO WS-TIRET ! - MOVE 'DECLARATION :' TO WS-LIB4A ! - MOVE YN4ESP-CD-TY-DCR-DGI OF YN4ESP-DETAIL-SIT ! - TO WS-REF3L16 ! - MOVE YN4ESP-PER-DCR-DGI OF YN4ESP-DETAIL-SIT ! - TO WS-REF4L16 ! - XF-AFF-REF4L16 ! - MOVE 'CODE ' TO WS-LIB4 ! - MOVE YN4ESP-CD-DCR-DGI OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L16 ! - XF-AFF-REF1L16 ! - IF YN4ESP-CD-DCR-DGI OF YN4ESP-DETAIL-SIT = '0' ! - MOVE 'ACOMPTE' TO WS-REF2L16 ! - ELSE ! - IF YN4ESP-CD-DCR-DGI OF YN4ESP-DETAIL-SIT = '1' ! - MOVE 'MENSUEL' TO WS-REF2L16 ! - END-IF ! - END-IF ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE PROT-ATTR TO TPO-REF1L17-ATTR ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE PROT-ATTR TO TPO-RF1L19J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19A-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'FI' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - * LIGNE 15 ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L15-ATTR ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE PROT-ATTR TO TPO-REF1L17-ATTR ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE SPACES TO WS-LIB8 ! - MOVE SPACES TO WS-REF5L19 ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - END-EVALUATE. ! - ! - ! - *----------------------------------------------! END OINIT2 ---- - - SKIP1 - SKIP1 - PERFORM N-100-CURSOR-POSITION. - SKIP1 - A-100-OUTPUT-INIT-RETURN. - EXIT. - EJECT - B-100-OUTPUT-EDITS SECTION. - ******************************************************** - * B - 1 0 0 - O U T P U T - E D I T S * - ******************************************************** - * THIS ROUTINE CONTAINS THE OUTPUT EDIT LOGIC * - * GENERATED FROM THE FIELD STATEMENTS. FIELDS ARE * - * MOVED FROM THE DBNAME FIELD AND EDITED BASED UPON * - * THE FIELD EDIT PARAMETERS SPECIFIED. SPECIAL * - * FLDTYPE EDITS ARE LINKED TO WITH CALL STATEMENTS. * - * * - * GENERATED - FIELD EDIT LOGIC * - * COPY CODE - SCREEN/OUTTERM * - ******************************************************** - SKIP1 - SKIP2 - * NOMMAP FIELD - SKIP1 - MOVE BMSMAP-NAME TO TPO-NOMMAP. - SKIP2 - * NUMECR FIELD - SKIP1 - MOVE EIBTRMID TO TPO-NUMECR. - SKIP2 - * CDAPL FIELD - SKIP1 - MOVE YN4ESP-CD-APLI-OPE OF YN4ESP-DETAIL-SIT TO TPO-CDAPL. - SKIP2 - * LIBAPL FIELD - SKIP1 - CALL 'OSPITAB' USING TPO-LIBAPL - TPO-LIBAPL-LTH - YN4ESP-CD-APLI-OPE OF YN4ESP-DETAIL-SIT - WS-TLN-CODTAB - WS-TLN-LTH-KEY - WS-TLN-EL-DEMANDES. - SKIP2 - * DAPECJ FIELD - SKIP1 - CALL 'ODATEJ' USING TPO-DAPECJ - TPO-DAPECJ-LTH - WS-DA-PEC-DEM-SP - TPO-DAPECM - TPO-DAPECA - WS-TLN-TYPDATE. - SKIP2 - * DAECNJ FIELD - SKIP1 - CALL 'ODATEJ' USING TPO-DAECNJ - TPO-DAECNJ-LTH - WS-DA-ECN-OPE - TPO-DAECNM - TPO-DAECNA - WS-TLN-TYPDATE. - SKIP2 - * MTOPE FIELD - SKIP1 - MOVE YN4ESP-MT-OPE-SIT OF YN4ESP-DETAIL-SIT TO TPO-MTOPE. - SKIP2 - * CDDVS FIELD - SKIP1 - MOVE YN4ESP-CD-DVS-OPE OF YN4ESP-DETAIL-SIT TO TPO-CDDVS. - SKIP2 - * CDBQE FIELD - SKIP1 - MOVE YN4ESP-CD-BQE-DST OF YN4ESP-DETAIL-SIT TO TPO-CDBQE. - SKIP2 - * CDGUI FIELD - SKIP1 - MOVE YN4ESP-CD-GUI-DST OF YN4ESP-DETAIL-SIT TO TPO-CDGUI. - SKIP2 - * NOCPT FIELD - SKIP1 - MOVE YN4ESP-NO-CPT-DST OF YN4ESP-DETAIL-SIT TO TPO-NOCPT. - SKIP2 - * CLERIB FIELD - SKIP1 - MOVE WS-CLE-RIB TO TPO-CLERIB. - SKIP2 - * CDBQE1 FIELD - SKIP1 - MOVE WS-CD-BQE-DST1 TO TPO-CDBQE1. - SKIP2 - * CDGUI1 FIELD - SKIP1 - MOVE WS-CD-GUI-DST1 TO TPO-CDGUI1. - SKIP2 - * NOCPT1 FIELD - SKIP1 - MOVE WS-NO-CPT-DST1 TO TPO-NOCPT1. - SKIP2 - * CLERIB1 FIELD - SKIP1 - MOVE WS-CLE-RIB1 TO TPO-CLERIB1. - SKIP2 - * NBELT FIELD - SKIP1 - MOVE YN4ESP-NB-ELT-OPE OF YN4ESP-DETAIL-SIT TO TPO-NBELT. - SKIP2 - * MODRGL FIELD - SKIP1 - MOVE YN4ESP-CD-MODE-RGL-OPE OF YN4ESP-DETAIL-SIT TO - TPO-MODRGL. - SKIP2 - * LIBRGL FIELD - SKIP1 - MOVE WS-LIB-RGL TO TPO-LIBRGL. - SKIP2 - * NBPREST FIELD - SKIP1 - MOVE YN4ESP-NB-PRT-OPE OF YN4ESP-DETAIL-SIT TO TPO-NBPREST. - SKIP2 - * NOCHQ FIELD - SKIP1 - MOVE WS-NO-CHQ TO TPO-NOCHQ. - SKIP2 - * LIB1 FIELD - SKIP1 - MOVE WS-LIB1 TO TPO-LIB1. - SKIP2 - * CDPTN FIELD - SKIP1 - MOVE WS-CD-PTN TO TPO-CDPTN. - SKIP2 - * LIBPTN FIELD - SKIP1 - MOVE WS-LIB-PTN TO TPO-LIBPTN. - SKIP2 - * IDCPTN FIELD - SKIP1 - MOVE WS-IDC-PTN TO TPO-IDCPTN. - SKIP2 - * LIB1B FIELD - SKIP1 - MOVE WS-LIB1B TO TPO-LIB1B. - SKIP2 - * ECGFIN FIELD - SKIP1 - MOVE WS-ECG-FIN TO TPO-ECGFIN. - SKIP2 - * LIB2 FIELD - SKIP1 - MOVE WS-LIB2 TO TPO-LIB2. - SKIP2 - * REF1L15 FIELD - SKIP1 - MOVE WS-REF1L15 TO TPO-REF1L15. - SKIP2 - * LIB3 FIELD - SKIP1 - MOVE WS-LIB3 TO TPO-LIB3. - SKIP2 - * REF2L15 FIELD - SKIP1 - MOVE WS-REF2L15 TO TPO-REF2L15. - SKIP2 - * REF3L15 FIELD - SKIP1 - MOVE WS-REF3L15 TO TPO-REF3L15. - SKIP2 - * LIB4A FIELD - SKIP1 - MOVE WS-LIB4A TO TPO-LIB4A. - SKIP2 - * REF3L16 FIELD - SKIP1 - MOVE WS-REF3L16 TO TPO-REF3L16. - SKIP2 - * TIRET FIELD - SKIP1 - MOVE WS-TIRET TO TPO-TIRET. - SKIP2 - * REF4L16 FIELD - SKIP1 - MOVE WS-REF4L16 TO TPO-REF4L16. - SKIP2 - * LIB4 FIELD - SKIP1 - MOVE WS-LIB4 TO TPO-LIB4. - SKIP2 - * REF1L16 FIELD - SKIP1 - MOVE WS-REF1L16 TO TPO-REF1L16. - SKIP2 - * REF2L16 FIELD - SKIP1 - MOVE WS-REF2L16 TO TPO-REF2L16. - SKIP2 - * LIB5 FIELD - SKIP1 - MOVE WS-LIB5 TO TPO-LIB5. - SKIP2 - * REF1L17 FIELD - SKIP1 - MOVE WS-REF1L17 TO TPO-REF1L17. - SKIP2 - * LIB6 FIELD - SKIP1 - MOVE WS-LIB6 TO TPO-LIB6. - SKIP2 - * RF1L18J FIELD - SKIP1 - CALL 'ODATEJ' USING TPO-RF1L18J - TPO-RF1L18J-LTH - WS-REF1L18 - TPO-RF1L18M - TPO-RF1L18A - WS-TLN-TYPDATE. - SKIP2 - * LIB6B FIELD - SKIP1 - MOVE WS-LIB6B TO TPO-LIB6B. - SKIP2 - * RF2L18J FIELD - SKIP1 - CALL 'ODATEJ' USING TPO-RF2L18J - TPO-RF2L18J-LTH - WS-REF2L18 - TPO-RF2L18M - TPO-RF2L18A - WS-TLN-TYPDATE. - SKIP2 - * LIB7 FIELD - SKIP1 - MOVE WS-LIB7 TO TPO-LIB7. - SKIP2 - * RF1L19J FIELD - SKIP1 - CALL 'ODATEJ' USING TPO-RF1L19J - TPO-RF1L19J-LTH - WS-REF1L19 - TPO-RF1L19M - TPO-RF1L19A - WS-TLN-TYPDATE. - SKIP2 - * REF2L19 FIELD - SKIP1 - MOVE WS-REF2L19 TO TPO-REF2L19. - SKIP2 - * REF3L19 FIELD - SKIP1 - MOVE WS-REF3L19 TO TPO-REF3L19. - SKIP2 - * REF4L19 FIELD - SKIP1 - MOVE WS-REF4L19 TO TPO-REF4L19. - SKIP2 - * LIB8 FIELD - SKIP1 - MOVE WS-LIB8 TO TPO-LIB8. - SKIP2 - * REF5L19 FIELD - SKIP1 - MOVE WS-REF5L19 TO TPO-REF5L19. - SKIP2 - * CDREJ FIELD - SKIP1 - MOVE YN4ESP-CD-REJ-OPE OF YN4ESP-DETAIL-SIT TO TPO-CDREJ. - SKIP2 - * LIBREJ FIELD - SKIP1 - MOVE WS-LIB-REJ-OPE TO TPO-LIBREJ. - SKIP2 - * DAREJ FIELD - SKIP1 - CALL 'ODATAMJ' USING TPO-DAREJ - TPO-DAREJ-LTH - YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT - WS-TLN-TYPDATE. - SKIP1 - SKIP1 - * SCREEN/OUTTERM COPY CODE - SKIP1 - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY OUTTERM ! - *------------------------------------------------------------------- - *---------------------------------------------------------------- ! - * AFFICHAGE DES TOUCHES DE FONCTION PERMANENTE * ! - *---------------------------------------------------------------- ! - MOVE 'O' TO WS-TLN-DOCU-UTI ! - WS-TLN-AIDE-UTI ! - WS-TLN-ECRPRE-UTI ! - WS-TLN-MENUPRE-UTI ! - WS-TLN-MENUGEN-UTI. ! - *----------------------------------------------! END OUTTERM ---- - - SKIP1 - SKIP1 - B-100-OUTPUT-EDITS-RETURN. - SKIP1 - * PROGRAM CUSTOM CONTROL B100T - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEB100T ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEB100T R1 V1 * ! - * Date de creation : 30/11/1992 * ! - * Date de modification : / / * ! - * Fonctionnalites : * ! - * GIECB00T : * ! - * Appel au module p00722 pour formattage du bandeau inf�rieur * ! - * de l'�cran. Remplace le P00720 pour prise en compte F22. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEMAINI * ! - **************************************************************** ! - ! - MOVE 'P00722 ' TO WS-TLN-MODULE. ! - CALL WS-TLN-MODULE USING DFHEIBLK ! - DFHCOMMAREA ! - TPO-LIG23 ! - TPO-LIG24 ! - WS-TLN-TCH-LIBRE1 ! - WS-TLN-TCH-LIBRE2 ! - WS-TLN-TABLE-FONCTION. ! - *----------------------------------------------! END GIEB100T ---- - - SKIP1 - EJECT - C-100-TERMIO-READ SECTION. - ******************************************************** - * C - 1 0 0 - T E R M I O - R E A D * - ******************************************************** - * * - * THIS SECTION READS THE INPUT MESSAGE FROM THE * - * TERMINAL. PROGRAM SECTION C-930 IS CALLED * - * FOLLOWING THE RECIEVE MAP COMMAND TO PERFORM A * - * MERGE OF THE TP BUFFER WITH THE SCREEN IMAGE. ALL * - * FIELDS WHICH ARE ENTERED FROM THE SCREEN HAVE NULLS * - * AND OPTIONALLY UNDERSCORES CONVERTED TO SPACES. * - * NOTE THAT THE FLAG BYTE AND LENGTH FIELD RETURNED * - * FROM BMS ARE RESET AND ARE NOT REFERENCED IN THE * - * TP-BUFFER. ALL FIELDS WHICH ARE NOT RECEIVED FROM * - * THE TERMINAL ARE MOVED INTO THE TP-BUFFER FROM THE * - * SCREEN IMAGE. ALL INPUT FIELDS THAT WERE WRITTEN * - * PREVIOUSLY WITH AN ERROR-ATTR, HAVE THE TP-BUFFER * - * ATTRIBUTE FIELD RESET FOR THE NEXT TRANSMISSION. * - * AT THE END OF INPUT MERGING, THE TP-BUFFER CONTAINS * - * ALL OF THE FIELDS WHICH HAVE BEEN INPUT FROM THE * - * FROM THE SCREEN, AND OPTIONALLY ALL OUTPUT ONLY * - * FIELDS. * - * THE EIBAID BYTE IS CONVERTED TO A NUMERIC VALUE AND * - * RETURNED IN THE FIELD PFKEY-INDICATOR. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL C100I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEC100I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEC100I R1 V1 * ! - * Date de creation : 09/12/1992 * ! - * Date de modification : / / * ! - * Fonctionnalites : * ! - * GIEC100I : * ! - * restore de la commarea stockee en ts. * ! - * * ! - * Dependance avec autres sections : * ! - * gieMAINt * ! - **************************************************************** ! - MOVE WS-TLN-HOLD-AREA-NAME-DFLT TO WS-TLN-HOLD-AREA-NAME. ! - PERFORM K-300-HOLD-RESTORE. ! - *----------------------------------------------! END GIEC100I ---- - - SKIP1 - SKIP1 - EXEC CICS HANDLE CONDITION ERROR - MAPFAIL(C-100-MERGE-IN) - END-EXEC. - SKIP1 - MOVE LOW-VALUES TO TP-BUFFER. - EXEC CICS RECEIVE MAP(BMSMAP-NAME) - INTO(TP-BUFFER) - END-EXEC. - SKIP1 - C-100-MERGE-IN. - SKIP1 - PERFORM C-930-INPUT-MERGE. - SKIP1 - C-100-TERMIO-READ-RETURN. - EXIT. - EJECT - C-200-TERMIO-WRITE SECTION. - ******************************************************** - * C - 2 0 0 - T E R M I O - W R I T E * - ******************************************************** - * THIS SECTION WRITES THE OUTPUT MESSAGE TO THE * - * TERMINAL. PROGRAM SECTION C-940 IS CALLED TO * - * MERGE THE TP BUFFER WITH THE SCREEN IMAGE. * - * ONLY DATA FROM THE BUFFER WHICH IS NOT IN THE SCREEN* - * IMAGE IS TRANSMITTED. INPUT FIELDS ARE OPTIONALLY * - * FILLED WITH LOW-VALUES OR UNDERSCORES. OUTPUT ONLY * - * FIELDS ARE PADDED ON THE RIGHT WITH LOW-VALUES. * - * AT THE END OF OUTPUT MERGING THE TP BUFFER CONTAINS * - * LOW VALUES FOR ALL FIELDS THAT ARE ALREADY ON THE * - * SCREEN AND THE DATA TO BE SENT WITH THE APPROPRIATE * - * FILL CHARACTERS FOR FIELDS TO BE TRANSMITTED. * - * THE CONTROL INDICATOR IS ALSO SET TO INDICATE * - * TRANSACTION COMPLETE. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL C200I - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY GIEC200I ! - *------------------------------------------------------------------- - ******************************************************** ! - * CODE PERSONNALISATION : CMB GIEC200I R1 V1 * ! - * DATE DE CREATION : 27/01/1992 * ! - * DATE DE MODIFICATION : / / * ! - * FONCTIONNALITES : * ! - * GIEC200I : * ! - * ALIMENTATION ZONES BMS DATE ET HEURE A PARTIR DES * ! - * ZONES DEFINIES EN WORKING ET FORMATTEES EN SECTION * ! - * MAINI. * ! - * DEPENDANCE AVEC AUTRES SECTIONS : * ! - * CMBMAINI * ! - ******************************************************** ! - ! - MOVE WS-TLN-DATE-AFF TO TPO-DATE. ! - MOVE WS-TLN-TIME-AFF TO TPO-HEURE. ! - MOVE 'P00710' TO WS-TLN-MODULE. ! - CALL WS-TLN-MODULE USING DFHEIBLK DFHCOMMAREA ! - TPO-ERRMSG1 ! - TPO-ERRMSG1-ATTR ! - WS-TLN-ADR-PGM ! - WS-TLN-LIB-CPL-MES. ! - ! - *----------------------------------------------! END GIEC200I ---- - - SKIP1 - SKIP1 - PERFORM C-940-OUTPUT-MERGE. - SKIP1 - IF SCI-WRITE-INDICATOR = LOW-VALUES - PERFORM C-210-TERMIO-WRITE-INITIAL - MOVE HIGH-VALUES TO SCI-WRITE-INDICATOR - ELSE - PERFORM C-220-TERMIO-WRITE-SUBSEQUENT. - MOVE TRANSACTION-COMPLETE-LIT TO CONTROL-INDICATOR. - SKIP1 - C-200-TERMIO-WRITE-RETURN. - EXIT. - EJECT - C-210-TERMIO-WRITE-INITIAL SECTION. - ******************************************************** - * C - 2 1 0 - T E R M I O - W R I T E - I N I T I A L * - ******************************************************** - * THIS SECTION DOES THE INITIAL OUTPUT TO THE * - * TERMINAL. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - EXEC CICS SEND MAP(BMSMAP-NAME) - FROM(TP-BUFFER) - ERASE - FREEKB - FRSET - CURSOR - END-EXEC. - SKIP1 - SKIP3 - C-220-TERMIO-WRITE-SUBSEQUENT SECTION. - ******************************************************** - * C - 2 2 0 - T E R M I O - W R I T E - S U B Q U E N T* - ******************************************************** - * THIS SECTION WRITES ONLY CHANGED FIELDS TO THE * - * TERMINAL. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - EXEC CICS SEND MAP(BMSMAP-NAME) - FROM(TP-BUFFER) - DATAONLY - FREEKB - FRSET - CURSOR - END-EXEC. - EJECT - C-300-TERMIO-XFER SECTION. - ******************************************************** - * C - 3 0 0 - T E R M I O - X F E R * - ******************************************************** - * THIS SECTION TRANSFERS CONTROL TO THE NEXT PROGRAM * - * TO PROCESS OUTPUT USING THE XCTL COMMAND. IT PASSES * - * THE SPA-AREA IN DFHCOMMAREA. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - IF SPA-TRANSACTION-CODE NOT = SPACES - MOVE LOW-VALUES TO SPA-TRANSACTION-CODE. - SKIP1 - * PROGRAM CUSTOM CONTROL C300I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEC300I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEC300I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * GIEC300I : Module permettant le decalage de la commarea * ! - * de 16 caracteres vers la gauche pour appel * ! - * d'un pgm NON TELON ou chainage vers le programme * ! - * de gestion des anomalies. * ! - * Un point de synchronisation est effectue si * ! - * l'indicateur ws-tln-idc-syncpoint est valorise * ! - * � 'O'.* ! - * * ! - * Dependance avec autres sections : * ! - * GIEMAINI * ! - **************************************************************** ! - ! - MOVE WS-TLN-SPA-LENGTH TO SPA-LENGTH. ! - IF NEXT-PROGRAM-NAME-ID = '00ABD' ! - EXEC CICS SYNCPOINT ROLLBACK ! - END-EXEC ! - MOVE WS-TLN-ABT-PGM TO ABT-NEXT-PROGRAM-NAME ! - NEXT-PROGRAM-NAME ! - MOVE XFER-DBT-ZON-APL TO XFER-HELP-DATA ! - MOVE PROGRAM-TRANSACTION-CODE ! - TO ABT-PGM-TRAN-CODE ! - MOVE ABNORMAL-TERMINATION-AREA ! - TO SPA-AREA(419:240) ! - MOVE SPACE TO WS-TLN-TYP-XCTL. ! - ! - IF TRAITER-SYNCPOINT ! - THEN EXEC CICS SYNCPOINT ! - END-EXEC. ! - ! - IF WS-TLN-XCTL-NON-TELON ! - THEN MOVE NEXT-PROGRAM-NAME TO SPA-NEXT-PROGRAM-NAME ! - EXEC CICS XCTL PROGRAM (SPA-NEXT-PROGRAM-NAME) ! - COMMAREA (XFER-DBT-ZON-APL) ! - LENGTH (XFER-LG-SPA-PVN-TLN) ! - END-EXEC. ! - *----------------------------------------------! END GIEC300I ---- - - SKIP1 - SKIP1 - IF SPA-TRANSACTION-CODE = SPACES - MOVE TRANSACTION-COMPLETE-LIT TO CONTROL-INDICATOR - GO TO C-300-TERMIO-XFER-RETURN. - CALL 'ADLAATX' USING DFHEIBLK DFHCOMMAREA. - SKIP1 - MOVE NEXT-PROGRAM-NAME TO SPA-NEXT-PROGRAM-NAME. - EXEC CICS XCTL PROGRAM(SPA-NEXT-PROGRAM-NAME) - COMMAREA(SPA-AREA) - LENGTH(SPA-LENGTH) - END-EXEC. - SKIP1 - C-300-TERMIO-XFER-RETURN. - EXIT. - EJECT - C-930-INPUT-MERGE SECTION. - ******************************************************** - * C - 9 3 0 - I N P U T - M E R G E * - ******************************************************** - * THIS SECTION MERGES THE OUTPUT BUFFER WITH THE * - * SCREEN IMAGE ON INPUT. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * - * CALL THE TELON MERGE ROUTINE FOR INPUT PROCESSING - * - CALL 'TLRAMRI' USING DFHEIBLK - DFHCOMMAREA - TP-OUTPUT-TABLE - TP-OUTPUT-BUFFER-FIELDS - SCREEN-IMAGE-AREA - PFKEY-INDICATOR - EIBAID. - SKIP1 - C-930-INPUT-MERGE-RETURN. - EXIT. - EJECT - C-940-OUTPUT-MERGE SECTION. - ******************************************************** - * C - 9 4 0 - O U T P U T - M E R G E * - ******************************************************** - * THIS SECTION MERGES THE OUTPUT BUFFER WITH THE * - * SCREEN IMAGE ON OUTPUT. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * - * CALL THE TELON MERGE ROUTINE FOR OUTPUT PROCESSING - * - CALL 'TLRAMRO' USING DFHEIBLK - DFHCOMMAREA - TP-OUTPUT-TABLE - TP-OUTPUT-BUFFER-FIELDS - SCREEN-IMAGE-AREA. - SKIP1 - C-940-OUTPUT-MERGE-RETURN. - EXIT. - EJECT - D-100-INPUT-INIT SECTION. - ******************************************************** - * D - 1 0 0 - I N P U T - I N I T * - ******************************************************** - * THIS ROUTINE INITIALIZES ANY FIELDS NECESSARY * - * PRIOR TO INPUT PROCESSING AND RETRIEVES INPUT/OUTIN * - * UPDATE DATABASE SEGMENTS. * - * * - * COPY CODE - SCREEN/ININIT1 * - * GENERATED - INPUT/OUTPUT/UPDATE DATABASE AUTO CALLS * - * COPY CODE - SCREEN/ININIT2(ININIT) * - ******************************************************** - SKIP1 - SKIP1 - * SCREEN/ININIT1 NOT CODED - SKIP1 - SKIP1 - SKIP1 - * SCREEN/ININIT2 NOT CODED - SKIP1 - SKIP1 - D-100-INPUT-INIT-RETURN. - EXIT. - EJECT - E-100-INPUT-EDITS SECTION. - ******************************************************** - * E - 1 0 0 - I N P U T - E D I T S * - ******************************************************** - * THIS ROUTINE CONTAINS THE INPUT EDIT LOGIC GENERATED* - * FROM THE FIELD STATEMENT PARAMETERS. STANDARD * - * EDITS SUCH AS REQ, CONVERT AND VALUES ARE GENERATED * - * IN THIS SECTION. SPECIAL FLDTYPES ARE LINKED TO * - * WITH CALL STATEMENTS. * - * * - * GENERATED - FIELD EDIT LOGIC * - * COPY CODE - SEGLOOP/ICUST1 (PRE EDIT) * - * COPY CODE - SEGLOOP/ICUST2 * - * COPY CODE - SCREEN/FLDEDIT * - ******************************************************** - SKIP1 - SKIP2 - * DAPECJ FIELD - SKIP1 - CALL 'IDATEJ' USING FIELD-EDIT-ERROR - TPI-DAPECJ-LTH - TPI-DAPECJ - WORKFLD-ALPHA - TPI-DAPECM - TPO-DAPECM-ATTR - TPI-DAPECA - TPO-DAPECA-ATTR - WS-TLN-TYPDATE - CONTROL-INDICATOR - IF FIELD-EDIT-GOOD - MOVE WORKFLD-ALPHA TO WS-DA-PEC-DEM-SP - ELSE - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - MOVE ERROR-ATTR TO TPO-DAPECJ-ATTR. - SKIP2 - * DAECNJ FIELD - SKIP1 - CALL 'IDATEJ' USING FIELD-EDIT-ERROR - TPI-DAECNJ-LTH - TPI-DAECNJ - WORKFLD-ALPHA - TPI-DAECNM - TPO-DAECNM-ATTR - TPI-DAECNA - TPO-DAECNA-ATTR - WS-TLN-TYPDATE - CONTROL-INDICATOR - IF FIELD-EDIT-GOOD - MOVE WORKFLD-ALPHA TO WS-DA-ECN-OPE - ELSE - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - MOVE ERROR-ATTR TO TPO-DAECNJ-ATTR. - SKIP2 - * CDBQE1 FIELD - SKIP1 - IF TPI-CDBQE1 NOT = SPACE - MOVE TPI-CDBQE1 TO WS-CD-BQE-DST1 - ELSE - MOVE SPACES TO WS-CD-BQE-DST1. - SKIP2 - * CDGUI1 FIELD - SKIP1 - IF TPI-CDGUI1 NOT = SPACE - MOVE TPI-CDGUI1 TO WS-CD-GUI-DST1 - ELSE - MOVE SPACES TO WS-CD-GUI-DST1. - SKIP2 - * NOCPT1 FIELD - SKIP1 - IF TPI-NOCPT1 NOT = SPACE - MOVE TPI-NOCPT1 TO WS-NO-CPT-DST1 - ELSE - MOVE SPACES TO WS-NO-CPT-DST1. - SKIP2 - * NOCHQ FIELD - SKIP1 - IF TPI-NOCHQ NOT = SPACE - MOVE TPI-NOCHQ TO WS-NO-CHQ - ELSE - MOVE SPACES TO WS-NO-CHQ. - SKIP2 - * CDPTN FIELD - SKIP1 - IF TPI-CDPTN NOT = SPACE - MOVE TPI-CDPTN TO WS-CD-PTN - ELSE - MOVE SPACES TO WS-CD-PTN. - SKIP2 - * REF1L15 FIELD - SKIP1 - IF TPI-REF1L15 NOT = SPACE - MOVE TPI-REF1L15 TO WS-REF1L15 - ELSE - MOVE SPACES TO WS-REF1L15. - SKIP2 - * REF2L15 FIELD - SKIP1 - IF TPI-REF2L15 NOT = SPACE - MOVE TPI-REF2L15 TO WS-REF2L15 - ELSE - MOVE SPACES TO WS-REF2L15. - SKIP2 - * REF4L16 FIELD - SKIP1 - IF TPI-REF4L16 NOT = SPACE - MOVE TPI-REF4L16 TO WS-REF4L16 - ELSE - MOVE SPACES TO WS-REF4L16. - SKIP2 - * REF1L16 FIELD - SKIP1 - IF TPI-REF1L16 NOT = SPACE - MOVE TPI-REF1L16 TO WS-REF1L16 - ELSE - MOVE SPACES TO WS-REF1L16. - SKIP2 - * REF1L17 FIELD - SKIP1 - IF TPI-REF1L17 NOT = SPACE - MOVE TPI-REF1L17 TO WS-REF1L17 - ELSE - MOVE SPACES TO WS-REF1L17. - SKIP2 - * RF1L18J FIELD - SKIP1 - CALL 'IDATEJ' USING FIELD-EDIT-ERROR - TPI-RF1L18J-LTH - TPI-RF1L18J - WORKFLD-ALPHA - TPI-RF1L18M - TPO-RF1L18M-ATTR - TPI-RF1L18A - TPO-RF1L18M-ATTR - WS-TLN-TYPDATE - CONTROL-INDICATOR - IF FIELD-EDIT-GOOD - MOVE WORKFLD-ALPHA TO WS-REF1L18 - ELSE - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - MOVE ERROR-ATTR TO TPO-RF1L18J-ATTR. - SKIP2 - * RF2L18J FIELD - SKIP1 - CALL 'IDATEJ' USING FIELD-EDIT-ERROR - TPI-RF2L18J-LTH - TPI-RF2L18J - WORKFLD-ALPHA - TPI-RF2L18M - TPO-RF2L18M-ATTR - TPI-RF2L18A - TPO-RF2L18A-ATTR - WS-TLN-TYPDATE - CONTROL-INDICATOR - IF FIELD-EDIT-GOOD - MOVE WORKFLD-ALPHA TO WS-REF2L18 - ELSE - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - MOVE ERROR-ATTR TO TPO-RF2L18J-ATTR. - SKIP2 - * RF1L19J FIELD - SKIP1 - CALL 'IDATEJ' USING FIELD-EDIT-ERROR - TPI-RF1L19J-LTH - TPI-RF1L19J - WORKFLD-ALPHA - TPI-RF1L19M - TPO-RF1L19M-ATTR - TPI-RF1L19A - TPO-RF1L19A-ATTR - WS-TLN-TYPDATE - CONTROL-INDICATOR - IF FIELD-EDIT-GOOD - MOVE WORKFLD-ALPHA TO WS-REF1L19 - ELSE - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - MOVE ERROR-ATTR TO TPO-RF1L19J-ATTR. - SKIP2 - * REF2L19 FIELD - SKIP1 - IF TPI-REF2L19 NOT = SPACE - MOVE TPI-REF2L19 TO WS-REF2L19 - ELSE - MOVE SPACES TO WS-REF2L19. - SKIP2 - * REF3L19 FIELD - SKIP1 - IF TPI-REF3L19 NOT = SPACE - MOVE TPI-REF3L19 TO WS-REF3L19 - ELSE - MOVE SPACES TO WS-REF3L19. - SKIP2 - * REF5L19 FIELD - SKIP1 - IF TPI-REF5L19 NOT = SPACE - MOVE TPI-REF5L19 TO WS-REF5L19 - ELSE - MOVE SPACES TO WS-REF5L19. - SKIP1 - * - * IF ERROR INDICATED, SET DEFAULT ERROR MESSAGE - * - SKIP1 - IF NOT CONTINUE-PROCESS - MOVE ERROR-MESSAGE-HIGHLIGHT TO TPO-ERRMSG1. - SKIP1 - * SCREEN/FLDEDIT NOT CODED - SKIP1 - SKIP1 - E-100-INPUT-EDITS-RETURN. - SKIP1 - * PROGRAM CUSTOM CONTROL E100T - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEE100T ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEC300I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code E100T * ! - * Help demand� mais aucune cle de help sur le panel * ! - * * ! - * Dependance avec autres sections : * ! - * GIEL100I,GIEK100I,GIEK100T,GIEK200I,GIEM100T,GIEP100I * ! - **************************************************************** ! - ! - IF APPVAL AND WS-TLN-M100 = 'N' ! - CALL 'HELPCURS' USING XFER-HELP-CUR HELP-CHAR ! - EIBCPOSN TAB-POS-NB TAB-POS TPO-INPUT-FIELDS ! - TELON-EATTR-FEATURE ! - MOVE 0 TO XFER-HELP-POS-COD XFER-HELP-POS-LIB ! - MOVE '000160' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR. ! - *----------------------------------------------! END GIEE100T ---- - - SKIP1 - EJECT - H-100-INPUT-TERM SECTION. - ******************************************************** - * H - 1 0 0 - I N P U T - T E R M * - ******************************************************** - * THIS SECTION IS EXECUTED AT THE END OF INPUT * - * PROCESSING. * - * * - * GENERATED - CREATE/UPDATE DATA ACCESS AUTO CALLS * - * COPY CODE - SCREEN/INTERM * - ******************************************************** - SKIP1 - SKIP1 - * SCREEN/INTERM COPY CODE - SKIP1 - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY INTERM ! - *------------------------------------------------------------------- - * INTERM ! - * ! - * SI LISTE DE DETAIL DEMANDE ON RESTE SUR CET ECRAN TANT QU'ON ! - * N'EST PAS A LA FIN DE LA LISTE ! - * SI FIN RETOUR A L'ECRAN LISTE ! - IF CONTINUE-PROCESS ! - IF VALIDATION ! - AND DEMANDE-DE-VALIDATION ! - * INITIALISATION ZONE D'APPEL AU TN4ESPS ! - MOVE XF-AFF-MEMO-ZON1 TO YN4ESP-ZONE-ALLER(1:127) ! - MOVE XF-AFF-MEMO-ZON2 TO ! - YN4ESP-NO-PTN OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-MEMO-ZON3 TO ! - YN4ESP-NO-PRD-PTN OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-MEMO-ZON4 TO ! - YN4ESP-NO-CLI-PTN OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-MEMO-ZON5 TO ! - YN4ESP-NO-ORD-CTR OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-MEMO-ZON6 TO YN4ESP-ZONE-ALLER(138:124) ! - MOVE XF-AFF-MEMO-ZON7 TO ! - YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-MEMO-ZON8 TO YN4ESP-ZONE-ALLER(268:113) ! - ! - PERFORM ACCES-TN4ESPS-006 THRU ! - ACCES-TN4ESPS-006-FIN ! - IF CONTINUE-PROCESS ! - ADD 1 TO YC4ESD-NO-OCC-D ! - IF YC4ESD-DA-ENT-OPE OF ! - YC4ESD-ZONE-OCC-DET(YC4ESD-NO-OCC-D) NOT > SPACES ! - MOVE '4E3G0' TO NEXT-PROGRAM-NAME-ID ! - SUBTRACT 1 FROM YC4ESD-NO-OCC-D ! - SET DO-TRANSFER TO TRUE ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - ! - ! - *----------------------------------------------! END INTERM ---- - - SKIP1 - H-100-INPUT-TERM-RETURN. - EXIT. - EJECT - K-100-HOLD-RESTORE SECTION. - ******************************************************** - * K - 1 0 0 - H O L D - R E S T O R E * - ******************************************************** - * THIS ROUTINE RESTORES THE TRANSFER AREA UPON RETURN * - * FROM THE HELP OR HOLD FUNCTION. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL K100I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEK100I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEK100I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code K100I * ! - * sauvegarde zone xfer-help-cur renseigne dans programme * ! - * appel de valeur. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEE100T,GIEL100I,GIEK100T,GIEK200I,GIEM100T,GIEP100I * ! - **************************************************************** ! - MOVE XFER-HELP-CUR TO WORKFLD-ALPHA. ! - MOVE XFER-MODIFY-INDICATOR TO WS-TLN-MODIFY-INDICATOR. ! - *----------------------------------------------! END GIEK100I ---- - - SKIP1 - SKIP1 - MOVE EIBTRMID TO HOLD-AREA-LTERM. - MOVE HOLD-AREA-APPLID-DFLT TO HOLD-AREA-APPLID. - MOVE 8208 TO HOLD-AREA-SIZE. - SKIP1 - EXEC CICS READQ TS - INTO(HOLD-AREA) - LENGTH(HOLD-AREA-SIZE) - QUEUE(HOLD-AREA-KEY) - ITEM(1) - END-EXEC. - EXEC CICS DELETEQ TS - QUEUE(HOLD-AREA-KEY) - END-EXEC. - SKIP1 - MOVE SCREEN-IMAGE TO TP-OUTPUT-BUFFER-FIELDS. - MOVE LOW-VALUES TO SCREEN-IMAGE-AREA. - SKIP1 - IF HOLD-AREA-TYPE EQUAL 'D' - MOVE ERROR-MESSAGE-HOLD TO TPO-ERRMSG1 - ELSE - MOVE ERROR-MESSAGE-HELP TO TPO-ERRMSG1. - SKIP1 - K-100-HOLD-RESTORE-RETURN. - SKIP1 - * PROGRAM CUSTOM CONTROL K100T - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEK100T ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEK100T R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code K100T * ! - * Restauration zones de help sauvegard�es en K100I, puis * ! - * r�cup�ration de la donn�e select�e dans le help. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEE100T,GIEL100I,GIEK100I,GIEK200I,GIEM100T,GIEP100I * ! - **************************************************************** ! - MOVE WORKFLD-ALPHA TO XFER-HELP-CUR. ! - IF XFER-HELP-POS-COD > 0 ! - CALL 'HELPCURS' USING XFER-HELP-CUR HELP-CHAR ! - EIBCPOSN TAB-POS-NB TAB-POS TPO-INPUT-FIELDS ! - TELON-EATTR-FEATURE ! - MOVE 0 TO XFER-HELP-POS-COD XFER-HELP-POS-LIB. ! - *----------------------------------------------! END GIEK100T ---- - - SKIP1 - EJECT - K-200-HOLD-RESUME SECTION. - ******************************************************** - * K - 2 0 0 - H O L D - R E S U M E * - ******************************************************** - * THIS ROUTINE RETRIEVES THE HOLD AREA HEADER IF IT * - * EXISTS, SETS THE NEXT PROGRAM NAME BASED ON THE * - * HOLD-RESUME-PGM-ID AND INDICATES TO DO-TRANSFER. * - * IF NO RECORD IS ON HOLD, IT RETURNS AN ERROR. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL K200I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEK200I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEK200I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code K200I * ! - * initialisation header a partir de la valeur contenu dans * ! - * xfer-hold-area-hdr initialise en L100I du pgm appelant * ! - * * ! - * Dependance avec autres sections : * ! - * GIEE100T,GIEL100I,GIEK100I,GIEK200T,GIEM100T,GIEP100I * ! - **************************************************************** ! - MOVE XFER-HELP-AREA-HDR TO NEXT-PROGRAM-NAME-HDR ! - HOLD-AREA-APPLID-DFLT. ! - *----------------------------------------------! END GIEK200I ---- - - SKIP1 - SKIP1 - MOVE EIBTRMID TO HOLD-AREA-LTERM. - MOVE HOLD-AREA-APPLID-DFLT TO HOLD-AREA-APPLID. - MOVE 16 TO HOLD-AREA-SIZE. - SKIP1 - EXEC CICS HANDLE CONDITION - QIDERR(K-200-HOLD-NOTFND) - LENGERR(K-200-RESUME-OK) - END-EXEC. - EXEC CICS READQ TS - INTO(HOLD-AREA) - LENGTH(HOLD-AREA-SIZE) - QUEUE(HOLD-AREA-KEY) - ITEM(1) - END-EXEC. - SKIP1 - K-200-RESUME-OK. - MOVE HOLD-RESUME-PGM-ID TO NEXT-PROGRAM-NAME-ID. - MOVE HOLD-AREA-TYPE TO XFER-HOLD-INDICATOR. - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR. - GO TO K-200-HOLD-RESUME-RETURN. - SKIP1 - K-200-HOLD-NOTFND. - MOVE ERROR-MESSAGE-RESUME TO TPO-ERRMSG1. - PERFORM N-100-CURSOR-POSITION. - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR. - SKIP2 - K-200-HOLD-RESUME-RETURN. - EXEC CICS HANDLE CONDITION QIDERR LENGERR END-EXEC. - SKIP1 - * PROGRAM CUSTOM CONTROL K200T - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEK300 ! - *------------------------------------------------------------------- - K-300-HOLD-SAVE SECTION. ! - ******************************************************** ! - * K - 3 0 0 - H O L D - S A V E * ! - ******************************************************** ! - * * ! - * CETTE ROUTINE SAUVEGARDE LA COMMAREA EN TS * ! - * * ! - ******************************************************** ! - SKIP1 ! - MOVE EIBTRMID TO WS-TLN-HOLD-AREA-LTERM. ! - SKIP1 ! - EXEC CICS HANDLE CONDITION ! - QIDERR(K-300-OK-TO-HOLD) ! - END-EXEC. ! - * ! - * SI EXISTE SUPPRESION DE LA TS ! - * ! - EXEC CICS DELETEQ TS ! - QUEUE(WS-TLN-HOLD-AREA-KEY) ! - END-EXEC. ! - K-300-OK-TO-HOLD. ! - * ! - * CREATION DE LA TS POUR SAUVEGARDE COMMAREA ! - * ! - EXEC CICS WRITEQ TS MAIN ! - FROM (SPA-AREA) ! - LENGTH(WS-TLN-SPA-LENGTH) ! - QUEUE(WS-TLN-HOLD-AREA-KEY) ! - END-EXEC. ! - SKIP1 ! - K-300-HOLD-SAVE-RETURN. ! - EXIT. ! - SKIP1 ! - K-300-HOLD-RESTORE SECTION. ! - ******************************************************** ! - * K - 3 0 0 - H O L D - R E S T O R E * ! - ******************************************************** ! - * CETTE ROUTINE PERMET DE RESTAURER LA COMMAREA * ! - * APRES ACTION DE L'OPERATEUR * ! - ******************************************************** ! - SKIP1 ! - EXEC CICS HANDLE CONDITION ! - QIDERR(K-300-ABNORMAL-RESTORE) ! - END-EXEC. ! - SKIP1 ! - MOVE EIBTRMID TO WS-TLN-HOLD-AREA-LTERM. ! - SKIP1 ! - EXEC CICS READQ TS ! - INTO(SPA-AREA) ! - LENGTH(WS-TLN-SPA-LENGTH) ! - QUEUE(WS-TLN-HOLD-AREA-KEY) ! - ITEM(1) ! - END-EXEC. ! - EXEC CICS DELETEQ TS ! - QUEUE(WS-TLN-HOLD-AREA-KEY) ! - END-EXEC. ! - SKIP1 ! - GO TO K-300-HOLD-RESTORE-RETURN. ! - SKIP1 ! - K-300-ABNORMAL-RESTORE. ! - ******************************************************** ! - * K - 3 0 0 - H O L D - R E S T O R E * ! - ******************************************************** ! - * SI PROBLEME DANS LECTURE TS, ON RENSEIGNE LES * ! - * DONN�ES RELATIVES � L'ANOMALIE DANS LA VARIABLE * ! - * ABNORMAL-TERMINATION-AREA PUIS ON CHAINE SUR LE * ! - * TRAITEMENT DE GESTION DE L'ANOMALIE * ! - ******************************************************** ! - SKIP1 ! - MOVE WS-TLN-HOLD-AREA-KEY TO ABT-DA-ACCESS-NAME. ! - MOVE 'READ ' TO ABT-DA-FUNCTION. ! - MOVE 'N' TO ABT-TEST-FACILITY-IND ! - ABT-IN-PROGRESS. ! - MOVE 'P' TO ABT-TEST-MODE-IND. ! - MOVE 'CICS' TO ABT-PGM-GEN-TYPE. ! - MOVE +3500 TO ABT-ERROR-ABEND-CODE. ! - MOVE 'QIE' TO ABT-DA-GENERIC-STATUS. ! - MOVE CURRENT-PROGRAM-NAME TO ABT-PGM-NAME. ! - MOVE 'QUEUE ' TO ABT-ERROR-ACTIVITY. ! - MOVE 'K-300 ' TO ABT-ERROR-SECTION-NAME. ! - MOVE SPA-AREA (17:24) TO XFER-DBT-ZON-APL. ! - MOVE WS-TLN-SPA-LENGTH TO SPA-LENGTH. ! - MOVE '00ABD' TO NEXT-PROGRAM-NAME-ID. ! - SKIP1 ! - PERFORM C-300-TERMIO-XFER. ! - SKIP1 ! - K-300-HOLD-RESTORE-RETURN. ! - *----------------------------------------------! END GIEK300 ---- - - SKIP1 - EJECT - L-100-HOLD-SAVE SECTION. - ******************************************************** - * L - 1 0 0 - H O L D - S A V E * - ******************************************************** - * THIS ROUTINE SAVES THE TRANSFER AREA IN THE HOLD * - * FILE. IT IS PERFORMED FOR THE HOLD OR HELP * - * FUNCTION. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL L100I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEL100I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEL100I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code L100I * ! - * Sauvegarde header programme declenchant l'appel de valeur * ! - * pour le nom de la ts a restaurer dans le pgm appele, et * ! - * le nom du pgm a reactiver. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEE100T,GIEK100I,GIEK100T,GIEK200I,GIEM100T,GIEP100I * ! - **************************************************************** ! - MOVE TPO-INPUT-FIELDS TO SCREEN-IMAGE. ! - MOVE HOLD-AREA-APPLID-DFLT TO XFER-HELP-AREA-HDR. ! - MOVE SCI-MODIFY-INDICATOR TO XFER-MODIFY-INDICATOR. ! - *----------------------------------------------! END GIEL100I ---- - - SKIP1 - SKIP1 - MOVE PROGRAM-NAME OF SYS-WORK-AREA TO HOLD-RESUME-PGM-ID. - MOVE EIBTRMID TO HOLD-AREA-LTERM. - MOVE HOLD-AREA-APPLID-DFLT TO HOLD-AREA-APPLID. - MOVE 16 TO HOLD-AREA-SIZE. - SKIP1 - EXEC CICS HANDLE CONDITION - QIDERR(L-100-OK-TO-HOLD) - LENGERR(L-100-HOLD-ERROR) - END-EXEC. - EXEC CICS READQ TS - SET(UPDATE-PTR) - LENGTH(HOLD-AREA-SIZE) - QUEUE(HOLD-AREA-KEY) - ITEM(1) - END-EXEC. - L-100-HOLD-ERROR. - * - * FOR HELP FUNCTION, DELETE THE PRIOR HOLD RECORD - * FOR HOLD FUNCTION, MULTIPLE HOLDS ARE NOT ALLOWED - * - IF HOLD-AREA-TYPE = 'P' - EXEC CICS DELETEQ TS - QUEUE(HOLD-AREA-KEY) - END-EXEC - ELSE - MOVE ERROR-MESSAGE-HOLD-ISRT TO TPO-ERRMSG1 - PERFORM N-100-CURSOR-POSITION - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - GO TO L-100-HOLD-SAVE-RETURN. - SKIP1 - L-100-OK-TO-HOLD. - * - * INSERT THE HOLD AREA TO TEMPORARY STORAGE - * - MOVE 8208 TO HOLD-AREA-SIZE. - EXEC CICS WRITEQ TS MAIN - FROM (HOLD-AREA) - LENGTH(HOLD-AREA-SIZE) - QUEUE(HOLD-AREA-KEY) - END-EXEC. - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR. - SKIP1 - L-100-HOLD-SAVE-RETURN. - EXEC CICS HANDLE CONDITION QIDERR LENGERR END-EXEC. - EJECT - N-100-CURSOR-POSITION SECTION. - ******************************************************** - * N - 1 0 0 - C U R S O R - P O S I T I O N * - ******************************************************** - * THIS SECTION POSITIONS THE CURSOR TO THE PROPER * - * FIELD FOR OUTPUT. * - * * - * GENERATED - MOVE CURSOR-ATTR TO SCREEN/CURSOR FIELD * - * COPY CODE - SCREEN/CURSCUS * - ******************************************************** - SKIP1 - MOVE CURSOR-ATTR TO TPO-DAPECJ-ATTR. - SKIP1 - * SCREEN/CURSCUS NOT CODED - SKIP1 - SKIP1 - N-100-CURSOR-POSITION-RETURN. - EXIT. - EJECT - P-100-PFKEYS SECTION. - ******************************************************** - * P - 1 0 0 - P F K E Y S * - ******************************************************** - * THIS SECTION PROCESSES PFKEYS. * - * * - * COPY CODE - SCREEN/PFKEYS * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL P100I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEP100I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEP100I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code P100I * ! - * recherche des zones initialis�es manuellement � '?' pour * ! - * initialisation de ces zones a space. * ! - * Si help demand� alors qu'il est d�j� actif, envoi d'un * ! - * message. Sinon, marquage du champ par un '?' si la * ! - * position du curseur est valide. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEE100I,GIEL100I,GIEK100I,GIEK100T,GIEK200I,GIEM100I * ! - **************************************************************** ! - CALL 'HELPINIT' USING TAB-POS-NB TAB-POS ! - TPO-INPUT-FIELDS TELON-EATTR-FEATURE ! - IF APPVAL ! - IF XFER-HELP-POS-COD > 0 ! - MOVE '000158' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - GO TO P-100-PFKEYS-RETURN ! - ELSE ! - MOVE 0 TO XFER-HELP-POS-COD ! - CALL 'HELPCURS' USING XFER-HELP-CUR HELP-CHAR ! - EIBCPOSN TAB-POS-NB TAB-POS TPO-INPUT-FIELDS ! - TELON-EATTR-FEATURE ! - IF XFER-HELP-POS-COD = 0 ! - MOVE '000159' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - GO TO P-100-PFKEYS-RETURN ! - ELSE ! - MOVE BMSMAP-NAME TO XFER-HELP-MAP-NAME ! - GO TO P-100-PFKEYS-RETURN. ! - *----------------------------------------------! END GIEP100I ---- - - SKIP1 - SKIP1 - MOVE SPACES TO TPO-ERRMSG1. - SKIP1 - * - * PFKEY X ROUTINE - * - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY CPFKX ! - *------------------------------------------------------------------- - **************************************************************** ! - * COPY PERMETTANT UNE GESTION AUTOMATIQUE DES FONCTIONS * ! - * - RETOUR A L'ECRAN PRECEDENT * ! - * - RETOUR AU MENU PRECEDENT * ! - * - RETOUR AU MENU GENERAL * ! - **************************************************************** ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEMNGEN 2! - *------------------------------------------------------------------- - * !!!!! attention si maintenance * 2! - * lors de compil de program cics natif on ne va pas chercher * 2! - * la clause copy dans cette bibliotheque * 2! - * --> copy de eccx.ppo00.srctlib(giemngen) dans * 2! - * de ec00.ppo00.srclib(giemngen) * 2! - **************************************************************** 2! - * Code personnalisation : CMB GIEMNGEN R1 V1 * 2! - * Date de creation : 27/01/1992 * 2! - * Date de modification : / / * 2! - * * 2! - * Fonctionnalites : * 2! - * TRAITEMENT NORMALISE DE LA FONCTION RETOUR MENU PRINCIPAL * 2! - * * 2! - * Dependance avec autres sections : * 2! - **************************************************************** 2! - IF MENUGEN 2! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR 2! - IF XFER-NB > 1 2! - MOVE XFER-PROG(1) TO NEXT-PROGRAM-NAME 2! - WS-TLN-TYP-PROG 2! - IF NOT WS-TLN-PROG-TELON 2! - THEN MOVE 'C' TO WS-TLN-TYP-XCTL 2! - END-IF 2! - ELSE MOVE 'P001F4 ' TO NEXT-PROGRAM-NAME 2! - MOVE 'C' TO WS-TLN-TYP-XCTL. 2! - *----------------------------------------------! END GIEMNGEN ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEECPRE 2! - *------------------------------------------------------------------- - **************************************************************** 2! - * Code personnalisation : CMB GIEECPRE R1 V1 * 2! - * Date de creation : 27/01/1992 * 2! - * Date de modification : / / * 2! - * * 2! - * Fonctionnalites : * 2! - * TRAITEMENT NORMALISE POUR LA FONCTION ECRAN PRECEDENT * 2! - * * 2! - * Dependance avec autres sections : * 2! - * GIEMNGEN,GIEMNINT,GIEECRINT * 2! - **************************************************************** 2! - IF ECRPRE OR CLEAR 2! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR 2! - IF XFER-NB > 1 2! - COMPUTE XFER-NB = XFER-NB - 1 2! - MOVE XFER-PROG(XFER-NB) TO NEXT-PROGRAM-NAME 2! - WS-TLN-TYP-PROG 2! - IF NOT WS-TLN-PROG-TELON 2! - THEN MOVE 'C' TO WS-TLN-TYP-XCTL 2! - END-IF 2! - ELSE MOVE 'P001F3 ' TO NEXT-PROGRAM-NAME 2! - MOVE 'C' TO WS-TLN-TYP-XCTL. 2! - *----------------------------------------------! END GIEECPRE ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEMNPRE 2! - *------------------------------------------------------------------- - * !!!!! attention si maintenance * 2! - * lors de compil de program cics natif on ne va pas chercher * 2! - * la clause copy dans cette bibliotheque * 2! - * --> copy de eccx.ppo00.srctlib(giemnpre) dans * 2! - * de ec00.ppo00.srclib(giemnpre) * 2! - **************************************************************** 2! - * CODE PERSONNALISATION : CMB GIEMNPRE R1 V1 * 2! - * Date de creation : 27/01/1992 * 2! - * Date de modification : / / * 2! - * * 2! - * Fonctionnalites : * 2! - * gestion de la fonction menu precedent * 2! - * * 2! - * Dependance avec autres sections : * 2! - **************************************************************** 2! - IF MENUPRE 2! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR 2! - IF XFER-NB > 1 2! - COMPUTE WS-TLN-IND = XFER-NB - 1 2! - PERFORM UNTIL WS-TLN-IND = ZERO 2! - IF XFER-MENU(WS-TLN-IND) = 'M' 2! - THEN MOVE WS-TLN-IND TO XFER-NB 2! - MOVE XFER-PROG(XFER-NB) TO NEXT-PROGRAM-NAME 2! - WS-TLN-TYP-PROG 2! - IF NOT WS-TLN-PROG-TELON 2! - THEN MOVE 'C' TO WS-TLN-TYP-XCTL 2! - END-IF 2! - MOVE ZERO TO WS-TLN-IND 2! - ELSE SUBTRACT 1 FROM WS-TLN-IND 2! - END-IF 2! - END-PERFORM 2! - ELSE MOVE 'P001F4 ' TO NEXT-PROGRAM-NAME 2! - MOVE 'C' TO WS-TLN-TYP-XCTL. 2! - *----------------------------------------------! END GIEMNPRE ---- - - ! - **************************************************************** ! - * GESTION DES TOUCHES DE FOCNTION NON AUTORISEES. * ! - **************************************************************** ! - ! - IF NOT (ENTER-KEY OR ECRPRE OR CLEAR OR ! - MENUPRE OR MENUGEN OR VALIDATION) ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - MOVE '000001' TO TPO-ERRMSG1. ! - ! - ! - *----------------------------------------------! END CPFKX ---- - - IF (CLEAR AND CONTINUE-PROCESS) - MOVE SPACES TO SPA-TRANSACTION-CODE - EXEC CICS SEND - FROM(SPA-TRANSACTION-CODE) - LENGTH(1) - END-EXEC - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR. - SKIP1 - P-100-PFKEYS-RETURN. - EXIT. - EJECT - Q-100-CICS-INIT SECTION. - ******************************************************** - * Q - 1 0 0 - C I C S - I N I T R O U T I N E * - ******************************************************** - * THIS ROUTINE OPTIONALLY CALLS THE TELON TEST * - * FACILITY FOR PROGRAM TRACE AND SCHEDULES THE DLI * - * PSB WHEN APPLICABLE. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - CALL 'ADLAATI' USING DFHEIBLK DFHCOMMAREA. - SKIP1 - Q-100-CICS-INIT-RETURN. - EXIT. - EJECT - X-100-CONSIS-EDITS SECTION. - ******************************************************** - * X - 1 0 0 - C O N S I S - E D I T S * - ******************************************************** - * THIS SECTION CONTAINS THE COPY CODE FOR ALL * - * CONSISTENCY EDITS REQUIRED ON INPUT. * - * * - * COPY CODE - SCREEN/CONSIS * - ******************************************************** - SKIP1 - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY CONSIS ! - *------------------------------------------------------------------- - * CONTROLE DE SAISIE SUR ENTETE COMMUN ! - IF NOT VALIDATION ! - ! - INITIALIZE XF-AFF-MEMO-YN4ESPS ! - INITIALIZE Y00CIA-Y00CIA ! - INITIALIZE YN4ESP-ZONE-ALLER ! - ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - ! - PERFORM CTRL-SAISIE1 THRU CTRL-SAISIE1-FIN ! - IF CONTINUE-PROCESS ! - ! - EVALUATE YC4ESD-CD-APLI-OPE OF YC4ESD-ZONE-MODIF ! - WHEN 'CH' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLSCH THRU CTRLSCH-FIN ! - ! - END-IF ! - ! - WHEN 'P7' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLSP7 THRU CTRLSP7-FIN ! - ! - END-IF ! - ! - WHEN '4D' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLS4DF THRU CTRLS4DF-FIN ! - ! - END-IF ! - ! - WHEN '4F' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLS4DF THRU CTRLS4DF-FIN ! - ! - END-IF ! - ! - WHEN '37' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLS37 THRU CTRLS37-FIN ! - ! - END-IF ! - ! - WHEN '4G' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLS4G THRU CTRLS4G-FIN ! - ! - END-IF ! - ! - WHEN 'CO' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLSCO THRU CTRLSCO-FIN ! - ! - END-IF ! - ! - WHEN 'DG' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLSDG THRU CTRLSDG-FIN ! - ! - END-IF ! - ! - WHEN 'FI' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLSFI THRU CTRLSFI-FIN ! - ! - END-IF ! - END-EVALUATE ! - END-IF ! - ! - IF CONTINUE-PROCESS ! - * SAUVEGARDE DE LA ZONE DE COMMUNICATION YN4ESPS ! - MOVE YN4ESP-ZONE-ALLER(1:127) TO XF-AFF-MEMO-ZON1 ! - MOVE YN4ESP-NO-PTN OF YN4ESP-ZONE-ALLER ! - TO XF-AFF-MEMO-ZON2 ! - MOVE YN4ESP-NO-PRD-PTN OF YN4ESP-ZONE-ALLER ! - TO XF-AFF-MEMO-ZON3 ! - MOVE YN4ESP-NO-CLI-PTN OF YN4ESP-ZONE-ALLER ! - TO XF-AFF-MEMO-ZON4 ! - MOVE YN4ESP-NO-ORD-CTR OF YN4ESP-ZONE-ALLER ! - TO XF-AFF-MEMO-ZON5 ! - MOVE YN4ESP-ZONE-ALLER(138:124) TO XF-AFF-MEMO-ZON6 ! - MOVE YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-ZONE-ALLER ! - TO XF-AFF-MEMO-ZON7 ! - MOVE YN4ESP-ZONE-ALLER(268:113) TO XF-AFF-MEMO-ZON8 ! - ! - * PROTEGER LES ZONES SAISISSABLES DE L'ECRAN ! - MOVE PROT-ATTR TO TPO-DAPECJ-ATTR ! - TPO-DAPECM-ATTR ! - TPO-DAPECA-ATTR ! - TPO-DAECNJ-ATTR ! - TPO-DAECNM-ATTR ! - TPO-DAECNA-ATTR ! - TPO-CDBQE1-ATTR ! - TPO-CDGUI1-ATTR ! - TPO-NOCPT1-ATTR ! - TPO-NOCHQ-ATTR ! - TPO-CDPTN-ATTR ! - TPO-REF1L15-ATTR ! - TPO-REF2L15-ATTR ! - TPO-REF1L16-ATTR ! - TPO-REF4L16-ATTR ! - TPO-REF1L17-ATTR ! - TPO-RF1L18J-ATTR ! - TPO-RF1L18M-ATTR ! - TPO-RF1L18A-ATTR ! - TPO-RF2L18J-ATTR ! - TPO-RF2L18M-ATTR ! - TPO-RF2L18A-ATTR ! - TPO-RF1L19J-ATTR ! - TPO-RF1L19M-ATTR ! - TPO-RF1L19A-ATTR ! - TPO-REF2L19-ATTR ! - TPO-REF3L19-ATTR ! - TPO-REF5L19-ATTR ! - ! - MOVE '000010' TO TPO-ERRMSG1 ! - SET DEMANDE-DE-VALIDATION TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - END-IF ! - END-IF. ! - ! - *----------------------------------------------! END CONSIS ---- - - SKIP1 - X-100-CONSIS-EDITS-RETURN. - EXIT. - EJECT - Z-100-SECTIONS-COPY SECTION. - ******************************************************** - * S E C T I O N C O P Y C O D E * - ******************************************************** - * THIS SECTION CONTAINS THE COPY CODE FOR THE SECTION * - * PARAMETER. * - * * - * NOTE: Z-100-SECTIONS-COPY SHOULD NEVER BE PERFORMED * - * DIRECTLY, AS THIS SECTION ALWAYS ABENDS. * - * * - * A USER 99 ABEND IS ISSUED BY THE COBOL ABEND * - * ROUTINE. THIS IS USUALLY CAUSED BY CUSTOM CODE IN * - * J-100 THAT DOES A "GO TO X-100-CONSIS-EDITS-RETURN" * - * (I.E. FIELD/SELECT/SCONSIS CODE). * - * * - * COPY CODE - SCREEN/SECTION * - ******************************************************** - EXEC CICS ABEND ABCODE(FALLOUT-ABEND-CODE) END-EXEC. - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY SPRACCES ! - *------------------------------------------------------------------- - * ACCES ACCESSEUR ! - * ! - ACCES-P4DTRANT. ! - *-------------- ! - MOVE '3' TO Y4DTRA-CD-TY-CTRL-E ! - MOVE ZERO TO Y4DTRA-NO-PTN-E ! - ! - MOVE WS-REF2L15 TO Y4DTRA-CD-PRD-E ! - MOVE WS-CD-PTN TO Y4DTRA-CD-PTN-E ! - MOVE SPACES TO Y4DTRA-CD-CLI-PTN-E ! - Y4DTRA-NO-CTR-PTN-E ! - EXEC CICS LINK PROGRAM ('P4DTRANT') ! - COMMAREA (Y4DTRA-Y4DTRAN) ! - LENGTH (Y4DTRA-LONG-SEG) ! - END-EXEC. ! - IF Y4DTRA-CD-RET-S NOT = ZERO AND ! - NOT = '0007' ! - MOVE 'P4DTRANT' TO ABT-ERROR-SECTION ! - MOVE 'DBM' TO ABT-DA-GENERIC-STATUS ! - MOVE Y4DTRA-NOM-PROC-S ! - TO ABT-DA-FUNCTION ! - MOVE 'DB2' TO ABT-ERROR-ACTIVITY ! - MOVE Y4DTRA-NOM-FIC-S ! - TO ABT-DA-ACCESS-NAME ! - MOVE Y4DTRA-CD-RET-SQL-S TO ABT-DB2-STATUS ! - MOVE '00ABD' TO NEXT-PROGRAM-NAME-ID ! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF Y4DTRA-CD-RET-S = ZERO ! - MOVE Y4DTRA-LIB-PRD-S TO WS-REF3L15 ! - ELSE ! - MOVE '4E0022' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE ERROR-ATTR TO TPO-CDPTN-ATTR ! - END-IF ! - END-IF. ! - ! - ACCES-P4DTRANT-FIN. ! - *------------------ ! - EXIT. ! - ! - * CALCUL DU RIB ! - ACCES-P00271. ! - ! - ! - IF NOT DO-TRANSFER ! - ! - MOVE SPACES TO ZL00271-ENR ! - MOVE 'P00271 ' TO ZL00271-NO-PGM ! - MOVE '2' TO ZL00271-CD-CHX ! - MOVE WS-CPT TO ZL00271-RIB-21-CAR ! - ! - EXEC CICS LINK PROGRAM ('P00271') ! - COMMAREA (ZL00271-ENR) ! - LENGTH (ZL00271-LG-COMM) ! - END-EXEC ! - ! - MOVE ZL00271-RIB-CLE TO WS-CPT-RIB-CLE ! - ! - END-IF. ! - ! - ACCES-P00271-FIN. EXIT. ! - **************************************************************** ! - * * ! - * SPRACCES * ! - * * ! - **************************************************************** ! - ! - ACCES-TN4ESPS-005. ! - ! - INITIALIZE Y00CIA-Y00CIA. ! - MOVE '005' TO Y00CIA-FCT-DEM ! - MOVE 'TN4ESPS' TO Y00CIA-NO-PGM-CICS-APP. ! - MOVE 'TC4E3H0' TO Y00CIA-NO-PGM-CICS-AT. ! - MOVE 'M' TO Y00CIA-CD-PVN-APP. ! - ! - MOVE SPACES TO Y00CIA-ZON-APLI. ! - ! - INITIALIZE WS-YN4ESPS-APLI. ! - ! - MOVE YC4ESD-NO-SEQ OF YC4ESD-ZONE-OCC-DET(YC4ESD-NO-OCC-D) ! - TO YN4ESP-NO-SEQ-SP OF YN4ESP-ZONE-ALLER. ! - MOVE YC4ESD-DA-ENT-OPE ! - OF YC4ESD-ZONE-OCC-DET(YC4ESD-NO-OCC-D) ! - TO YN4ESP-DA-ENT-OPE-SP OF YN4ESP-ZONE-ALLER. ! - MOVE 'N' TO YN4ESP-IDC-PEC-OPE-SP OF ! - YN4ESP-ZONE-ALLER. ! - ! - ! - EXEC CICS LINK PROGRAM ('TN4ESPS') ! - COMMAREA (Y00CIA) ! - LENGTH (16000) ! - END-EXEC. ! - ! - EVALUATE Y00CIA-CD-RET-PGM ! - WHEN 16 ! - MOVE Y00CIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR ! - WHEN 08 ! - MOVE Y00CIA-CD-MES-ERR TO TPO-ERRMSG1 ! - MOVE Y00CIA-LIB-CPL-MES-ERR ! - TO WS-TLN-LIB-CPL-MES ! - SET DO-WRITE TO TRUE ! - END-EVALUATE. ! - ! - ACCES-TN4ESPS-005-FIN. ! - EXIT. ! - ! - ACCES-TN4ESPS-006. ! - ! - MOVE '006' TO Y00CIA-FCT-DEM ! - MOVE 'TN4ESPS' TO Y00CIA-NO-PGM-CICS-APP. ! - MOVE 'TC4E3H0' TO Y00CIA-NO-PGM-CICS-AT. ! - MOVE 'M' TO Y00CIA-CD-PVN-APP. ! - ! - MOVE YC4ESD-NO-SEQ OF YC4ESD-ZONE-OCC-DET(YC4ESD-NO-OCC-D) ! - TO YN4ESP-NO-SEQ-SP OF YN4ESP-ZONE-ALLER. ! - MOVE YC4ESD-DA-ENT-OPE ! - OF YC4ESD-ZONE-OCC-DET(YC4ESD-NO-OCC-D) ! - TO YN4ESP-DA-ENT-OPE-SP OF YN4ESP-ZONE-ALLER. ! - MOVE 'N' TO YN4ESP-IDC-PEC-OPE-SP OF YN4ESP-ZONE-ALLER. ! - MOVE YC4ESD-CD-APLI-OPE OF YC4ESD-ZONE-MODIF ! - TO YN4ESP-CD-APLI-OPE OF YN4ESP-ZONE-ALLER. ! - ! - ! - EXEC CICS LINK PROGRAM ('TN4ESPS') ! - COMMAREA (Y00CIA) ! - LENGTH (16000) ! - END-EXEC. ! - ! - EVALUATE Y00CIA-CD-RET-PGM ! - WHEN 16 ! - MOVE Y00CIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR ! - WHEN 08 ! - MOVE Y00CIA-CD-MES-ERR TO TPO-ERRMSG1 ! - MOVE Y00CIA-LIB-CPL-MES-ERR ! - TO WS-TLN-LIB-CPL-MES ! - SET DO-WRITE TO TRUE ! - WHEN 00 ! - MOVE '000193' TO YC4ESD-CD-MES-ERR ! - END-EVALUATE. ! - ! - ACCES-TN4ESPS-006-FIN. ! - EXIT. ! - ACCES-TN4D101. ! - *---------------* ! - INITIALIZE Y4D101-Y4DN101. ! - MOVE WS-CD-PTN TO Y4D101-CD-PTN. ! - MOVE 'TN4D101' TO Y00WIA-NO-PGM-CICS-APP ! - MOVE 'TC4E3H0' TO Y00WIA-NO-PGM-CICS-AT ! - MOVE '002' TO Y00WIA-FCT-DEM ! - EXEC CICS LINK PROGRAM ('TN4D101') ! - COMMAREA (Y00WIA) ! - LENGTH (4096) ! - END-EXEC ! - IF Y00WIA-CD-RET-PGM = 16 ! - MOVE Y00WIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF Y00WIA-CD-RET-PGM NOT = 0 ! - MOVE Y00WIA-LIB-CPL-MES-ERR TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF Y4D101-LA-PTN = SPACES ! - MOVE Y4D101-NOM-PTN TO WS-LIB-PTN ! - ELSE ! - MOVE Y4D101-LA-PTN TO WS-LIB-PTN ! - END-IF ! - END-IF ! - END-IF. ! - ACCES-TN4D101-FIN. EXIT. ! - *----------------------------------------------! END SPRACCES ---- - - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY SPITAB ! - *------------------------------------------------------------------- - * ACCES SPITAB ! - * ACCES SPITAB ! - ************************************************************** ! - * ACCES A LA TABLE YSP4E013 POUR TROUVER LE LIBELLE COURT ! - * DU CRO ! - ************************************************************** ! - ! -056400 ACCES-SPI013. ! -056800 ! -058800 MOVE LOW-VALUES TO YSP4E013-YSP4E013. ! -058900 MOVE '00' TO SPI-RETCOD. ! - MOVE SPACE TO SPI-PARMCICS. ! - MOVE 'GP' TO SPI-FONCTION. ! -700 MOVE '= ' TO SPI-OPERATEUR. ! - MOVE 'YSP4E013' TO SPI-CODTAB. ! - MOVE +2500 TO SPI-LONG. ! - MOVE 'SPI2TAB' TO SPI-FICHIER. ! -900 MOVE WS-REF2L19 TO YSP4E013-CD-TY-CRO ! - MOVE YN4ESP-CD-APLI-OPE OF YN4ESP-DETAIL-SIT ! - TO YSP4E013-CD-APLI-OPE. ! - MOVE YSP4E013-YSP4E013 TO SPI-REF-POSTE. ! -000 ! - EXEC CICS LINK PROGRAM ('SPI2TCV') ! - COMMAREA (SPI-PARMCICS) ! - LENGTH (SPI-LONG) ! - END-EXEC. ! -400 ! -400 ! -500 EVALUATE SPI-RETCOD ! -600 WHEN '00' ! -700 MOVE SPI-IOAREA TO YSP4E013-YSP4E013 ! - MOVE YSP4E013-LIB-TY-VER TO WS-REF4L19 ! - ! - WHEN '02' ! - MOVE 'TYPE CRO INCONNU, VOIR TABLE YSP4E013' ! - TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! -300 WHEN OTHER ! - MOVE Y00CIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - SET DO-TRANSFER TO TRUE ! -900 END-EVALUATE. ! -065000 ! -056400 ACCES-SPI013-FIN. EXIT. ! -065000 ! -065000 ! - ************************************************************** ! - * ACCES A LA TABLE YSP4E053 POUR TROUVER LE LIBELLE MODE ! - * REGLEMENT ! - ************************************************************** ! - ! -056400 ACCES-SPI053. ! -056800 ! -058800 MOVE LOW-VALUES TO YSP4E053-YSP4E053. ! -058900 MOVE '00' TO SPI-RETCOD. ! - MOVE SPACE TO SPI-PARMCICS. ! - MOVE 'GP' TO SPI-FONCTION. ! -700 MOVE '= ' TO SPI-OPERATEUR. ! - MOVE 'YSP4E053' TO SPI-CODTAB. ! - MOVE +2500 TO SPI-LONG. ! - MOVE 'SPI2TAB' TO SPI-FICHIER. ! - MOVE YN4ESP-CD-MODE-RGL-OPE OF YN4ESP-DETAIL-SIT ! - TO YSP4E053-CD-MODE-RGL-OPE. ! - MOVE YSP4E053-YSP4E053 TO SPI-REF-POSTE. ! -000 ! - EXEC CICS LINK PROGRAM ('SPI2TCV') ! - COMMAREA (SPI-PARMCICS) ! - LENGTH (SPI-LONG) ! - END-EXEC. ! -400 ! -400 ! -500 EVALUATE SPI-RETCOD ! -600 WHEN '00' ! -700 MOVE SPI-IOAREA TO YSP4E053-YSP4E053 ! - WHEN '02' ! - MOVE SPACES TO TPO-LIBRGL ! -300 WHEN OTHER ! - MOVE Y00CIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - SET DO-TRANSFER TO TRUE ! -900 END-EVALUATE. ! -065000 ! -056400 ACCES-SPI053-FIN. EXIT. ! -065000 ! - ************************************************************** ! - * ACCES A LA TABLE YSP4E017 POUR TROUVER LE LIBELLE DU CODE ! - * REJET DU MOUVEMENT ! - ************************************************************** ! - ! -056400 ACCES-SPI017. ! -056800 ! -058800 MOVE LOW-VALUES TO YSP4E017-YSP4E017. ! -058900 MOVE '00' TO SPI-RETCOD. ! - MOVE SPACE TO SPI-PARMCICS. ! - MOVE 'GP' TO SPI-FONCTION. ! -700 MOVE '= ' TO SPI-OPERATEUR. ! - MOVE 'YSP4E017' TO SPI-CODTAB. ! - MOVE +2500 TO SPI-LONG. ! - MOVE 'SPI2TAB' TO SPI-FICHIER. ! - MOVE YN4ESP-CD-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO YSP4E017-CD-REJ-OPE. ! - MOVE YSP4E017-YSP4E017 TO SPI-REF-POSTE. ! -000 ! - EXEC CICS LINK PROGRAM ('SPI2TCV') ! - COMMAREA (SPI-PARMCICS) ! - LENGTH (SPI-LONG) ! - END-EXEC. ! -400 ! -400 ! -500 EVALUATE SPI-RETCOD ! -600 WHEN '00' ! -700 MOVE SPI-IOAREA TO YSP4E017-YSP4E017 ! -900 MOVE YSP4E017-LIB-REJ-OPE TO WS-LIB-REJ-OPE ! - WHEN '02' ! - MOVE SPACES TO TPO-LIBREJ ! -300 WHEN OTHER ! - MOVE Y00CIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - SET DO-TRANSFER TO TRUE ! -900 END-EVALUATE. ! -065000 ! -056400 ACCES-SPI017-FIN. EXIT. ! -065000 ! - *----------------------------------------------! END SPITAB ---- - - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY CTRL1 ! - *------------------------------------------------------------------- - * CONTROLE SAISIE UTILISATEUR ! - ! - * CONTROLE SAISIE UTILISATEUR ! - ****************************** ! - CTRL-SAISIE1. ! - ! - IF TPO-DAPECJ-ATTR = ERROR-ATTR ! - OR TPO-DAPECM-ATTR = ERROR-ATTR ! - OR TPO-DAPECA-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-DAPECJ NOT = XF-AFF-DA-PEC-DEM-JJ ! - OR TPI-DAPECM NOT = XF-AFF-DA-PEC-DEM-MM ! - OR TPI-DAPECA NOT = XF-AFF-DA-PEC-DEM-SA ! - MOVE TPI-DAPECJ TO WS-DA10-JJ ! - MOVE TPI-DAPECM TO WS-DA10-MM ! - MOVE TPI-DAPECA TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-PEC-DEM-SP ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-DA-PEC-DEM-JJ TO WS-DAFIC-JJ ! - MOVE XF-AFF-DA-PEC-DEM-MM TO WS-DAFIC-MM ! - MOVE XF-AFF-DA-PEC-DEM-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-PEC-DEM-SP ! - OF YN4ESP-ZONE-ALLER ! - END-IF. ! - ! - IF TPO-DAECNJ-ATTR = ERROR-ATTR ! - OR TPO-DAECNM-ATTR = ERROR-ATTR ! - OR TPO-DAECNA-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-DAECNJ NOT = XF-AFF-DA-ECN-OPE-JJ ! - OR TPI-DAECNM NOT = XF-AFF-DA-ECN-OPE-MM ! - OR TPI-DAECNA NOT = XF-AFF-DA-ECN-OPE-SA ! - MOVE TPI-DAECNJ TO WS-DA10-JJ ! - MOVE TPI-DAECNM TO WS-DA10-MM ! - MOVE TPI-DAECNA TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-ECN-OPE ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-DA-ECN-OPE-JJ TO WS-DAFIC-JJ ! - MOVE XF-AFF-DA-ECN-OPE-MM TO WS-DAFIC-MM ! - MOVE XF-AFF-DA-ECN-OPE-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-ECN-OPE OF ! - YN4ESP-ZONE-ALLER ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF WS-CD-BQE-DST1 NOT NUMERIC ! - MOVE '4E0041' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-CDBQE1-ATTR ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF WS-CD-GUI-DST1 NOT NUMERIC ! - MOVE '4E0042' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-CDGUI1-ATTR ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - END-IF. ! - ! - ! - IF CONTINUE-PROCESS ! - IF WS-CD-BQE-DST1 NOT = XF-AFF-CD-BQE-DST1 ! - OR WS-CD-GUI-DST1 NOT = XF-AFF-CD-GUI-DST1 ! - OR WS-NO-CPT-DST1 NOT = XF-AFF-NO-CPT-DST1 ! - ! - MOVE WS-CD-BQE-DST1 TO WS-CPT-BQE ! - MOVE WS-CD-GUI-DST1 TO WS-CPT-GUI ! - MOVE WS-NO-CPT-DST1 TO WS-CPT-CPT ! - MOVE ZERO TO WS-CPT-RIB-CLE ! - ! - PERFORM ACCES-P00271 THRU ACCES-P00271-FIN ! - MOVE WS-CPT-RIB-CLE TO WS-CLE-RIB1 ! - MOVE WS-CLE-RIB1 TO TPO-CLERIB1 ! - ! - MOVE WS-CD-BQE-DST1 TO YN4ESP-CD-BQE-DST ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-CD-GUI-DST1 TO YN4ESP-CD-GUI-DST ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-NO-CPT-DST1 TO YN4ESP-NO-CPT-DST ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-CD-BQE-DST1 TO YN4ESP-CD-BQE-DST ! - OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-CD-GUI-DST1 TO YN4ESP-CD-GUI-DST ! - OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-NO-CPT-DST1 TO YN4ESP-NO-CPT-DST ! - OF YN4ESP-ZONE-ALLER ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF WS-NO-CHQ NOT NUMERIC AND WS-NO-CHQ NOT = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-NOCHQ-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF WS-NO-CHQ NOT = XF-AFF-NO-CHQ ! - MOVE WS-NO-CHQ TO YN4ESP-NO-CHQ ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-NO-CHQ TO YN4ESP-NO-CHQ ! - OF YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-CDAPL NOT = 'DG' AND NOT = '5G' ! - MOVE TPI-CDPTN TO WS-CD-PTN ! - * PERFORM ACCES-SPIPTN THRU ACCES-SPIPTN-FIN ! - * IF SPI-RETCOD NOT = '00' ! - * SET TOP-SAISIE-KO TO TRUE ! - * MOVE '000141' TO TPO-ERRMSG1 ! - * MOVE ERROR-ATTR TO TPO-CDPTN-ATTR ! - * MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF Y00CIA-CD-RET-PGM NOT = 0 ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE Y00CIA-CD-MES-ERR TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-CDPTN-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - MOVE WS-CD-PTN TO YN4ESP-CD-PTN ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-LIB-PTN TO TPO-LIBPTN ! - END-IF ! - IF TOP-SAISIE-OK ! - IF TPO-CDAPL = 'P7' OR '4D' OR '4F' ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S = '0007' ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - ! - CTRL-SAISIE1-FIN. ! - EXIT. ! - ! - *----------------------------------------------! END CTRL1 ---- - - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY CTRLS ! - *------------------------------------------------------------------- - * CONTROLE NIVEAU REFERENCE DE GESTION ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION CH * ! - ******************************************************** ! - CTRLSCH. ! - ! - * CONTROLE SAISIE DU PRENOM ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 > SPACES ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLSCH-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION P7 * ! - ******************************************************** ! - CTRLSP7. ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0060' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15(1:8) NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15 NOT = XF-AFF-REF1L15 ! - MOVE TPI-REF1L15 TO WS-REF1L15 ! - MOVE WS-REF1L15 TO YN4ESP-NO-POL-9 OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L15 TO YN4ESP-NO-POL-9 ! - OF YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L15(1:2) NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L15 NOT = XF-AFF-REF2L15 ! - MOVE TPI-REF2L15 TO WS-REF2L15 ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S = '0007' ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - MOVE WS-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - MOVE WS-REF3L15 TO TPO-REF3L15 ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - * CONTROLE SAISIE DU PRENOM ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 NOT = XF-AFF-REF1L17 ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L18J-ATTR = ERROR-ATTR ! - OR TPO-RF1L18M-ATTR = ERROR-ATTR ! - OR TPO-RF1L18A-ATTR = ERROR-ATTR ! - OR TPO-RF2L18J-ATTR = ERROR-ATTR ! - OR TPO-RF2L18M-ATTR = ERROR-ATTR ! - OR TPO-RF2L18A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - ! - IF TPI-RF1L18J NOT = XF-AFF-RF1L18-J ! - OR TPI-RF1L18M NOT = XF-AFF-RF1L18-M ! - OR TPI-RF1L18A NOT = XF-AFF-RF1L18-S ! - ! - MOVE TPI-RF1L18J TO WS-DA10-JJ ! - MOVE TPI-RF1L18M TO WS-DA10-MM ! - MOVE TPI-RF1L18A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L18-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L18-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L18-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - ! - IF TPI-RF2L18J NOT = XF-AFF-RF2L18-J ! - OR TPI-RF2L18M NOT = XF-AFF-RF2L18-M ! - OR TPI-RF2L18A NOT = XF-AFF-RF2L18-S ! - MOVE TPI-RF2L18J TO WS-DA10-JJ ! - MOVE TPI-RF2L18M TO WS-DA10-MM ! - MOVE TPI-RF2L18A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-EFF OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF2L18-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF2L18-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF2L18-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-EFF OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L19J-ATTR = ERROR-ATTR ! - OR TPO-RF1L19M-ATTR = ERROR-ATTR ! - OR TPO-RF1L19A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L19J NOT = XF-AFF-RF1L19-J ! - OR TPI-RF1L19M NOT = XF-AFF-RF1L19-M ! - OR TPI-RF1L19A NOT = XF-AFF-RF1L19-S ! - MOVE TPI-RF1L19J TO WS-DA10-JJ ! - MOVE TPI-RF1L19M TO WS-DA10-MM ! - MOVE TPI-RF1L19A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L19-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L19-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L19-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L19 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0065' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L19 NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L19 NOT = XF-AFF-REF2L19 ! - MOVE TPI-REF2L19 TO WS-REF2L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - IF SPI-RETCOD = '00' ! - MOVE WS-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-REF4L19 TO TPO-REF4L19 ! - ELSE ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0066' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF5L19 NOT = XF-AFF-REF5L19 ! - MOVE TPI-REF5L19 TO WS-REF5L19 ! - MOVE WS-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLSP7-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION CO * ! - ******************************************************** ! - CTRLSCO. ! - ! - * CONTROLE SAISIE DU NOM DU CORRESPONDANT ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 NOT = XF-AFF-REF1L17 ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLSCO-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION DG * ! - ******************************************************** ! - CTRLSDG. ! - * TEST LA PERIODE DG RESAISIE ! - IF TPI-REF4L16 NOT > SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0064' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF4L16-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF4L16 NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF4L16-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF4L16 NOT = XF-AFF-REF4L16 ! - MOVE TPI-REF4L16 TO WS-REF4L16 ! - MOVE WS-REF4L16 TO YN4ESP-PER-DCR-DGI OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF4L16 TO YN4ESP-PER-DCR-DGI OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - CTRLSDG-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION FI * ! - ******************************************************** ! - CTRLSFI. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L19J-ATTR = ERROR-ATTR ! - OR TPO-RF1L19M-ATTR = ERROR-ATTR ! - OR TPO-RF1L19A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L19J NOT = XF-AFF-RF1L19-J ! - OR TPI-RF1L19M NOT = XF-AFF-RF1L19-M ! - OR TPI-RF1L19A NOT = XF-AFF-RF1L19-S ! - MOVE TPI-RF1L19J TO WS-DA10-JJ ! - MOVE TPI-RF1L19M TO WS-DA10-MM ! - MOVE TPI-RF1L19A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L19-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L19-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L19-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L19 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0065' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - MOVE 'O' TO WS-CHANGEMENT ! - ELSE ! - IF TPI-REF2L19 NOT = XF-AFF-REF2L19 ! - MOVE TPI-REF2L19 TO WS-REF2L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - IF SPI-RETCOD = '00' ! - MOVE WS-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-REF4L19 TO TPO-REF4L19 ! - ELSE ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0066' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L19 TO YN4ESP-CD-TY-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF5L19 NOT = XF-AFF-REF5L19 ! - MOVE TPI-REF5L19 TO WS-REF5L19 ! - MOVE WS-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLSFI-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION 37 * ! - ******************************************************** ! - CTRLS37. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15(1:7) NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0062' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15 NOT = XF-AFF-REF1L15 ! - MOVE TPI-REF1L15 TO WS-REF1L15 ! - MOVE WS-REF1L15 TO YN4ESP-NO-CLI-PTN ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L15 TO YN4ESP-NO-CLI-PTN OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L15(1:2) NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L15 NOT = XF-AFF-REF2L15 ! - MOVE TPI-REF2L15 TO WS-REF2L15 ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S = '0007' ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - MOVE WS-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - MOVE WS-REF3L15 TO TPO-REF3L15 ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - * CONTROLE SAISIE DU NOM ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 NOT = XF-AFF-REF1L17 ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L18J-ATTR = ERROR-ATTR ! - OR TPO-RF1L18M-ATTR = ERROR-ATTR ! - OR TPO-RF1L18A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L18J NOT = XF-AFF-RF1L18-J ! - OR TPI-RF1L18M NOT = XF-AFF-RF1L18-M ! - OR TPI-RF1L18A NOT = XF-AFF-RF1L18-S ! - MOVE TPI-RF1L18J TO WS-DA10-JJ ! - MOVE TPI-RF1L18M TO WS-DA10-MM ! - MOVE TPI-RF1L18A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L18-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L18-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L18-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L19J-ATTR = ERROR-ATTR ! - OR TPO-RF1L19M-ATTR = ERROR-ATTR ! - OR TPO-RF1L19A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L19J NOT = XF-AFF-RF1L19-J ! - OR TPI-RF1L19M NOT = XF-AFF-RF1L19-M ! - OR TPI-RF1L19A NOT = XF-AFF-RF1L19-S ! - MOVE TPI-RF1L19J TO WS-DA10-JJ ! - MOVE TPI-RF1L19M TO WS-DA10-MM ! - MOVE TPI-RF1L19A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L19-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L19-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L19-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L19 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0065' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L19 NOT = XF-AFF-REF2L19 ! - MOVE TPI-REF2L19 TO WS-REF2L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - IF SPI-RETCOD = '00' ! - MOVE WS-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-REF4L19 TO TPO-REF4L19 ! - ELSE ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0066' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L19 TO YN4ESP-CD-TY-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF5L19 NOT = XF-AFF-REF5L19 ! - MOVE TPI-REF5L19 TO WS-REF5L19 ! - MOVE WS-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLS37-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATIONS 4D ET 4F * ! - ******************************************************** ! - CTRLS4DF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15(1:8) NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0061' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPO-IDCPTN = 'CM' ! - MOVE 'O' ! - TO YN4ESP-IDC-PTN-CM OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE 'N' ! - TO YN4ESP-IDC-PTN-CM OF YN4ESP-ZONE-ALLER ! - END-IF ! - IF TPI-REF1L15 NOT = XF-AFF-REF1L15 ! - MOVE TPI-REF1L15 TO WS-REF1L15 ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-ZONE-ALLER= 'O' ! - MOVE WS-REF1L15 TO YN4ESP-RAC-CLE OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE WS-REF1L15 TO YN4ESP-NO-POL-9 OF YN4ESP-ZONE-ALLER ! - END-IF ! - ELSE ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-ZONE-ALLER= 'O' ! - MOVE XF-AFF-REF1L15 TO YN4ESP-RAC-CLE ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L15 TO YN4ESP-NO-POL-9 ! - OF YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L15 NOT = XF-AFF-REF2L15 ! - MOVE TPI-REF2L15 TO WS-REF2L15 ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S = '0007' ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - MOVE WS-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - MOVE WS-REF3L15 TO TPO-REF3L15 ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L16 NOT > 0 ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L16 NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L16 NOT = XF-AFF-REF1L16 ! - MOVE WS-REF1L16 TO YN4ESP-NO-ORD-CTR OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L16 TO YN4ESP-NO-ORD-CTR OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - * CONTROLE SAISIE DU NOM ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 NOT = XF-AFF-REF1L17 ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L18J-ATTR = ERROR-ATTR ! - OR TPO-RF1L18M-ATTR = ERROR-ATTR ! - OR TPO-RF1L18A-ATTR = ERROR-ATTR ! - OR TPO-RF2L18J-ATTR = ERROR-ATTR ! - OR TPO-RF2L18M-ATTR = ERROR-ATTR ! - OR TPO-RF2L18A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L18J NOT = XF-AFF-RF1L18-J ! - OR TPI-RF1L18M NOT = XF-AFF-RF1L18-M ! - OR TPI-RF1L18A NOT = XF-AFF-RF1L18-S ! - ! - MOVE TPI-RF1L18J TO WS-DA10-JJ ! - MOVE TPI-RF1L18M TO WS-DA10-MM ! - MOVE TPI-RF1L18A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L18-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L18-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L18-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - ! - IF TPI-RF2L18J NOT = XF-AFF-RF2L18-J ! - OR TPI-RF2L18M NOT = XF-AFF-RF2L18-M ! - OR TPI-RF2L18A NOT = XF-AFF-RF2L18-S ! - MOVE TPI-RF2L18J TO WS-DA10-JJ ! - MOVE TPI-RF2L18M TO WS-DA10-MM ! - MOVE TPI-RF2L18A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-EFF OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF2L18-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF2L18-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF2L18-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-EFF OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L19J-ATTR = ERROR-ATTR ! - OR TPO-RF1L19M-ATTR = ERROR-ATTR ! - OR TPO-RF1L19A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L19J NOT = XF-AFF-RF1L19-J ! - OR TPI-RF1L19M NOT = XF-AFF-RF1L19-M ! - OR TPI-RF1L19A NOT = XF-AFF-RF1L19-S ! - MOVE TPI-RF1L19J TO WS-DA10-JJ ! - MOVE TPI-RF1L19M TO WS-DA10-MM ! - MOVE TPI-RF1L19A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L19-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L19-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L19-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L19 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0065' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L19 NOT = XF-AFF-REF2L19 ! - MOVE TPI-REF2L19 TO WS-REF2L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - IF SPI-RETCOD = '00' ! - MOVE WS-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-REF4L19 TO TPO-REF4L19 ! - ELSE ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0066' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L19 TO YN4ESP-CD-TY-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS AND ! - YC4ESD-CD-APLI-OPE OF YC4ESD-ZONE-MODIF = '4D' ! - IF TPI-REF3L19 NOT = XF-AFF-REF3L19 ! - MOVE XF-AFF-REF3L19 TO YN4ESP-CD-CLO-ECN OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF3L19 TO YN4ESP-CD-CLO-ECN OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF5L19 NOT = XF-AFF-REF5L19 ! - MOVE TPI-REF5L19 TO WS-REF5L19 ! - MOVE WS-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLS4DF-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION 4G * ! - ******************************************************** ! - CTRLS4G. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15 NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0063' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15 NOT = XF-AFF-REF1L15 ! - MOVE TPI-REF1L15 TO WS-REF1L15 ! - MOVE WS-REF1L15 TO YN4ESP-NO-DOS-SIN-DCS OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L15 TO YN4ESP-NO-DOS-SIN-DCS OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - * CONTROLE SAISIE DU NOM ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 NOT = XF-AFF-REF1L17 ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L19J-ATTR = ERROR-ATTR ! - OR TPO-RF1L19M-ATTR = ERROR-ATTR ! - OR TPO-RF1L19A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L19J NOT = XF-AFF-RF1L19-J ! - OR TPI-RF1L19M NOT = XF-AFF-RF1L19-M ! - OR TPI-RF1L19A NOT = XF-AFF-RF1L19-S ! - MOVE TPI-RF1L19J TO WS-DA10-JJ ! - MOVE TPI-RF1L19M TO WS-DA10-MM ! - MOVE TPI-RF1L19A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L19-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L19-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L19-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L19 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0065' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L19 NOT = XF-AFF-REF2L19 ! - MOVE TPI-REF2L19 TO WS-REF2L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - IF SPI-RETCOD = '00' ! - MOVE WS-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-REF4L19 TO TPO-REF4L19 ! - ELSE ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0066' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L19 TO YN4ESP-CD-TY-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF5L19 NOT = XF-AFF-REF5L19 ! - MOVE TPI-REF5L19 TO WS-REF5L19 ! - MOVE WS-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLS4G-FIN. ! - EXIT. ! - ! - *----------------------------------------------! END CTRLS ---- - - EJECT - Z-900-SECTION-FALLOUT SECTION. - ******************************************************** - * Z - 9 0 0 - S E C T I O N - F A L L O U T * - ******************************************************** - * * - * THIS ROUTINE EXECUTES AN EXEC CICS ABEND WITH THE * - * ABEND CODE SPECIFIED BY FALLOUT-ABEND-CODE. * - * THE CODE IN THIS SECTION WILL ONLY BE EXECUTED IF * - * CONTROL FALLS OUT OF A PREVIOUS SECTION. * - * * - ******************************************************** - EXEC CICS ABEND ABCODE(FALLOUT-ABEND-CODE) END-EXEC. - EJECT - Z-990-PROGRAM-ERROR SECTION. - ******************************************************** - * Z - 9 9 0 - P R O G R A M - E R R O R * - ******************************************************** - * * - * THIS SECTION CALLS THE COBOL ABEND ROUTINE WITH AN * - * ABEND CODE SPECIFIED BY CNTLERR-ABEND-CODE. IT IS * - * PERFORMED IF CONTROL-INDICATOR IS AN UNDEFINED * - * VALUE IN THE MAINLINE. * - ******************************************************** - EXEC CICS ABEND ABCODE(CNTLERR-ABEND-CODE) END-EXEC. - SKIP1 diff --git a/it/it-projects/plugins/project/src/cpp/BiggestUnInt.cc b/it/it-projects/plugins/project/src/cpp/BiggestUnInt.cc deleted file mode 100644 index 3cd1acff87b..00000000000 --- a/it/it-projects/plugins/project/src/cpp/BiggestUnInt.cc +++ /dev/null @@ -1,51 +0,0 @@ -// BiggestUnInt2.cc -// usage: -// BiggestUnInt2 <starting number> (optional argument, default is 1) -// example: -// BiggestUnInt2 4194305 -// features: - -#include <iostream> -#include <cstdlib> - -using namespace std; - -void bitsout( unsigned int n ); - -int main(int argc, char* argv[]) -{ - int N=0; - unsigned int i=1 , oldi , j ; - if(argc>1) { - sscanf( argv[1], "%u", &i ) ; // starting value - } - cout << "#\ti \ti+(i-1)\t2i\n" ; - cout << "#\t#### \t#######\t###\n" ; - do { - oldi = i ; - j = i-1 ; - j += i ; // this sets j = 2i-1 (we hope) - i *= 2 ; // this doubles i (we hope) - cout << N << ":\t" << oldi << "\t" << j << "\t" << i << "\t"; - bitsout(i); - cout << endl ; - N++; - } while ( j+1==i && i!=0 ) ; // keep going until something odd happens - // (Under normal arithmetic, - // we always expect A: j+1 to equal i, and - // we always expect B: i not to be 0 - // we keep going while _both_ A _and_ B are true.) - // ( '&&' means "_and_" ) -} - -void bitsout( unsigned int m ) -{ - int lastbit ; - unsigned int two_to_power_i ; - - for ( int i = 31 ; i >= 0 ; i -- ) { - two_to_power_i = (1<<i) ; - lastbit = ( two_to_power_i & m ) == 0 ? 0 : 1 ; - cout << lastbit ; - } -} diff --git a/it/it-projects/plugins/project/src/cpp/HelloWorld.cpp b/it/it-projects/plugins/project/src/cpp/HelloWorld.cpp deleted file mode 100644 index 1d6ac1c64e8..00000000000 --- a/it/it-projects/plugins/project/src/cpp/HelloWorld.cpp +++ /dev/null @@ -1,7 +0,0 @@ -using namespace std; - -int main () -{ - // comment - return 1/0; -} diff --git a/it/it-projects/plugins/project/src/cpp/RandDemo.cc b/it/it-projects/plugins/project/src/cpp/RandDemo.cc deleted file mode 100644 index 1f775a04e76..00000000000 --- a/it/it-projects/plugins/project/src/cpp/RandDemo.cc +++ /dev/null @@ -1,87 +0,0 @@ -// RandDemo.cc -// features: -// * uses random() to get a random integer -// * gets interactive user input -// * uses ternary operator "q ? a : b" - -#include <iostream> -#include <cstdlib> -#include <ctime> - -using namespace std; - -#define ranf() \ - ((double)random()/(1.0+(double)RAND_MAX)) // Uniform from interval [0,1) */ - -int main() -{ - int outcome, N=0, count_in=0 ; - double fraction_in ; - - // Initialise random number generator with value of system time. - srandom(time(NULL)); - - // Get user input in correct range. - while(N<1) - { - cout << "Input the number of experiments: "; - cin >> N; - } - - // Perform N experiments. - for(int n=1; n<=N; n++) - { - double x = ranf(); - double y = ranf(); - outcome = ( x*x + y*y > 1.0 ) ? 0 : 1 ; - if(outcome==1) count_in++; - cout << outcome << "\t" << x << "\t" << y << "\t" - << count_in << "\t" << n << endl; - } - - // Sample goto to raise a violation - goto L1; - - //Sample switch with default - switch (bob) - { - case 1: { - cout << "1"; - break; - } - case 2: - { - cout <<"2"; - break; - } - default: - { - cout << "3"; - } - } - - //Sample switch without default - switch (bob) - { - case 1: { - cout << "1"; - break; - } - case 2: - { - cout <<"2"; - break; - } - } - - //Integer variables must be converted (cast) for correct division - fraction_in = static_cast<double>(count_in)/N; - - // Output results - cout << "# Proportion of outcomes 'in' " - << fraction_in << endl; - // Output results - cout << "# pi-hat = " - << 4.0 * fraction_in << endl; - return 0; -} diff --git a/it/it-projects/plugins/project/src/cpp/SimpleClass.cc b/it/it-projects/plugins/project/src/cpp/SimpleClass.cc deleted file mode 100644 index 4f4ceba3aae..00000000000 --- a/it/it-projects/plugins/project/src/cpp/SimpleClass.cc +++ /dev/null @@ -1,70 +0,0 @@ -// DateClass.cc -// Program to demonstrate the definition of a simple class -// and member functions - -#include <iostream> -using namespace std; - - -// Declaration of Date class -class Date { - -public: - Date(int, int, int); - void set(int, int, int); - void print(); - -private: - int year; - int month; - int day; -}; - - -int main() -{ - // Declare today to be object of class Date - // Values are automatically intialised by calling constructor function - Date today(1,9,1999); - - cout << "This program was written on "; - today.print(); - - cout << "This program was modified on "; - today.set(5,10,1999); - today.print(); - - return 0; -} - -// Date constructor function definition -Date::Date(int d, int m, int y) -{ - if(d>0 && d<31) day = d; - if(m>0 && m<13) month = m; - if(y>0) year =y; -} - -// Date member function definitions -void Date::set(int d, int m, int y) -{ - if(d>0) { - if (d<31){ - if(m>0) { - if (m<13) { - if(y>0) { - year =y; - month = m; - day = d; - } - } - } - } - } -} - -void Date::print() -{ - cout << day << "-" << month << "-" << year << endl; -} - diff --git a/it/it-projects/plugins/project/src/cpp/main.c b/it/it-projects/plugins/project/src/cpp/main.c deleted file mode 100644 index 05a68cccd30..00000000000 --- a/it/it-projects/plugins/project/src/cpp/main.c +++ /dev/null @@ -1,18 +0,0 @@ -#include <stdio.h> /* NOK, according to the MISRA C 2004 20.9 rule, stdio.h must not be used in embedded system's production code */ - -#include <mylib.h> - -/* - * Compile & run from current folder: - * gcc -Wall -pedantic -std=c99 -I../lib -o main main.c && ./main - */ - -int main(void) { - int x = ADD(40, 2); - - if (x != 42) - { /* NOK, empty code blocks generate violations */ - } - - printf("40 + 2 = %d\n", x); -} diff --git a/it/it-projects/plugins/project/src/css/sample.css b/it/it-projects/plugins/project/src/css/sample.css deleted file mode 100644 index 88a2ce9fdb4..00000000000 --- a/it/it-projects/plugins/project/src/css/sample.css +++ /dev/null @@ -1,89 +0,0 @@ -.quality-gates-navigator .navigator-side { - display: table-cell; - vertical-align: top; - width: 250px; - min-width: 0; -} -.quality-gates-navigator .navigator-header { - margin-left: 0; -} -.quality-gates-navigator .navigator-header .spinner { - margin-top: 9px; -} -.quality-gates-navigator .navigator-actions { - height: 40px; - width: 230px; - margin: 10px; - padding: 0 10px; -} -.quality-gates-navigator .navigator-actions .navigator-header-title { - color: #444; - font-size: 13px; - font-weight: 700; - text-transform: uppercase; -} -.quality-gates-navigator .navigator-results { - width: 230px; - min-width: 0; -} -.quality-gates-navigator .navigator-details { - margin-left: 0; -} -.quality-gates-nav .navigator-results-list>li { - border-color: transparent; -} -.quality-gates-nav .navigator-results-list>li:hover:not(.active):not(.empty) { - background-color: #f3f3f3; -} -.quality-gates-nav .navigator-results-list>li.active { - border-color: #4B9FD5; -} -.quality-gates-nav .navigator-results-list>li.empty { - cursor: default; -} -.quality-gates-nav .navigator-results-list>li .line { - padding-top: 2px; - padding-bottom: 2px; -} -.quality-gates-nav .navigator-results-list>li .subtitle { - text-transform: lowercase; -} -.quality-gate-section+.quality-gate-section { - margin-top: 10px; - padding-top: 20px; -} -.quality-gate-section-empty+.quality-gate-section { - border-top: 1px solid #e6e6e6; -} -.quality-gate-section-name { - margin-bottom: 10px; - font-weight: 700; - text-transform: uppercase; -} -.quality-gate-introduction { - margin-bottom: 20px; -} -.quality-gate-new-condition { - margin-bottom: 10px; -} -.quality-gate-condition-actions { - position: relative; -} -.quality-gate-default-message { - padding: 6px 5px; - border: 1px solid #ddd; - background-color: #efefef; -} -.quality-gate-conditions-wrap { - border-left: 1px solid #ddd; - border-right: 1px solid #ddd; -} -.quality-gate-conditions .deprecated { - color: #777; - text-transform: lowercase; - font-variant: small-caps; -} -.quality-gate-conditions tbody { - border-left: none!important; - border-right: none!important; -} diff --git a/it/it-projects/plugins/project/src/flex/Circle.as b/it/it-projects/plugins/project/src/flex/Circle.as deleted file mode 100644 index 29ebe94393f..00000000000 --- a/it/it-projects/plugins/project/src/flex/Circle.as +++ /dev/null @@ -1,14 +0,0 @@ -package { - - public class Circle { - public var diameter:int = 0; - - function Circle (d:int) { - if (d == 0) { - this.diameter = -1; - } else { - this.diameter = d; - } - } - } -} diff --git a/it/it-projects/plugins/project/src/flex/HasIssues.as b/it/it-projects/plugins/project/src/flex/HasIssues.as deleted file mode 100644 index 410b52709b4..00000000000 --- a/it/it-projects/plugins/project/src/flex/HasIssues.as +++ /dev/null @@ -1,12 +0,0 @@ -package { - - public class HasIssues { - - function HasIssues (d:int) { - if (d == 0) { - break - } - break - } - } -} diff --git a/it/it-projects/plugins/project/src/flex/UncoveredCircle.as b/it/it-projects/plugins/project/src/flex/UncoveredCircle.as deleted file mode 100644 index e0a6650345b..00000000000 --- a/it/it-projects/plugins/project/src/flex/UncoveredCircle.as +++ /dev/null @@ -1,10 +0,0 @@ -package { - - public class UncoveredCircle { - public var diameter:int = 0; - - function UncoveredCircle (d:int) { - this.diameter = d; - } - } -} diff --git a/it/it-projects/plugins/project/src/groovy/example/Greeting.groovy b/it/it-projects/plugins/project/src/groovy/example/Greeting.groovy deleted file mode 100644 index ef635498267..00000000000 --- a/it/it-projects/plugins/project/src/groovy/example/Greeting.groovy +++ /dev/null @@ -1,7 +0,0 @@ -package example - -class Greeting { - def say() { - println 'Hello World' - } -} diff --git a/it/it-projects/plugins/project/src/groovy/innerclass/InnerClassExample.groovy b/it/it-projects/plugins/project/src/groovy/innerclass/InnerClassExample.groovy deleted file mode 100644 index caf298d205c..00000000000 --- a/it/it-projects/plugins/project/src/groovy/innerclass/InnerClassExample.groovy +++ /dev/null @@ -1,14 +0,0 @@ -package innerclass - -class InnerClassExample -{ - def show() { - println 'Hello World' - new ExampleInnerClass().show() - } - - class ExampleInnerClass { - def show() { println "Hello Inner"} - } - -} diff --git a/it/it-projects/plugins/project/src/java/foo/Foo.java b/it/it-projects/plugins/project/src/java/foo/Foo.java deleted file mode 100644 index 20bf396881c..00000000000 --- a/it/it-projects/plugins/project/src/java/foo/Foo.java +++ /dev/null @@ -1,15 +0,0 @@ -package foo; - -/** - * Foo class - */ -public class Foo { - - public static int div(int a, int b) { - if (b == 0) { - throw new UnsupportedOperationException("Can't divide by zero!"); - } - return a / b; - } - -} diff --git a/it/it-projects/plugins/project/src/java/foo/Simplest.java b/it/it-projects/plugins/project/src/java/foo/Simplest.java deleted file mode 100644 index 981db6738c3..00000000000 --- a/it/it-projects/plugins/project/src/java/foo/Simplest.java +++ /dev/null @@ -1,17 +0,0 @@ -package foo; - -/** - * Simple class - */ -public class Simplest { - - public static int add(int a, int b) { - // introduce a variable that is not needed - just to get a violation - int result = a + b; - - System.out.println(""); - - return result; - } - -} diff --git a/it/it-projects/plugins/project/src/java/foo/Simplest2.java b/it/it-projects/plugins/project/src/java/foo/Simplest2.java deleted file mode 100644 index 2d673e178bc..00000000000 --- a/it/it-projects/plugins/project/src/java/foo/Simplest2.java +++ /dev/null @@ -1,7 +0,0 @@ -package foo; - -public class Simplest2 { - - public static void foo() {} - -} diff --git a/it/it-projects/plugins/project/src/java/foo/Simplest3.java b/it/it-projects/plugins/project/src/java/foo/Simplest3.java deleted file mode 100644 index 530fe4c4284..00000000000 --- a/it/it-projects/plugins/project/src/java/foo/Simplest3.java +++ /dev/null @@ -1,5 +0,0 @@ -package foo; - -public class Simplest3 { - -} diff --git a/it/it-projects/plugins/project/src/js/HasIssues.js b/it/it-projects/plugins/project/src/js/HasIssues.js deleted file mode 100644 index 8426dcf168c..00000000000 --- a/it/it-projects/plugins/project/src/js/HasIssues.js +++ /dev/null @@ -1,18 +0,0 @@ -// FIXME -alert("should not be used"); - -function strict() { - 'use strict'; -} - -function pow(a, b) { - if(b == 0) { - return 0; - } - var x = a; - for (var i = 1; i<b; i++) { - //Dead store because the last return statement should return x instead of returning a - x = x * a; - } - return a; -} diff --git a/it/it-projects/plugins/project/src/js/Person.js b/it/it-projects/plugins/project/src/js/Person.js deleted file mode 100644 index f536a4f4c5e..00000000000 --- a/it/it-projects/plugins/project/src/js/Person.js +++ /dev/null @@ -1,14 +0,0 @@ - -var Person = function(first, last, middle) { - this.first = first; - this.middle = middle; - this.last = last; -}; - -Person.prototype = { - - whoAreYou : function() { - return this.first + (this.middle ? ' ' + this.middle: '') + ' ' + this.last; - } - -};
\ No newline at end of file diff --git a/it/it-projects/plugins/project/src/js/com/company/Car.js b/it/it-projects/plugins/project/src/js/com/company/Car.js deleted file mode 100644 index 40a9da7898c..00000000000 --- a/it/it-projects/plugins/project/src/js/com/company/Car.js +++ /dev/null @@ -1,50 +0,0 @@ -var Car = function(brand, model, year) { - this.brand = brand; - this.model = model; - this.year = year; - this.engineState = 'stopped'; - this.messageToDriver = ''; -}; - -Car.prototype = { - - getFullName : function() { - return this.brand + ' ' + this.model + ' ' + 'Y: ' + this.year; - }, - - calculatePrice : function() { - if (this.year < 1990) { - return '$1500'; - } else if (this.year > 2011) { - return '$30000'; - } else { - return '$1500 - 30000'; - } - }, - - startEngine : function() { - this.engineState = 'started'; - return 'engine started'; - }, - - stopEngine : function() { - this.engineState = 'stopped'; - return 'engine stopped'; - }, - - stopEngineWithCheck : function() { - if (this.engineState === 'started') { - this.engineState = 'stopped'; - this.messageToDriver = 'all good. c u later'; - return 'engine stopped'; - } else { - this.messageToDriver = 'engine not started. what do you want me to do?'; - return 'engine was not running'; - } - }, - - tuneCar : function() { - this.year = '2011'; - } - -};
\ No newline at end of file diff --git a/it/it-projects/plugins/project/src/js/com/company/Truck.js b/it/it-projects/plugins/project/src/js/com/company/Truck.js deleted file mode 100644 index 98df0732527..00000000000 --- a/it/it-projects/plugins/project/src/js/com/company/Truck.js +++ /dev/null @@ -1,24 +0,0 @@ -var Truck = function(brand, model, year) { - this.brand = brand; - this.model = model; - this.year = year; - this.engineState = 'stopped'; - this.messageToDriver = ''; -}; - -Truck.prototype = { - - getFullName : function() { - return this.brand + ' ' + this.model + ' ' + 'Y: ' + this.year; - }, - - calculatePrice : function() { - if (this.year < 1990) { - return '$15000'; - } else if (this.year > 2011) { - return '$300000'; - } else { - return '$15000 - 300000'; - } - } -};
\ No newline at end of file diff --git a/it/it-projects/plugins/project/src/js/com/company/Vehicle.js b/it/it-projects/plugins/project/src/js/com/company/Vehicle.js deleted file mode 100644 index e004a007b6c..00000000000 --- a/it/it-projects/plugins/project/src/js/com/company/Vehicle.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * This is copy/paste file from Car.js with couple methods removed - * - * Removed methods: - * - startEngine () - * - stopEngine () - * - */ -var Vehicle = function(brand, model, year) { - this.brand = brand; - this.model = model; - this.year = year; - this.engineState = 'stopped'; - this.messageToDriver = ''; -}; - - -// single line comments line 1 -// single line comments line 2 -// single line comments line 3 -// single line comments line 4 -Vehicle.prototype = { - - getFullName : function() { - return this.brand + ' ' + this.model + ' ' + 'Y: ' + this.year; - }, - - calculatePrice : function() { - if (this.year < 1990) { - return '$1500'; - } else if (this.year > 2011) { - return '$30000'; - } else { - return '$1500 - 30000'; - } - }, - - stopEngineWithCheck : function() { - if (this.engineState === 'started') { - this.engineState = 'stopped'; - this.messageToDriver = 'all good. c u later'; - return 'engine stopped'; - } else { - this.messageToDriver = 'engine not started. what do you want me to do?'; - return 'engine was not running'; - } - }, - - tuneCar : function() { - this.year = '2011'; - } - -};
\ No newline at end of file diff --git a/it/it-projects/plugins/project/src/php/Math.php b/it/it-projects/plugins/project/src/php/Math.php deleted file mode 100644 index 5c1ab480233..00000000000 --- a/it/it-projects/plugins/project/src/php/Math.php +++ /dev/null @@ -1,214 +0,0 @@ -<?php -/** - * This file is part of phpUnderControl. - * - * Copyright (c) 2007-2009, Manuel Pichler <mapi@phpundercontrol.org>. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Manuel Pichler nor the names of his - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @package Example - * @author Manuel Pichler <mapi@phpundercontrol.org> - * @copyright 2007-2009 Manuel Pichler. All rights reserved. - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version SVN: $Id: Math.php 4429 2009-01-04 15:39:45Z mapi $ - * @link http://www.phpundercontrol.org/ - */ -function add($v1 , $v2) - { - return ($v1 + $v2); - } - -/** - * Simple math class. - * - * @package Example - * @author Manuel Pichler <mapi@phpundercontrol.org> - * @copyright 2007-2009 Manuel Pichler. All rights reserved. - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version Release: 0.5.0 - * @link http://www.phpundercontrol.org/ - */ -class PhpUnderControl_Example_Math -{ - /** - * Adds the two given values. - * - * @param integer $v1 Value one. - * @param integer $v2 Value two. - * - * @return integer. - */ - public function add($v1 , $v2) - { - return ($v1 + $v2); - } - - /** - * Subtract param two from param one - * - * @param integer $v1 Value one. - * @param integer $v2 Value two. - * - * @return integer. - */ - public function sub($v1, $v2) - { - return ($v1 - $v2); - } - - /** - * Not tested method that should be visible with low coverage. - */ - public function div($v1, $v2) - { - $v3 = $v1 / ($v2 + $v1); - if ($v3 > 14) - { - $v4 = 0; - for ($i = 0; $i < $v3; $i++) - { - $v4 += ($v2 * $i); - } - } - $v5 = ($v4 < $v3 ? ($v3 - $v4) : ($v4 - $v3)); - - $v6 = ($v1 * $v2 * $v3 * $v4 * $v5); - - $d = array($v1, $v2, $v3, $v4, $v5, $v6); - - $v7 = 1; - for ($i = 0; $i < $v6; $i++) - { - shuffle( $d ); - $v7 = $v7 + $i * end($d); - } - - $v8 = $v7; - foreach ( $d as $x ) - { - $v8 *= $x; - } - - $v3 = $v1 / ($v2 + $v1); - if ($v3 > 14) - { - $v4 = 0; - for ($i = 0; $i < $v3; $i++) - { - $v4 += ($v2 * $i); - } - } - $v5 = ($v4 < $v3 ? ($v3 - $v4) : ($v4 - $v3)); - - $v6 = ($v1 * $v2 * $v3 * $v4 * $v5); - - $d = array($v1, $v2, $v3, $v4, $v5, $v6); - - $v7 = 1; - for ($i = 0; $i < $v6; $i++) - { - shuffle( $d ); - $v7 = $v7 + $i * end($d); - } - - $v8 = $v7; - foreach ( $d as $x ) - { - $v8 *= $x; - } - - return $v8; - } - - /** - * Simple copy for cpd detection. - */ - public function complex($v1, $v2) - { - $v3 = $v1 / ($v2 + $v1); - if ($v3 > 14) - { - $v4 = 0; - for ($i = 0; $i < $v3; $i++) - { - $v4 += ($v2 * $i); - } - } - $v5 = ($v4 < $v3 ? ($v3 - $v4) : ($v4 - $v3)); - - $v6 = ($v1 * $v2 * $v3 * $v4 * $v5); - - $d = array($v1, $v2, $v3, $v4, $v5, $v6); - - $v7 = 1; - for ($i = 0; $i < $v6; $i++) - { - shuffle( $d ); - $v7 = $v7 + $i * end( $d ); - } - - $v8 = $v7; - foreach ( $d as $x ) - { - $v8 *= $x; - } - - $v3 = $v1 / ($v2 + $v1); - if ($v3 > 14) - { - $v4 = 0; - for ($i = 0; $i < $v3; $i++) - { - $v4 += ($v2 * $i); - } - } - $v5 = ($v4 < $v3 ? ($v3 - $v4) : ($v4 - $v3)); - - $v6 = ($v1 * $v2 * $v3 * $v4 * $v5); - - $d = array($v1, $v2, $v3, $v4, $v5, $v6); - - $v7 = 1; - for ($i = 0; $i < $v6; $i++) - { - shuffle( $d ); - $v7 = $v7 + $i * end($d); - } - - $v8 = $v7; - foreach ( $d as $x ) - { - $v8 *= $x; - } - - return $v8; - } -} diff --git a/it/it-projects/plugins/project/src/pli/center.pli b/it/it-projects/plugins/project/src/pli/center.pli deleted file mode 100644 index d6d79e5bebd..00000000000 --- a/it/it-projects/plugins/project/src/pli/center.pli +++ /dev/null @@ -1,212 +0,0 @@ - /* Copyright (c) 1995 by R. A. Vowels, from "Introduction to PL/I, Algorithms, and */ - /* Structured Programming". Permission is given to reproduce and to use these procedures */ - /* as part of a program, and to include them as part of a larger work to be sold for profit. */ - /* However, the user is not permitted to sell the procedures separately. Provided always */ - /* that these procedures and this copyright notice are reproduced in full. */ - - DECLARE CENTERLEFT GENERIC - (CENTER_LEFT_2 WHEN (*, *), - CENTER_LEFT_3 WHEN (*, *, *) ); - DECLARE CENTER GENERIC - (CENTER_LEFT_2 WHEN (*, *), - CENTER_LEFT_3 WHEN (*, *, *) ); - DECLARE CENTERRIGHT GENERIC - (CENTER_RIGHT_2 WHEN (*, *), - CENTER_RIGHT_3 WHEN (*, *, *) ); - DECLARE CENTRELEFT GENERIC - (CENTER_LEFT_2 WHEN (*, *), - CENTER_LEFT_3 WHEN (*, *, *) ); - DECLARE CENTRERIGHT GENERIC - (CENTER_RIGHT_2 WHEN (*, *), - CENTER_RIGHT_3 WHEN (*, *, *) ); - /* This procedure returns a string of length LEN, with STRING in the dead center, or one */ - /* position to the left of dead center if it cannot be dead center. */ - CENTER_LEFT_2: - PROCEDURE (STRING, LEN) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be centered; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* centered. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - - DECLARE WORK CHARACTER (LEN); - DECLARE (K, L) FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - K = (LEN - L + 2)/2; - - WORK = ''; - SUBSTR (WORK, K, L) = STRING; - RETURN (WORK); - END CENTER_LEFT_2; - - /* This procedure returns a string of length LEN, with STRING in the dead center, or one */ - /* position to the left of dead center if it cannot be dead center. A specified fill */ - /* character FILL extends STRING right and left. */ - CENTER_LEFT_3: - PROCEDURE (STRING, LEN, FILL) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be centered; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* centered. */ - /* FILL = a fill character used to extend STRING at both ends. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - DECLARE FILL CHARACTER (1); - - DECLARE WORK CHARACTER (LEN); - DECLARE (K, L) FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - K = (LEN - L + 2)/2; - - WORK = REPEAT (FILL, LEN-1); - SUBSTR (WORK, K, L) = STRING; - RETURN (WORK); - END CENTER_LEFT_3; - - /* This procedure returns a string of length LEN, with STRING in the dead center, or one */ - /* position to the right of dead center if it cannot be dead center. */ - CENTER_RIGHT_2: - PROCEDURE (STRING, LEN) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be centered; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* centered. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - - DECLARE WORK CHARACTER (LEN); - DECLARE (K, L) FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - K = (LEN - L + 3)/2; - - WORK = ''; - SUBSTR (WORK, K, L) = STRING; - RETURN (WORK); - END CENTER_RIGHT_2; - - /* This procedure returns a string of length LEN, with STRING in the dead center, or one */ - /* position to the right of dead center if it cannot be dead center. A specified fill */ - /* character FILL extends STRING right and left. */ - CENTER_RIGHT_3: - PROCEDURE (STRING, LEN, FILL) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be centered; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* centered. */ - /* FILL = a fill character used to extend STRING at both ends. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - DECLARE FILL CHARACTER (1); - - DECLARE WORK CHARACTER (LEN); - DECLARE (K, L) FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - K = (LEN - L + 3)/2; - - WORK = REPEAT (FILL, LEN-1); - SUBSTR (WORK, K, L) = STRING; - RETURN (WORK); - END CENTER_RIGHT_3; - - DECLARE LEFT GENERIC - (LEFT_blank WHEN (*,*), - LEFT_other WHEN (*,*,*) ); - - /* This procedure returns STRING in a string of length LEN, with blank characters padded on */ - /* the right. */ - LEFT_blank: - PROCEDURE (STRING, LEN) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be positioned left; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* placed. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - - DECLARE WORK CHARACTER (LEN); - DECLARE L FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - WORK = ''; - SUBSTR (WORK, 1, L) = STRING; - RETURN (WORK); - END LEFT_blank; - - /* This procedure returns STRING in a string of length LEN, padded with the character */ - /* FILL on the right. */ - LEFT_other: - PROCEDURE (STRING, LEN, FILL) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be positioned left; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* positioned left; */ - /* FILL = the character to be used to fill out the finished string. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - DECLARE FILL CHARACTER (1); - - DECLARE WORK CHARACTER (LEN); - DECLARE L FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - WORK = STRING || REPEAT (FILL, LEN-L-1); - RETURN (WORK); - END LEFT_other; - - DECLARE RIGHT GENERIC - (RIGHT_blank WHEN (*,*), - RIGHT_other WHEN (*,*,*) ); - - /* This procedure returns STRING right-adjusted in a string of length N, padded with blanks */ - /* on the left. */ - RIGHT_blank: - PROCEDURE (STRING, LEN) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be positioned right; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* positioned right. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - - DECLARE WORK CHARACTER (LEN); - DECLARE L FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - WORK = ''; - SUBSTR (WORK, LEN-L+1, L) = STRING; - RETURN (WORK); - END RIGHT_blank; - - /* This procedure returns STRING right-adjusted in a string of length N, padded with the */ - /* character FILL on the left. */ - RIGHT_other: - PROCEDURE (STRING, LEN, FILL) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be positioned right; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* positioned right; */ - /* FILL = the character to be used to fill out the finished string. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - DECLARE FILL CHARACTER (1); - - DECLARE WORK CHARACTER (LEN); - DECLARE L FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - WORK = REPEAT (FILL, LEN-L-1) || STRING; - RETURN (WORK); - END RIGHT_other; diff --git a/it/it-projects/plugins/project/src/pli/chess.pli b/it/it-projects/plugins/project/src/pli/chess.pli deleted file mode 100644 index f1e9c1aaed8..00000000000 --- a/it/it-projects/plugins/project/src/pli/chess.pli +++ /dev/null @@ -1,760 +0,0 @@ - /* This is a chess program written in PL/I. */ - /* The original was written in Fortran 90 by Dean Menezes. */ - /* This translation by R. A. Vowels, 30 May 2008. */ - /* Moves are input in this form: */ - /* E2-E4 (start square, hyphen, end square). */ - - /* Sources: */ - - /* http://ai-depot.com/articles/minimax-explained/ */ - /* http://www.aihorizon.com/essays/chessai/index.htm */ - /* http://www.ascotti.org/programming/chess/Shannon%20-%20Programming - %20a%20computer%20for%20playing%20chess.pdf */ - - (SUBRG, SIZE, FOFL, STRINGRANGE, STRINGSIZE): - CHESS: PROCEDURE OPTIONS (MAIN, REORDER); - /* Global variables: */ - /* level = current recursion level for calculation */ - /* maxlevel = maximum recursion level */ - /* score = current score (evaluation) */ - /* besta, bestb, bestx, besty = holds best moves for each recursion level */ - /* wcksflag, wcqsflag = flags to detemine castling abilities */ - /* board = the 8x8 array to hold chessboard */ - DECLARE ( MAXLEVEL VALUE ( 5) ) FIXED BINARY; - DECLARE ( LEVEL, SCORE, BESTA(0:7) ) FIXED BINARY (31); - DECLARE ( BESTB(1:MAXLEVEL), BESTX(1:MAXLEVEL), BESTY(1:MAXLEVEL) ) FIXED - BINARY (31); - DECLARE ( WCKSFLAG, WCQSFLAG ) BIT(1) ALIGNED; - DECLARE ( A, B, X, Y, RES ) FIXED BINARY (31); - - - /* initialize board to starting position */ - DECLARE BOARD(0:7, 0:7) FIXED BINARY (31) STATIC INITIAL ( - -500, -270, -300, -900, -7500, -300, -270, -500, - -100, -100, -100, -100, -100, -100, -100, -100, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 100, 100, 100, 100, 100, 100, 100, 100, - 500, 270, 300, 900, 5000, 300, 270, 500 ); - - LEVEL=0; A=-1; RES=0; - WCKSFLAG = '0'B ; WCQSFLAG = '0'B; - /* main loop: get white move from user, calculate black move */ - DO FOREVER; - SCORE=0; - CALL IO(A, B, X, Y, RES); - RES=EVALUATE(-1, 10000); - A=BESTA(1); B=BESTB(1); X=BESTX(1); Y=BESTY(1); - END; - - /* figure out if white is in check */ - INCHECK: PROCEDURE () RETURNS( FIXED BINARY (31)) OPTIONS (REORDER); - DECLARE (XX(0:26), YY(0:26), CC(0:26)) FIXED BINARY (31); - DECLARE (I, A, B, X, Y, NDX) FIXED BINARY (31); - - DO B = 0 TO 7; - DO A = 0 TO 7; - IF BOARD(B, A)>=0 THEN - ITERATE; - CALL MOVELIST(A, B, XX, YY, CC, NDX); - /* iterate through move list and see if */ - /* piece can get to king */ - DO I = 0 TO NDX BY 1; - X = XX(I); - Y = YY(I); - IF BOARD(Y, X) = 5000 THEN - RETURN (1); - END; - END; - END; - RETURN (0); - END INCHECK; - - EVALUATE: PROCEDURE (ID, PRUNE) RETURNS ( FIXED BINARY (31) ) RECURSIVE; - DECLARE ( ID, PRUNE ) FIXED BINARY (31); - /* local variables. */ - DECLARE ( XX(0:26), YY(0:26), CC(0:26) ) FIXED BINARY (31); - DECLARE ( A, B, X, Y, C, OLDSCORE, BESTSCORE, MOVER, TARG, NDX, - I ) FIXED BINARY (31); - - LEVEL=LEVEL+1; - BESTSCORE=10000*ID; - DO B=7 TO 0 BY -1; - DO A=7 TO 0 BY -1; - /* generate the moves for all the pieces */ - /* and iterate through them */ - IF SIGN(BOARD(B,A))^=ID THEN - ITERATE; - CALL MOVELIST (A, B, XX, YY, CC, NDX); - DO I=0 TO NDX BY 1; - X=XX(I); Y=YY(I); C=CC(I); - OLDSCORE=SCORE; MOVER=BOARD(B,A); TARG=BOARD(Y,X); - /* make the move and evaluate the new position */ - /* recursively. Targ holds the relative value of the piece */ - /* allowing use to calculate material gain/loss */ - CALL MAKEMOVE (A, B, X, Y, C); - IF LEVEL<MAXLEVEL THEN - DO; - SCORE=SCORE+EVALUATE(-ID, - BESTSCORE-TARG+ID*(8-ABS(4-X)-ABS(4-Y))); - END; - SCORE=SCORE+TARG-ID*(8-ABS(4-X)-ABS(4-Y)); - /* we want to minimize the maximum possible loss */ - /* for black */ - IF (ID<0 & SCORE>BESTSCORE) | (ID>0 & SCORE<BESTSCORE) THEN - DO; - BESTA(LEVEL)=A; BESTB(LEVEL)=B; - BESTX(LEVEL)=X; BESTY(LEVEL)=Y; - BESTSCORE=SCORE; - IF (ID<0 & BESTSCORE>=PRUNE) | (ID>0 & BESTSCORE<=PRUNE) THEN - DO; - BOARD(B,A)=MOVER; BOARD(Y,X)=TARG; SCORE=OLDSCORE; - LEVEL=LEVEL-1; - RETURN (BESTSCORE); - END; - END; - BOARD(B,A)=MOVER; BOARD(Y,X)=TARG; SCORE=OLDSCORE; - END; - END; - END; - LEVEL=LEVEL-1; - RETURN (BESTSCORE); - END EVALUATE; - - /* make a move given the start square and end square */ - /* currently always promotes to queen */ - /* Moves from position (A, B) to position (X,Y). */ - - MAKEMOVE: PROCEDURE (A, B, X, Y, C) OPTIONS (REORDER); - DECLARE (A, B, X, Y, C) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - - BOARD(Y, X)=BOARD(B, A); BOARD(B, A)=0; - IF Y = 0 & BOARD(Y, X) = 100 THEN - BOARD(Y, X)= C; - IF Y = 7 & BOARD(Y, X) = -100 THEN - BOARD(Y, X)= C; - RETURN; - END MAKEMOVE; - - /* select appropriate subprogram to populate xx and yy arrays */ - /* with piece moves */ - /* xx = x coordinates */ - /* yy = y coordinates */ - /* cc = pawn promotion if applicable */ - /* ndx = index into xx, yy, cc arrays showing the number of */ - /* elements that the arrays have been populated with */ - MOVELIST: PROCEDURE (A, B, XX, YY, CC, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26), CC(0:26)) FIXED BINARY (31); - DECLARE (NDX) FIXED BINARY (31); - DECLARE (PIECE) FIXED BINARY (31); - - PIECE=ABS(BOARD(B, A)); NDX=-1; - SELECT (PIECE); - WHEN (100) CALL PAWN(A, B, XX, YY, CC, NDX); - WHEN (270) CALL KNIGHT(A, B, XX, YY, NDX); - WHEN (300) CALL BISHOP(A, B, XX, YY, NDX); - WHEN (500) CALL ROOK(A, B, XX, YY, NDX); - WHEN (900) CALL QUEEN(A, B, XX, YY, NDX); - OTHERWISE CALL KING(A, B, XX, YY, NDX); - END; - RETURN; - END MOVELIST; - - /* queen is a combination of rook and bishop */ - QUEEN: PROCEDURE (A, B, XX, YY, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - - CALL ROOK(A, B, XX, YY, NDX); - CALL BISHOP(A, B, XX, YY, NDX); - RETURN; - END QUEEN; - - - KING: PROCEDURE (A, B, XX, YY, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - DECLARE (ID, DX, DY) FIXED BINARY (31); - - ID=SIGN(BOARD(B, A)); - /* negative = left or up */ - /* positive = right or down */ - /* zero = no change */ - DO DY=-1 TO 1; - IF B+DY<0 | B+DY>7 THEN - ITERATE; - DO DX=-1 TO 1; - IF A+DX<0 | A+DX>7 THEN - ITERATE; - IF ID^=SIGN(BOARD(B+DY,A+DX)) THEN - DO; - NDX=NDX+1; XX(NDX)=A+DX; YY(NDX)=B+DY; - END; - END; - END; - RETURN; - END KING; - - - PAWN: PROCEDURE (A, B, XX, YY, CC, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26), CC(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - DECLARE (I, ID) FIXED BINARY (31); - - ID = SIGN(BOARD(B, A)); - IF ((A - 1) >= 0) & ((A - 1) <= 7) & ((B - ID) >= 0) & ((B - - ID) <= 7) THEN - DO; - IF SIGN(BOARD((B - ID), (A - 1))) = -ID THEN - DO; - IF ((ID<0) & (B = 6)) | ((ID>0) & (B = 1)) THEN - DO; - CC(NDX+1) = 270*ID; - CC(NDX+2) = 300*ID; - CC(NDX+3) = 500*ID; - CC(NDX+4) = 900*ID; - DO I=1 TO 4; - NDX = NDX + 1; - XX(NDX) = A - 1; - YY(NDX) = B - ID; - END; - END; - ELSE - DO; - NDX = NDX + 1; - XX(NDX) = A - 1; - YY(NDX) = B - ID; - END; - END; - END; - IF ((A + 1) >= 0) & ((A + 1) <= 7) & ((B - ID) >= 0) & ((B - - ID) <= 7) THEN - DO; - IF SIGN(BOARD((B - ID), (A + 1))) = -ID THEN - DO; - IF ((ID<0) & (B = 6)) | ((ID>0) & (B = 1)) THEN - DO; - CC(NDX+1) = 270*ID; - CC(NDX+2) = 300*ID; - CC(NDX+3) = 500*ID; - CC(NDX+4) = 900*ID; - DO I=1 TO 4; - NDX = NDX + 1; - XX(NDX) = A + 1; - YY(NDX) = B - ID; - END; - END; - ELSE - DO; - NDX = NDX + 1; - XX(NDX) = A + 1; - YY(NDX) = B - ID; - END; - END; - END; - IF (A >= 0) & (A <= 7) & ((B - ID) >= 0) & ((B - ID) <= 7) THEN - DO; - IF BOARD((B - ID), A) = 0 THEN - DO; - IF ((ID<0) & (B = 6)) | ((ID>0) & (B = 1)) THEN - DO; - CC(NDX+1) = 270*ID; - CC(NDX+2) = 300*ID; - CC(NDX+3) = 500*ID; - CC(NDX+4) = 900*ID; - DO I=1 TO 4; - NDX = NDX + 1; - XX(NDX) = A; - YY(NDX) = B - ID; - END; - END; - ELSE - DO; - NDX = NDX + 1; - XX(NDX) = A; - YY(NDX) = B - ID; - END; - IF ((ID < 0) & (B = 1)) | ((ID > 0) & (B = 6)) THEN - DO; - IF BOARD((B - ID - ID), A) = 0 THEN - DO; - NDX = NDX + 1; - XX(NDX) = A; - YY(NDX) = B - ID - ID; - END; - END; - END; - END; - END PAWN; - - - BISHOP: PROCEDURE (A, B, XX, YY, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - DECLARE (ID, DXY, X, Y) FIXED BINARY; - - ID=SIGN(BOARD(B, A)); - /* four diagonal directions */ - DO DXY=1 TO 7; - X=A-DXY; IF (X<0) THEN LEAVE; - Y=B+DXY; IF (Y>7) THEN LEAVE; - IF ID^=SIGN(BOARD(Y, X)) THEN /* cannot capture piece of same color */ - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - IF BOARD(Y, X)^=0 THEN - LEAVE /* cannot jump over pieces */; - END; - DO DXY=1 TO 7; - X=A+DXY; IF (X>7) THEN LEAVE; - Y=B+DXY; IF (Y>7) THEN LEAVE; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - IF BOARD(Y, X)^=0 THEN - LEAVE; - END; - DO DXY=1 TO 7; - X=A-DXY; IF (X<0) THEN LEAVE; - Y=B-DXY; IF (Y<0) THEN LEAVE; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - IF BOARD(Y, X)^=0 THEN - LEAVE; - END; - DO DXY=1 TO 7; - X=A+DXY; IF (X>7) THEN LEAVE; - Y=B-DXY; IF (Y<0) THEN LEAVE; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - IF BOARD(Y, X)^=0 THEN - LEAVE; - END; - END BISHOP; - - ROOK: PROCEDURE (A, B, XX, YY, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - DECLARE (ID, X, Y) FIXED BINARY (31); - - ID=SIGN(BOARD(B, A)); - /* four different orthagonal directions */ - DO X = A-1 TO 0 BY -1; - IF ID^=SIGN(BOARD(B, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=B; - END; - IF BOARD(B, X)^=0 THEN - LEAVE; - END; - DO X = A+1 TO 7 BY 1; - IF ID^=SIGN(BOARD(B, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=B; - END; - IF BOARD(B, X)^=0 THEN - LEAVE; - END; - DO Y = B-1 TO 0 BY -1; - IF ID^=SIGN(BOARD(Y, A)) THEN - DO; - NDX=NDX+1; XX(NDX)=A; YY(NDX)=Y; - END; - IF BOARD(Y, A)^=0 THEN - LEAVE; - END; - DO Y = B+1 TO 7 BY 1; - IF ID^=SIGN(BOARD(Y, A)) THEN - DO; - NDX=NDX+1; XX(NDX)=A; YY(NDX)=Y; - END; - IF BOARD(Y, A)^=0 THEN - LEAVE; - END; - RETURN; - END ROOK; - - - KNIGHT: PROCEDURE (A, B, XX, YY, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - DECLARE (ID, X, Y) FIXED BINARY (31); - - ID=SIGN(BOARD(B, A)); - /* 2 vertical, 1 horizontal */ - /* or 2 horizontal, 1 vertical */ - X=A-1; Y=B-2; - IF X>=0 & Y>=0 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A-2; Y=B-1; - IF X>=0 & Y>=0 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A+1; Y=B-2; - IF X<=7 & Y>=0 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A+2; Y=B-1; - IF X<=7 & Y>=0 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A-1; Y=B+2; - IF X>=0 & Y<=7 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A-2; Y=B+1; - IF X>=0 & Y<=7 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A+1; Y=B+2; - IF X<=7 & Y<=7 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A+2; Y=B+1; - IF X<=7 & Y<=7 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - RETURN; - END KNIGHT; - - /* display chessboard */ - SHOW: PROCEDURE OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - - DO B=0 TO 7; - PUT SKIP EDIT ( ' +---+---+---+---+---+---+---+---+' )(COL(20), A); - PUT SKIP EDIT ( 8-B, ' |' )(COL(20), F(1), A); - DO A=0 TO 7; - SELECT (BOARD(B, A)); - WHEN (-7500) PUT EDIT ( ' *k|' )(A); - WHEN (-900) PUT EDIT ( ' *q|' )(A); - WHEN (-500) PUT EDIT ( ' *r|' )(A); - WHEN (-300) PUT EDIT ( ' *b|' )(A); - WHEN (-270) PUT EDIT ( ' *n|' )(A); - WHEN (-100) PUT EDIT ( ' *p|' )(A); - WHEN (0) PUT EDIT ( ' |' )(A); - WHEN (100) PUT EDIT ( ' P |' )(A); - WHEN (270) PUT EDIT ( ' N |' )(A); - WHEN (300) PUT EDIT ( ' B |' )(A); - WHEN (500) PUT EDIT ( ' R |' )(A); - WHEN (900) PUT EDIT ( ' Q |' )(A); - WHEN (5000) PUT EDIT ( ' K |' )(A); - END; - END; - END; - PUT SKIP EDIT ( ' +---+---+---+---+---+---+---+---+' )(COL(20), A); - PUT SKIP EDIT ( ' A B C D E F G H' )(COL(20), A); - RETURN; - END SHOW; - - /* io -- input/output: */ - /* display black move and get white move */ - IO: PROCEDURE (A, B, X, Y, RES) OPTIONS (REORDER); - DECLARE (A, B, X, Y, RES) FIXED BINARY (31); - DECLARE ( INPUT ) CHARACTER (10); - DECLARE (XX(0:26), YY(0:26), CC(0:26)) FIXED BINARY (31); - DECLARE (I, K, NDX, PIECE, TARG, MOVER, C) FIXED BINARY (31); - DECLARE NULL FIXED BINARY; /* This variable is assigned but never used. */ - DECLARE LETTER (0:7) CHAR (1) STATIC INITIAL - ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'); - - DECLARE SL FIXED BINARY; - - /* >>>>>>>>> CAUTION - WATCH FOR UNINITIALIZED XX, YY <<<<<<<<<<< */ - DECLARE ( WCKSOLD, WCQSOLD ) BIT(1) ALIGNED; - - ON ERROR SNAP BEGIN; - PUT SKIP LIST ('at line ' || TRIM(SL) ); - END; - - SL = SOURCELINE(); - - IF A>=0 THEN - DO; - IF RES<-2500 THEN - DO; - PUT SKIP LIST ( 'I RESIGN'); - CALL SHOW; - PUT SKIP; - STOP; - END; - PIECE=BOARD(Y, X); - CALL MAKEMOVE(A, B, X, Y, C); - PUT SKIP EDIT ( 'MY MOVE: ' )(A); - PUT EDIT ( LETTER(A), 8-B, '-', LETTER(X), 8-Y) - (A, F(1), A, A, F(1)); - - SELECT (PIECE); - WHEN (100) PUT SKIP LIST ( 'I TOOK YOUR PAWN'); - WHEN (270) PUT SKIP LIST ( 'I TOOK YOUR KNIGHT'); - WHEN (300) PUT SKIP LIST ( 'I TOOK YOUR BISHOP'); - WHEN (500) PUT SKIP LIST ( 'I TOOK YOUR ROOK'); - WHEN (900) PUT SKIP LIST ( 'I TOOK YOUR QUEEN'); - WHEN (5000) PUT SKIP LIST ( 'I TOOK YOUR KING'); - OTHERWISE ; - END; - END; - DO_FOREVER1: - DO FOREVER; - CALL SHOW; - PUT SKIP EDIT ( 'YOUR MOVE: ' )(A); - RETRY_MOVE: - GET EDIT (INPUT) (L); - CALL UPCASE(INPUT); - IF (INPUT = 'QUIT') | (INPUT = 'BYE') | (INPUT = 'EXIT') THEN - STOP; - /* castling */ - IF (INPUT = 'O-O') | (INPUT = '0-0') THEN - DO; - IF INCHECK() ^= 0 THEN - ITERATE DO_FOREVER1; /* cannot castle out of check */ - IF WCKSFLAG THEN - ITERATE DO_FOREVER1; - IF BOARD(7, 7) ^= 500 THEN - ITERATE DO_FOREVER1; - IF (BOARD (7,6) ^= 0) | (BOARD(7,5) ^=0) THEN - ITERATE DO_FOREVER1; - BOARD(7, 4) = 0; - BOARD(7, 5) = 5000; - IF INCHECK() ^= 0 THEN /* cannot castle through check */ - DO; - BOARD(7, 4) = 5000; - BOARD(7, 5) = 0; - ITERATE DO_FOREVER1; - END; - ELSE - DO; - BOARD(7, 4) = 5000; - BOARD(7, 5) = 0; - END; - BOARD(7, 6) = 5000; - BOARD(7, 4) = 0; - BOARD(7, 5) = 500; - BOARD(7, 7) = 0; - IF INCHECK() ^= 0 THEN /* cannot castle into check */ - DO; - BOARD(7, 6) = 0; - BOARD(7, 4) = 5000; - BOARD(7, 5) = 0; - BOARD(7, 7) = 500; - ITERATE DO_FOREVER1; - END; - ELSE - DO; - WCKSFLAG = '1'B; - WCQSFLAG = '1'B; - RETURN; - END; - END; - IF (INPUT = 'O-O-O') | (INPUT = '0-0-0') THEN - DO; - IF INCHECK() ^= 0 THEN - ITERATE DO_FOREVER1; /* cannot castle out of check */ - IF WCQSFLAG THEN - ITERATE DO_FOREVER1; - IF BOARD(7,0) ^= 500 THEN - ITERATE DO_FOREVER1; - IF (BOARD(7,1) ^= 0) | (BOARD(7,2) ^= 0) | (BOARD(7,3) ^= 0) THEN - ITERATE DO_FOREVER1; - BOARD(7, 4) = 0; - BOARD(7, 3) = 5000; - IF INCHECK() ^= 0 THEN /* cannot castle through check */ - DO; - BOARD(7, 4) = 5000; - BOARD(7, 3) = 0; - ITERATE DO_FOREVER1; - END; - ELSE - DO; - BOARD(7, 4) = 5000; - BOARD(7, 3) = 0; - END; - BOARD(7, 2) = 5000; - BOARD(7, 4) = 0; - BOARD(7, 3) = 500; - BOARD(7, 0) = 0; - IF INCHECK() ^= 0 THEN /* cannot castle into check */ - DO; - BOARD(7, 2) = 0; - BOARD(7, 4) = 5000; - BOARD(7, 3) = 0; - BOARD(7, 0) = 500; - ITERATE DO_FOREVER1; - END; - ELSE - DO; - WCKSFLAG = '1'B; - WCQSFLAG = '1'B; - RETURN; - END; - END; - - /* Check that only the proper letters A-H etc are used. */ - /* (this does not check that the letters are in their correct columns.) */ - I = VERIFY (TRIM(INPUT), 'ABCDEFGHO0-12345678'); - IF I > 0 THEN - DO; - PUT SKIP LIST ('That move was invalid. Please try again:'); - GO TO RETRY_MOVE; - END; - - SL = SOURCELINE(); - - /* (A,B) are co-ordinates of the from position. */ - /* (X,Y) are co-ordinates of the destination position. */ - - /* Translate algebraic notation to co-ordinates. */ - - B = 8 - INDEX ('12345678', SUBSTR(INPUT, 2, 1) ); - A = INDEX ('ABCDEFGH', SUBSTR(INPUT, 1, 1) ) - 1; - X = INDEX ('ABCDEFGH', SUBSTR(INPUT, 4, 1) ) - 1; - Y = 8 - INDEX ('12345678', SUBSTR(INPUT, 5, 1) ); - - PUT SKIP DATA (A, B); - PUT SKIP DATA (X, Y); - STOP; - IF B>7 | B<0 | A>7 | A<0 | X>7 | X<0 | Y>7 | Y<0 THEN - DO; - PUT SKIP LIST ('Illegal move. Please try again'); - ITERATE DO_FOREVER1; - END; - IF BOARD(B,A)<=0 THEN - ITERATE DO_FOREVER1; - /* en passant capture */ - IF (Y = 2) & (B = 3) & ((X = A-1) | (X = A+1)) THEN - DO; - IF (BOARD(B,A) = 100) & (BOARD(Y,X) = 0) & (BOARD(Y+1,X) =-100) THEN - DO; - IF (BESTB(1) = 1) & (BESTA(1) = X) THEN - DO; - MOVER = BOARD(B,A); - TARG = BOARD(Y,X); - CALL MAKEMOVE(A,B,X,Y,C); - BOARD(Y+1,X)=0; - IF (INCHECK()) = 0 THEN - RETURN; - BOARD(B,A) = MOVER; - BOARD(Y, X) = TARG; - BOARD(Y+1,X) = -100; - ITERATE DO_FOREVER1; - END; - END; - END; - /* check if selected white move is on list of moves */ - CALL MOVELIST(A, B, XX, YY, CC, NDX); - DOK_LOOP: - DO K = 0 TO NDX BY 1; - IF (X = XX(K)) & (Y = YY(K)) THEN - DO; - MOVER = BOARD(B, A); - TARG = BOARD(Y, X); - IF Y = 0 THEN - FOREVER_LOOP: - DO FOREVER; - PUT SKIP EDIT ( 'PROMOTION PIECE: ' )(A); - GET EDIT (INPUT) (L); - CALL UPCASE(INPUT); - SELECT (INPUT); - WHEN ('N', 'KT', 'KNIGHT', 'HORSE') C = 270; - WHEN ('B', 'BISHOP') C = 300; - WHEN ('R', 'ROOK') C = 500; - WHEN ('Q', 'QUEEN') C = 900; - OTHERWISE ITERATE; - END; - LEAVE FOREVER_LOOP; - END; - CALL MAKEMOVE(A, B, X, Y, C); - IF MOVER = 5000 THEN - DO; - WCQSOLD = WCQSFLAG; - WCKSOLD = WCKSFLAG; - WCKSFLAG = '1'B; - WCQSFLAG = '1'B; - END; - IF (A = 0) & (B = 7) & (MOVER = 500) THEN - DO; - WCQSOLD = WCQSFLAG; - WCQSFLAG = '1'B; - END; - IF (A = 7) & (B = 7) & (MOVER = 500) THEN - DO; - WCKSOLD = WCKSFLAG; - WCKSFLAG = '1'B; - END; - IF INCHECK() = 0 THEN - RETURN; - BOARD(B, A) = MOVER; - BOARD(Y, X) = TARG; - IF MOVER = 5000 THEN - DO; - WCQSFLAG = WCQSOLD; - WCKSFLAG = WCKSOLD; - END; - IF (A = 0) & (B = 7) & (MOVER = 500) THEN - WCQSFLAG = WCQSOLD; - IF (A = 7) & (B = 7) & (MOVER = 500) THEN - WCKSFLAG = WCKSOLD; - LEAVE DOK_LOOP; - END; - END; - END; - END IO; - - /* convert string to uppercase */ - UPCASE: PROCEDURE (STRING) OPTIONS (REORDER); - DECLARE ( STRING ) CHARACTER (*); - - STRING = TRANSLATE (STRING, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', - 'abcdefghijklmnopqrstuvwxyz' ); - - END UPCASE; - - END CHESS; diff --git a/it/it-projects/plugins/project/src/pli/hasissues.pli b/it/it-projects/plugins/project/src/pli/hasissues.pli deleted file mode 100644 index eaacb6c917c..00000000000 --- a/it/it-projects/plugins/project/src/pli/hasissues.pli +++ /dev/null @@ -1,13 +0,0 @@ -foo: proc options(main); - declare i fixed decimal init (0); - - if i = 42 then - put list ('The answer is... '); /* Non-Compliant - This statement should be enclosed in a DO ... END one */ - put list ('42!'); /* This statement will always and unconditionally be executed! Its indentation level is misleading. */ -end; - -bar: proc options(main); - /* Non-Compliant - The trailing space, following "Hello," is not readable and could be removed by some text editors */ - put list ('Hello, -world'); -end; diff --git a/it/it-projects/plugins/project/src/pli/maxlen.pli b/it/it-projects/plugins/project/src/pli/maxlen.pli deleted file mode 100644 index c7498b0936b..00000000000 --- a/it/it-projects/plugins/project/src/pli/maxlen.pli +++ /dev/null @@ -1,67 +0,0 @@ - /* Copyright (c) 1995 by R. A. Vowels, from "Introduction to PL/I, Algorithms, and */ - /* Structured Programming". Permission is given to reproduce and to use these procedures */ - /* as part of a program, and to include them as part of a larger work to be sold for profit. */ - /* However, the user is not permitted to sell the procedures separately. Provided always */ - /* that these procedures and this copyright notice are reproduced in full. */ - - DECLARE MAXLENGTH GENERIC - (MAXLEN_graphic WHEN (GRAPHIC), - MAXLEN_bit WHEN (BIT), - MAXLEN_char WHEN (*) ); - - /* This procedure is provided for those who must have the */ - /* built-in function MAXLENGTH. Do not call it often, as */ - /* run-time is relatively high. */ - /* This procedure returns the maximum length that a VARYING character string may take. */ - MAXLEN_char: - PROCEDURE (STRING) RETURNS (FIXED BINARY); - DECLARE STRING CHARACTER (*) VARYING; - - DECLARE LENGTH BUILTIN; - DECLARE TEMP CHARACTER (32767) VARYING; - DECLARE STR CHARACTER (32767) STATIC INITIAL ( ' ' ); - DECLARE K FIXED BINARY; - - TEMP = STRING; /* Preserve a copy of the string. */ - (NOSTRINGSIZE): - STRING = STR; /* Assign something very long to it. */ - K = LENGTH (STRING); /* Find out how long the variable is. */ - STRING = TEMP; /* Restore the string. */ - RETURN (K); /* The declared length of the string. */ - END MAXLEN_char; - - /* This procedure returns the maximum length that a VARYING graphic string may take. */ - MAXLEN_graphic: - PROCEDURE (STRING) RETURNS (FIXED BINARY); - DECLARE STRING GRAPHIC (*) VARYING; - - DECLARE LENGTH BUILTIN; - DECLARE TEMP GRAPHIC (16383) VARYING; - DECLARE STR GRAPHIC (16383) STATIC INITIAL ( ' ' ); - DECLARE K FIXED BINARY; - - TEMP = STRING; /* Preserve a copy of the string. */ - (NOSTRINGSIZE): - STRING = STR; /* Assign something very long to it. */ - K = LENGTH (STRING); /* Find out how long the variable is. */ - STRING = TEMP; /* Restore the string. */ - RETURN (K); /* The declared length of the string. */ - END MAXLEN_graphic; - - /* This procedure returns the maximum length that a VARYING bit string may take. */ - MAXLEN_bit: - PROCEDURE (STRING) RETURNS (FIXED BINARY); - DECLARE STRING BIT (*) VARYING; - - DECLARE LENGTH BUILTIN; - DECLARE TEMP BIT (32767) VARYING; - DECLARE STR BIT (32767) STATIC INITIAL ( '0'B); - DECLARE K FIXED BINARY; - - TEMP = STRING; /* Preserve a copy of the string. */ - (NOSTRINGSIZE): - STRING = STR; /* Assign something very long to it. */ - K = LENGTH (STRING); /* Find out how long the variable is. */ - STRING = TEMP; /* Restore the string. */ - RETURN (K); /* The declared length of the string. */ - END MAXLEN_bit; diff --git a/it/it-projects/plugins/project/src/pli/search.pli b/it/it-projects/plugins/project/src/pli/search.pli deleted file mode 100644 index ed9a231427d..00000000000 --- a/it/it-projects/plugins/project/src/pli/search.pli +++ /dev/null @@ -1,246 +0,0 @@ - /* Copyright (c) 1995 by R. A. Vowels, from "Introduction to PL/I, Algorithms, and */ - /* Structured Programming". Permission is given to reproduce and to use these procedures */ - /* as part of a program, and to include them as part of a larger work to be sold for profit. */ - /* However, the user is not permitted to sell the procedures separately. Provided always */ - /* that these procedures and this copyright notice are reproduced in full. */ - - DECLARE SEARCH GENERIC - (SEARCH_all_graphic WHEN ( GRAPHIC, GRAPHIC), - SEARCH_all_graphic WHEN ( GRAPHIC, *), - SEARCH_all_graphic WHEN (*, GRAPHIC), - SEARCH_all_bit WHEN ( BIT, BIT), - SEARCH_all WHEN (*,*), - SEARCH_sub_graphic WHEN ( GRAPHIC, GRAPHIC, *), - SEARCH_sub_graphic WHEN ( GRAPHIC, *, *), - SEARCH_sub_graphic WHEN (*, GRAPHIC, *), - SEARCH_sub_bit WHEN ( BIT, BIT, *), - SEARCH_sub WHEN (*,*,*) ); - - /* This function procedure searches the first string STRING for any characters given in the */ - /* second string SUB. If there are any such characters, the function returns the position */ - /* of the left-most. */ - SEARCH_all: - PROCEDURE (STRING, SUB) OPTIONS (REORDER) - RETURNS (FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains characters to look for. */ - DECLARE (STRING, SUB) CHARACTER (*); - - DECLARE (LENGTH, SUBSTR, - UNSPEC, INDEX) BUILTIN; - DECLARE Table (0:255) BIT (1) STATIC ALIGNED; - DECLARE (J, K) FIXED BINARY (31); - - IF LENGTH (SUB) = 0 THEN /* Nothing with which to search. */ - RETURN (0); - IF LENGTH (STRING) = 0 THEN /* There's nothing to search. */ - RETURN (0); - IF LENGTH (SUB) = 1 THEN /* Looking for one character is fast. */ - RETURN (INDEX (STRING, SUB)); - - /* SETS UP A LOOK-UP TABLE (which is independent of the character set). */ - Table = '0'B; /* All entries are FALSE. */ - DO J = 1 TO LENGTH (Sub); - K = UNSPEC (SUBSTR (Sub, J, 1)); - Table (K) = '1'B; /* Table(k) is TRUE for each character in SUB. */ - END; - - /* CONDUCT THE SEARCH. */ - DO J = 1 TO LENGTH (STRING); - K = UNSPEC (SUBSTR (STRING, J, 1)); - IF Table(K) THEN /* TRUE when a SUB character matches one in */ - RETURN (J); /* STRING. */ - END; - RETURN (0); /* Unsuccessful search. */ - END SEARCH_all; - - /* This function procedure searches the first string STRING for any characters given in the */ - /* second string SUB. If there are any such characters, the function returns the position */ - /* of the left-most. */ - /* The search is performed from left to right, commencing from character position */ - /* POSITION. */ - SEARCH_sub: - PROCEDURE (STRING, SUB, POSITION) RETURNS (FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains characters to look for; */ - /* POSITION = where to start the search (measured from the left-hand end of */ - /* STRING). */ - DECLARE (STRING, SUB) CHARACTER (*); - DECLARE POSITION FIXED BINARY (31); - - DECLARE (LENGTH, INDEX) BUILTIN; - DECLARE K FIXED BINARY (31); - - IF (Position > LENGTH (String)+1) | (Position <= 0) THEN - DO; - SIGNAL STRINGRANGE; - RETURN (0); - END; - IF LENGTH (STRING) = 0 THEN RETURN (0); - K = SEARCH_all ( SUBSTR (STRING, POSITION), SUB); - IF K = 0 THEN RETURN (0); - RETURN (POSITION+K-1); - END SEARCH_sub; - - /* This function procedure searches the first string STRING for any characters given in the */ - /* second string SUB. If there are any such characters, the function returns the position */ - /* of the left-most. */ - SEARCH_all_graphic: - PROCEDURE (STRING, SUB) OPTIONS (REORDER) - RETURNS ( FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains characters to look for. */ - DECLARE (STRING, SUB) GRAPHIC (*); - - DECLARE (LENGTH, - SUBSTR, - INDEX) BUILTIN; - DECLARE (J, K) FIXED BINARY (31); - DECLARE Ch GRAPHIC (1); - - IF LENGTH (SUB) = 0 THEN /* Nothing with which to search. */ - RETURN (0); - IF LENGTH (STRING) = 0 THEN /* There's nothing to search. */ - RETURN (0); - IF LENGTH (SUB) = 1 THEN /* Looking for one character is fast. */ - RETURN (INDEX (STRING, SUB)); - - DO J = 1 TO LENGTH(String); - Ch = SUBSTR(String, J, 1); /* Select one graphic character from the string to*/ - /* be searched. */ - K = INDEX (Sub, Ch); /* Check whether it is one of those on our search list.*/ - IF K ^= 0 THEN /* If it is, we are done. */ - RETURN (J); - END; - - RETURN (0); /* The search was unsuccessful. */ - END SEARCH_all_graphic; - - /* This function procedure searches the first string STRING for any graphic characters */ - /* given in the second string SUB. If there are any such graphic characters, the function */ - /* returns the position of the left-most. */ - /* The search is performed from left to right, commencing from graphic character position */ - /* POSITION. */ - SEARCH_sub_graphic: - PROCEDURE (STRING, SUB, POSITION) RETURNS (FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains characters to look for; */ - /* POSITION = where to start the search (measured from the left-hand end of */ - /* STRING). */ - DECLARE (STRING, SUB) GRAPHIC (*); - DECLARE POSITION FIXED BINARY (31); - - DECLARE (LENGTH, SUBSTR, - INDEX) BUILTIN; - DECLARE (J, K) FIXED BINARY (31); - DECLARE Ch GRAPHIC (1); - - IF (Position > LENGTH (String)+1) | (Position <= 0) THEN - DO; - SIGNAL STRINGRANGE; - RETURN (0); - END; - IF LENGTH (SUB) = 0 THEN /* Nothing with which to search. */ - RETURN (0); - IF LENGTH (STRING) = 0 THEN /* There's nothing to search. */ - RETURN (0); - IF LENGTH (SUB) = 1 THEN /* Looking for one character is fast. */ - RETURN (INDEX (SUBSTR (STRING, Position), SUB)+Position-1); - - DO J = Position TO LENGTH(String); - Ch = SUBSTR(String, J, 1); /* Select one graphic character from the string to */ - /* be searched. */ - K = INDEX (Sub, Ch); /* Check whether it is one of those on our search list.*/ - IF K ^= 0 THEN /* If it is, we are done. */ - RETURN (J); - END; - - RETURN (0); /* The search was unsuccessful. */ - - END SEARCH_sub_graphic; - - /* This function procedure searches the first string STRING for any bits given in the */ - /* second string SUB. If there are any such bits, the function returns the position */ - /* of the left-most. */ - SEARCH_all_bit: - PROCEDURE (STRING, SUB) OPTIONS (REORDER) - RETURNS ( FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains bits to look for. */ - DECLARE (STRING, SUB) BIT (*); - - DECLARE (LENGTH, SUBSTR, - INDEX) BUILTIN; - DECLARE (J, K) FIXED BINARY (31); - - IF LENGTH (SUB) = 0 THEN /* Nothing with which to search. */ - RETURN (0); - IF LENGTH (STRING) = 0 THEN /* There's nothing to search. */ - RETURN (0); - IF LENGTH (SUB) = 1 THEN /* Looking for one bit is fast. */ - RETURN (INDEX (STRING, SUB)); - - /* When we come here, SUB has 2 or more bits. */ - - K = INDEX (SUB, ^SUBSTR(SUB, 1, 1)); /* Look for a bit of the opposite kind. */ - - IF K > 0 THEN /* No need for a search -- the key SUB consists */ - /* of both 0 and 1. */ - RETURN (1); /* Always get a match at position 1. */ - - /* The pattern SUB contains either all ones or all zeros. */ - - /* CONDUCT THE SEARCH. */ - IF SUBSTR(SUB, 1, 1) THEN - RETURN (INDEX(STRING, '1'B)); - ELSE - RETURN (INDEX(STRING, '0'B)); - - END SEARCH_all_bit; - - /* This function procedure searches the first string STRING for any bits given in the */ - /* second string SUB. If there are any such bits, the function returns the position */ - /* of the left-most. */ - SEARCH_sub_bit: - PROCEDURE (String, Sub, Position) OPTIONS (REORDER) - RETURNS ( FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains bits to look for. */ - DECLARE (String, Sub) BIT (*); - - DECLARE (LENGTH, SUBSTR, - INDEX) BUILTIN; - DECLARE (J, K) FIXED BINARY (31); - - IF (Position > LENGTH (String)+1) | (Position <= 0) THEN - DO; - SIGNAL STRINGRANGE; - RETURN (0); - END; - IF LENGTH (SUB) = 0 THEN /* Nothing with which to search. */ - RETURN (0); - IF LENGTH (STRING) = 0 THEN /* There's nothing to search. */ - RETURN (0); - IF Position = LENGTH(String)+1 THEN - RETURN (0); - IF LENGTH (SUB) = 1 THEN /* Looking for one bit is fast. */ - RETURN (INDEX(SUBSTR(STRING, Position), SUB)+Position-1); - - /* When we come here, SUB has 2 or more bits. */ - - K = INDEX (SUBSTR(String, Position), ^SUBSTR(SUB, 1, 1)); - /* Look for a bit of the opposite kind. */ - - IF K > 0 THEN /* No need for a search -- the key SUB consists */ - /* of both 0 and 1. */ - RETURN (Position); /* Always get a match at position "Position". */ - - /* The pattern SUB contains either all ones or all zeros. */ - - /* CONDUCT THE SEARCH. */ - IF SUBSTR(SUB, 1, 1) THEN - RETURN (INDEX(SUBSTR(STRING, Position), '1'B)+Position-1); - ELSE - RETURN (INDEX(SUBSTR(STRING, Position), '0'B)+Position-1); - - END SEARCH_sub_bit; diff --git a/it/it-projects/plugins/project/src/plsql/ddl.sql b/it/it-projects/plugins/project/src/plsql/ddl.sql deleted file mode 100644 index 78a3ddd1951..00000000000 --- a/it/it-projects/plugins/project/src/plsql/ddl.sql +++ /dev/null @@ -1,9 +0,0 @@ -CREATE TABLE OWNER.TABLE01 (ID NUMBER(12)); -/ -ALTER TABLE OWNER.TABLE01 ADD (COL1 VARCHAR2(4000)); -/ - -CREATE TABLE OWNER.TABLE02 (ID NUMBER(12)); -/ -ALTER TABLE OWNER.TABLE02 ADD (COL1 VARCHAR2(4000)); -/ diff --git a/it/it-projects/plugins/project/src/plsql/ut_report.pkb b/it/it-projects/plugins/project/src/plsql/ut_report.pkb deleted file mode 100644 index 15bdc4e4f66..00000000000 --- a/it/it-projects/plugins/project/src/plsql/ut_report.pkb +++ /dev/null @@ -1,213 +0,0 @@ -/* Formatted on 2002/03/31 23:53 (Formatter Plus v4.5.2) */ -CREATE OR REPLACE PACKAGE BODY Utreport -IS - -/************************************************************************ -GNU General Public License for utPLSQL - -Copyright (C) 2000-2003 -Steven Feuerstein and the utPLSQL Project -(steven@stevenfeuerstein.com) - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program (see license.txt); if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -************************************************************************ -$Log: ut_report.pkb,v $ -Revision 1.3 2005/05/11 21:33:36 chrisrimmer -Added testing of reporter infrastructure - -Revision 1.2 2004/11/16 09:46:49 chrisrimmer -Changed to new version detection system. - -Revision 1.1 2004/07/14 17:01:57 chrisrimmer -Added first version of pluggable reporter packages - - -************************************************************************/ - - DEFAULT_REPORTER VARCHAR2(100) := 'Output'; - - DYNAMIC_PLSQL_FAILURE NUMBER(10) := -6550; - - --This is the reporter we have been asked to use - g_reporter VARCHAR2(100); - - --This is the reporter we are actually using - --(this differs from the above in the event of error) - g_actual VARCHAR2(100); - - FUNCTION parse_it(proc IN VARCHAR2, params IN NUMBER, force_reporter IN VARCHAR2) - RETURN INTEGER - IS - dyn_handle INTEGER := NULL; - query VARCHAR2(1000); - BEGIN - dyn_handle := DBMS_SQL.OPEN_CURSOR; - QUERY := 'BEGIN ut' || NVL(force_reporter, g_actual) || 'Reporter.' || proc ; - IF params = 1 THEN - QUERY := QUERY || '(:p)'; - END IF; - QUERY := QUERY || '; END;'; - DBMS_SQL.PARSE(dyn_handle, QUERY, DBMS_SQL.NATIVE); - RETURN dyn_handle; - EXCEPTION - WHEN OTHERS THEN - DBMS_SQL.CLOSE_CURSOR (dyn_handle); - RAISE; - END; - - PROCEDURE execute_it(dyn_handle IN OUT INTEGER) - IS - dyn_result INTEGER; - BEGIN - dyn_result := DBMS_SQL.EXECUTE (dyn_handle); - DBMS_SQL.CLOSE_CURSOR (dyn_handle); - END; - - --We use this to make dynamic calls to reporter packages - PROCEDURE call(proc IN VARCHAR2, - param IN VARCHAR2, - params IN NUMBER := 1, - force_reporter IN VARCHAR2 := NULL, - failover IN BOOLEAN := TRUE) - IS - dyn_handle INTEGER := NULL; - BEGIN - dyn_handle := parse_it(proc, params, force_reporter); - IF params = 1 THEN - DBMS_SQL.BIND_VARIABLE (dyn_handle, 'p', param); - END IF; - execute_it(dyn_handle); - EXCEPTION - WHEN OTHERS THEN - - IF dyn_handle IS NOT NULL THEN - DBMS_SQL.CLOSE_CURSOR (dyn_handle); - END IF; - - IF g_actual <> DEFAULT_REPORTER THEN - - IF NOT failover OR SQLCODE <> DYNAMIC_PLSQL_FAILURE THEN - g_actual := DEFAULT_REPORTER; - pl(SQLERRM); - pl('** REVERTING TO DEFAULT REPORTER **'); - END IF; - - ELSE - RAISE; - END IF; - - call(proc, param, params, force_reporter => DEFAULT_REPORTER); - END; - - PROCEDURE call(proc IN VARCHAR2, - failover IN BOOLEAN := TRUE) - IS - BEGIN - call(proc => proc, - param => '', - params => 0, - failover => failover); - END; - - PROCEDURE use(reporter IN VARCHAR2) - IS - BEGIN - g_reporter := NVL(reporter, DEFAULT_REPORTER); - g_actual := g_reporter; - END; - - FUNCTION using RETURN VARCHAR2 - IS - BEGIN - RETURN g_reporter; - END; - - PROCEDURE open - IS - BEGIN - g_actual := g_reporter; - call('open', failover => FALSE); - END; - - PROCEDURE pl (str IN VARCHAR2) - IS - BEGIN - call('pl', str); - END; - - PROCEDURE pl (bool IN BOOLEAN) - IS - BEGIN - pl (Utplsql.bool2vc (bool)); - END; - - PROCEDURE before_results(run_id IN utr_outcome.run_id%TYPE) - IS - BEGIN - call('before_results', run_id); - END; - - PROCEDURE show_failure(rec_result IN utr_outcome%ROWTYPE) - IS - BEGIN - outcome := rec_result; - call('show_failure'); - END; - - PROCEDURE show_result(rec_result IN utr_outcome%ROWTYPE) - IS - BEGIN - outcome := rec_result; - call('show_result'); - END; - - PROCEDURE after_results(run_id IN utr_outcome.run_id%TYPE) - IS - BEGIN - call('after_results', run_id); - END; - - PROCEDURE before_errors(run_id IN utr_error.run_id%TYPE) - IS - BEGIN - call('before_errors', run_id); - END; - - PROCEDURE show_error(rec_error IN utr_error%ROWTYPE) - IS - BEGIN - error := rec_error; - call('show_error'); - END; - - PROCEDURE after_errors(run_id IN utr_error.run_id%TYPE) - IS - BEGIN - call('after_errors', run_id); - END; - - PROCEDURE close - IS - BEGIN - call('close'); - END; - -BEGIN - - g_reporter := NVL(utconfig.getreporter, DEFAULT_REPORTER); - g_actual := g_reporter; - -END; -/ diff --git a/it/it-projects/plugins/project/src/python/__init__.py b/it/it-projects/plugins/project/src/python/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 --- a/it/it-projects/plugins/project/src/python/__init__.py +++ /dev/null diff --git a/it/it-projects/plugins/project/src/python/badfortune.py b/it/it-projects/plugins/project/src/python/badfortune.py deleted file mode 100644 index b0900dc1695..00000000000 --- a/it/it-projects/plugins/project/src/python/badfortune.py +++ /dev/null @@ -1,92 +0,0 @@ - -# fortune.py -- chooses a random fortune, as the fortune(8) program in -# the BSD-games package does -# -# Copyright (c) 2010, Andrew M. Kuchling -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -import struct, random, string - -# C long variables are different sizes on 32-bit and 64-bit machines, -# so we have to measure how big they are on the machine where this is running. -LONG_SIZE = struct.calcsize('L') -is_64_bit = (LONG_SIZE == 8) - -def get(filename): - "Select a random quotation, using a pregenerated .dat file" - - # First, we open the .dat file, and read the header information. - # The C structure containing this info looks like: - ## typedef struct { /* information table */ - ## #define VERSION 1 - ## unsigned long str_version; /* version number */ - ## unsigned long str_numstr; /* # of strings in the file */ - ## unsigned long str_longlen; /* length of longest string */ - ## unsigned long str_shortlen; /* length of shortest string */ - ## #define STR_RANDOM 0x1 /* randomized pointers */ - ## #define STR_ORDERED 0x2 /* ordered pointers */ - ## #define STR_ROTATED 0x4 /* rot-13'd text */ - ## unsigned long str_flags; /* bit field for flags */ - ## unsigned char stuff[4]; /* long aligned space */ - ## #define str_delim stuff[0] /* delimiting character */ - ## } STRFILE; - - datfile = open(filename+'.dat', 'r') - data = datfile.read(5 * LONG_SIZE) - if is_64_bit: - v1, v2, n1, n2, l1, l2, s1, s2, f1, f2 = struct.unpack('!10L', data) - version = v1 + (v2 << 32) - numstr = n1 + (n2 << 32) - longlen = l1 + (l2 << 32) - shortlen = s1 + (s2 << 32) - flags = f1 + (f2 << 32) - else: - version, numstr, longlen, shortlen, flags = struct.unpack('5l', data) - - delimiter = datfile.read(1) - datfile.read(3) # Throw away padding bytes - if is_64_bit: datfile.read(4) # 64-bit machines align to 8 bytes - - # Pick a random number - r = random.randint(0, numstr) - datfile.seek(LONG_SIZE * r, 1) # Seek to the chosen pointer - data = datfile.read(LONG_SIZE * 2) - - if is_64_bit: - s1, s2, e1, e2 = struct.unpack('!4L', data) - start, end = s1 + (s2 << 32), e1 + (e2 << 32) - else: - start, end = struct.unpack('!ll', data) - datfile.close() - - file = open(filename, 'r') - file.seek(start) - quotation = file.read(end-start) - L=string.split(quotation, '\n') - while string.strip(L[-1]) == delimiter or string.strip(L[-1]) == "": - L=L[:-1] - return string.join(L, '\n') - -if __name__ == '__main__': - import sys - if len(sys.argv) == 1: - print 'Usage: fortune.py <filename>' - sys.exit() - print get(sys.argv[1]) diff --git a/it/it-projects/plugins/project/src/python/directory/file_in_directory.py b/it/it-projects/plugins/project/src/python/directory/file_in_directory.py deleted file mode 100644 index 0708437a71f..00000000000 --- a/it/it-projects/plugins/project/src/python/directory/file_in_directory.py +++ /dev/null @@ -1 +0,0 @@ -lst = [] diff --git a/it/it-projects/plugins/project/src/python/hasissues.py b/it/it-projects/plugins/project/src/python/hasissues.py deleted file mode 100644 index df209065464..00000000000 --- a/it/it-projects/plugins/project/src/python/hasissues.py +++ /dev/null @@ -1,8 +0,0 @@ -class MyClass: - while True: - return False #Noncompliant - - def __enter__(self): - pass - def __exit__(self, exc_type, exc_val): # Noncompliant - pass diff --git a/it/it-projects/plugins/project/src/python/package/__init__.py b/it/it-projects/plugins/project/src/python/package/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 --- a/it/it-projects/plugins/project/src/python/package/__init__.py +++ /dev/null diff --git a/it/it-projects/plugins/project/src/python/package/file_in_package.py b/it/it-projects/plugins/project/src/python/package/file_in_package.py deleted file mode 100644 index fc7f2ba0752..00000000000 --- a/it/it-projects/plugins/project/src/python/package/file_in_package.py +++ /dev/null @@ -1 +0,0 @@ -dictionary = {} diff --git a/it/it-projects/plugins/project/src/python/samples/__init__.py b/it/it-projects/plugins/project/src/python/samples/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 --- a/it/it-projects/plugins/project/src/python/samples/__init__.py +++ /dev/null diff --git a/it/it-projects/plugins/project/src/python/samples/fortune.py b/it/it-projects/plugins/project/src/python/samples/fortune.py deleted file mode 100644 index b0900dc1695..00000000000 --- a/it/it-projects/plugins/project/src/python/samples/fortune.py +++ /dev/null @@ -1,92 +0,0 @@ - -# fortune.py -- chooses a random fortune, as the fortune(8) program in -# the BSD-games package does -# -# Copyright (c) 2010, Andrew M. Kuchling -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -import struct, random, string - -# C long variables are different sizes on 32-bit and 64-bit machines, -# so we have to measure how big they are on the machine where this is running. -LONG_SIZE = struct.calcsize('L') -is_64_bit = (LONG_SIZE == 8) - -def get(filename): - "Select a random quotation, using a pregenerated .dat file" - - # First, we open the .dat file, and read the header information. - # The C structure containing this info looks like: - ## typedef struct { /* information table */ - ## #define VERSION 1 - ## unsigned long str_version; /* version number */ - ## unsigned long str_numstr; /* # of strings in the file */ - ## unsigned long str_longlen; /* length of longest string */ - ## unsigned long str_shortlen; /* length of shortest string */ - ## #define STR_RANDOM 0x1 /* randomized pointers */ - ## #define STR_ORDERED 0x2 /* ordered pointers */ - ## #define STR_ROTATED 0x4 /* rot-13'd text */ - ## unsigned long str_flags; /* bit field for flags */ - ## unsigned char stuff[4]; /* long aligned space */ - ## #define str_delim stuff[0] /* delimiting character */ - ## } STRFILE; - - datfile = open(filename+'.dat', 'r') - data = datfile.read(5 * LONG_SIZE) - if is_64_bit: - v1, v2, n1, n2, l1, l2, s1, s2, f1, f2 = struct.unpack('!10L', data) - version = v1 + (v2 << 32) - numstr = n1 + (n2 << 32) - longlen = l1 + (l2 << 32) - shortlen = s1 + (s2 << 32) - flags = f1 + (f2 << 32) - else: - version, numstr, longlen, shortlen, flags = struct.unpack('5l', data) - - delimiter = datfile.read(1) - datfile.read(3) # Throw away padding bytes - if is_64_bit: datfile.read(4) # 64-bit machines align to 8 bytes - - # Pick a random number - r = random.randint(0, numstr) - datfile.seek(LONG_SIZE * r, 1) # Seek to the chosen pointer - data = datfile.read(LONG_SIZE * 2) - - if is_64_bit: - s1, s2, e1, e2 = struct.unpack('!4L', data) - start, end = s1 + (s2 << 32), e1 + (e2 << 32) - else: - start, end = struct.unpack('!ll', data) - datfile.close() - - file = open(filename, 'r') - file.seek(start) - quotation = file.read(end-start) - L=string.split(quotation, '\n') - while string.strip(L[-1]) == delimiter or string.strip(L[-1]) == "": - L=L[:-1] - return string.join(L, '\n') - -if __name__ == '__main__': - import sys - if len(sys.argv) == 1: - print 'Usage: fortune.py <filename>' - sys.exit() - print get(sys.argv[1]) diff --git a/it/it-projects/plugins/project/src/python/samples/letters.py b/it/it-projects/plugins/project/src/python/samples/letters.py deleted file mode 100644 index 0f54b31c512..00000000000 --- a/it/it-projects/plugins/project/src/python/samples/letters.py +++ /dev/null @@ -1,203 +0,0 @@ - -# -# Copyright (c) 2010, Andrew M. Kuchling -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -import random, string - -# Logic game -# From a program by Judith Haris, John Swets, and Wallace Feurzeig -# Reference: The Secret Guide to Computers, by Russ Walter, 18th ed 1993. -# Written in Python by A.M. Kuchling (amk@amk.ca) - -# For each letter, we need the various characteristics: -# (curves, loose ends, obliques, horizontals, verticals). -# There should really be a sample character set for the user to look -# at; otherwise, there are ambiguities. For example, does B have -# horizontals? Does D? How about P and R? - -# There's a bug lurking in this data! Can you catch it? -# (See the bottom of the program for the answer.) - -letter_stats={'a': (0, 2, 2, 1, 0), 'b':(2, 0, 0, 3, 1), - 'c': (1, 2, 0, 0, 0), 'd':(1, 0, 0, 0, 1), - 'e': (0, 3, 0, 3, 1), 'f':(0, 3, 0, 2, 1), - 'g': (1, 2, 0, 1, 1), 'h':(0, 4, 0, 1, 2), - 'i': (0, 2, 0, 0, 1), 'j':(1, 2, 0, 0, 1), - 'k': (0, 4, 2, 0, 1), 'l':(0, 2, 0, 1, 1), - 'm': (0, 2, 2, 0, 2), 'n':(0, 2, 1, 0, 2), - 'o': (1, 0, 0, 0, 0), 'p':(1, 1, 0, 2, 1), - 'q': (1, 2, 1, 0, 0), 'r':(1, 2, 1, 0, 1), - 's': (1, 2, 0, 0, 0), 't':(0, 3, 0, 1, 1), - 'u': (1, 2, 0, 0, 2), 'v':(0, 2, 2, 0, 0), - 'w': (0, 2, 4, 0, 0), 'x':(0, 4, 2, 0, 0), - 'y': (0, 3, 2, 0, 1), 'z':(0, 2, 1, 2, 0)} - -# We'll define constants for the various statistics; each constant is -# equal to the position of the statistic in the tuples in -#letter_stats. -CURVES=0 ; LOOSE_ENDS=1 ; OBLIQUES=2 ; HORIZONTALS=3 ; VERTICALS=4 - -# This dictionary is used to map questions to corresponding -# statistics. Note that different keys can map to the same value; -# for example, 'obliques' and 'diagonals' both map to the OBLIQUES constant. -questions={'curves':CURVES, 'looseends':LOOSE_ENDS, - 'obliques':OBLIQUES, 'diagonals':OBLIQUES, - 'horizontals':HORIZONTALS, 'verticals':VERTICALS} - -# Play a single game - -def play_once(): - # Choose a random number between 0 and 26, inclusive. - choice=26*random.random() - # Convert the numeric choice to a letter: 0->a, 1->b, etc. - choice=chr(ord('a')+choice) - - #choice=raw_input("What should I choose?") # (for debugging) - - # We'll track how many possibilities the user still has available. - # Start with all of the letters. - possibilities=string.lower("ABCDEFGHIJKLMNOPQRSTUVWXYZ") - # We'll also track which questions have been asked, and chide the - # user when he repeats a question. - asked=[] - - # Loop forever; the play_once() function will exit by hitting a - # 'return' statement inside the loop. - while (1): - try: - #print possibilities # (for debugging) - - # Get input from the user - query=raw_input('Next? ') - # Convert the input to lowercase - query=string.lower(query) - # Remove all non-letter characters - query=filter(lambda x: x in string.lowercase, query) - # Remove whitespace - query=string.strip(query) - - except (EOFError, KeyboardInterrupt): - # End-Of-File : the user - print '\nOK; give up if you like.' - return - - if len(query)==1: - # The query is one character long, so it's a guess - if query not in possibilities: - print ("Wrong! That guess is inconsistent " - "with the information you've been given.\n" - "I think you made that guess just to see " - "what I would say.") - elif len(possibilities)>1: - print "You don't have enough information yet." - # Temporarily remove the user's guess from - # possibilities, and pick a random letter. - temp=filter(lambda x, query=query: x!=query, possibilities) - r=int(random.random()*len(temp)) - print "How do you know it isn't", temp[r]+',', - print "for example?" - else: - # query is in possibilities, and - # len(possibilities)==1, so the user is right. - print "Yes, you've done it. Good work!" ; return - elif questions.has_key(query): - # Get the field of the letter_stats tuple to compare. - field=questions[query] - # Determine the answer for the computer's letter - result=letter_stats[choice][field] - original_length=len(possibilities) - - # Exclude possibilities that don't match those of the - # mystery letter. - # filter(func, sequence) calls func() on each element in - # the sequence, and returns a new sequence object - # containing only elements for which func() returned true. - # For strings, each character is an element. Instead of - # defining a formal function, a lambda is used to create - # an anonymous function (one without a name). - # Various other things required by the function are set - # as default arguments, so they're accessible inside the - # scope of the anonymous function. - possibilities=filter(lambda letter, letter_stats=letter_stats, - field=field, result=result: - letter_stats[letter][field]==result, - possibilities) - new_length=len(possibilities) - if field in asked: - print "You asked me that already." - print "The answer is the same as before:", - else: asked.append(field) # Note that this question was asked. - print str(result)+'.' - if (original_length==new_length): - print 'That was a wasted question; it did not exclude any possibilities.' - elif (new_length<original_length/2 or new_length==1): - print "Good question." - else: - print "I don't understand the question." - -# Print the instructions -print """This is a guessing game about capital letters. -You can ask various questions about the features of the letter: -curves, loose ends, obliques (or diagonals), horizontals, verticals. -To make a guess, just enter the letter of your choice. - -Sample transcript: - Next? curves? - 1. - Good question. - Next? c - You don't have enough information yet. - How do you know it isn't s, for example? - Next? horizontals? - 0. - Next? s - You don't have enough information yet. - How do you know it isn't c, for example? -""" - -# Play a single game -play_once() -raw_input("Press Return>") - -# The solution to the bug-hunt is below... - - - - - - - - - - - -# It's not a bug that the Python interpreter can catch; instead, it's -# a specification bug: -# -# 'C' and 'S' both have the same stats: 1 curve, 2 loose ends, -# and no obliques, horizontals, or verticals. If either C or S is -# chosen as the computer's letter, the user can never get the right -# answer, because he/she can't narrow down the possibilities to just -# one! To fix this, you'd have to add another statistic, like -# number of intersections or number of closed loops. However, the -# statistic would have to be *different* for 'C' and 'S', and neither -# of those two suggestions qualify. Can you think of a property to -# distinguish between the two letters? diff --git a/it/it-projects/plugins/project/src/python/samples/strfile.py b/it/it-projects/plugins/project/src/python/samples/strfile.py deleted file mode 100644 index ca15a607c21..00000000000 --- a/it/it-projects/plugins/project/src/python/samples/strfile.py +++ /dev/null @@ -1,100 +0,0 @@ - -# strfile.py -- write an index file for a fortune file, as the strfile(8) -# program in the BSD-games package does -# -# Copyright (c) 2010, Andrew M. Kuchling -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -import struct, string, sys - -if len(sys.argv)==1: - print "Usage: strfile.py <filename>" - sys.exit() - -# C long variables are different sizes on 32-bit and 64-bit machines, -# so we have to measure how big they are on the machine where this is running. -LONG_SIZE = struct.calcsize('L') -is_64_bit = (LONG_SIZE == 8) - -delimiter = '%' # The standard delimiter - -filename = sys.argv[1] -input = open(filename, 'r') -output = open(filename + '.dat', 'w') -output.seek(LONG_SIZE * 6) # Skip over the header for now - -# Output a 32- or 64-bit integer - -def write_long(x): - if is_64_bit: - output.write( struct.pack("!LL", x & 0xffffFFFFL, x >> 32) ) - else: - output.write( struct.pack("!L", x) ) - -write_long(0) # Write the first pointer - -# We need to track various statistics: the longest and shortest -# quotations, and their number - -shortest = sys.maxint ; longest = 0 -numstr = 0 -quotation = "" - -while (1): - L=input.readline() # Get a line - if L=="": break # Check for end-of-file - if string.strip(L) != delimiter: - # We haven't come to the end yet, so we just add the line to - # the quotation we're building and continue - quotation = quotation + L ; continue - - # If there's a leading % in the file, the first quotation will be - # empty; we'll just ignore it - if quotation == "": continue - - # Update the shortest and longest variables - shortest = min(shortest, len(quotation) ) - longest = max(longest, len(quotation) ) - - # Output the current file pointer - write_long( input.tell() ) - numstr = numstr + 1 - quotation = "" # Reset the quotation to null - -# To simplify the programming, we'll assume there's a trailing % line -# in the file, with no quotation following. -assert quotation == "" - -input.close() - -# We're done, so rewind to the beginning of the file and write the header -output.seek(0) -write_long( 1 ) # Version -write_long(numstr) # Number of strings -write_long(longest) # Longest string length -write_long(shortest) # Shortest string length -write_long(0) # Flags; we'll set them to zero -output.write(delimiter + '\0'*(LONG_SIZE-1)) -output.close() - -print '''"%s.dat" created -There were %i strings -Longest string: %i bytes -Shortest string: %i bytes''' % (filename, numstr, longest, shortest) diff --git a/it/it-projects/plugins/project/src/rpg/MYPROGRAM.rpg b/it/it-projects/plugins/project/src/rpg/MYPROGRAM.rpg deleted file mode 100644 index b7d36daaa02..00000000000 --- a/it/it-projects/plugins/project/src/rpg/MYPROGRAM.rpg +++ /dev/null @@ -1,53 +0,0 @@ -123456789012 C* Expressions in Extended Factor 2 syntax -123456789012 C IF A=X OR A=Y AND A=Z -123456789012 C AND B=Y -123456789012 C READ Y -123456789012 C ENDIF -123456789012 C IF A=X OR A=Y AND A=Z -123456789012 C AND B=Y OR B=Z -123456789012 C READ Y -123456789012 C ENDIF -123456789012 C* Expressions composed over several operations in IF -123456789012 C A IFEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C READ Y -123456789012 C ENDIF -123456789012 C A IFEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C B OREQ Z -123456789012 C READ Y -123456789012 C ENDIF -123456789012 C* Expressions composed over several operations in DO -123456789012 C A DOUEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C READ Y -123456789012 C END -123456789012 C A DOUEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C B OREQ Z -123456789012 C READ Y -123456789012 C END -123456789012 C* Expressions composed over several operations in WHEN -123456789012 C SELECT -123456789012 C A WHENEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C READ Y -123456789012 C END -123456789012 C SELECT -123456789012 C A WHENEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C B OREQ Z -123456789012 C READ Y -123456789012 C END
\ No newline at end of file diff --git a/it/it-projects/plugins/project/src/swift/example.swift b/it/it-projects/plugins/project/src/swift/example.swift deleted file mode 100644 index 194455d6b70..00000000000 --- a/it/it-projects/plugins/project/src/swift/example.swift +++ /dev/null @@ -1,10 +0,0 @@ - -let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"] - -func backwards(s1: String, s2: String) -> Bool { - return s1 > s2 -} - -var reversed = sorted(names, backwards); - -if (true) { print(reversed) } diff --git a/it/it-projects/plugins/project/src/vb/Info.frm b/it/it-projects/plugins/project/src/vb/Info.frm deleted file mode 100644 index 8487bb3af18..00000000000 --- a/it/it-projects/plugins/project/src/vb/Info.frm +++ /dev/null @@ -1,67 +0,0 @@ -VERSION 5.00 -Begin VB.Form frmInfo - BorderStyle = 3 'Fixed Dialog - Caption = "Info" - ClientHeight = 3750 - ClientLeft = 45 - ClientTop = 330 - ClientWidth = 6270 - Icon = "Info.frx":0000 - LinkTopic = "Form1" - MaxButton = 0 'False - MinButton = 0 'False - ScaleHeight = 3750 - ScaleWidth = 6270 - ShowInTaskbar = 0 'False - StartUpPosition = 1 'CenterOwner - Begin VB.CommandButton cmdOK - Caption = "&OK" - Default = -1 'True - Height = 375 - Left = 5100 - TabIndex = 1 - Top = 3300 - Width = 1095 - End - Begin VB.TextBox txtGPL - BackColor = &H8000000F& - BorderStyle = 0 'None - Height = 3075 - Left = 120 - Locked = -1 'True - MultiLine = -1 'True - TabIndex = 0 - Text = "Info.frx":000C - Top = 120 - Width = 6015 - End -End -Attribute VB_Name = "frmInfo" -Attribute VB_GlobalNameSpace = False -Attribute VB_Creatable = False -Attribute VB_PredeclaredId = True -Attribute VB_Exposed = False -' --- GPL --- -' -' Copyright (C) 1999 SAP AG -' -' This program is free software; you can redistribute it and/or -' modify it under the terms of the GNU General Public License -' as published by the Free Software Foundation; either version 2 -' of the License, or (at your option) any later version. -' -' This program is distributed in the hope that it will be useful, -' but WITHOUT ANY WARRANTY; without even the implied warranty of -' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -' GNU General Public License for more details. -' -' You should have received a copy of the GNU General Public License -' along with this program; if not, write to the Free Software -' Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -' -' --- GPL --- -Option Explicit - -Private Sub cmdOK_Click() - Unload Me -End Sub diff --git a/it/it-projects/plugins/project/src/vb/Registry.bas b/it/it-projects/plugins/project/src/vb/Registry.bas deleted file mode 100644 index a7f18dee417..00000000000 --- a/it/it-projects/plugins/project/src/vb/Registry.bas +++ /dev/null @@ -1,166 +0,0 @@ -Attribute VB_Name = "modRegistry" -' --- GPL --- -' -' Copyright (C) 1999 SAP AG -' -' This program is free software; you can redistribute it and/or -' modify it under the terms of the GNU General Public License -' as published by the Free Software Foundation; either version 2 -' of the License, or (at your option) any later version. -' -' This program is distributed in the hope that it will be useful, -' but WITHOUT ANY WARRANTY; without even the implied warranty of -' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -' GNU General Public License for more details. -' -' You should have received a copy of the GNU General Public License -' along with this program; if not, write to the Free Software -' Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -' -' --- GPL --- -Option Explicit - -'Structures Needed For Registry Prototypes -Public Type SECURITY_ATTRIBUTES - nLength As Long - lpSecurityDescriptor As Long - bInheritHandle As Boolean -End Type - -Public Type FILETIME - dwLowDateTime As Long - dwHighDateTime As Long -End Type - -'Registry Function Prototypes -Public Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" ( _ - ByVal hKey As Long, _ - ByVal lpSubKey As String, _ - ByVal ulOptions As Long, _ - ByVal samDesired As Long, _ - phkResult As Long) As Long - -Public Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" ( _ - ByVal hKey As Long, _ - ByVal lpSubKey As String, _ - ByVal Reserved As Long, _ - ByVal lpClass As String, _ - ByVal dwOptions As Long, _ - ByVal samDesired As Long, _ - lpSecurityAttributes As SECURITY_ATTRIBUTES, _ - phkResult As Long, _ - lpdwDisposition As Long) As Long - -Public Declare Function RegQueryValueExNull Lib "advapi32.dll" Alias "RegQueryValueExA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String, _ - ByVal lpReserved As Long, _ - lpType As Long, _ - ByVal lpData As Long, _ - lpcbData As Long) As Long - -Public Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String, _ - ByVal lpReserved As Long, _ - lpType As Long, _ - ByVal lpData As String, _ - lpcbData As Long) As Long - -Public Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String, _ - ByVal lpReserved As Long, _ - lpType As Long, _ - lpData As Long, _ - lpcbData As Long) As Long - -Public Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String, _ - ByVal Reserved As Long, _ - ByVal dwType As Long, _ - ByVal lpValue As String, _ - ByVal cbData As Long) As Long - -Public Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String, _ - ByVal Reserved As Long, _ - ByVal dwType As Long, _ - lpValue As Long, _ - ByVal cbData As Long) As Long - -Public Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" ( _ - ByVal hKey As Long, _ - ByVal dwIndex As Long, _ - ByVal lpName As String, _ - lpcbName As Long, _ - ByVal lpReserved As Long, _ - ByVal lpClass As String, _ - lpcbClass As Long, _ - lpftLastWriteTime As FILETIME) As Long - -Public Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" ( _ - ByVal hKey As Long, _ - ByVal dwIndex As Long, _ - ByVal lpValueName As String, _ - lpcbValueName As Long, _ - ByVal lpReserved As Long, _ - lpType As Long, _ - lpData As Any, _ - lpcbData As Long) As Long - -Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" ( _ - ByVal hKey As Long, _ - ByVal lpSubKey As String) As Long - -Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String) As Long - -Public Declare Function RegCloseKey Lib "advapi32" ( _ - ByVal hKey As Long) As Long - -' -''masks for the predefined standard access types -'Private Const STANDARD_RIGHTS_ALL = &H1F0000 -'Private Const SPECIFIC_RIGHTS_ALL = &HFFFF -' -''Define severity codes -' -''Public Const ERROR_ACCESS_DENIED = 5 -'' -''Global Const ERROR_NONE = 0 -''Global Const ERROR_BADDB = 1 -''Global Const ERROR_CANTOPEN = 3 -''Global Const ERROR_CANTREAD = 4 -''Global Const ERROR_CANTWRITE = 5 -''Global Const ERROR_OUTOFMEMORY = 6 -''Global Const ERROR_INVALID_PARAMETER = 7 -''Global Const ERROR_ACCESS_DENIED = 8 -''Global Const ERROR_INVALID_PARAMETERS = 87 -''Global Const ERROR_NO_MORE_ITEMS = 259 - -Public Type ByteValue - b(1024) As Byte -End Type - -Public Type LongValue - l As Long -End Type - -Public Function BytesToString(bValue As ByteValue) As String - Dim s As String - Dim i As Integer - s = StrConv(bValue.b(), vbUnicode) - i = InStr(s, Chr(0)) - 1 - BytesToString = Left(s, i) -End Function - -Public Function BytesToLong(bValue As ByteValue) As Long - Dim lValue As LongValue - LSet lValue = bValue - BytesToLong = lValue.l -End Function - diff --git a/it/it-projects/plugins/project/src/vb/Registry.cls b/it/it-projects/plugins/project/src/vb/Registry.cls deleted file mode 100644 index ee53025fb97..00000000000 --- a/it/it-projects/plugins/project/src/vb/Registry.cls +++ /dev/null @@ -1,428 +0,0 @@ -VERSION 1.0 CLASS -BEGIN - MultiUse = -1 'True - Persistable = 0 'NotPersistable - DataBindingBehavior = 0 'vbNone - DataSourceBehavior = 0 'vbNone - MTSTransactionMode = 0 'NotAnMTSObject -END -Attribute VB_Name = "Registry" -Attribute VB_GlobalNameSpace = False -Attribute VB_Creatable = True -Attribute VB_PredeclaredId = False -Attribute VB_Exposed = False -' --- GPL --- -' -' Copyright (C) 1999 SAP AG -' -' This program is free software; you can redistribute it and/or -' modify it under the terms of the GNU General Public License -' as published by the Free Software Foundation; either version 2 -' of the License, or (at your option) any later version. -' -' This program is distributed in the hope that it will be useful, -' but WITHOUT ANY WARRANTY; without even the implied warranty of -' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -' GNU General Public License for more details. -' -' You should have received a copy of the GNU General Public License -' along with this program; if not, write to the Free Software -' Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -' -' --- GPL --- -Option Explicit - -Public Enum RegistryHKeyConstants - HKEY_CLASSES_ROOT = &H80000000 - HKEY_CURRENT_USER = &H80000001 - HKEY_LOCAL_MACHINE = &H80000002 - HKEY_USERS = &H80000003 - HKEY_PERFORMANCE_DATA = &H80000004 - HKEY_CURRENT_CONFIG = &H80000005 - HKEY_DYN_DATA = &H80000006 -End Enum - -Public Enum RegistryTypeConstants - REG_NONE = (0) 'No value type - REG_SZ = (1) 'Unicode nul terminated string -' REG_EXPAND_SZ = (2) 'Unicode nul terminated string w/enviornment var -' REG_BINARY = (3) 'Free form binary - REG_DWORD = (4) '32-bit number -' REG_DWORD_LITTLE_ENDIAN = (4) '32-bit number (same as REG_DWORD) -' REG_DWORD_BIG_ENDIAN = (5) '32-bit number -' REG_LINK = (6) 'Symbolic Link (unicode) -' REG_MULTI_SZ = (7) 'Multiple Unicode strings -' REG_RESOURCE_LIST = (8) 'Resource list in the resource map -' REG_FULL_RESOURCE_DESCRIPTOR = (9) 'Resource list in the hardware description -' REG_RESOURCE_REQUIREMENTS_LIST = (10) -End Enum - -Public Enum RegistryAccessConstants - KEY_QUERY_VALUE = &H1 - KEY_SET_VALUE = &H2 - KEY_CREATE_SUB_KEY = &H4 - KEY_ENUMERATE_SUB_KEYS = &H8 - KEY_NOTIFY = &H10 - KEY_CREATE_LINK = &H20 - KEY_ALL_ACCESS = &H3F -End Enum - -Public Enum RegistryErrorConstants - ERROR_SUCCESS = 0 - ERROR_BADKEY = 2 - ERROR_OUTOFMEMORY = 6 - ERROR_MORE_DATA = 234 - ERROR_NO_MORE_ITEMS = 259 -End Enum - -Public Enum RegistryVolatileConstants - REG_OPTION_NON_VOLATILE = 0& - REG_OPTION_VOLATILE = &H1 -End Enum - -Public Enum RegistryDispositionConstants - REG_CREATED_NEW_KEY = &H1 - REG_OPENED_EXISTING_KEY = &H2 -End Enum - -Private oKeys As Keys - -Private bShowErrors As Boolean -Private bRaiseErrors As Boolean -' -' Public Properties -' -Public Property Get Keys() As Keys - If oKeys Is Nothing Then - Set oKeys = New Keys - With oKeys - Set .Registry = Me - Set .Parent = Me - .Root = True - End With - End If - Set Keys = oKeys -End Property - -Public Property Get ShowErrors() As Boolean - ShowErrors = bShowErrors -End Property -Public Property Let ShowErrors(ByVal NewVal As Boolean) - bShowErrors = NewVal -End Property - -Public Property Get RaiseErrors() As Boolean - RaiseErrors = bRaiseErrors -End Property -Public Property Let RaiseErrors(ByVal NewVal As Boolean) - bRaiseErrors = NewVal -End Property -' -' Public Sub/Function -' -' Base Functions -' -Public Function OpenKey(ByVal hKey As RegistryHKeyConstants, _ - ByVal Path As String, _ - ByVal Access As RegistryAccessConstants, _ - Key As Long) As Boolean - - Dim lRC As Long - - OpenKey = False - - lRC = RegOpenKeyEx(hKey, Path, 0&, Access, Key) - If lRC = ERROR_SUCCESS Then - OpenKey = True - Else - HandleError lRC, Path - End If -End Function - -Public Function CreateKey(ByVal hKey As RegistryHKeyConstants, _ - ByVal Path As String, _ - ByVal Volatile As RegistryVolatileConstants, _ - ByVal Access As RegistryAccessConstants, _ - Key As Long, _ - Disposition As Long) As Boolean - - Dim lRC As Long - Dim saKey As SECURITY_ATTRIBUTES - - CreateKey = False - - lRC = RegCreateKeyEx(hKey, Path, 0, "", Volatile, Access, saKey, Key, Disposition) - If lRC = ERROR_SUCCESS Then - CreateKey = True - Else - HandleError lRC, Path - End If -End Function - -Public Function DeleteKey(ByVal hKey As RegistryHKeyConstants, _ - ByVal Path As String) As Boolean - - Dim lRC As Long - - DeleteKey = False - - lRC = RegDeleteKey(hKey, Path) - If lRC = ERROR_SUCCESS Then - DeleteKey = True - Else - HandleError lRC, Path - End If -End Function - -Public Function CloseKey(ByVal Path, _ - Key As Long) As Boolean - - Dim lRC As Long - - CloseKey = False - - lRC = RegCloseKey(Key) - If lRC = ERROR_SUCCESS Then - Key = 0 - CloseKey = True - Else - HandleError lRC, Path - End If -End Function - -Public Function QueryValueNull(ByVal hKey As Long, _ - ByVal Name As String, _ - ValueType As RegistryTypeConstants, _ - ValueLen As Long) As Boolean - - Dim lRC As Long - - QueryValueNull = False - - lRC = RegQueryValueExNull(hKey, Name, 0&, ValueType, 0&, ValueLen) - If lRC = ERROR_SUCCESS Then - QueryValueNull = True - Else - HandleError lRC, Name - End If -End Function - -Public Function QueryValueString(ByVal hKey As Long, _ - ByVal Name As String, _ - Value As String, _ - ValueLen As Long) As Boolean - - Dim lRC As Long - - QueryValueString = False - - Value = String(ValueLen, 0) - - lRC = RegQueryValueExString(hKey, Name, 0&, REG_SZ, Value, ValueLen) - If lRC = ERROR_SUCCESS Then - Value = Left(Value, ValueLen - 1) - QueryValueString = True - Else - HandleError lRC, Name - End If -End Function - -Public Function QueryValueLong(ByVal hKey As Long, _ - ByVal Name As String, _ - Value As Long) As Boolean - - Dim lRC As Long - Dim lValueLen As Long - - QueryValueLong = False - - Value = 0 - - lRC = RegQueryValueExLong(hKey, Name, 0&, REG_DWORD, Value, 4) - If lRC = ERROR_SUCCESS Then - QueryValueLong = True - Else - HandleError lRC, Name - End If -End Function - -Public Function SetValueString(ByVal hKey As Long, _ - ByVal Name As String, _ - ByVal Value As String) As Boolean - - Dim lRC As Long - - SetValueString = False - - Value = Value & Chr(0) - - lRC = RegSetValueExString(hKey, Name, 0&, REG_SZ, Value, Len(Value)) - If lRC = ERROR_SUCCESS Then - SetValueString = True - Else - HandleError lRC, Name - End If -End Function - -Public Function SetValueLong(ByVal hKey As Long, _ - ByVal Name As String, _ - ByVal Value As Long) As Boolean - - Dim lRC As Long - - SetValueLong = False - - lRC = RegSetValueExLong(hKey, Name, 0&, REG_DWORD, Value, 4) - If lRC = ERROR_SUCCESS Then - SetValueLong = True - Else - HandleError lRC, Name - End If -End Function - -Public Function DeleteValue(ByVal hKey As Long, _ - ByVal Name As String) As Boolean - - Dim lRC As Long - - DeleteValue = False - - lRC = RegDeleteValue(hKey, Name) - If lRC = ERROR_SUCCESS Then - DeleteValue = True - Else - HandleError lRC, Name - End If -End Function -' -' -' -Public Function Check(ByVal WithSubKeys As Boolean, _ - ByVal WithValues As Boolean) As Boolean - - Dim oKey As Key - - Check = False - - For Each oKey In Keys - If Not oKey.Check(WithSubKeys, WithValues) Then - Exit Function - End If - Next - - Check = True -End Function - -Public Function Create(ByVal WithSubKeys As Boolean, _ - ByVal WithValues As Boolean) As Boolean - - Dim oKey As Key - - Create = False - - For Each oKey In Keys - If Not oKey.Create(WithSubKeys, WithValues) Then - Exit Function - End If - Next - - Create = True -End Function - -Public Function QueryValues(ByVal WithSubKeys As Boolean) As Boolean - - Dim oKey As Key - - QueryValues = False - - For Each oKey In Keys - If Not oKey.QueryValues(WithSubKeys) Then - Exit Function - End If - Next - - QueryValues = True -End Function - -Public Function SetValues(ByVal WithSubKeys As Boolean) As Boolean - - Dim oKey As Key - - SetValues = False - - For Each oKey In Keys - If Not oKey.SetValues(WithSubKeys) Then - Exit Function - End If - Next - - SetValues = True -End Function - -Public Function EnumKeys(ByVal WithSubKeys As Boolean, _ - ByVal WithValues As Boolean) As Boolean - - Dim oKey As Key - - EnumKeys = False - - For Each oKey In Keys - If Not oKey.EnumKeys(WithSubKeys, WithValues) Then - Exit Function - End If - Next - - EnumKeys = True -End Function - -Public Function FindKeyByPath(ByVal WithSubKeys As Boolean, _ - ByVal FindPath As String) As Key - Dim oKey As Key - - Set FindKeyByPath = Nothing - - For Each oKey In Keys - If FindPath = oKey.Path Then - Set FindKeyByPath = oKey - Exit Function - End If - If WithSubKeys Then - Set FindKeyByPath = oKey.FindKeyByPath(WithSubKeys, FindPath) - End If - Next -End Function - -Friend Sub HandleError(ByVal RC As Long, ByVal Text As String) - Dim sMsg As String - - If bShowErrors Then - sMsg = "Error: " & ErrorText(RC) & ". " & Text - MsgBox sMsg, vbExclamation - End If -End Sub -' -' Private Sub/Function -' -Private Sub Class_Initialize() - 'Debug.Print "INIT Registry" - Set oKeys = Nothing - bShowErrors = True - bRaiseErrors = False -End Sub - -Private Sub Class_Terminate() - 'Debug.Print "TERM Registry" -End Sub - -Private Function ErrorText(ByVal lRC As Long) As String - Dim s As String - Select Case lRC - Case ERROR_BADKEY: s = "Bad key" - Case ERROR_MORE_DATA: s = "More data" - Case ERROR_OUTOFMEMORY: s = "Out of memory" - Case ERROR_NO_MORE_ITEMS: s = "No more items" - Case Else: s = "RC=" & CStr(lRC) - End Select - ErrorText = s -End Function - diff --git a/it/it-projects/plugins/project/src/web/sample.xhtml b/it/it-projects/plugins/project/src/web/sample.xhtml deleted file mode 100644 index 45a212717b2..00000000000 --- a/it/it-projects/plugins/project/src/web/sample.xhtml +++ /dev/null @@ -1,46 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" - xmlns:h="http://java.sun.com/jsf/html" - xmlns:f="http://java.sun.com/jsf/core"> - - <f:metadata> - <f:viewParam name="user" value="#{userEdit.user}" converter="#{userConvertor}" /> - <f:event listener="#{userEdit.preRenderView()}" type="preRenderView"/> - </f:metadata> - - <h:head> - </h:head> - - <h:body> - - <h:messages /> - - <h:form> - - <h:panelGrid columns="2"> - <f:facet name="header">User</f:facet> - - <h:outputLabel value="Id" rendered="#{!empty userEdit.user.id}" /> - <h:outputLabel value="#{userEdit.user.id}" rendered="#{!empty userEdit.user.id}" /> - - <h:outputLabel for="firstName" value="First name" /> - <h:inputText id="firstName" value="#{userEdit.user.firstName}" label="First name" /> - - <h:outputLabel for="lastName" value="Last name" /> - <h:inputText id="lastName" value="#{userEdit.user.lastName}" label="Last name" /> - - <h:outputLabel for="birthDay" value="Birth day" /> - <h:inputText id="birthDay" value="#{userEdit.user.birthday}" label="Birth day"> - <f:convertDateTime pattern="dd-MM-yyyy"/> - </h:inputText> - - <h:outputLabel for="email" value="Email" /> - <h:inputText id="email" value="#{userEdit.user.email}" /> - - <h:commandButton action="#{userEdit.saveUser}" value="Submit" /> - <h:button outcome="index.xhtml" value="Cancel" /> - </h:panelGrid> - </h:form> - - </h:body> -</html> diff --git a/it/it-projects/plugins/project/target/classes/foo/Foo.class b/it/it-projects/plugins/project/target/classes/foo/Foo.class Binary files differdeleted file mode 100644 index 97de0cb4b2f..00000000000 --- a/it/it-projects/plugins/project/target/classes/foo/Foo.class +++ /dev/null diff --git a/it/it-projects/plugins/project/target/classes/foo/Simplest.class b/it/it-projects/plugins/project/target/classes/foo/Simplest.class Binary files differdeleted file mode 100644 index d22988c5549..00000000000 --- a/it/it-projects/plugins/project/target/classes/foo/Simplest.class +++ /dev/null diff --git a/it/it-projects/plugins/project/target/classes/foo/Simplest2.class b/it/it-projects/plugins/project/target/classes/foo/Simplest2.class Binary files differdeleted file mode 100644 index 62c50cd0da0..00000000000 --- a/it/it-projects/plugins/project/target/classes/foo/Simplest2.class +++ /dev/null diff --git a/it/it-projects/plugins/project/target/classes/foo/Simplest3.class b/it/it-projects/plugins/project/target/classes/foo/Simplest3.class Binary files differdeleted file mode 100644 index e6df2a8f278..00000000000 --- a/it/it-projects/plugins/project/target/classes/foo/Simplest3.class +++ /dev/null diff --git a/it/it-projects/plugins/project/target/it-all-lang-1.0-SNAPSHOT.jar b/it/it-projects/plugins/project/target/it-all-lang-1.0-SNAPSHOT.jar Binary files differdeleted file mode 100644 index f50c4a3d1bd..00000000000 --- a/it/it-projects/plugins/project/target/it-all-lang-1.0-SNAPSHOT.jar +++ /dev/null diff --git a/it/it-projects/plugins/project/target/js/lcov.dat b/it/it-projects/plugins/project/target/js/lcov.dat deleted file mode 100644 index dc51a1c762b..00000000000 --- a/it/it-projects/plugins/project/target/js/lcov.dat +++ /dev/null @@ -1,71 +0,0 @@ -SF:src/js/Person.js -DA:2,1 -DA:3,2 -DA:4,2 -DA:5,2 -DA:8,1 -DA:11,2 -end_of_record -SF:src/js/com/company/Car.js -DA:1,1 -DA:2,3 -DA:3,3 -DA:4,3 -DA:5,3 -DA:6,3 -DA:9,1 -DA:12,1 -DA:16,1 -DA:17,0 -DA:18,1 -DA:19,1 -DA:21,0 -DA:26,0 -DA:27,0 -DA:31,0 -DA:32,0 -DA:36,1 -DA:37,0 -DA:38,0 -DA:39,0 -DA:41,1 -DA:42,1 -DA:47,0 -end_of_record -SF:src/jscom/company/Truck.js -DA:1,1 -DA:2,0 -DA:3,0 -DA:4,0 -DA:5,0 -DA:6,0 -DA:9,1 -DA:12,0 -DA:16,0 -DA:17,0 -DA:18,0 -DA:19,0 -DA:21,0 -end_of_record -SF:src/jscom/company/Vehicle.js -DA:9,1 -DA:10,0 -DA:11,0 -DA:12,0 -DA:13,0 -DA:14,0 -DA:22,1 -DA:25,0 -DA:29,0 -DA:30,0 -DA:31,0 -DA:32,0 -DA:34,0 -DA:39,0 -DA:40,0 -DA:41,0 -DA:42,0 -DA:44,0 -DA:45,0 -DA:50,0 -end_of_record diff --git a/it/it-projects/plugins/project/target/php/phpunit.coverage.xml b/it/it-projects/plugins/project/target/php/phpunit.coverage.xml deleted file mode 100644 index 184a0dd8466..00000000000 --- a/it/it-projects/plugins/project/target/php/phpunit.coverage.xml +++ /dev/null @@ -1,101 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<coverage generated="1394164581"> - <project timestamp="1394164581"> - <file name="src/Math.php"> - <class name="PhpUnderControl_Example_Math" namespace="global" fullPackage="Example" package="Example"> - <metrics methods="4" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="84" coveredstatements="2" elements="88" coveredelements="4"/> - </class> - <line num="46" type="stmt" count="0"/> - <line num="69" type="method" name="add" crap="1" count="1"/> - <line num="71" type="stmt" count="1"/> - <line num="82" type="method" name="sub" crap="1" count="10"/> - <line num="84" type="stmt" count="10"/> - <line num="90" type="method" name="div" crap="132" count="0"/> - <line num="92" type="stmt" count="0"/> - <line num="93" type="stmt" count="0"/> - <line num="94" type="stmt" count="0"/> - <line num="95" type="stmt" count="0"/> - <line num="96" type="stmt" count="0"/> - <line num="98" type="stmt" count="0"/> - <line num="99" type="stmt" count="0"/> - <line num="100" type="stmt" count="0"/> - <line num="101" type="stmt" count="0"/> - <line num="103" type="stmt" count="0"/> - <line num="105" type="stmt" count="0"/> - <line num="107" type="stmt" count="0"/> - <line num="108" type="stmt" count="0"/> - <line num="110" type="stmt" count="0"/> - <line num="111" type="stmt" count="0"/> - <line num="112" type="stmt" count="0"/> - <line num="114" type="stmt" count="0"/> - <line num="115" type="stmt" count="0"/> - <line num="117" type="stmt" count="0"/> - <line num="118" type="stmt" count="0"/> - <line num="120" type="stmt" count="0"/> - <line num="121" type="stmt" count="0"/> - <line num="122" type="stmt" count="0"/> - <line num="123" type="stmt" count="0"/> - <line num="124" type="stmt" count="0"/> - <line num="126" type="stmt" count="0"/> - <line num="127" type="stmt" count="0"/> - <line num="128" type="stmt" count="0"/> - <line num="129" type="stmt" count="0"/> - <line num="131" type="stmt" count="0"/> - <line num="133" type="stmt" count="0"/> - <line num="135" type="stmt" count="0"/> - <line num="136" type="stmt" count="0"/> - <line num="138" type="stmt" count="0"/> - <line num="139" type="stmt" count="0"/> - <line num="140" type="stmt" count="0"/> - <line num="142" type="stmt" count="0"/> - <line num="143" type="stmt" count="0"/> - <line num="145" type="stmt" count="0"/> - <line num="146" type="stmt" count="0"/> - <line num="148" type="stmt" count="0"/> - <line num="154" type="method" name="complex" crap="132" count="0"/> - <line num="156" type="stmt" count="0"/> - <line num="157" type="stmt" count="0"/> - <line num="158" type="stmt" count="0"/> - <line num="159" type="stmt" count="0"/> - <line num="160" type="stmt" count="0"/> - <line num="162" type="stmt" count="0"/> - <line num="163" type="stmt" count="0"/> - <line num="164" type="stmt" count="0"/> - <line num="165" type="stmt" count="0"/> - <line num="167" type="stmt" count="0"/> - <line num="169" type="stmt" count="0"/> - <line num="171" type="stmt" count="0"/> - <line num="172" type="stmt" count="0"/> - <line num="174" type="stmt" count="0"/> - <line num="175" type="stmt" count="0"/> - <line num="176" type="stmt" count="0"/> - <line num="178" type="stmt" count="0"/> - <line num="179" type="stmt" count="0"/> - <line num="181" type="stmt" count="0"/> - <line num="182" type="stmt" count="0"/> - <line num="184" type="stmt" count="0"/> - <line num="185" type="stmt" count="0"/> - <line num="186" type="stmt" count="0"/> - <line num="187" type="stmt" count="0"/> - <line num="188" type="stmt" count="0"/> - <line num="190" type="stmt" count="0"/> - <line num="191" type="stmt" count="0"/> - <line num="192" type="stmt" count="0"/> - <line num="193" type="stmt" count="0"/> - <line num="195" type="stmt" count="0"/> - <line num="197" type="stmt" count="0"/> - <line num="199" type="stmt" count="0"/> - <line num="200" type="stmt" count="0"/> - <line num="202" type="stmt" count="0"/> - <line num="203" type="stmt" count="0"/> - <line num="204" type="stmt" count="0"/> - <line num="206" type="stmt" count="0"/> - <line num="207" type="stmt" count="0"/> - <line num="209" type="stmt" count="0"/> - <line num="210" type="stmt" count="0"/> - <line num="212" type="stmt" count="0"/> - <metrics loc="214" ncloc="140" classes="1" methods="4" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="85" coveredstatements="2" elements="89" coveredelements="4"/> - </file> - <metrics files="1" loc="214" ncloc="140" classes="1" methods="4" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="85" coveredstatements="2" elements="89" coveredelements="4"/> - </project> -</coverage> diff --git a/it/it-projects/plugins/project/target/php/phpunit.xml b/it/it-projects/plugins/project/target/php/phpunit.xml deleted file mode 100644 index 1942bdf47d6..00000000000 --- a/it/it-projects/plugins/project/target/php/phpunit.xml +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<testsuites> - <testsuite name="Test Suite" tests="12" assertions="11" failures="7" errors="0" time="8.036518"> - <testsuite name="PhpUnderControl_Example_MathTest" file="tests/SomeTest.php" fullPackage="Example" package="Example" tests="12" assertions="11" failures="7" errors="0" time="8.036518"> - <testcase name="testAddSuccess" class="PhpUnderControl_Example_MathTest" file="tests/SomeTest.php" line="72" assertions="1" time="2.006604"/> - <testcase name="testSubSuccess" class="PhpUnderControl_Example_MathTest" file="tests/SomeTest.php" line="81" assertions="1" time="0.000842"/> - <testcase name="testSubFail" class="PhpUnderControl_Example_MathTest" file="tests/SomeTest.php" line="89" assertions="1" time="2.006533"> - <failure type="PHPUnit_Framework_ExpectationFailedException">PhpUnderControl_Example_MathTest::testSubFail - Failed asserting that 1 matches expected 0. - </failure> - </testcase> - <testsuite name="PhpUnderControl_Example_MathTest::testDataProviderOneWillFail" tests="4" assertions="4" failures="1" errors="0" time="4.008126"> - <testcase name="testDataProviderOneWillFail with data set #0" assertions="1" time="1.001100"/> - <testcase name="testDataProviderOneWillFail with data set #1" assertions="1" time="1.001209"/> - <testcase name="testDataProviderOneWillFail with data set #2" assertions="1" time="1.004137"> - <failure type="PHPUnit_Framework_ExpectationFailedException">PhpUnderControl_Example_MathTest::testDataProviderOneWillFail with data set #2 (7, 1) - Failed asserting that 6 matches expected 1. - </failure> - </testcase> - <testcase name="testDataProviderOneWillFail with data set #3" assertions="1" time="1.001680"/> - </testsuite> - <testsuite name="PhpUnderControl_Example_MathTest::testDataProviderAllWillFail" tests="4" assertions="4" failures="4" errors="0" time="0.012665"> - <testcase name="testDataProviderAllWillFail with data set #0" assertions="1" time="0.003173"> - <failure type="PHPUnit_Framework_ExpectationFailedException">PhpUnderControl_Example_MathTest::testDataProviderAllWillFail with data set #0 (17, 42) - Failed asserting that -25 matches expected 1. - - </failure> - </testcase> - <testcase name="testDataProviderAllWillFail with data set #1" assertions="1" time="0.003231"> - <failure type="PHPUnit_Framework_ExpectationFailedException">PhpUnderControl_Example_MathTest::testDataProviderAllWillFail with data set #1 (13, 23) - Failed asserting that -10 matches expected 1. - </failure> - </testcase> - <testcase name="testDataProviderAllWillFail with data set #2" assertions="1" time="0.003100"> - <failure type="PHPUnit_Framework_ExpectationFailedException">PhpUnderControl_Example_MathTest::testDataProviderAllWillFail with data set #2 (42, 17) - Failed asserting that 25 matches expected 1. - </failure> - </testcase> - <testcase name="testDataProviderAllWillFail with data set #3" assertions="1" time="0.003161"> - <failure type="PHPUnit_Framework_ExpectationFailedException">PhpUnderControl_Example_MathTest::testDataProviderAllWillFail with data set #3 (23, 13) - Failed asserting that 10 matches expected 1. - </failure> - </testcase> - </testsuite> - <testcase name="testFail" class="PhpUnderControl_Example_MathTest" file="tests/SomeTest.php" line="119" assertions="0" time="0.001748"> - <failure type="PHPUnit_Framework_AssertionFailedError">PhpUnderControl_Example_MathTest::testFail - Failed because... - </failure> - </testcase> - </testsuite> - </testsuite> -</testsuites> diff --git a/it/it-projects/plugins/project/target/surefire-reports/TEST-foo.FooTest.xml b/it/it-projects/plugins/project/target/surefire-reports/TEST-foo.FooTest.xml deleted file mode 100644 index 74695fdea1e..00000000000 --- a/it/it-projects/plugins/project/target/surefire-reports/TEST-foo.FooTest.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<testsuite failures="0" time="0.004" errors="0" skipped="0" tests="1" name="foo.FooTest"> - <properties> - <property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/> - <property name="sun.boot.library.path" value="/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib"/> - <property name="java.vm.version" value="24.71-b01"/> - <property name="user.country.format" value="FR"/> - <property name="gopherProxySet" value="false"/> - <property name="java.vm.vendor" value="Oracle Corporation"/> - <property name="java.vendor.url" value="http://java.oracle.com/"/> - <property name="path.separator" value=":"/> - <property name="guice.disable.misplaced.annotation.check" value="true"/> - <property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/> - <property name="file.encoding.pkg" value="sun.io"/> - <property name="user.country" value="US"/> - <property name="sun.java.launcher" value="SUN_STANDARD"/> - <property name="sun.os.patch.level" value="unknown"/> - <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/> - <property name="user.dir" value="/Users/sbrandhof/dev/core/sonar-tests-core/platform/projects/all-langs"/> - <property name="java.runtime.version" value="1.7.0_71-b14"/> - <property name="java.awt.graphicsenv" value="sun.awt.CGraphicsEnvironment"/> - <property name="java.endorsed.dirs" value="/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/endorsed"/> - <property name="os.arch" value="x86_64"/> - <property name="java.io.tmpdir" value="/var/folders/ny/2lkywbzs63xc1n1k7rzprjj40000gn/T/"/> - <property name="line.separator" value=" -"/> - <property name="java.vm.specification.vendor" value="Oracle Corporation"/> - <property name="os.name" value="Mac OS X"/> - <property name="classworlds.conf" value="/usr/local/Cellar/maven32/3.2.5/libexec/bin/m2.conf"/> - <property name="sun.jnu.encoding" value="UTF-8"/> - <property name="java.library.path" value="/Users/sbrandhof/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/> - <property name="java.specification.name" value="Java Platform API Specification"/> - <property name="java.class.version" value="51.0"/> - <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/> - <property name="os.version" value="10.10.3"/> - <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/> - <property name="user.home" value="/Users/sbrandhof"/> - <property name="user.timezone" value="Europe/Paris"/> - <property name="java.awt.printerjob" value="sun.lwawt.macosx.CPrinterJob"/> - <property name="java.specification.version" value="1.7"/> - <property name="file.encoding" value="UTF-8"/> - <property name="user.name" value="sbrandhof"/> - <property name="java.class.path" value="/usr/local/Cellar/maven32/3.2.5/libexec/boot/plexus-classworlds-2.5.2.jar"/> - <property name="java.vm.specification.version" value="1.7"/> - <property name="sun.arch.data.model" value="64"/> - <property name="java.home" value="/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre"/> - <property name="sun.java.command" value="org.codehaus.plexus.classworlds.launcher.Launcher package"/> - <property name="java.specification.vendor" value="Oracle Corporation"/> - <property name="user.language" value="en"/> - <property name="awt.toolkit" value="sun.lwawt.macosx.LWCToolkit"/> - <property name="java.vm.info" value="mixed mode"/> - <property name="java.version" value="1.7.0_71"/> - <property name="java.ext.dirs" value="/Users/sbrandhof/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java"/> - <property name="sun.boot.class.path" value="/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/classes"/> - <property name="java.vendor" value="Oracle Corporation"/> - <property name="maven.home" value="/usr/local/Cellar/maven32/3.2.5/libexec"/> - <property name="file.separator" value="/"/> - <property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/> - <property name="sun.cpu.endian" value="little"/> - <property name="sun.io.unicode.encoding" value="UnicodeBig"/> - <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/> - <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/> - <property name="sun.cpu.isalist" value=""/> - </properties> - <testcase time="0.004" classname="foo.FooTest" name="testAdd"/> -</testsuite>
\ No newline at end of file diff --git a/it/it-projects/plugins/project/target/surefire-reports/TEST-foo.SimplestTest.xml b/it/it-projects/plugins/project/target/surefire-reports/TEST-foo.SimplestTest.xml deleted file mode 100644 index 3023499428f..00000000000 --- a/it/it-projects/plugins/project/target/surefire-reports/TEST-foo.SimplestTest.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<testsuite failures="0" time="0" errors="0" skipped="0" tests="1" name="foo.SimplestTest"> - <properties> - <property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/> - <property name="sun.boot.library.path" value="/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib"/> - <property name="java.vm.version" value="24.71-b01"/> - <property name="user.country.format" value="FR"/> - <property name="gopherProxySet" value="false"/> - <property name="java.vm.vendor" value="Oracle Corporation"/> - <property name="java.vendor.url" value="http://java.oracle.com/"/> - <property name="path.separator" value=":"/> - <property name="guice.disable.misplaced.annotation.check" value="true"/> - <property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/> - <property name="file.encoding.pkg" value="sun.io"/> - <property name="user.country" value="US"/> - <property name="sun.java.launcher" value="SUN_STANDARD"/> - <property name="sun.os.patch.level" value="unknown"/> - <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/> - <property name="user.dir" value="/Users/sbrandhof/dev/core/sonar-tests-core/platform/projects/all-langs"/> - <property name="java.runtime.version" value="1.7.0_71-b14"/> - <property name="java.awt.graphicsenv" value="sun.awt.CGraphicsEnvironment"/> - <property name="java.endorsed.dirs" value="/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/endorsed"/> - <property name="os.arch" value="x86_64"/> - <property name="java.io.tmpdir" value="/var/folders/ny/2lkywbzs63xc1n1k7rzprjj40000gn/T/"/> - <property name="line.separator" value=" -"/> - <property name="java.vm.specification.vendor" value="Oracle Corporation"/> - <property name="os.name" value="Mac OS X"/> - <property name="classworlds.conf" value="/usr/local/Cellar/maven32/3.2.5/libexec/bin/m2.conf"/> - <property name="sun.jnu.encoding" value="UTF-8"/> - <property name="java.library.path" value="/Users/sbrandhof/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/> - <property name="java.specification.name" value="Java Platform API Specification"/> - <property name="java.class.version" value="51.0"/> - <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/> - <property name="os.version" value="10.10.3"/> - <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/> - <property name="user.home" value="/Users/sbrandhof"/> - <property name="user.timezone" value="Europe/Paris"/> - <property name="java.awt.printerjob" value="sun.lwawt.macosx.CPrinterJob"/> - <property name="java.specification.version" value="1.7"/> - <property name="file.encoding" value="UTF-8"/> - <property name="user.name" value="sbrandhof"/> - <property name="java.class.path" value="/usr/local/Cellar/maven32/3.2.5/libexec/boot/plexus-classworlds-2.5.2.jar"/> - <property name="java.vm.specification.version" value="1.7"/> - <property name="sun.arch.data.model" value="64"/> - <property name="java.home" value="/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre"/> - <property name="sun.java.command" value="org.codehaus.plexus.classworlds.launcher.Launcher package"/> - <property name="java.specification.vendor" value="Oracle Corporation"/> - <property name="user.language" value="en"/> - <property name="awt.toolkit" value="sun.lwawt.macosx.LWCToolkit"/> - <property name="java.vm.info" value="mixed mode"/> - <property name="java.version" value="1.7.0_71"/> - <property name="java.ext.dirs" value="/Users/sbrandhof/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java"/> - <property name="sun.boot.class.path" value="/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/classes"/> - <property name="java.vendor" value="Oracle Corporation"/> - <property name="maven.home" value="/usr/local/Cellar/maven32/3.2.5/libexec"/> - <property name="file.separator" value="/"/> - <property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/> - <property name="sun.cpu.endian" value="little"/> - <property name="sun.io.unicode.encoding" value="UnicodeBig"/> - <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/> - <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/> - <property name="sun.cpu.isalist" value=""/> - </properties> - <testcase time="0" classname="foo.SimplestTest" name="testAdd"/> -</testsuite>
\ No newline at end of file diff --git a/it/it-projects/plugins/project/target/surefire-reports/foo.FooTest.txt b/it/it-projects/plugins/project/target/surefire-reports/foo.FooTest.txt deleted file mode 100644 index 81a35910169..00000000000 --- a/it/it-projects/plugins/project/target/surefire-reports/foo.FooTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: foo.FooTest -------------------------------------------------------------------------------- -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.044 sec diff --git a/it/it-projects/plugins/project/target/surefire-reports/foo.SimplestTest.txt b/it/it-projects/plugins/project/target/surefire-reports/foo.SimplestTest.txt deleted file mode 100644 index 1e8766a397f..00000000000 --- a/it/it-projects/plugins/project/target/surefire-reports/foo.SimplestTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: foo.SimplestTest -------------------------------------------------------------------------------- -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec diff --git a/it/it-projects/plugins/project/target/test-classes/foo/FooTest.class b/it/it-projects/plugins/project/target/test-classes/foo/FooTest.class Binary files differdeleted file mode 100644 index 0970a8681a7..00000000000 --- a/it/it-projects/plugins/project/target/test-classes/foo/FooTest.class +++ /dev/null diff --git a/it/it-projects/plugins/project/target/test-classes/foo/SimplestTest.class b/it/it-projects/plugins/project/target/test-classes/foo/SimplestTest.class Binary files differdeleted file mode 100644 index 3f6daea7c54..00000000000 --- a/it/it-projects/plugins/project/target/test-classes/foo/SimplestTest.class +++ /dev/null diff --git a/it/it-projects/plugins/project/test/java/foo/FooTest.java b/it/it-projects/plugins/project/test/java/foo/FooTest.java deleted file mode 100644 index d0eb283e151..00000000000 --- a/it/it-projects/plugins/project/test/java/foo/FooTest.java +++ /dev/null @@ -1,12 +0,0 @@ -package foo; - -import org.junit.Test; -import static org.junit.Assert.*; - -public class FooTest { - - @Test - public void testAdd() throws Exception { - assertEquals(Foo.div(10, 5), 2); - } -} diff --git a/it/it-projects/plugins/project/test/java/foo/SimplestTest.java b/it/it-projects/plugins/project/test/java/foo/SimplestTest.java deleted file mode 100644 index 8c28ff4c91e..00000000000 --- a/it/it-projects/plugins/project/test/java/foo/SimplestTest.java +++ /dev/null @@ -1,12 +0,0 @@ -package foo; - -import org.junit.Test; -import static org.junit.Assert.*; - -public class SimplestTest { - - @Test - public void testAdd() throws Exception { - assertEquals(Simplest.add(4, 5), 9); - } -} diff --git a/it/it-projects/plugins/project/test/js/PersonTest.js b/it/it-projects/plugins/project/test/js/PersonTest.js deleted file mode 100644 index 36b8fb05af5..00000000000 --- a/it/it-projects/plugins/project/test/js/PersonTest.js +++ /dev/null @@ -1,13 +0,0 @@ -TestCase('PersonTest', { - - testWhoAreYou : function() { - var p = new Person('John', 'Doe', 'P.'); - assertEquals('Should have responded with full name', 'John P. Doe', p.whoAreYou()); - }, - - testWhoAreYouWithNoMiddleName : function() { - var p = new Person('John', 'Doe'); - assertEquals('Should have used only first and last name', 'John Doe', p.whoAreYou()); - } - -});
\ No newline at end of file diff --git a/it/it-projects/plugins/project/test/js/com/company/CarTest.js b/it/it-projects/plugins/project/test/js/com/company/CarTest.js deleted file mode 100644 index b63b17d1f69..00000000000 --- a/it/it-projects/plugins/project/test/js/com/company/CarTest.js +++ /dev/null @@ -1,18 +0,0 @@ -TestCase('com.company.CarTest', { - - testfullName : function() { - var car = new Car('VW', 'Beatle', 1971); - assertEquals('VW Beatle Y: 1971', car.getFullName()); - }, - - testStopEngineWithCheck : function() { - var car = new Car('VW', 'Beatle', 1971); - assertEquals('engine was not running', car.stopEngineWithCheck()); - }, - - testCalculatePrice : function() { - var car = new Car('Volvo', 'XC70', 2012); - assertEquals('$30000', car.calculatePrice()); - } - -});
\ No newline at end of file diff --git a/it/it-projects/plugins/project/test/php/SomeTest.php b/it/it-projects/plugins/project/test/php/SomeTest.php deleted file mode 100644 index 5f8b96d2160..00000000000 --- a/it/it-projects/plugins/project/test/php/SomeTest.php +++ /dev/null @@ -1,169 +0,0 @@ -<?php -/** - * This file is part of phpUnderControl. - * - * Copyright (c) 2007-2009, Manuel Pichler <mapi@phpundercontrol.org>. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Manuel Pichler nor the names of his - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -require_once dirname(__FILE__) . '/../../src/php/Math.php'; - -/** - * Simple math test class. - * - * @package Example - * @author Manuel Pichler <mapi@phpundercontrol.org> - * @copyright 2007-2009 Manuel Pichler. All rights reserved. - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version Release: 0.5.0 - * @link http://www.phpundercontrol.org/ - */ -class PhpUnderControl_Example_MathTest extends PHPUnit_Framework_TestCase -{ - /** - * The used math object. - * - * @var PhpUnderControl_Example_Math $math - */ - protected $math = null; - - /** - * Creates a new {@link PhpUnderControl_Example_Math} object. - */ - public function setUp() - { - parent::setUp(); - - $this->math = new PhpUnderControl_Example_Math(); - } - - /** - * Successful test. - */ - public function testAddSuccess() - { - sleep(2); - $this->assertEquals(4, $this->math->add(1, 3)); - } - - /** - * Successful test. - */ - public function testSubSuccess() - { - $this->assertEquals( -2, $this->math->sub( 1, 3 ) ); - } - - /** - * Failing test. - */ - public function testSubFail() - { - sleep(2); - $this->assertEquals( 0, $this->math->sub( 2, 1 ) ); - } - - /** - * Test case with data provider. - * - * @dataProvider dataProviderOne - */ - public function testDataProviderOneWillFail( $x, $y ) - { - sleep(1); - $this->assertEquals( 1, $this->math->sub( $x, $y ) ); - } - - /** - * Test case with data provider. - * - * @dataProvider dataProviderTwo - */ - public function testDataProviderAllWillFail( $x, $y ) - { - $this->assertEquals( 1, $this->math->sub( $x, $y ) ); - } - - /** - * Failing test. - */ - public function testFail() - { - $this->fail('Failed because...'); - } - - /** - * Skipping test. - */ - public function testMarkSkip() - { - $this->markTestSkipped('Skipped because...'); - } - - /** - * Skipping test. - */ - public function testMarkIncomplete() - { - $this->markTestIncomplete('Incomplete because...'); - } - - /** - * Example data provider. - * - * @return array(array) - */ - public static function dataProviderOne() - { - return array( - array( 2, 1 ), - array( 3, 2 ), - array( 7, 1 ), - array( 9, 8 ), - ); - } - - /** - * Example data provider. - * - * @return array(array) - */ - public static function dataProviderTwo() - { - return array( - array( 17, 42 ), - array( 13, 23 ), - array( 42, 17 ), - array( 23, 13 ), - ); - } -} diff --git a/it/it-projects/projectSearch/xoo-history-v1/sonar-project.properties b/it/it-projects/projectSearch/xoo-history-v1/sonar-project.properties deleted file mode 100644 index ede32ccb043..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=0.9-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo b/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures b/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo b/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures b/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/it/it-projects/projectSearch/xoo-history-v2/sonar-project.properties b/it/it-projects/projectSearch/xoo-history-v2/sonar-project.properties deleted file mode 100644 index 42a4d832540..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v2/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo
\ No newline at end of file diff --git a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo b/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo deleted file mode 100644 index b0fd1087030..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassAdded { - - public ClassAdded(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures b/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.scm b/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.scm deleted file mode 100644 index 63fb4b3888e..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.scm +++ /dev/null @@ -1,13 +0,0 @@ -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01
\ No newline at end of file diff --git a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo b/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 393111bbab0..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - public String addedMethod() { - return "This method was added in v2"; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures b/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 5de11af72ed..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:16 -classes:1 -complexity:5 -complexity_in_classes:4 diff --git a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.scm b/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.scm deleted file mode 100644 index 7d71523dcf4..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.scm +++ /dev/null @@ -1,17 +0,0 @@ -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31
\ No newline at end of file diff --git a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo b/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures b/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.scm b/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.scm deleted file mode 100644 index 72dc2d569bf..00000000000 --- a/it/it-projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.scm +++ /dev/null @@ -1,13 +0,0 @@ -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31
\ No newline at end of file diff --git a/it/it-projects/qualitygate/xoo-sample/sonar-project.properties b/it/it-projects/qualitygate/xoo-sample/sonar-project.properties deleted file mode 100644 index 8819d09dd60..00000000000 --- a/it/it-projects/qualitygate/xoo-sample/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src diff --git a/it/it-projects/qualitygate/xoo-sample/src/sample/Sample.xoo b/it/it-projects/qualitygate/xoo-sample/src/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/qualitygate/xoo-sample/src/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/qualitygate/xoo-sample/src/sample/Sample.xoo.measures b/it/it-projects/qualitygate/xoo-sample/src/sample/Sample.xoo.measures deleted file mode 100644 index f67312c1004..00000000000 --- a/it/it-projects/qualitygate/xoo-sample/src/sample/Sample.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:13 -complexity:7 -test_execution_time:630 -#Used by dashboard/widgets tests -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/qualitygate/xoo-sample/src/sample/Sample2.xoo b/it/it-projects/qualitygate/xoo-sample/src/sample/Sample2.xoo deleted file mode 100644 index 6c1b6459c34..00000000000 --- a/it/it-projects/qualitygate/xoo-sample/src/sample/Sample2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod2() { - return "hello"; - } -} diff --git a/it/it-projects/qualitygate/xoo-sample/src/sample/Sample2.xoo.measures b/it/it-projects/qualitygate/xoo-sample/src/sample/Sample2.xoo.measures deleted file mode 100644 index 22e229b6ed0..00000000000 --- a/it/it-projects/qualitygate/xoo-sample/src/sample/Sample2.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -complexity:7 -test_execution_time:630 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/scm/xoo-sample-with-scm/sonar-project.properties b/it/it-projects/scm/xoo-sample-with-scm/sonar-project.properties deleted file mode 100644 index 73645df942f..00000000000 --- a/it/it-projects/scm/xoo-sample-with-scm/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-scm -sonar.projectName=Sample SCM -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo b/it/it-projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 9dc354b8608..00000000000 --- a/it/it-projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,7 +0,0 @@ -package sample; - -public class Sample { - - private String myMethod() { - } -} diff --git a/it/it-projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo.scm b/it/it-projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index 6db3ba66128..00000000000 --- a/it/it-projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2013-01-04T00:00:00+0000 -1,jhenry,2013-01-04T00:00:00+0000 -2,jhenry,2013-01-04T00:00:00+0000 -1,jhenry,2013-01-04T00:00:00+0000 -1,jhenry,2013-01-04T00:00:00+0000 -1,jhenry,2013-01-04T00:00:00+0000 -1,jhenry,2013-01-04T00:00:00+0000 -3,toto,2014-01-04T00:00:00+0000 diff --git a/it/it-projects/shared/multi-modules-sample/module_a/module_a1/pom.xml b/it/it-projects/shared/multi-modules-sample/module_a/module_a1/pom.xml deleted file mode 100644 index b514c6ee0c7..00000000000 --- a/it/it-projects/shared/multi-modules-sample/module_a/module_a1/pom.xml +++ /dev/null @@ -1,14 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>module_a1</artifactId> - <packaging>jar</packaging> - <name>Sub-module A1</name> - - <parent> - <groupId>com.sonarsource.it.samples</groupId> - <artifactId>module_a</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> - -</project>
\ No newline at end of file diff --git a/it/it-projects/shared/multi-modules-sample/module_a/module_a1/src/main/java/com/sonar/it/samples/modules/a1/HelloA1.java b/it/it-projects/shared/multi-modules-sample/module_a/module_a1/src/main/java/com/sonar/it/samples/modules/a1/HelloA1.java deleted file mode 100644 index 7471eaf64a9..00000000000 --- a/it/it-projects/shared/multi-modules-sample/module_a/module_a1/src/main/java/com/sonar/it/samples/modules/a1/HelloA1.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/shared/multi-modules-sample/module_a/module_a2/pom.xml b/it/it-projects/shared/multi-modules-sample/module_a/module_a2/pom.xml deleted file mode 100644 index c9bc3ce46db..00000000000 --- a/it/it-projects/shared/multi-modules-sample/module_a/module_a2/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>module_a2</artifactId> - <packaging>jar</packaging> - <name>Sub-module A2</name> - - <parent> - <groupId>com.sonarsource.it.samples</groupId> - <artifactId>module_a</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> -</project>
\ No newline at end of file diff --git a/it/it-projects/shared/multi-modules-sample/module_a/module_a2/src/main/java/com/sonar/it/samples/modules/a2/HelloA2.java b/it/it-projects/shared/multi-modules-sample/module_a/module_a2/src/main/java/com/sonar/it/samples/modules/a2/HelloA2.java deleted file mode 100644 index 3d767d9500a..00000000000 --- a/it/it-projects/shared/multi-modules-sample/module_a/module_a2/src/main/java/com/sonar/it/samples/modules/a2/HelloA2.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/shared/multi-modules-sample/module_a/pom.xml b/it/it-projects/shared/multi-modules-sample/module_a/pom.xml deleted file mode 100644 index 793fbcf8420..00000000000 --- a/it/it-projects/shared/multi-modules-sample/module_a/pom.xml +++ /dev/null @@ -1,17 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>module_a</artifactId> - <packaging>pom</packaging> - <name>Module A</name> - - <parent> - <groupId>com.sonarsource.it.samples</groupId> - <artifactId>multi-modules-sample</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> - <modules> - <module>module_a1</module> - <module>module_a2</module> - </modules> -</project>
\ No newline at end of file diff --git a/it/it-projects/shared/multi-modules-sample/module_b/module_b1/pom.xml b/it/it-projects/shared/multi-modules-sample/module_b/module_b1/pom.xml deleted file mode 100644 index dc2cc52447f..00000000000 --- a/it/it-projects/shared/multi-modules-sample/module_b/module_b1/pom.xml +++ /dev/null @@ -1,14 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>module_b1</artifactId> - <packaging>jar</packaging> - <name>Sub-module B1</name> - - <parent> - <groupId>com.sonarsource.it.samples</groupId> - <artifactId>module_b</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> - -</project>
\ No newline at end of file diff --git a/it/it-projects/shared/multi-modules-sample/module_b/module_b1/src/main/java/com/sonar/it/samples/modules/b1/HelloB1.java b/it/it-projects/shared/multi-modules-sample/module_b/module_b1/src/main/java/com/sonar/it/samples/modules/b1/HelloB1.java deleted file mode 100644 index b83c3af128c..00000000000 --- a/it/it-projects/shared/multi-modules-sample/module_b/module_b1/src/main/java/com/sonar/it/samples/modules/b1/HelloB1.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/shared/multi-modules-sample/module_b/module_b2/pom.xml b/it/it-projects/shared/multi-modules-sample/module_b/module_b2/pom.xml deleted file mode 100644 index 9ed7337e659..00000000000 --- a/it/it-projects/shared/multi-modules-sample/module_b/module_b2/pom.xml +++ /dev/null @@ -1,14 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>module_b2</artifactId> - <packaging>jar</packaging> - <name>Sub-module B2</name> - - <parent> - <groupId>com.sonarsource.it.samples</groupId> - <artifactId>module_b</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> - -</project>
\ No newline at end of file diff --git a/it/it-projects/shared/multi-modules-sample/module_b/module_b2/src/main/java/com/sonar/it/samples/modules/b2/HelloB2.java b/it/it-projects/shared/multi-modules-sample/module_b/module_b2/src/main/java/com/sonar/it/samples/modules/b2/HelloB2.java deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/it/it-projects/shared/multi-modules-sample/module_b/module_b2/src/main/java/com/sonar/it/samples/modules/b2/HelloB2.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/shared/multi-modules-sample/module_b/pom.xml b/it/it-projects/shared/multi-modules-sample/module_b/pom.xml deleted file mode 100644 index 2259da3ef66..00000000000 --- a/it/it-projects/shared/multi-modules-sample/module_b/pom.xml +++ /dev/null @@ -1,17 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>module_b</artifactId> - <packaging>pom</packaging> - <name>Module B</name> - - <parent> - <groupId>com.sonarsource.it.samples</groupId> - <artifactId>multi-modules-sample</artifactId> - <version>1.0-SNAPSHOT</version> - </parent> - <modules> - <module>module_b1</module> - <module>module_b2</module> - </modules> -</project>
\ No newline at end of file diff --git a/it/it-projects/shared/multi-modules-sample/pom.xml b/it/it-projects/shared/multi-modules-sample/pom.xml deleted file mode 100644 index 21db9df608a..00000000000 --- a/it/it-projects/shared/multi-modules-sample/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.sonarsource.it.samples</groupId> - <artifactId>multi-modules-sample</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>pom</packaging> - <name>Sonar :: Integration Tests :: Multi-modules Sample</name> - - <modules> - <module>module_a</module> - <module>module_b</module> - </modules> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> - <scope>test</scope> - </dependency> - </dependencies> - - - <properties> - <sonar.language>java</sonar.language> - </properties> -</project> diff --git a/it/it-projects/shared/multi-modules-sample/sonar-project.properties b/it/it-projects/shared/multi-modules-sample/sonar-project.properties deleted file mode 100644 index 9e2528c95b9..00000000000 --- a/it/it-projects/shared/multi-modules-sample/sonar-project.properties +++ /dev/null @@ -1,16 +0,0 @@ -sonar.projectKey=multi-modules-sample -sonar.projectName=Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/java -sonar.language=java - -sonar.modules=module_a,module_b -module_a.sonar.projectName=Module A -module_a.sonar.modules=module_a1,module_a2 -module_a.module_a1.sonar.projectName=Sub-module A1 -module_a.module_a2.sonar.projectName=Sub-module A2 -module_b.sonar.projectName=Module B -module_b.sonar.modules=module_b1,module_b2 -module_b.module_b1.sonar.projectName=Sub-module B1 -module_b.module_b2.sonar.projectName=Sub-module B2 - diff --git a/it/it-projects/shared/xoo-history-v1/sonar-project.properties b/it/it-projects/shared/xoo-history-v1/sonar-project.properties deleted file mode 100644 index ede32ccb043..00000000000 --- a/it/it-projects/shared/xoo-history-v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=0.9-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo b/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures b/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo b/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures b/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/it/it-projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/it/it-projects/shared/xoo-history-v2/sonar-project.properties b/it/it-projects/shared/xoo-history-v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/it/it-projects/shared/xoo-history-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo b/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo deleted file mode 100644 index b0fd1087030..00000000000 --- a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassAdded { - - public ClassAdded(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures b/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo b/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 393111bbab0..00000000000 --- a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - public String addedMethod() { - return "This method was added in v2"; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures b/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 5de11af72ed..00000000000 --- a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:16 -classes:1 -complexity:5 -complexity_in_classes:4 diff --git a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo b/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures b/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/it/it-projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/sonar-project.properties b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/sonar-project.properties b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 796d90cfad5..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,20 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - - public HelloA2(int i) { - int j = i++; - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 63df5add6d4..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:15 -classes:1 diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/sonar-project.properties b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/sonar-project.properties b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/sonar-project.properties b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/sonar-project.properties deleted file mode 100644 index 7bc39b44133..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/sonar-project.properties +++ /dev/null @@ -1,3 +0,0 @@ -sonar.projectKey=module_b - -sonar.modules=module_b1,module_b2 diff --git a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/sonar-project.properties b/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/sonar-project.properties deleted file mode 100644 index 074304998f5..00000000000 --- a/it/it-projects/shared/xoo-multi-module-sample-without-project-name-version/sonar-project.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties b/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -}
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index f3953ccd0fe..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -cognitive_complexity:4 diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties b/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 796d90cfad5..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,20 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - - public HelloA2(int i) { - int j = i++; - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index a23e10d8ab4..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,5 +0,0 @@ -ncloc:15 -classes:1 -complexity:4 -cognitive_complexity:5 - diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_a/sonar-project.properties b/it/it-projects/shared/xoo-multi-modules-sample/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties b/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index f3953ccd0fe..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -cognitive_complexity:4 diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties b/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index f3953ccd0fe..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -cognitive_complexity:4 diff --git a/it/it-projects/shared/xoo-multi-modules-sample/module_b/sonar-project.properties b/it/it-projects/shared/xoo-multi-modules-sample/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/it/it-projects/shared/xoo-multi-modules-sample/sonar-project.properties b/it/it-projects/shared/xoo-multi-modules-sample/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/it/it-projects/shared/xoo-multi-modules-sample/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/it/it-projects/shared/xoo-precise-issues/sonar-project.properties b/it/it-projects/shared/xoo-precise-issues/sonar-project.properties deleted file mode 100644 index 1a7b22bbc15..00000000000 --- a/it/it-projects/shared/xoo-precise-issues/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-multiline -sonar.projectName=Sample Multiline -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/shared/xoo-precise-issues/src/main/xoo/sample/Sample.xoo b/it/it-projects/shared/xoo-precise-issues/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 56ce09970af..00000000000 --- a/it/it-projects/shared/xoo-precise-issues/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j {xoo-start-issue:0}= i++{xoo-end-issue:0}; - } - - {xoo-start-issue:1}private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - }{xoo-end-issue:1} -} diff --git a/it/it-projects/shared/xoo-sample-module-move-v1/module_a/sonar-project.properties b/it/it-projects/shared/xoo-sample-module-move-v1/module_a/sonar-project.properties deleted file mode 100644 index 627ee34d167..00000000000 --- a/it/it-projects/shared/xoo-sample-module-move-v1/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A -# mandatory to reproduce the problem -sonar.moduleKey=module_a diff --git a/it/it-projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo b/it/it-projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/it/it-projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/it/it-projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/shared/xoo-sample-module-move-v1/sonar-project.properties b/it/it-projects/shared/xoo-sample-module-move-v1/sonar-project.properties deleted file mode 100644 index 80a6207ca5c..00000000000 --- a/it/it-projects/shared/xoo-sample-module-move-v1/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a diff --git a/it/it-projects/shared/xoo-sample-module-move-v2/new_module/module_a/sonar-project.properties b/it/it-projects/shared/xoo-sample-module-move-v2/new_module/module_a/sonar-project.properties deleted file mode 100644 index 627ee34d167..00000000000 --- a/it/it-projects/shared/xoo-sample-module-move-v2/new_module/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A -# mandatory to reproduce the problem -sonar.moduleKey=module_a diff --git a/it/it-projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo b/it/it-projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/it/it-projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/it/it-projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/shared/xoo-sample-module-move-v2/new_module/sonar-project.properties b/it/it-projects/shared/xoo-sample-module-move-v2/new_module/sonar-project.properties deleted file mode 100644 index 22721e824fa..00000000000 --- a/it/it-projects/shared/xoo-sample-module-move-v2/new_module/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=new_module -sonar.projectName=New Module - -sonar.modules=module_a diff --git a/it/it-projects/shared/xoo-sample-module-move-v2/sonar-project.properties b/it/it-projects/shared/xoo-sample-module-move-v2/sonar-project.properties deleted file mode 100644 index ce727e4ea81..00000000000 --- a/it/it-projects/shared/xoo-sample-module-move-v2/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=new_module diff --git a/it/it-projects/shared/xoo-sample-non-associated/sonar-project.properties b/it/it-projects/shared/xoo-sample-non-associated/sonar-project.properties deleted file mode 100644 index 71b83e48b9f..00000000000 --- a/it/it-projects/shared/xoo-sample-non-associated/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -#sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo b/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/it/it-projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/shared/xoo-sample-with-root-dir/Hello.xoo b/it/it-projects/shared/xoo-sample-with-root-dir/Hello.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/it/it-projects/shared/xoo-sample-with-root-dir/Hello.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -}
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-sample-with-root-dir/sonar-project.properties b/it/it-projects/shared/xoo-sample-with-root-dir/sonar-project.properties deleted file mode 100644 index 35fbcff0e60..00000000000 --- a/it/it-projects/shared/xoo-sample-with-root-dir/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-with-root-dir -sonar.projectName=Sample With Root Dir -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=. -sonar.language=xoo diff --git a/it/it-projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo b/it/it-projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/it/it-projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/it/it-projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/shared/xoo-sample-with-tests/sonar-project.properties b/it/it-projects/shared/xoo-sample-with-tests/sonar-project.properties deleted file mode 100644 index 0f2415d0320..00000000000 --- a/it/it-projects/shared/xoo-sample-with-tests/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample-with-tests -sonar.projectName=Sample with tests -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.tests=src/test/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo b/it/it-projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index c427258db4e..00000000000 --- a/it/it-projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,5 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity_in_classes:3 -classes:1 -comment_lines:0 diff --git a/it/it-projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo b/it/it-projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo deleted file mode 100644 index 1392fc64ebf..00000000000 --- a/it/it-projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo +++ /dev/null @@ -1,21 +0,0 @@ -package sample; - -import org.hamcrest.CoreMatchers; -import org.junit.Test; - -import static org.junit.Assert.assertThat; - -public class SampleTest { - - @Test - public void should_return_i() { - Sample sample = new Sample(1); - assertThat(sample.getI(), CoreMatchers.is(1)); - } - - @Test - public void should_return_to_string() { - assertThat(new Sample(1).toString(), CoreMatchers.is("1")); - } - -} diff --git a/it/it-projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo.measures b/it/it-projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo.measures deleted file mode 100644 index 5a3f14e5962..00000000000 --- a/it/it-projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo.measures +++ /dev/null @@ -1,6 +0,0 @@ -ncloc:22 -tests:2 -test_execution_time:1 -skipped_tests:0 -test_errors:0 -test_failures:0
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-sample/sonar-project.properties b/it/it-projects/shared/xoo-sample/sonar-project.properties deleted file mode 100644 index 9e4aa0e3584..00000000000 --- a/it/it-projects/shared/xoo-sample/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo b/it/it-projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/it/it-projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 06c9b6c2f38..00000000000 --- a/it/it-projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -cognitive_complexity:4 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/it/it-projects/shared/xoo-two-letters-named/sonar-project.properties b/it/it-projects/shared/xoo-two-letters-named/sonar-project.properties deleted file mode 100644 index c0ebb39302f..00000000000 --- a/it/it-projects/shared/xoo-two-letters-named/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=xo -sonar.projectName=xo -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo b/it/it-projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 56acf8077d6..00000000000 --- a/it/it-projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:9 diff --git a/it/it-projects/sourceCode/japanese-charset/sonar-project.properties b/it/it-projects/sourceCode/japanese-charset/sonar-project.properties deleted file mode 100644 index 3c21994665d..00000000000 --- a/it/it-projects/sourceCode/japanese-charset/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=japanese-charset -sonar.projectName=Japanese charset -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.sourceEncoding=Shift_JIS diff --git a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo b/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo deleted file mode 100644 index 5496feccf6a..00000000000 --- a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo +++ /dev/null @@ -1,75 +0,0 @@ -package com.test; - -import java.io.PrintWriter; - -/** - * Hello world! - * - */ -public class App -{ - /** - * ’ŠÛƒNƒ‰ƒX‚𓱓ü - * - * - * - */ - public static void main( String[] args ) - { - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - int d1; - int d2; - int d3; - int d4; - int d5; - int d6; - int d7; - int d8; - int d9; - int d10; - } - - public void test(PrintWriter pw) { - pw.print( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - } - - public void ƒnƒ[ƒ[ƒ‹ƒh() { - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - } -} diff --git a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo.measures b/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo.measures deleted file mode 100644 index 0478fb1e30a..00000000000 --- a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:76 diff --git a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo b/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo deleted file mode 100644 index 61a27c9aa45..00000000000 --- a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo +++ /dev/null @@ -1,43 +0,0 @@ -package com.test; - -/** - * Hello world! - * - */ -public class AppCpdBug -{ - /** - * ’ŠÛƒNƒ‰ƒX‚𓱓ü - * - * - * - */ - public static void main( String[] args ) - { - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - int d1; - int d2; - int d3; - int d4; - int d5; - int d6; - int d7; - int d8; - int d9; - int d10; - } -} diff --git a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo.measures b/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo.measures deleted file mode 100644 index 9fd62445ebd..00000000000 --- a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:44 diff --git a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo b/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo deleted file mode 100644 index f69e98cd252..00000000000 --- a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo +++ /dev/null @@ -1,65 +0,0 @@ -package com.test; - -/** - * Hello world! - * - */ -public class AppDuplication -{ - /** - * ’ŠÛƒNƒ‰ƒX‚𓱓ü - * - * - * - */ - public static void main( String[] args ) - { - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - int d1; - int d2; - int d3; - int d4; - int d5; - int d6; - int d7; - int d8; - int d9; - int d10; - } -} diff --git a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo.measures b/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo.measures deleted file mode 100644 index aad53b8fe28..00000000000 --- a/it/it-projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:66 diff --git a/it/it-projects/testing/README.txt b/it/it-projects/testing/README.txt deleted file mode 100644 index c21c5ec3452..00000000000 --- a/it/it-projects/testing/README.txt +++ /dev/null @@ -1,2 +0,0 @@ -Note that if you expect "test_execution_time" greater than zero, then you should guarantee execution time at least in 1 second. -So use Thread.sleep in order to have stable test. diff --git a/it/it-projects/testing/xoo-half-covered/pom.xml b/it/it-projects/testing/xoo-half-covered/pom.xml deleted file mode 100644 index 25b230c7864..00000000000 --- a/it/it-projects/testing/xoo-half-covered/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.sonarsource.it.exclusions</groupId> - <artifactId>java-half-covered</artifactId> - <version>1.0-SNAPSHOT</version> - <name>Sonar :: Integration Tests :: Java Half Covered</name> - - <url>http://www.javahalfcovered.org</url> - - <issueManagement> - <system>jira</system> - <url>http://jira.codehaus.org/browse/JAVAHALFCOVERED</url> - </issueManagement> - - <scm> - <connection>scm:git:git@github.com:SonarSource/javahalfcovered.git</connection> - <developerConnection>scm:git:git@github.com:SonarSource/javahalfcovered.git</developerConnection> - <url>https://github.com/SonarSource/javahalfcovered</url> - </scm> - - <properties> - <sonar.scm.disabled>true</sonar.scm.disabled> - </properties> - - <ciManagement> - <system>bamboo</system> - <url>http://bamboo.ci.codehaus.org/browse/JAVAHALFCOVERED</url> - </ciManagement> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.8.2</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.easytesting</groupId> - <artifactId>fest-assert</artifactId> - <version>1.4</version> - <scope>test</scope> - </dependency> - </dependencies> - -</project> diff --git a/it/it-projects/testing/xoo-half-covered/sonar-project.properties b/it/it-projects/testing/xoo-half-covered/sonar-project.properties deleted file mode 100644 index ea64e84c3a0..00000000000 --- a/it/it-projects/testing/xoo-half-covered/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=xoo-half-covered -sonar.projectName=Sample IT Coverage -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/Covered.xoo b/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/Covered.xoo deleted file mode 100644 index fc6abc4a88e..00000000000 --- a/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/Covered.xoo +++ /dev/null @@ -1,8 +0,0 @@ -package org.sonar.tests.halfcovered; - -public class Covered { - - public int returnOne() { - return 1; - } -} diff --git a/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/Covered.xoo.coverage b/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/Covered.xoo.coverage deleted file mode 100644 index 0f42ea6e2b5..00000000000 --- a/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/Covered.xoo.coverage +++ /dev/null @@ -1 +0,0 @@ -6:1 diff --git a/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/UnCovered.xoo b/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/UnCovered.xoo deleted file mode 100644 index 25f413c7c5a..00000000000 --- a/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/UnCovered.xoo +++ /dev/null @@ -1,8 +0,0 @@ -package org.sonar.tests.halfcovered; - -public class UnCovered { - - public int returnTwo() { - return 2; - } -} diff --git a/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/UnCovered.xoo.coverage b/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/UnCovered.xoo.coverage deleted file mode 100644 index 126ba135e20..00000000000 --- a/it/it-projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/UnCovered.xoo.coverage +++ /dev/null @@ -1 +0,0 @@ -6:0 diff --git a/it/it-projects/testing/xoo-sample-it-coverage/sonar-project.properties b/it/it-projects/testing/xoo-sample-it-coverage/sonar-project.properties deleted file mode 100644 index 18e56c6eb75..00000000000 --- a/it/it-projects/testing/xoo-sample-it-coverage/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-it-coverage -sonar.projectName=Sample IT Coverage -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/testing/xoo-sample-it-coverage/src/main/xoo/sample/Sample.xoo b/it/it-projects/testing/xoo-sample-it-coverage/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/it/it-projects/testing/xoo-sample-it-coverage/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/testing/xoo-sample-it-coverage/src/main/xoo/sample/Sample.xoo.itcoverage b/it/it-projects/testing/xoo-sample-it-coverage/src/main/xoo/sample/Sample.xoo.itcoverage deleted file mode 100644 index 36860af51ff..00000000000 --- a/it/it-projects/testing/xoo-sample-it-coverage/src/main/xoo/sample/Sample.xoo.itcoverage +++ /dev/null @@ -1,4 +0,0 @@ -6:2 -10:0:2:1 -11:1 -13:0
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v1/sonar-project.properties b/it/it-projects/testing/xoo-sample-new-coverage-v1/sonar-project.properties deleted file mode 100644 index a711b2bd89e..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v1/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample-new-coverage -sonar.projectName=Sample new Coverage -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo b/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.coverage b/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.coverage deleted file mode 100644 index a2d656d1c9d..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.coverage +++ /dev/null @@ -1 +0,0 @@ -6:2:3:3 diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.itcoverage b/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.itcoverage deleted file mode 100644 index a2d656d1c9d..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.itcoverage +++ /dev/null @@ -1 +0,0 @@ -6:2:3:3 diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 18b6b8eb944..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:17 - diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.overallcoverage b/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.overallcoverage deleted file mode 100644 index a2d656d1c9d..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.overallcoverage +++ /dev/null @@ -1 +0,0 @@ -6:2:3:3 diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.scm b/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index e047ea4394e..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,17 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v2/sonar-project.properties b/it/it-projects/testing/xoo-sample-new-coverage-v2/sonar-project.properties deleted file mode 100644 index a711b2bd89e..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v2/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample-new-coverage -sonar.projectName=Sample new Coverage -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo b/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 83b519b4b1a..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo2 == bar2) { - return "hello2"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.coverage b/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.coverage deleted file mode 100644 index cd6fabd8eec..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.coverage +++ /dev/null @@ -1,6 +0,0 @@ -6:0:3:1 -7:1:3:1 -8:0 -9:1 -10:1 -11:1 diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.itcoverage b/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.itcoverage deleted file mode 100644 index 77bdb584a48..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.itcoverage +++ /dev/null @@ -1,5 +0,0 @@ -6:0:3:1 -7:1:3:2 -8:1 -9:1 -10:1 diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.measures b/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index e4f33ed58ed..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:17 diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.overallcoverage b/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.overallcoverage deleted file mode 100644 index ab5d844418e..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.overallcoverage +++ /dev/null @@ -1,3 +0,0 @@ -6:0:3:1 -7:1:3:2 -8:0:4:1 diff --git a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.scm b/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index 06d9b20756a..00000000000 --- a/it/it-projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,17 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-06-06 -4,user4,2015-06-07 -4,user4,2015-06-07 -4,user4,2015-06-07 -4,user4,2015-06-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/it/it-projects/testing/xoo-sample-overall-coverage/sonar-project.properties b/it/it-projects/testing/xoo-sample-overall-coverage/sonar-project.properties deleted file mode 100644 index 65fb9b6ed33..00000000000 --- a/it/it-projects/testing/xoo-sample-overall-coverage/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-overall-coverage -sonar.projectName=Sample Overall Coverage -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo b/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 1674d4578dc..00000000000 --- a/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar && biz > 1) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.coverage b/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.coverage deleted file mode 100644 index 1c244dbc697..00000000000 --- a/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.coverage +++ /dev/null @@ -1,4 +0,0 @@ -6:2 -10:0:4:1 -11:1 -13:0
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.itcoverage b/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.itcoverage deleted file mode 100644 index 808d5b37e98..00000000000 --- a/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.itcoverage +++ /dev/null @@ -1,4 +0,0 @@ -6:2 -10:0:4:1 -11:0 -13:1
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.overallcoverage b/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.overallcoverage deleted file mode 100644 index 82024035bff..00000000000 --- a/it/it-projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.overallcoverage +++ /dev/null @@ -1,4 +0,0 @@ -6:2 -10:0:4:2 -11:1 -13:1
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-ut-coverage-no-condition/sonar-project.properties b/it/it-projects/testing/xoo-sample-ut-coverage-no-condition/sonar-project.properties deleted file mode 100644 index a931c4c7093..00000000000 --- a/it/it-projects/testing/xoo-sample-ut-coverage-no-condition/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-ut-coverage -sonar.projectName=Sample UT Coverage -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/testing/xoo-sample-ut-coverage-no-condition/src/main/xoo/sample/Sample.xoo b/it/it-projects/testing/xoo-sample-ut-coverage-no-condition/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/it/it-projects/testing/xoo-sample-ut-coverage-no-condition/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/testing/xoo-sample-ut-coverage-no-condition/src/main/xoo/sample/Sample.xoo.coverage b/it/it-projects/testing/xoo-sample-ut-coverage-no-condition/src/main/xoo/sample/Sample.xoo.coverage deleted file mode 100644 index 5e59aed012e..00000000000 --- a/it/it-projects/testing/xoo-sample-ut-coverage-no-condition/src/main/xoo/sample/Sample.xoo.coverage +++ /dev/null @@ -1,4 +0,0 @@ -6:2 -10:0 -11:1 -13:0
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-ut-coverage/sonar-project.properties b/it/it-projects/testing/xoo-sample-ut-coverage/sonar-project.properties deleted file mode 100644 index a931c4c7093..00000000000 --- a/it/it-projects/testing/xoo-sample-ut-coverage/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-ut-coverage -sonar.projectName=Sample UT Coverage -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/it/it-projects/testing/xoo-sample-ut-coverage/src/main/xoo/sample/Sample.xoo b/it/it-projects/testing/xoo-sample-ut-coverage/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/it/it-projects/testing/xoo-sample-ut-coverage/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/it/it-projects/testing/xoo-sample-ut-coverage/src/main/xoo/sample/Sample.xoo.coverage b/it/it-projects/testing/xoo-sample-ut-coverage/src/main/xoo/sample/Sample.xoo.coverage deleted file mode 100644 index 36860af51ff..00000000000 --- a/it/it-projects/testing/xoo-sample-ut-coverage/src/main/xoo/sample/Sample.xoo.coverage +++ /dev/null @@ -1,4 +0,0 @@ -6:2 -10:0:2:1 -11:1 -13:0
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-with-coverage-per-test/sonar-project.properties b/it/it-projects/testing/xoo-sample-with-coverage-per-test/sonar-project.properties deleted file mode 100644 index 0f2415d0320..00000000000 --- a/it/it-projects/testing/xoo-sample-with-coverage-per-test/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample-with-tests -sonar.projectName=Sample with tests -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.tests=src/test/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/main/xoo/sample/Sample.xoo b/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/main/xoo/sample/Sample2.xoo b/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/main/xoo/sample/Sample2.xoo deleted file mode 100644 index ed097595590..00000000000 --- a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/main/xoo/sample/Sample2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample2 { - - public Sample2(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo b/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo deleted file mode 100644 index fe2368fefaa..00000000000 --- a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo +++ /dev/null @@ -1,32 +0,0 @@ -package sample; - -import org.hamcrest.CoreMatchers; -import org.junit.Test; - -import static org.junit.Assert.assertThat; - -public class SampleTest { - - @Test - @Ignore - public void skipped() { - Sample sample = new Sample(1); - assertThat(sample.getI(), CoreMatchers.is(1)); - } - - @Test - public void failure() { - fail(); - } - - @Test - public void error() { - throw new IllegalStateException("Foo"); - } - - @Test - public void success() { - System.out.println("OK"); - } - -} diff --git a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo.test b/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo.test deleted file mode 100644 index 9686b58c1d6..00000000000 --- a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo.test +++ /dev/null @@ -1 +0,0 @@ -another test:10:::OK:UT
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo.testcoverage b/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo.testcoverage deleted file mode 100644 index b7f37235ced..00000000000 --- a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo.testcoverage +++ /dev/null @@ -1 +0,0 @@ -another test;src/main/xoo/sample/Sample.xoo,6 diff --git a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo b/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo deleted file mode 100644 index fe2368fefaa..00000000000 --- a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo +++ /dev/null @@ -1,32 +0,0 @@ -package sample; - -import org.hamcrest.CoreMatchers; -import org.junit.Test; - -import static org.junit.Assert.assertThat; - -public class SampleTest { - - @Test - @Ignore - public void skipped() { - Sample sample = new Sample(1); - assertThat(sample.getI(), CoreMatchers.is(1)); - } - - @Test - public void failure() { - fail(); - } - - @Test - public void error() { - throw new IllegalStateException("Foo"); - } - - @Test - public void success() { - System.out.println("OK"); - } - -} diff --git a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo.test b/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo.test deleted file mode 100644 index b0259693199..00000000000 --- a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo.test +++ /dev/null @@ -1,4 +0,0 @@ -skipped::::SKIPPED:UNIT -failure:2:Failure::FAILURE:UNIT -error:2:Error:The stack:ERROR:UNIT -success:4:::OK:INTEGRATION
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo.testcoverage b/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo.testcoverage deleted file mode 100644 index f6765cf74f0..00000000000 --- a/it/it-projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo.testcoverage +++ /dev/null @@ -1,2 +0,0 @@ -success;src/main/xoo/sample/Sample.xoo,6,10;src/main/xoo/sample/Sample2.xoo,10 -failure;src/main/xoo/sample/Sample.xoo,6
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-with-tests-execution-details/sonar-project.properties b/it/it-projects/testing/xoo-sample-with-tests-execution-details/sonar-project.properties deleted file mode 100644 index 0f2415d0320..00000000000 --- a/it/it-projects/testing/xoo-sample-with-tests-execution-details/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample-with-tests -sonar.projectName=Sample with tests -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.tests=src/test/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-with-tests-execution-details/src/main/xoo/sample/Sample.xoo b/it/it-projects/testing/xoo-sample-with-tests-execution-details/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/testing/xoo-sample-with-tests-execution-details/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/testing/xoo-sample-with-tests-execution-details/src/test/xoo/sample/SampleTest.xoo b/it/it-projects/testing/xoo-sample-with-tests-execution-details/src/test/xoo/sample/SampleTest.xoo deleted file mode 100644 index fe2368fefaa..00000000000 --- a/it/it-projects/testing/xoo-sample-with-tests-execution-details/src/test/xoo/sample/SampleTest.xoo +++ /dev/null @@ -1,32 +0,0 @@ -package sample; - -import org.hamcrest.CoreMatchers; -import org.junit.Test; - -import static org.junit.Assert.assertThat; - -public class SampleTest { - - @Test - @Ignore - public void skipped() { - Sample sample = new Sample(1); - assertThat(sample.getI(), CoreMatchers.is(1)); - } - - @Test - public void failure() { - fail(); - } - - @Test - public void error() { - throw new IllegalStateException("Foo"); - } - - @Test - public void success() { - System.out.println("OK"); - } - -} diff --git a/it/it-projects/testing/xoo-sample-with-tests-execution-details/src/test/xoo/sample/SampleTest.xoo.test b/it/it-projects/testing/xoo-sample-with-tests-execution-details/src/test/xoo/sample/SampleTest.xoo.test deleted file mode 100644 index b0259693199..00000000000 --- a/it/it-projects/testing/xoo-sample-with-tests-execution-details/src/test/xoo/sample/SampleTest.xoo.test +++ /dev/null @@ -1,4 +0,0 @@ -skipped::::SKIPPED:UNIT -failure:2:Failure::FAILURE:UNIT -error:2:Error:The stack:ERROR:UNIT -success:4:::OK:INTEGRATION
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-with-tests-execution-measures/sonar-project.properties b/it/it-projects/testing/xoo-sample-with-tests-execution-measures/sonar-project.properties deleted file mode 100644 index 0f2415d0320..00000000000 --- a/it/it-projects/testing/xoo-sample-with-tests-execution-measures/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample-with-tests -sonar.projectName=Sample with tests -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.tests=src/test/xoo -sonar.language=xoo
\ No newline at end of file diff --git a/it/it-projects/testing/xoo-sample-with-tests-execution-measures/src/main/xoo/sample/Sample.xoo b/it/it-projects/testing/xoo-sample-with-tests-execution-measures/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/it/it-projects/testing/xoo-sample-with-tests-execution-measures/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/it/it-projects/testing/xoo-sample-with-tests-execution-measures/src/test/xoo/sample/SampleTest.xoo b/it/it-projects/testing/xoo-sample-with-tests-execution-measures/src/test/xoo/sample/SampleTest.xoo deleted file mode 100644 index fe2368fefaa..00000000000 --- a/it/it-projects/testing/xoo-sample-with-tests-execution-measures/src/test/xoo/sample/SampleTest.xoo +++ /dev/null @@ -1,32 +0,0 @@ -package sample; - -import org.hamcrest.CoreMatchers; -import org.junit.Test; - -import static org.junit.Assert.assertThat; - -public class SampleTest { - - @Test - @Ignore - public void skipped() { - Sample sample = new Sample(1); - assertThat(sample.getI(), CoreMatchers.is(1)); - } - - @Test - public void failure() { - fail(); - } - - @Test - public void error() { - throw new IllegalStateException("Foo"); - } - - @Test - public void success() { - System.out.println("OK"); - } - -} diff --git a/it/it-projects/testing/xoo-sample-with-tests-execution-measures/src/test/xoo/sample/SampleTest.xoo.measures b/it/it-projects/testing/xoo-sample-with-tests-execution-measures/src/test/xoo/sample/SampleTest.xoo.measures deleted file mode 100644 index de1549480b5..00000000000 --- a/it/it-projects/testing/xoo-sample-with-tests-execution-measures/src/test/xoo/sample/SampleTest.xoo.measures +++ /dev/null @@ -1,5 +0,0 @@ -tests:3 -test_execution_time:8 -skipped_tests:1 -test_errors:1 -test_failures:1
\ No newline at end of file diff --git a/it/it-tests/pom.xml b/it/it-tests/pom.xml deleted file mode 100644 index 0e1ee808e14..00000000000 --- a/it/it-tests/pom.xml +++ /dev/null @@ -1,246 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - <artifactId>it-tests</artifactId> - <name>SonarQube Integration Tests :: Tests</name> - - <properties> - <category>*</category> - <skipIts>false</skipIts> - <jetty.version>9.3.11.v20160721</jetty.version> - </properties> - - <dependencies> - <!-- must be declared first --> - <dependency> - <groupId>org.sonarsource.orchestrator</groupId> - <artifactId>sonar-orchestrator</artifactId> - <version>${orchestrator.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>sonar-application</artifactId> - <version>${project.version}</version> - <type>zip</type> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonar-ws</artifactId> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>it-plugins</artifactId> - <version>${project.version}</version> - <type>pom</type> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>com.codeborne</groupId> - <artifactId>selenide</artifactId> - <version>4.4.3</version> - </dependency> - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - <!-- required for selenide --> - <version>21.0</version> - </dependency> - <dependency> - <groupId>org.codehaus.sonar</groupId> - <artifactId>sonar-ws-client</artifactId> - <version>5.0</version> - </dependency> - <dependency> - <groupId>org.codehaus.sonar</groupId> - <artifactId>sonar-update-center-common</artifactId> - <version>1.12.1</version> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> - </dependency> - <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-guava</artifactId> - </dependency> - <dependency> - <groupId>org.hamcrest</groupId> - <artifactId>hamcrest-all</artifactId> - </dependency> - <dependency> - <groupId>com.googlecode.json-simple</groupId> - <artifactId>json-simple</artifactId> - </dependency> - <dependency> - <groupId>org.skyscreamer</groupId> - <artifactId>jsonassert</artifactId> - <version>1.2.0</version> - </dependency> - <dependency> - <groupId>org.jsoup</groupId> - <artifactId>jsoup</artifactId> - <version>1.8.3</version> - </dependency> - <dependency> - <groupId>com.squareup.okhttp3</groupId> - <artifactId>mockwebserver</artifactId> - </dependency> - - <!-- Email notifications --> - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-email</artifactId> - </dependency> - <dependency> - <groupId>org.subethamail</groupId> - <artifactId>subethasmtp</artifactId> - </dependency> - - <!-- SSL tests --> - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-server</artifactId> - <version>${jetty.version}</version> - </dependency> - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-servlet</artifactId> - <version>${jetty.version}</version> - </dependency> - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-proxy</artifactId> - <version>${jetty.version}</version> - </dependency> - <dependency> - <groupId>org.sonarsource.scanner.cli</groupId> - <artifactId>sonar-scanner-cli</artifactId> - <version>2.7</version> - <type>zip</type> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>-Xmx128m -Dsonar.runtimeVersion=${project.version} - -Dmaven.localRepository=${settings.localRepository} - </argLine> - <skipTests>${skipIts}</skipTests> - <includes> - <include>*/${category}Suite.java</include> - </includes> - </configuration> - </plugin> - </plugins> - </build> - - <profiles> - <profile> - <id>qa</id> - <activation> - <property> - <name>env.SONARSOURCE_QA</name> - <value>true</value> - </property> - </activation> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <executions> - <execution> - <id>copy-sonarqube-zip</id> - <phase>generate-test-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <artifactItems> - <artifactItem> - <groupId>${project.groupId}</groupId> - <artifactId>sonar-application</artifactId> - <version>${project.version}</version> - <type>zip</type> - <overWrite>true</overWrite> - </artifactItem> - </artifactItems> - <outputDirectory>${project.basedir}/../../sonar-application/target</outputDirectory> - <overWriteReleases>true</overWriteReleases> - <overWriteSnapshots>true</overWriteSnapshots> - </configuration> - </execution> - <execution> - <id>copy-xoo-plugin</id> - <phase>generate-test-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <artifactItems> - <artifactItem> - <groupId>${project.groupId}</groupId> - <artifactId>sonar-xoo-plugin</artifactId> - <version>${project.version}</version> - <type>sonar-plugin</type> - <overWrite>true</overWrite> - </artifactItem> - </artifactItems> - <outputDirectory>${project.basedir}/../../plugins/sonar-xoo-plugin/target</outputDirectory> - <overWriteReleases>true</overWriteReleases> - <overWriteSnapshots>true</overWriteSnapshots> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>with-db-drivers</id> - <activation> - <property> - <name>with-db-drivers</name> - </property> - </activation> - <dependencies> - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - </dependency> - <dependency> - <groupId>org.postgresql</groupId> - <artifactId>postgresql</artifactId> - </dependency> - <dependency> - <groupId>com.oracle</groupId> - <artifactId>ojdbc6</artifactId> - </dependency> - <dependency> - <groupId>com.microsoft.sqlserver</groupId> - <artifactId>mssql-jdbc</artifactId> - </dependency> - </dependencies> - </profile> - </profiles> - - -</project> diff --git a/it/it-tests/src/test/java/it/Category1Suite.java b/it/it-tests/src/test/java/it/Category1Suite.java deleted file mode 100644 index af6812ff25a..00000000000 --- a/it/it-tests/src/test/java/it/Category1Suite.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it; - -import com.sonar.orchestrator.Orchestrator; -import it.administration.ProjectsAdministrationTest; -import it.administration.UsersPageTest; -import it.authorisation.ExecuteAnalysisPermissionTest; -import it.authorisation.IssuePermissionTest; -import it.authorisation.PermissionSearchTest; -import it.authorisation.ProvisioningPermissionTest; -import it.authorisation.QualityProfileAdminPermissionTest; -import it.complexity.ComplexityMeasuresTest; -import it.customMeasure.CustomMeasuresTest; -import it.i18n.I18nTest; -import it.measure.MeasuresWsTest; -import it.measure.ProjectDashboardTest; -import it.measure.ProjectMeasuresPageTest; -import it.measureHistory.DifferentialPeriodsTest; -import it.measureHistory.SincePreviousVersionHistoryTest; -import it.measureHistory.SinceXDaysHistoryTest; -import it.measureHistory.TimeMachineTest; -import it.projectAdministration.BackgroundTasksTest; -import it.projectAdministration.BulkDeletionTest; -import it.projectAdministration.ProjectAdministrationTest; -import it.projectAdministration.ProjectLinksPageTest; -import it.projectSearch.ProjectsPageTest; -import it.qualityGate.QualityGateNotificationTest; -import it.qualityGate.QualityGateTest; -import it.qualityGate.QualityGateUiTest; -import it.settings.DeprecatedPropertiesWsTest; -import it.settings.EmailsTest; -import it.settings.PropertySetsTest; -import it.settings.SettingsTest; -import it.sourceCode.EncodingTest; -import it.sourceCode.HighlightingTest; -import it.sourceCode.ProjectCodeTest; -import org.junit.ClassRule; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -import static util.ItUtils.pluginArtifact; -import static util.ItUtils.xooPlugin; - -@RunWith(Suite.class) -@Suite.SuiteClasses({ - // administration - UsersPageTest.class, - ProjectsAdministrationTest.class, - // project administration - BulkDeletionTest.class, - ProjectAdministrationTest.class, - ProjectLinksPageTest.class, - BackgroundTasksTest.class, - // settings - DeprecatedPropertiesWsTest.class, - EmailsTest.class, - PropertySetsTest.class, - SettingsTest.class, - // i18n - I18nTest.class, - // quality gate - QualityGateTest.class, - QualityGateUiTest.class, - QualityGateNotificationTest.class, - // authorisation - ExecuteAnalysisPermissionTest.class, - IssuePermissionTest.class, - PermissionSearchTest.class, - ProvisioningPermissionTest.class, - QualityProfileAdminPermissionTest.class, - // custom measure - CustomMeasuresTest.class, - // measure - ProjectMeasuresPageTest.class, - ProjectDashboardTest.class, - ProjectsPageTest.class, - MeasuresWsTest.class, - // measure history - DifferentialPeriodsTest.class, - SincePreviousVersionHistoryTest.class, - SinceXDaysHistoryTest.class, - TimeMachineTest.class, - // source code - EncodingTest.class, - HighlightingTest.class, - ProjectCodeTest.class, - // complexity - ComplexityMeasuresTest.class -}) -public class Category1Suite { - - @ClassRule - public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv() - .setServerProperty("sonar.notifications.delay", "1") - .addPlugin(pluginArtifact("property-sets-plugin")) - .addPlugin(pluginArtifact("sonar-subcategories-plugin")) - - // Used in I18nTest - .addPlugin(pluginArtifact("l10n-fr-pack")) - - // 1 second. Required for notification test. - .setServerProperty("sonar.notifications.delay", "1") - - // Used in SettingsTest.global_property_change_extension_point - .addPlugin(pluginArtifact("global-property-change-plugin")) - - // Used in SettingsTest.should_get_settings_default_value - .addPlugin(pluginArtifact("server-plugin")) - - .addPlugin(pluginArtifact("posttask-plugin")) - - .addPlugin(xooPlugin()) - .build(); - -} diff --git a/it/it-tests/src/test/java/it/Category2Suite.java b/it/it-tests/src/test/java/it/Category2Suite.java deleted file mode 100644 index 2f59c261c95..00000000000 --- a/it/it-tests/src/test/java/it/Category2Suite.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it; - -import com.sonar.orchestrator.Orchestrator; -import it.issue.AutoAssignTest; -import it.issue.CommonRulesTest; -import it.issue.CustomRulesTest; -import it.issue.IssueActionTest; -import it.issue.IssueBulkChangeTest; -import it.issue.IssueChangelogTest; -import it.issue.IssueCreationTest; -import it.issue.IssueFilterExtensionTest; -import it.issue.IssueFilterOnCommonRulesTest; -import it.issue.IssueFilterTest; -import it.issue.IssueMeasureTest; -import it.issue.IssueNotificationsTest; -import it.issue.IssuePurgeTest; -import it.issue.IssueSearchTest; -import it.issue.IssueTrackingTest; -import it.issue.IssueWorkflowTest; -import it.issue.IssuesPageTest; -import it.issue.NewIssuesMeasureTest; -import it.qualityModel.MaintainabilityMeasureTest; -import it.qualityModel.MaintainabilityRatingMeasureTest; -import it.qualityModel.NewDebtRatioMeasureTest; -import it.qualityModel.ReliabilityMeasureTest; -import it.qualityModel.SecurityMeasureTest; -import it.qualityModel.TechnicalDebtInIssueChangelogTest; -import it.qualityModel.TechnicalDebtMeasureVariationTest; -import it.qualityModel.TechnicalDebtTest; -import it.scm.ScmTest; -import it.test.CoverageTest; -import it.test.CoverageTrackingTest; -import it.test.NewCoverageTest; -import it.test.TestExecutionTest; -import org.junit.ClassRule; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -import static util.ItUtils.pluginArtifact; -import static util.ItUtils.xooPlugin; - -@RunWith(Suite.class) -@Suite.SuiteClasses({ - // test - CoverageTrackingTest.class, - CoverageTest.class, - NewCoverageTest.class, - TestExecutionTest.class, - // scm - ScmTest.class, - // issue - AutoAssignTest.class, - CommonRulesTest.class, - CustomRulesTest.class, - IssueActionTest.class, - IssueBulkChangeTest.class, - IssueChangelogTest.class, - IssueCreationTest.class, - IssueFilterOnCommonRulesTest.class, - IssueFilterTest.class, - IssueFilterExtensionTest.class, - IssueMeasureTest.class, - IssueNotificationsTest.class, - IssuePurgeTest.class, - IssueSearchTest.class, - IssueTrackingTest.class, - IssueWorkflowTest.class, - NewIssuesMeasureTest.class, - // debt - MaintainabilityMeasureTest.class, - MaintainabilityRatingMeasureTest.class, - NewDebtRatioMeasureTest.class, - ReliabilityMeasureTest.class, - SecurityMeasureTest.class, - TechnicalDebtInIssueChangelogTest.class, - TechnicalDebtMeasureVariationTest.class, - TechnicalDebtTest.class, - // ui - IssuesPageTest.class -}) -public class Category2Suite { - - @ClassRule - public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv() - .addPlugin(xooPlugin()) - - // issue - .addPlugin(pluginArtifact("issue-filter-plugin")) - - // 1 second. Required for notification test. - .setServerProperty("sonar.notifications.delay", "1") - - .build(); - -} diff --git a/it/it-tests/src/test/java/it/Category3Suite.java b/it/it-tests/src/test/java/it/Category3Suite.java deleted file mode 100644 index bad425d3544..00000000000 --- a/it/it-tests/src/test/java/it/Category3Suite.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it; - -import com.sonar.orchestrator.Orchestrator; -import it.analysis.ExtensionLifecycleTest; -import it.analysis.FavoriteTest; -import it.analysis.IssueJsonReportTest; -import it.analysis.IssuesModeTest; -import it.analysis.LinksTest; -import it.analysis.MultiLanguageTest; -import it.analysis.PermissionTest; -import it.analysis.ProjectBuilderTest; -import it.analysis.ReportDumpTest; -import it.analysis.SSLTest; -import it.analysis.ScannerTest; -import it.analysis.SettingsEncryptionTest; -import it.analysis.TempFolderTest; -import it.measure.DecimalScaleMetricTest; -import it.plugins.VersionPluginTest; -import it.webhook.WebhooksTest; -import org.junit.ClassRule; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -import static util.ItUtils.pluginArtifact; -import static util.ItUtils.xooPlugin; - -@RunWith(Suite.class) -@Suite.SuiteClasses({ - // analysis - PermissionTest.class, - ExtensionLifecycleTest.class, - LinksTest.class, - ProjectBuilderTest.class, - TempFolderTest.class, - MultiLanguageTest.class, - IssueJsonReportTest.class, - ScannerTest.class, - IssuesModeTest.class, - VersionPluginTest.class, - SettingsEncryptionTest.class, - ReportDumpTest.class, - SSLTest.class, - FavoriteTest.class, - // measures - DecimalScaleMetricTest.class, - WebhooksTest.class -}) -public class Category3Suite { - - @ClassRule - public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv() - .addPlugin(xooPlugin()) - .setOrchestratorProperty("javaVersion", "LATEST_RELEASE").addPlugin("java") - - // Used by SettingsEncryptionTest - .addPlugin(pluginArtifact("settings-encryption-plugin")) - - // Used by IssuesModeTest - .addPlugin(pluginArtifact("access-secured-props-plugin")) - - // used by TempFolderTest and DecimalScaleMetricTest - .addPlugin(pluginArtifact("batch-plugin")) - - // used by ExtensionLifecycleTest - .addPlugin(pluginArtifact("extension-lifecycle-plugin")) - - // used by ProjectBuilderTest - .addPlugin(pluginArtifact("project-builder-plugin")) - - .build(); -} diff --git a/it/it-tests/src/test/java/it/Category4Suite.java b/it/it-tests/src/test/java/it/Category4Suite.java deleted file mode 100644 index cbb752d4a71..00000000000 --- a/it/it-tests/src/test/java/it/Category4Suite.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it; - -import com.sonar.orchestrator.Orchestrator; -import it.analysisExclusion.FileExclusionsTest; -import it.analysisExclusion.IssueExclusionsTest; -import it.component.ComponentsWsTest; -import it.component.ProjectsWsTest; -import it.dbCleaner.PurgeTest; -import it.duplication.CrossProjectDuplicationsOnRemoveFileTest; -import it.duplication.CrossProjectDuplicationsTest; -import it.duplication.DuplicationsTest; -import it.duplication.NewDuplicationsTest; -import it.organization.RootUserTest; -import it.projectEvent.EventTest; -import it.projectEvent.ProjectActivityPageTest; -import it.qualityProfile.QualityProfilesUiTest; -import it.serverSystem.HttpHeadersTest; -import it.serverSystem.LogsTest; -import it.serverSystem.PingTest; -import it.serverSystem.ServerSystemTest; -import it.ui.SourceViewerTest; -import it.ui.UiTest; -import it.uiExtension.UiExtensionsTest; -import it.user.BaseIdentityProviderTest; -import it.user.FavoritesWsTest; -import it.user.ForceAuthenticationTest; -import it.user.LocalAuthenticationTest; -import it.user.MyAccountPageTest; -import it.user.OAuth2IdentityProviderTest; -import it.ws.WsLocalCallTest; -import it.ws.WsTest; -import org.junit.ClassRule; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -import static util.ItUtils.pluginArtifact; -import static util.ItUtils.xooPlugin; - -@RunWith(Suite.class) -@Suite.SuiteClasses({ - // organization - RootUserTest.class, - // server system - ServerSystemTest.class, - PingTest.class, - // user - MyAccountPageTest.class, - FavoritesWsTest.class, - // authentication - ForceAuthenticationTest.class, - LocalAuthenticationTest.class, - BaseIdentityProviderTest.class, - OAuth2IdentityProviderTest.class, - // component search - ProjectsWsTest.class, - ComponentsWsTest.class, - // analysis exclusion - FileExclusionsTest.class, - IssueExclusionsTest.class, - // duplication - CrossProjectDuplicationsTest.class, - CrossProjectDuplicationsOnRemoveFileTest.class, - DuplicationsTest.class, - NewDuplicationsTest.class, - // db cleaner - PurgeTest.class, - // project event - EventTest.class, - ProjectActivityPageTest.class, - // http - HttpHeadersTest.class, - // ui - UiTest.class, - SourceViewerTest.class, - // ui extensions - UiExtensionsTest.class, - WsLocalCallTest.class, - WsTest.class, - // quality profiles - QualityProfilesUiTest.class, - LogsTest.class -}) -public class Category4Suite { - - @ClassRule - public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv() - .addPlugin(xooPlugin()) - - // Used in BaseIdentityProviderTest - .addPlugin(pluginArtifact("base-auth-plugin")) - - // Used in OAuth2IdentityProviderTest - .addPlugin(pluginArtifact("oauth2-auth-plugin")) - - // Used in UiExtensionsTest - .addPlugin(pluginArtifact("ui-extensions-plugin")) - - // Used by WsLocalCallTest - .addPlugin(pluginArtifact("ws-plugin")) - - // Used by LogsTest - .setServerProperty("sonar.web.accessLogs.pattern", LogsTest.ACCESS_LOGS_PATTERN) - - .build(); -} diff --git a/it/it-tests/src/test/java/it/Category5Suite.java b/it/it-tests/src/test/java/it/Category5Suite.java deleted file mode 100644 index 4d952af58b9..00000000000 --- a/it/it-tests/src/test/java/it/Category5Suite.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it; - -import it.serverSystem.ClusterTest; -import it.serverSystem.RestartTest; -import it.serverSystem.ServerSystemRestartingOrchestrator; -import it.settings.LicensesPageTest; -import it.settings.SettingsTestRestartingOrchestrator; -import it.updateCenter.UpdateCenterTest; -import it.user.OnboardingTest; -import it.user.RealmAuthenticationTest; -import it.user.SsoAuthenticationTest; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -/** - * This suite is reserved to the tests that start their own instance of Orchestrator. - * Indeed multiple instances of Orchestrator can't be started in parallel, so this - * suite does not declare a shared Orchestrator. - */ -@RunWith(Suite.class) -@Suite.SuiteClasses({ - ClusterTest.class, - ServerSystemRestartingOrchestrator.class, - RestartTest.class, - SettingsTestRestartingOrchestrator.class, - LicensesPageTest.class, - // update center - UpdateCenterTest.class, - RealmAuthenticationTest.class, - SsoAuthenticationTest.class, - OnboardingTest.class -}) -public class Category5Suite { - -} diff --git a/it/it-tests/src/test/java/it/Category6Suite.java b/it/it-tests/src/test/java/it/Category6Suite.java deleted file mode 100644 index cb9c6811313..00000000000 --- a/it/it-tests/src/test/java/it/Category6Suite.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it; - -import com.sonar.orchestrator.Orchestrator; -import it.issue.IssueTagsTest; -import it.issue.OrganizationIssueAssignTest; -import it.organization.BillingTest; -import it.organization.OrganizationMembershipTest; -import it.organization.OrganizationMembershipUiTest; -import it.organization.OrganizationTest; -import it.organization.PersonalOrganizationTest; -import it.organization.RootUserOnOrganizationTest; -import it.projectSearch.LeakProjectsPageTest; -import it.projectSearch.SearchProjectsTest; -import it.qualityProfile.BuiltInQualityProfilesTest; -import it.qualityProfile.CustomQualityProfilesTest; -import it.qualityProfile.OrganizationQualityProfilesUiTest; -import it.uiExtension.OrganizationUiExtensionsTest; -import it.user.OrganizationIdentityProviderTest; -import org.junit.ClassRule; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -import static util.ItUtils.pluginArtifact; -import static util.ItUtils.xooPlugin; - -/** - * This category is used only when organizations feature is activated - */ -@RunWith(Suite.class) -@Suite.SuiteClasses({ - OrganizationIdentityProviderTest.class, - OrganizationIssueAssignTest.class, - OrganizationMembershipTest.class, - OrganizationMembershipUiTest.class, - OrganizationQualityProfilesUiTest.class, - OrganizationTest.class, - RootUserOnOrganizationTest.class, - OrganizationUiExtensionsTest.class, - PersonalOrganizationTest.class, - BuiltInQualityProfilesTest.class, - CustomQualityProfilesTest.class, - BillingTest.class, - IssueTagsTest.class, - LeakProjectsPageTest.class, - SearchProjectsTest.class -}) -public class Category6Suite { - - @ClassRule - public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv() - .addPlugin(xooPlugin()) - .addPlugin(pluginArtifact("base-auth-plugin")) - .addPlugin(pluginArtifact("fake-billing-plugin")) - .addPlugin(pluginArtifact("ui-extensions-plugin")) - .build(); -} diff --git a/it/it-tests/src/test/java/it/LiteSuite.java b/it/it-tests/src/test/java/it/LiteSuite.java deleted file mode 100644 index b87d374c60a..00000000000 --- a/it/it-tests/src/test/java/it/LiteSuite.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it; - -import it.lite.LiteTest; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -@RunWith(Suite.class) -@Suite.SuiteClasses({ - LiteTest.class -}) -public class LiteSuite { - -} diff --git a/it/it-tests/src/test/java/it/PluginsSuite.java b/it/it-tests/src/test/java/it/PluginsSuite.java deleted file mode 100644 index 843794c8f32..00000000000 --- a/it/it-tests/src/test/java/it/PluginsSuite.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it; - -import it.plugins.PluginsTest; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; - -@RunWith(Suite.class) -@Suite.SuiteClasses({ - PluginsTest.class, -}) -public class PluginsSuite { - -} diff --git a/it/it-tests/src/test/java/it/administration/ProjectsAdministrationTest.java b/it/it-tests/src/test/java/it/administration/ProjectsAdministrationTest.java deleted file mode 100644 index 75f6e0163d4..00000000000 --- a/it/it-tests/src/test/java/it/administration/ProjectsAdministrationTest.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.administration; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import java.sql.SQLException; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.ws.WsComponents; -import org.sonarqube.ws.client.component.SearchProjectsRequest; -import org.sonarqube.ws.client.permission.RemoveGroupWsRequest; -import org.sonarqube.ws.client.project.UpdateVisibilityRequest; -import pageobjects.Navigation; -import pageobjects.ProjectsManagementPage; -import util.ItUtils; -import util.user.UserRule; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.projectDir; - -public class ProjectsAdministrationTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - private Navigation nav = Navigation.create(orchestrator); - - private String adminUser; - - @Before - public void initData() throws SQLException { - orchestrator.resetData(); - adminUser = userRule.createAdminUser(); - } - - @Test - public void return_all_projects_even_when_no_permission() throws Exception { - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample")).setProperties("sonar.projectKey", "sample1")); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample")).setProperties("sonar.projectKey", "sample2")); - ItUtils.newAdminWsClient(orchestrator).projects().updateVisibility(UpdateVisibilityRequest.builder().setProject("sample2").setVisibility("private").build()); - // Remove 'Admin' permission for admin group on project 2 -> No one can access or admin this project, expect System Admin - newAdminWsClient(orchestrator).permissions().removeGroup(new RemoveGroupWsRequest().setProjectKey("sample2").setGroupName("sonar-administrators").setPermission("admin")); - - nav.logIn().submitCredentials(adminUser).openProjectsManagement() - .shouldHaveProject("sample1") - .shouldHaveProject("sample2"); - } - - @Test - public void create_public_project() { - createProjectAndVerify("public"); - } - - @Test - public void create_private_project() { - createProjectAndVerify("private"); - } - - private void createProjectAndVerify(String visibility) { - ProjectsManagementPage page = nav.logIn().submitCredentials(adminUser, adminUser).openProjectsManagement(); - page - .shouldHaveProjectsCount(0) - .createProject("foo", "foo", visibility) - .shouldHaveProjectsCount(1); - - WsComponents.SearchProjectsWsResponse response = newAdminWsClient(orchestrator).components().searchProjects( - SearchProjectsRequest.builder().build()); - assertThat(response.getComponentsCount()).isEqualTo(1); - assertThat(response.getComponents(0).getKey()).isEqualTo("foo"); - assertThat(response.getComponents(0).getName()).isEqualTo("foo"); - assertThat(response.getComponents(0).getVisibility()).isEqualTo(visibility); - } - -} diff --git a/it/it-tests/src/test/java/it/administration/UsersPageTest.java b/it/it-tests/src/test/java/it/administration/UsersPageTest.java deleted file mode 100644 index 9779a6f82f9..00000000000 --- a/it/it-tests/src/test/java/it/administration/UsersPageTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.administration; - -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import java.util.List; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.user.GroupsRequest; -import util.selenium.Selenese; -import util.user.UserRule; - -import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; - -public class UsersPageTest { - - private static final String ADMIN_USER_LOGIN = "admin-user"; - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - private WsClient adminClient = newAdminWsClient(orchestrator); - - @Before - public void initAdminUser() throws Exception { - userRule.createAdminUser(ADMIN_USER_LOGIN, ADMIN_USER_LOGIN); - } - - @After - public void deleteAdminUser() { - userRule.resetUsers(); - } - - @Test - public void generate_and_revoke_user_token() { - Selenese.runSelenese(orchestrator, "/administration/UsersPageTest/generate_and_revoke_user_token.html"); - } - - @Test - public void admin_should_change_its_own_password() { - Selenese.runSelenese(orchestrator, "/administration/UsersPageTest/admin_should_change_its_own_password.html"); - } - - @Test - public void return_groups_belonging_to_a_user() { - String login = randomAlphabetic(10); - String group = randomAlphabetic(10); - userRule.createUser(login, login); - userRule.createGroup(group); - userRule.associateGroupsToUser(login, group); - - List<WsUsers.GroupsWsResponse.Group> result = adminClient.users().groups(GroupsRequest.builder().setLogin(login).build()).getGroupsList(); - - assertThat(result).extracting(WsUsers.GroupsWsResponse.Group::getName).contains(group); - } -} diff --git a/it/it-tests/src/test/java/it/analysis/ExtensionLifecycleTest.java b/it/it-tests/src/test/java/it/analysis/ExtensionLifecycleTest.java deleted file mode 100644 index 07069cfdad6..00000000000 --- a/it/it-tests/src/test/java/it/analysis/ExtensionLifecycleTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.MavenBuild; -import it.Category3Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -public class ExtensionLifecycleTest { - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - @Before - public void cleanup() { - orchestrator.resetData(); - } - - @Test - public void testInstantiationStrategyAndLifecycleOfBatchExtensions() { - MavenBuild build = MavenBuild.create(ItUtils.projectPom("analysis/extension-lifecycle")) - .setCleanSonarGoals() - .setProperty("extension.lifecycle", "true") - .setProperty("sonar.dynamicAnalysis", "false"); - - // Build fails if the extensions provided in the extension-lifecycle-plugin are not correctly - // managed. - orchestrator.executeBuild(build); - } -} diff --git a/it/it-tests/src/test/java/it/analysis/FavoriteTest.java b/it/it-tests/src/test/java/it/analysis/FavoriteTest.java deleted file mode 100644 index b0fc74c09e9..00000000000 --- a/it/it-tests/src/test/java/it/analysis/FavoriteTest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category3Suite; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.Favorites; -import org.sonarqube.ws.Favorites.Favorite; -import org.sonarqube.ws.WsPermissions; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.favorite.SearchRequest; -import org.sonarqube.ws.client.permission.AddProjectCreatorToTemplateWsRequest; -import org.sonarqube.ws.client.permission.RemoveProjectCreatorFromTemplateWsRequest; -import org.sonarqube.ws.client.permission.SearchTemplatesWsRequest; - -import static com.sonar.orchestrator.container.Server.ADMIN_LOGIN; -import static com.sonar.orchestrator.container.Server.ADMIN_PASSWORD; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.projectDir; - -public class FavoriteTest { - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - private static WsClient adminWsClient; - - private static final String PROJECT_KEY = "sample"; - - @Before - public void setUp() { - orchestrator.resetData(); - } - - @After - public void tearDown() { - removeProjectCreatorPermission(); - } - - @BeforeClass - public static void classSetUp() { - adminWsClient = newAdminWsClient(orchestrator); - } - - @Test - public void project_as_favorite_when_authenticated_and_first_analysis_and_a_project_creator_permission() { - SonarScanner sampleProject = createScannerWithUserCredentials(); - addProjectCreatorPermission(); - - orchestrator.executeBuild(sampleProject); - - Favorites.SearchResponse response = adminWsClient.favorites().search(new SearchRequest()); - assertThat(response.getFavoritesList()).extracting(Favorite::getKey).contains(PROJECT_KEY); - } - - @Test - public void no_project_as_favorite_when_no_project_creator_permission() { - SonarScanner sampleProject = createScannerWithUserCredentials(); - - orchestrator.executeBuild(sampleProject); - - Favorites.SearchResponse response = adminWsClient.favorites().search(new SearchRequest()); - assertThat(response.getFavoritesList()).extracting(Favorite::getKey).doesNotContain(PROJECT_KEY); - } - - @Test - public void no_project_as_favorite_when_second_analysis() { - SonarScanner sampleProject = SonarScanner.create(projectDir("shared/xoo-sample")); - orchestrator.executeBuild(sampleProject); - sampleProject = createScannerWithUserCredentials(); - addProjectCreatorPermission(); - - orchestrator.executeBuild(sampleProject); - - Favorites.SearchResponse response = adminWsClient.favorites().search(new SearchRequest()); - assertThat(response.getFavoritesList()).extracting(Favorite::getKey).doesNotContain(PROJECT_KEY); - } - - private static SonarScanner createScannerWithUserCredentials() { - return SonarScanner.create(projectDir("shared/xoo-sample")) - .setProperty("sonar.login", ADMIN_LOGIN) - .setProperty("sonar.password", ADMIN_PASSWORD); - } - - private void addProjectCreatorPermission() { - WsPermissions.SearchTemplatesWsResponse permissionTemplates = adminWsClient.permissions().searchTemplates(new SearchTemplatesWsRequest()); - assertThat(permissionTemplates.getDefaultTemplatesCount()).isEqualTo(1); - adminWsClient.permissions().addProjectCreatorToTemplate(AddProjectCreatorToTemplateWsRequest.builder() - .setTemplateId(permissionTemplates.getDefaultTemplates(0).getTemplateId()) - .setPermission("admin") - .build()); - } - - private void removeProjectCreatorPermission() { - WsPermissions.SearchTemplatesWsResponse permissionTemplates = adminWsClient.permissions().searchTemplates(new SearchTemplatesWsRequest()); - assertThat(permissionTemplates.getDefaultTemplatesCount()).isEqualTo(1); - adminWsClient.permissions().removeProjectCreatorFromTemplate(RemoveProjectCreatorFromTemplateWsRequest.builder() - .setTemplateId(permissionTemplates.getDefaultTemplates(0).getTemplateId()) - .setPermission("admin") - .build()); - } -} diff --git a/it/it-tests/src/test/java/it/analysis/IssueJsonReportTest.java b/it/it-tests/src/test/java/it/analysis/IssueJsonReportTest.java deleted file mode 100644 index 23c73d8c393..00000000000 --- a/it/it-tests/src/test/java/it/analysis/IssueJsonReportTest.java +++ /dev/null @@ -1,313 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import com.sonar.orchestrator.locator.FileLocation; -import com.sonar.orchestrator.locator.ResourceLocation; -import it.Category3Suite; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Pattern; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import org.skyscreamer.jsonassert.JSONAssert; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsResponse; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newWsClient; - -public class IssueJsonReportTest { - - private static final String SONAR_VERSION_PLACEHOLDER = "<SONAR_VERSION>"; - private static final String RESOURCE_PATH = "/analysis/IssueJsonReportTest/"; - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Before - public void resetData() { - orchestrator.resetData(); - } - - @Test - public void issue_line() throws IOException { - ItUtils.restoreProfile(orchestrator, getClass().getResource(RESOURCE_PATH + "one-issue-per-line.xml")); - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - File projectDir = ItUtils.projectDir("shared/xoo-sample"); - SonarScanner runner = SonarScanner.create(projectDir, - "sonar.analysis.mode", "issues", - "sonar.verbose", "true", - "sonar.report.export.path", "sonar-report.json"); - BuildResult result = orchestrator.executeBuild(runner); - assertThat(ItUtils.countIssuesInJsonReport(result, true)).isEqualTo(17); - - JSONObject obj = ItUtils.getJSONReport(result); - JSONArray issues = (JSONArray) obj.get("issues"); - for (Object issue : issues) { - JSONObject jsonIssue = (JSONObject) issue; - assertThat(jsonIssue.get("startLine")).isNotNull(); - assertThat(jsonIssue.get("line")).isEqualTo(jsonIssue.get("startLine")); - assertThat(jsonIssue.get("endLine")).isEqualTo(jsonIssue.get("startLine")); - - assertThat(jsonIssue.get("endOffset")).isNotNull(); - assertThat(jsonIssue.get("startOffset")).isNotNull(); - } - - List<Long> lineNumbers = new ArrayList<>(16); - for (long i = 1L; i < 18; i++) { - lineNumbers.add(i); - } - assertThat(issues).extracting("startLine").containsAll(lineNumbers); - assertThat(issues).extracting("endLine").containsAll(lineNumbers); - } - - @Test - public void precise_issue_location() throws IOException { - ItUtils.restoreProfile(orchestrator, getClass().getResource(RESOURCE_PATH + "multiline.xml")); - orchestrator.getServer().provisionProject("sample-multiline", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample-multiline", "xoo", "multiline"); - - File projectDir = ItUtils.projectDir("shared/xoo-precise-issues"); - SonarScanner runner = SonarScanner.create(projectDir, - "sonar.analysis.mode", "issues", - "sonar.verbose", "true", - "sonar.report.export.path", "sonar-report.json"); - BuildResult result = orchestrator.executeBuild(runner); - assertThat(ItUtils.countIssuesInJsonReport(result, true)).isEqualTo(2); - - JSONObject obj = ItUtils.getJSONReport(result); - JSONArray issues = (JSONArray) obj.get("issues"); - - JSONObject issue1 = (JSONObject) issues.get(0); - JSONObject issue2 = (JSONObject) issues.get(1); - - assertThat(issue1.get("startLine")).isIn(6L); - assertThat(issue1.get("line")).isIn(6L); - assertThat(issue1.get("endLine")).isIn(6L); - assertThat(issue1.get("startOffset")).isIn(27L); - assertThat(issue1.get("endOffset")).isIn(32L); - - assertThat(issue2.get("startLine")).isIn(9L); - assertThat(issue2.get("line")).isIn(9L); - assertThat(issue2.get("endLine")).isIn(15L); - assertThat(issue2.get("startOffset")).isIn(20L); - assertThat(issue2.get("endOffset")).isIn(2L); - - } - - @Test - public void test_json_report_no_server_analysis() throws Exception { - ItUtils.restoreProfile(orchestrator, getClass().getResource(RESOURCE_PATH + "one-issue-per-line.xml")); - orchestrator.getServer().provisionProject("sample", "tracking"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - File projectDir = ItUtils.projectDir("analysis/tracking/v1"); - SonarScanner issuesModeScan = SonarScanner.create(projectDir) - .setProperty("sonar.analysis.mode", "issues") - .setProperty("sonar.userHome", temp.newFolder().getAbsolutePath()) - .setProperty("sonar.report.export.path", "sonar-report.json") - .setProperty("sonar.projectDate", "2013-05-02"); - orchestrator.executeBuild(issuesModeScan); - - File report = new File(projectDir, ".sonar/sonar-report.json"); - assertThat(report).isFile().exists(); - - String json = sanitize(FileUtils.readFileToString(report)); - String expectedJson = expected("no-server-analysis.json"); - JSONAssert.assertEquals(expectedJson, json, false); - } - - @Test - public void test_json_report() throws Exception { - ItUtils.restoreProfile(orchestrator, getClass().getResource(RESOURCE_PATH + "one-issue-per-line.xml")); - orchestrator.getServer().provisionProject("sample", "tracking"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - SonarScanner scan = SonarScanner.create(ItUtils.projectDir("analysis/tracking/v1")) - .setProperty("sonar.projectDate", "2013-05-01"); - orchestrator.executeBuild(scan); - - // Issues mode scan -> 2 new issues and 13 existing issues - File projectDir = ItUtils.projectDir("analysis/tracking/v2"); - SonarScanner issuesModeScan = SonarScanner.create(projectDir) - .setProperty("sonar.analysis.mode", "issues") - .setProperty("sonar.userHome", temp.newFolder().getAbsolutePath()) - .setProperty("sonar.report.export.path", "sonar-report.json") - .setProperty("sonar.projectDate", "2013-05-02"); - orchestrator.executeBuild(issuesModeScan); - - File report = new File(projectDir, ".sonar/sonar-report.json"); - assertThat(report).isFile().exists(); - - String json = sanitize(FileUtils.readFileToString(report)); - String expectedJson = expected("report-on-single-module.json"); - JSONAssert.assertEquals(expectedJson, json, false); - } - - @Test - public void test_json_report_on_branch() throws Exception { - ItUtils.restoreProfile(orchestrator, getClass().getResource(getResource("one-issue-per-line.xml").getPath())); - orchestrator.getServer().provisionProject("sample:mybranch", "Sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample:mybranch", "xoo", "one-issue-per-line"); - - SonarScanner scan = SonarScanner.create(ItUtils.projectDir("analysis/tracking/v1")) - .setProperty("sonar.projectDate", "2013-05-01") - .setProperty("sonar.branch", "mybranch"); - orchestrator.executeBuild(scan); - - // issues mode scan -> 2 new issues and 13 existing issues - File projectDir = ItUtils.projectDir("analysis/tracking/v2"); - SonarScanner issuesModeScan = SonarScanner.create(projectDir) - .setProperty("sonar.analysis.mode", "issues") - .setProperty("sonar.userHome", temp.newFolder().getAbsolutePath()) - .setProperty("sonar.report.export.path", "sonar-report.json") - .setProperty("sonar.issuesReport.console.enable", "true") - .setProperty("sonar.projectDate", "2013-05-02") - .setProperty("sonar.verbose", "true") - .setProperty("sonar.branch", "mybranch"); - orchestrator.executeBuild(issuesModeScan); - - File report = new File(projectDir, ".sonar/sonar-report.json"); - assertThat(report).isFile().exists(); - - String json = sanitize(FileUtils.readFileToString(report)); - String expectedJson = expected("report-on-single-module-branch.json"); - JSONAssert.assertEquals(expectedJson, json, false); - } - - /** - * Multi-modules project but Eclipse scans only a single module - */ - @Test - public void test_json_report_on_sub_module() throws Exception { - ItUtils.restoreProfile(orchestrator, getClass().getResource(RESOURCE_PATH + "one-issue-per-line.xml")); - orchestrator.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-sample", "Multi-module sample"); - orchestrator.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-sample", "xoo", "one-issue-per-line"); - - File rootDir = ItUtils.projectDir("shared/xoo-multi-modules-sample"); - SonarScanner scan = SonarScanner.create(rootDir) - .setProperty("sonar.projectDate", "2013-05-01"); - orchestrator.executeBuild(scan); - - // Issues mode scan on a module -> no new issues - File moduleDir = ItUtils.projectDir("shared/xoo-multi-modules-sample/module_a/module_a1"); - SonarScanner issuesModeScan = SonarScanner.create(moduleDir) - .setProperty("sonar.projectKey", "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1") - .setProperty("sonar.projectVersion", "1.0-SNAPSHOT") - .setProperty("sonar.projectName", "ModuleA1") - .setProperty("sonar.sources", "src/main/xoo") - .setProperty("sonar.language", "xoo") - .setProperty("sonar.analysis.mode", "issues") - .setProperty("sonar.userHome", temp.newFolder().getAbsolutePath()) - .setProperty("sonar.report.export.path", "sonar-report.json") - .setProperty("sonar.projectDate", "2013-05-02"); - orchestrator.executeBuild(issuesModeScan); - - File report = new File(moduleDir, ".sonar/sonar-report.json"); - assertThat(report).isFile().exists(); - - String json = sanitize(FileUtils.readFileToString(report)); - // SONAR-5218 All issues are updated as their root project id has changed (it's now the sub module) - String expectedJson = expected("report-on-sub-module.json"); - JSONAssert.assertEquals(expectedJson, json, false); - } - - /** - * Multi-modules project - */ - @Test - public void test_json_report_on_root_module() throws Exception { - ItUtils.restoreProfile(orchestrator, getClass().getResource(RESOURCE_PATH + "one-issue-per-line.xml")); - orchestrator.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-sample", "Sonar :: Integration Tests :: Multi-modules Sample"); - orchestrator.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-sample", "xoo", "one-issue-per-line"); - - File rootDir = ItUtils.projectDir("shared/xoo-multi-modules-sample"); - SonarScanner scan = SonarScanner.create(rootDir) - .setProperty("sonar.projectDate", "2013-05-01"); - orchestrator.executeBuild(scan); - - // issues mode scan -> no new issues - SonarScanner issuesModeScan = SonarScanner.create(rootDir) - .setProperty("sonar.analysis.mode", "issues") - .setProperty("sonar.userHome", temp.newFolder().getAbsolutePath()) - .setProperty("sonar.report.export.path", "sonar-report.json") - .setProperty("sonar.projectDate", "2013-05-02"); - orchestrator.executeBuild(issuesModeScan); - - File report = new File(rootDir, ".sonar/sonar-report.json"); - assertThat(report).isFile().exists(); - - String json = sanitize(FileUtils.readFileToString(report)); - String expectedJson = expected("report-on-root-module.json"); - JSONAssert.assertEquals(expectedJson, json, false); - } - - private String expected(String path) throws IOException { - try (WsResponse response = newWsClient(orchestrator).wsConnector().call(new GetRequest("api/server/version"))) { - String version = response.content(); - - return sanitize(IOUtils.toString(getResourceInputStream(path))) - .replaceAll(Pattern.quote(SONAR_VERSION_PLACEHOLDER), version); - } - } - - @Test - public void issueSanityCheck() { - assertThat(sanitize("s\"0150F1EBDB8E000003\"f")).isEqualTo("s<ISSUE_KEY>f"); - } - - private static String sanitize(String s) { - // sanitize issue uuid keys - s = s.replaceAll("\"[a-zA-Z_0-9\\-]{15,20}\"", "<ISSUE_KEY>"); - - return ItUtils.sanitizeTimezones(s); - } - - private InputStream getResourceInputStream(String resource) throws FileNotFoundException { - ResourceLocation res = getResource(resource); - return getClass().getResourceAsStream(res.getPath()); - } - - private ResourceLocation getResource(String resource) { - return FileLocation.ofClasspath(RESOURCE_PATH + resource); - } - -} diff --git a/it/it-tests/src/test/java/it/analysis/IssuesModeTest.java b/it/it-tests/src/test/java/it/analysis/IssuesModeTest.java deleted file mode 100644 index d2038ab073c..00000000000 --- a/it/it-tests/src/test/java/it/analysis/IssuesModeTest.java +++ /dev/null @@ -1,461 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.google.common.collect.Maps; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildFailureException; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import com.sonar.orchestrator.build.SonarScannerInstaller; -import com.sonar.orchestrator.config.FileSystem; -import com.sonar.orchestrator.version.Version; -import it.Category3Suite; -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; -import javax.annotation.Nullable; -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.ObjectUtils; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.rules.TemporaryFolder; -import org.sonar.wsclient.SonarClient; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueClient; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonar.wsclient.issue.Issues; -import org.sonar.wsclient.user.UserParameters; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; -import static util.ItUtils.getComponent; - -public class IssuesModeTest { - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Before - public void deleteData() throws IOException { - orchestrator.resetData(); - } - - @Test - public void issues_analysis_on_new_project() throws IOException { - restoreProfile("one-issue-per-line.xml"); - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - SonarScanner runner = configureRunnerIssues("shared/xoo-sample", null, "sonar.verbose", "true"); - BuildResult result = orchestrator.executeBuild(runner); - assertThat(ItUtils.countIssuesInJsonReport(result, true)).isEqualTo(17); - } - - @Test - public void invalid_incremental_mode() throws IOException { - restoreProfile("one-issue-per-line.xml"); - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - SonarScanner runner = configureRunner("shared/xoo-sample"); - runner.setProperty("sonar.analysis.mode", "incremental"); - - thrown.expect(BuildFailureException.class); - BuildResult res = orchestrator.executeBuild(runner); - - assertThat(res.getLogs()).contains("Invalid analysis mode: incremental. This mode was removed in SonarQube 5.2"); - } - - @Test - public void project_key_with_slash() throws IOException { - restoreProfile("one-issue-per-line.xml"); - setDefaultQualityProfile("xoo", "one-issue-per-line"); - - SonarScanner runner = configureRunner("shared/xoo-sample"); - runner.setProjectKey("sample/project"); - runner.setProperty("sonar.analysis.mode", "issues"); - BuildResult result = orchestrator.executeBuild(runner); - assertThat(ItUtils.countIssuesInJsonReport(result, true)).isEqualTo(17); - } - - // SONAR-6931 - @Test - public void only_scan_changed_files_qps() throws IOException { - restoreProfile("one-issue-per-line.xml"); - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - SonarScanner runner = configureRunner("shared/xoo-sample", "sonar.verbose", "true"); - BuildResult result = orchestrator.executeBuild(runner); - List<Issue> serverIssues = ItUtils.getAllServerIssues(orchestrator); - for (Issue i : serverIssues) { - assertThat(i.status()).isEqualTo("OPEN"); - } - assertThat(serverIssues).hasSize(17); - - // change quality profile - restoreProfile("with-many-rules.xml"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "with-many-rules"); - - // do it again, scanning nothing (all files should be unchanged) - runner = configureRunnerIssues("shared/xoo-sample", null, - "sonar.verbose", "true"); - result = orchestrator.executeBuild(runner); - assertThat(result.getLogs()).contains("Scanning only changed files"); - assertThat(result.getLogs()).contains("'One Issue Per Line' skipped because there is no related file in current project"); - ItUtils.assertIssuesInJsonReport(result, 0, 0, 17); - } - - // SONAR-6931 - @Test - public void only_scan_changed_files_transitions() throws IOException { - restoreProfile("one-issue-per-line.xml"); - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - SonarScanner runner = configureRunner("shared/xoo-sample", "sonar.verbose", "true"); - BuildResult result = orchestrator.executeBuild(runner); - List<Issue> serverIssues = ItUtils.getAllServerIssues(orchestrator); - for (Issue i : serverIssues) { - assertThat(i.status()).isEqualTo("OPEN"); - } - assertThat(serverIssues).hasSize(17); - - // resolve 2 issues - IssueClient issueClient = orchestrator.getServer().wsClient("admin", "admin").issueClient(); - issueClient.doTransition(serverIssues.get(0).key(), "wontfix"); - issueClient.doTransition(serverIssues.get(1).key(), "wontfix"); - - // do it again, scanning nothing (all files should be unchanged) - runner = configureRunnerIssues("shared/xoo-sample", null, - "sonar.verbose", "true"); - result = orchestrator.executeBuild(runner); - assertThat(result.getLogs()).contains("Scanning only changed files"); - assertThat(result.getLogs()).contains("'One Issue Per Line' skipped because there is no related file in current project"); - ItUtils.assertIssuesInJsonReport(result, 0, 0, 15); - } - - // SONAR-6931 - @Test - public void only_scan_changed_files_on_change() throws IOException { - restoreProfile("one-issue-per-line.xml"); - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - SonarScanner runner = configureRunner("shared/xoo-sample", "sonar.verbose", "true"); - BuildResult result = orchestrator.executeBuild(runner); - - // change QP - restoreProfile("with-many-rules.xml"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "with-many-rules"); - - // now change file hash in a temporary location - File tmpProjectDir = temp.newFolder(); - FileUtils.copyDirectory(ItUtils.projectDir("shared/xoo-sample"), tmpProjectDir); - File srcFile = new File(tmpProjectDir, "src/main/xoo/sample/Sample.xoo"); - FileUtils.write(srcFile, "\n", StandardCharsets.UTF_8, true); - - // scan again, with different QP - runner = SonarScanner.create(tmpProjectDir, - "sonar.working.directory", temp.newFolder().getAbsolutePath(), - "sonar.analysis.mode", "issues", - "sonar.report.export.path", "sonar-report.json", - "sonar.userHome", temp.newFolder().getAbsolutePath(), - "sonar.verbose", "true", - "sonar.scanChangedFilesOnly", "true"); - result = orchestrator.executeBuild(runner); - assertThat(result.getLogs()).contains("Scanning only changed files"); - assertThat(result.getLogs()).doesNotContain("'One Issue Per Line' skipped because there is no related file in current project"); - ItUtils.assertIssuesInJsonReport(result, 3, 0, 17); - } - - // SONAR-8518 - @Test - public void should_support_sonar_profile_prop() throws IOException { - restoreProfile("one-issue-per-line.xml"); - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "empty"); - - SonarScanner runner = configureRunner("shared/xoo-sample", - "sonar.verbose", "true", - "sonar.analysis.mode", "issues", - "sonar.profile", "one-issue-per-line"); - BuildResult result = orchestrator.executeBuild(runner); - ItUtils.assertIssuesInJsonReport(result, 17, 0, 0); - } - - // SONAR-5715 - @Test - public void test_issues_mode_on_project_with_space_in_filename() throws IOException { - restoreProfile("with-many-rules.xml"); - orchestrator.getServer().provisionProject("sample", "xoo-sample-with-spaces"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "with-many-rules"); - - SonarScanner runner = configureRunner("analysis/xoo-sample-with-spaces/v2"); - orchestrator.executeBuild(runner); - assertThat(getComponent(orchestrator, "sample:my sources/main/xoo/sample/My Sample.xoo")).isNotNull(); - - runner = configureRunnerIssues("analysis/xoo-sample-with-spaces/v2", null); - BuildResult result = orchestrator.executeBuild(runner); - // Analysis is not persisted in database - assertThat(getComponent(orchestrator, "com.sonarsource.it.samples:simple-sample")).isNull(); - assertThat(result.getLogs()).contains("Issues"); - assertThat(result.getLogs()).contains("ANALYSIS SUCCESSFUL"); - } - - @Test - public void should_not_fail_on_resources_that_have_existed_before() throws IOException { - restoreProfile("with-many-rules.xml"); - orchestrator.getServer().provisionProject("sample", "xoo-history"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "with-many-rules"); - - // First real scan with source - SonarScanner runner = configureRunner("shared/xoo-history-v2"); - orchestrator.executeBuild(runner); - assertThat(getComponent(orchestrator, "sample:src/main/xoo/sample/ClassAdded.xoo")).isNotNull(); - - // Second scan should remove ClassAdded.xoo - runner = configureRunner("shared/xoo-history-v1"); - orchestrator.executeBuild(runner); - assertThat(getComponent(orchestrator, "sample:src/main/xoo/sample/ClassAdded.xoo")).isNull(); - - // Re-add ClassAdded.xoo in local workspace - runner = configureRunnerIssues("shared/xoo-history-v2", null); - BuildResult result = orchestrator.executeBuild(runner); - - assertThat(getComponent(orchestrator, "sample:src/main/xoo/sample/ClassAdded.xoo")).isNull(); - assertThat(result.getLogs()).contains("Issues"); - assertThat(result.getLogs()).contains("ANALYSIS SUCCESSFUL"); - } - - @Test - public void should_fail_if_plugin_access_secured_properties() throws IOException { - // Test access from task (ie BatchSettings) - SonarScanner runner = configureRunnerIssues("shared/xoo-sample", null, - "accessSecuredFromTask", "true"); - BuildResult result = orchestrator.executeBuildQuietly(runner); - - assertThat(result.getLogs()).contains("Access to the secured property 'foo.bar.secured' is not possible in issues mode. " - + "The SonarQube plugin which requires this property must be deactivated in issues mode."); - - // Test access from sensor (ie ModuleSettings) - runner = configureRunnerIssues("shared/xoo-sample", null, - "accessSecuredFromSensor", "true"); - result = orchestrator.executeBuildQuietly(runner); - - assertThat(result.getLogs()).contains("Access to the secured property 'foo.bar.secured' is not possible in issues mode. " - + "The SonarQube plugin which requires this property must be deactivated in issues mode."); - } - - // SONAR-4602 - @Test - public void no_issues_mode_cache_by_default() throws Exception { - File homeDir = runFirstAnalysisAndFlagIssueAsWontFix(); - - // Second issues mode using same cache dir but cache disabled by default - SonarScanner runner = configureRunnerIssues("shared/xoo-sample", homeDir); - BuildResult result = orchestrator.executeBuild(runner); - - // False positive is not returned - assertThat(ItUtils.countIssuesInJsonReport(result, false)).isEqualTo(16); - } - - private File runFirstAnalysisAndFlagIssueAsWontFix() throws IOException { - restoreProfile("one-issue-per-line.xml"); - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - // First run (publish mode) - SonarScanner runner = configureRunner("shared/xoo-sample"); - orchestrator.executeBuild(runner); - - // First issues mode - File homeDir = temp.newFolder(); - runner = configureRunnerIssues("shared/xoo-sample", homeDir); - BuildResult result = orchestrator.executeBuild(runner); - - // 17 issues - assertThat(ItUtils.countIssuesInJsonReport(result, false)).isEqualTo(17); - - // Flag one issue as false positive - JSONObject obj = ItUtils.getJSONReport(result); - String key = ((JSONObject) ((JSONArray) obj.get("issues")).get(0)).get("key").toString(); - orchestrator.getServer().adminWsClient().issueClient().doTransition(key, "falsepositive"); - return homeDir; - } - - // SONAR-6522 - @Test - public void load_user_name_in_json_report() throws Exception { - restoreProfile("one-issue-per-line.xml"); - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - // First run (publish mode) - SonarScanner runner = configureRunner("shared/xoo-sample"); - orchestrator.executeBuild(runner); - - SonarClient client = orchestrator.getServer().adminWsClient(); - - Issues issues = client.issueClient().find(IssueQuery.create()); - Issue issue = issues.list().get(0); - - UserParameters creationParameters = UserParameters.create().login("julien").name("Julien H") - .password("password").passwordConfirmation("password"); - client.userClient().create(creationParameters); - - // Assign issue - client.issueClient().assign(issue.key(), "julien"); - - // Issues - runner = configureRunnerIssues("shared/xoo-sample", null, "sonar.login", "julien", "sonar.password", "password"); - BuildResult result = orchestrator.executeBuild(runner); - - JSONObject obj = ItUtils.getJSONReport(result); - - Map<String, String> userNameByLogin = Maps.newHashMap(); - final JSONArray users = (JSONArray) obj.get("users"); - if (users != null) { - for (Object user : users) { - String login = ObjectUtils.toString(((JSONObject) user).get("login")); - String name = ObjectUtils.toString(((JSONObject) user).get("name")); - userNameByLogin.put(login, name); - } - } - assertThat(userNameByLogin.get("julien")).isEqualTo("julien"); - - for (Object issueJson : (JSONArray) obj.get("issues")) { - JSONObject jsonObject = (JSONObject) issueJson; - if (issue.key().equals(jsonObject.get("key"))) { - assertThat(jsonObject.get("assignee")).isEqualTo("julien"); - return; - } - } - fail("Issue not found"); - } - - @Test - public void concurrent_issue_mode_on_existing_project() throws Exception { - restoreProfile("one-issue-per-line.xml"); - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - // use same working dir, because lock file is in it - String workDirPath = temp.newFolder().getAbsolutePath(); - SonarScanner runner = configureRunner("shared/xoo-sample", - "sonar.working.directory", workDirPath); - - orchestrator.executeBuild(runner); - - runConcurrentIssues(workDirPath); - } - - private void runConcurrentIssues(final String workDirPath) throws Exception { - // Install sonar-runner in advance to avoid concurrent unzip issues - FileSystem fileSystem = orchestrator.getConfiguration().fileSystem(); - new SonarScannerInstaller(fileSystem).install(Version.create(SonarScanner.DEFAULT_SCANNER_VERSION), fileSystem.workspace(), true); - final int nThreads = 3; - ExecutorService executorService = Executors.newFixedThreadPool(nThreads); - List<Callable<BuildResult>> tasks = new ArrayList<>(); - final File homeDir = temp.newFolder(); - for (int i = 0; i < nThreads; i++) { - tasks.add(new Callable<BuildResult>() { - - public BuildResult call() throws Exception { - SonarScanner runner = configureRunnerIssues("shared/xoo-sample", homeDir, - "sonar.it.enableWaitingSensor", "true", - "sonar.working.directory", workDirPath); - return orchestrator.executeBuild(runner); - } - }); - } - - boolean expectedError = false; - for (Future<BuildResult> result : executorService.invokeAll(tasks)) { - try { - result.get(); - } catch (ExecutionException e) { - if (e.getCause() instanceof BuildFailureException) { - BuildFailureException bfe = (BuildFailureException) e.getCause(); - assertThat(bfe.getResult().getLogs()).contains("Another SonarQube analysis is already in progress for this project"); - expectedError = true; - } else { - throw e; - } - } - } - if (!expectedError) { - fail("At least one of the threads should have failed"); - } - } - - private void restoreProfile(String fileName) { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/analysis/IssuesModeTest/" + fileName)); - } - - private SonarScanner configureRunnerIssues(String projectDir, @Nullable File homeDir, String... props) throws IOException { - SonarScanner scanner = SonarScanner.create(ItUtils.projectDir(projectDir), - "sonar.working.directory", temp.newFolder().getAbsolutePath(), - "sonar.analysis.mode", "issues", - "sonar.report.export.path", "sonar-report.json"); - if (homeDir != null) { - scanner.setProperty("sonar.userHome", homeDir.getAbsolutePath()); - } else { - scanner.setProperty("sonar.userHome", temp.newFolder().getAbsolutePath()); - } - scanner.setProperties(props); - return scanner; - } - - private SonarScanner configureRunner(String projectDir, String... props) throws IOException { - SonarScanner runner = SonarScanner.create(ItUtils.projectDir(projectDir), - "sonar.working.directory", temp.newFolder().getAbsolutePath(), - "sonar.report.export.path", "sonar-report.json", - "sonar.userHome", temp.newFolder().getAbsolutePath()); - runner.setProperties(props); - return runner; - } - - private void setDefaultQualityProfile(String languageKey, String profileName) { - orchestrator.getServer().adminWsClient().post("api/qualityprofiles/set_default", - "language", languageKey, - "profileName", profileName); - } - -} diff --git a/it/it-tests/src/test/java/it/analysis/LinksTest.java b/it/it-tests/src/test/java/it/analysis/LinksTest.java deleted file mode 100644 index fe31968935b..00000000000 --- a/it/it-tests/src/test/java/it/analysis/LinksTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.google.common.collect.ImmutableMap; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.MavenBuild; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category3Suite; -import java.util.List; -import java.util.Optional; -import org.junit.After; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.WsProjectLinks; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.projectlinks.SearchWsRequest; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -public class LinksTest { - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - private static final String PROJECT_KEY = "com.sonarsource.it.samples:simple-sample"; - - @After - public void cleanProjectLinksTable() { - orchestrator.getServer().post("api/projects/delete", ImmutableMap.of("key", PROJECT_KEY)); - } - - /** - * SONAR-3676 - */ - @Test - public void shouldUseLinkProperties() { - SonarScanner runner = SonarScanner.create(ItUtils.projectDir("analysis/links-project")) - .setProperty("sonar.scm.disabled", "true"); - orchestrator.executeBuild(runner); - - verifyLinks(); - } - - /** - * SONAR-3676 - */ - @Test - public void shouldUseLinkPropertiesOverPomLinksInMaven() { - MavenBuild build = MavenBuild.create(ItUtils.projectPom("analysis/links-project")) - .setCleanPackageSonarGoals() - .setProperty("sonar.scm.disabled", "true"); - orchestrator.executeBuild(build); - - verifyLinks(); - } - - private void verifyLinks() { - WsClient wsClient = ItUtils.newWsClient(orchestrator); - List<WsProjectLinks.Link> links = wsClient.projectLinks().search(new SearchWsRequest().setProjectKey(PROJECT_KEY)).getLinksList(); - verifyLink(links, "homepage", "http://www.simplesample.org_OVERRIDDEN"); - verifyLink(links, "ci", "http://bamboo.ci.codehaus.org/browse/SIMPLESAMPLE"); - verifyLink(links, "issue", "http://jira.codehaus.org/browse/SIMPLESAMPLE"); - verifyLink(links, "scm", "https://github.com/SonarSource/simplesample"); - verifyLink(links, "scm_dev", "scm:git:git@github.com:SonarSource/simplesample.git"); - } - - private void verifyLink(List<WsProjectLinks.Link> links, String expectedType, String expectedUrl) { - Optional<WsProjectLinks.Link> link = links.stream() - .filter(l -> l.getType().equals(expectedType)) - .findFirst(); - assertThat(link).isPresent(); - assertThat(link.get().getUrl()).isEqualTo(expectedUrl); - } -} diff --git a/it/it-tests/src/test/java/it/analysis/MultiLanguageTest.java b/it/it-tests/src/test/java/it/analysis/MultiLanguageTest.java deleted file mode 100644 index 5496c4e18ae..00000000000 --- a/it/it-tests/src/test/java/it/analysis/MultiLanguageTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category3Suite; -import java.util.Map; -import org.junit.After; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasureAsDouble; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; - -public class MultiLanguageTest { - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - @After - public void cleanDatabase() { - orchestrator.resetData(); - } - - /** - * SONAR-926 - * SONAR-5069 - */ - @Test - public void test_sonar_runner_inspection() { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/analysis/MultiLanguageTest/one-issue-per-line.xml")); - ItUtils.restoreProfile(orchestrator, getClass().getResource("/analysis/MultiLanguageTest/one-issue-per-line-xoo2.xml")); - - orchestrator.getServer().provisionProject("multi-language-sample", "multi-language-sample"); - - orchestrator.getServer().associateProjectToQualityProfile("multi-language-sample", "xoo", "one-issue-per-line"); - orchestrator.getServer().associateProjectToQualityProfile("multi-language-sample", "xoo2", "one-issue-per-line-xoo2"); - - SonarScanner build = SonarScanner.create().setProjectDir(ItUtils.projectDir("analysis/xoo-multi-languages")); - BuildResult result = orchestrator.executeBuild(build); - - // 4 files: 1 .xoo, 1.xoo2, 2 .measures - assertThat(result.getLogs()).contains("4 files indexed"); - assertThat(result.getLogs()).contains("Quality profile for xoo: one-issue-per-line"); - assertThat(result.getLogs()).contains("Quality profile for xoo2: one-issue-per-line-xoo2"); - - // modules - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, "multi-language-sample", "files", "violations"); - assertThat(measures.get("files")).isEqualTo(2); - assertThat(measures.get("violations")).isEqualTo(26); - - assertThat(getMeasureAsDouble(orchestrator, "multi-language-sample:src/sample/Sample.xoo", "violations")).isEqualTo(13); - assertThat(getMeasureAsDouble(orchestrator, "multi-language-sample:src/sample/Sample.xoo2", "violations")).isEqualTo(13); - } -} diff --git a/it/it-tests/src/test/java/it/analysis/PermissionTest.java b/it/it-tests/src/test/java/it/analysis/PermissionTest.java deleted file mode 100644 index 372865fa411..00000000000 --- a/it/it-tests/src/test/java/it/analysis/PermissionTest.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category3Suite; -import javax.annotation.Nullable; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.ws.WsUserTokens; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.permission.AddUserWsRequest; -import org.sonarqube.ws.client.usertoken.GenerateWsRequest; -import org.sonarqube.ws.client.usertoken.RevokeWsRequest; -import org.sonarqube.ws.client.usertoken.UserTokensService; -import util.ItUtils; -import util.user.UserRule; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.projectDir; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; - -public class PermissionTest { - - private static final String A_LOGIN = "a_login"; - private static final String A_PASSWORD = "a_password"; - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - private WsClient adminWsClient; - private UserTokensService userTokensWsClient; - - @Before - public void setUp() { - orchestrator.resetData(); - - // enforce scanners to be authenticated - setServerProperty(orchestrator, "sonar.forceAuthentication", "true"); - - adminWsClient = newAdminWsClient(orchestrator); - userTokensWsClient = adminWsClient.userTokens(); - } - - @After - public void tearDown() throws Exception { - resetSettings(orchestrator, null, "sonar.forceAuthentication"); - userRule.resetUsers(); - } - - @Test - public void scanner_can_authenticate_with_authentication_token() { - createUserWithProvisioningAndScanPermissions(); - - String tokenName = "For test"; - WsUserTokens.GenerateWsResponse generateWsResponse = userTokensWsClient.generate(new GenerateWsRequest() - .setLogin(A_LOGIN) - .setName(tokenName)); - SonarScanner sampleProject = SonarScanner.create(projectDir("shared/xoo-sample")); - sampleProject.setProperties( - "sonar.login", generateWsResponse.getToken(), - "sonar.password", ""); - - BuildResult buildResult = orchestrator.executeBuild(sampleProject); - - assertThat(buildResult.isSuccess()).isTrue(); - userTokensWsClient.revoke(new RevokeWsRequest().setLogin(A_LOGIN).setName(tokenName)); - } - - @Test - public void scanner_fails_if_authentication_token_is_not_valid() { - SonarScanner sampleProject = SonarScanner.create(projectDir("shared/xoo-sample")); - sampleProject.setProperties( - "sonar.login", "unknown-token", - "sonar.password", ""); - - BuildResult buildResult = orchestrator.executeBuildQuietly(sampleProject); - - assertThat(buildResult.isSuccess()).isFalse(); - } - - /** - * SONAR-4211 Test Sonar Runner when server requires authentication - */ - @Test - public void scanner_can_authenticate_with_login_password() { - createUserWithProvisioningAndScanPermissions(); - - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - - BuildResult buildResult = scanQuietly("shared/xoo-sample", - "sonar.login", "", - "sonar.password", ""); - assertThat(buildResult.getLastStatus()).isEqualTo(1); - assertThat(buildResult.getLogs()).contains( - "Not authorized. Analyzing this project requires to be authenticated. Please provide the values of the properties sonar.login and sonar.password."); - - // SONAR-4048 - buildResult = scanQuietly("shared/xoo-sample", - "sonar.login", "wrong_login", - "sonar.password", "wrong_password"); - assertThat(buildResult.getLastStatus()).isEqualTo(1); - assertThat(buildResult.getLogs()).contains( - "Not authorized. Please check the properties sonar.login and sonar.password."); - - buildResult = scan("shared/xoo-sample", - "sonar.login", A_LOGIN, - "sonar.password", A_PASSWORD); - assertThat(buildResult.getLastStatus()).isEqualTo(0); - } - - @Test - public void run_scanner_with_user_having_scan_permission_only_on_project() throws Exception { - userRule.createUser(A_LOGIN, A_PASSWORD); - orchestrator.getServer().provisionProject("sample", "sample"); - addUserPermission(A_LOGIN, "scan", "sample"); - - BuildResult buildResult = scanQuietly("shared/xoo-sample", "sonar.login", A_LOGIN, "sonar.password", A_PASSWORD); - - assertThat(buildResult.isSuccess()).isTrue(); - } - - private void addUserPermission(String login, String permission, @Nullable String projectKey) { - adminWsClient.permissions().addUser(new AddUserWsRequest() - .setLogin(login) - .setPermission(permission) - .setProjectKey(projectKey)); - } - - private BuildResult scan(String projectPath, String... props) { - SonarScanner scanner = configureScanner(projectPath, props); - return orchestrator.executeBuild(scanner); - } - - private BuildResult scanQuietly(String projectPath, String... props) { - SonarScanner scanner = configureScanner(projectPath, props); - return orchestrator.executeBuildQuietly(scanner); - } - - private SonarScanner configureScanner(String projectPath, String... props) { - return SonarScanner.create(ItUtils.projectDir(projectPath)) - .setProperties(props); - } - - private void createUserWithProvisioningAndScanPermissions() { - userRule.createUser(A_LOGIN, A_PASSWORD); - addUserPermission(A_LOGIN, "provisioning", null); - addUserPermission(A_LOGIN, "scan", null); - } - -} diff --git a/it/it-tests/src/test/java/it/analysis/ProjectBuilderTest.java b/it/it-tests/src/test/java/it/analysis/ProjectBuilderTest.java deleted file mode 100644 index b6561ebf346..00000000000 --- a/it/it-tests/src/test/java/it/analysis/ProjectBuilderTest.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.MavenBuild; -import it.Category3Suite; -import java.util.Map; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getComponent; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; - -/** - * Test the extension point org.sonar.api.batch.bootstrap.ProjectBuilder - * <p/> - * A Sonar plugin can override the project definition injected by build-tool. - * Example: C# plugin loads project structure and modules from Visual Studio metadata file. - * - * @since 2.9 - */ -public class ProjectBuilderTest { - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - @Test - public void shouldDefineProjectFromPlugin() { - MavenBuild build = MavenBuild.create(ItUtils.projectPom("analysis/project-builder")) - .setCleanSonarGoals() - .setProperty("sonar.enableProjectBuilder", "true") - .setProperty("sonar.dynamicAnalysis", "false"); - orchestrator.executeBuild(build); - - checkProject(); - checkSubProject("project-builder-module-a"); - checkSubProject("project-builder-module-b"); - checkFile("project-builder-module-a", "src/HelloA.java"); - checkFile("project-builder-module-b", "src/HelloB.java"); - assertThat(getComponent(orchestrator, "com.sonarsource.it.projects.batch:project-builder-module-b:src/IgnoredFile.java")).isNull(); - } - - private void checkProject() { - // name has been changed by plugin - assertThat(getComponent(orchestrator, "com.sonarsource.it.projects.batch:project-builder").getName()).isEqualTo("Name changed by plugin"); - - Map<String, Double> measures = getMeasures("com.sonarsource.it.projects.batch:project-builder"); - assertThat(measures.get("files")).isEqualTo(2); - assertThat(measures.get("lines")).isGreaterThan(10); - } - - private void checkSubProject(String subProjectKey) { - Map<String, Double> measures = getMeasures("com.sonarsource.it.projects.batch:" + subProjectKey); - assertThat(measures.get("files")).isEqualTo(1); - assertThat(measures.get("lines")).isGreaterThan(5); - } - - private void checkFile(String subProjectKey, String fileKey) { - Map<String, Double> measures = getMeasures("com.sonarsource.it.projects.batch:" + subProjectKey + ":" + fileKey); - assertThat(measures.get("lines")).isGreaterThan(5); - } - - private Map<String, Double> getMeasures(String key) { - return getMeasuresAsDoubleByMetricKey(orchestrator, key, "lines", "files"); - } -} diff --git a/it/it-tests/src/test/java/it/analysis/ReportDumpTest.java b/it/it-tests/src/test/java/it/analysis/ReportDumpTest.java deleted file mode 100644 index e6c46b4a8a2..00000000000 --- a/it/it-tests/src/test/java/it/analysis/ReportDumpTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import com.sonar.orchestrator.http.HttpResponse; -import it.Category3Suite; -import java.io.File; -import java.io.IOException; -import java.io.StringReader; -import java.nio.charset.StandardCharsets; -import java.util.Properties; -import org.apache.commons.io.FileUtils; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -public class ReportDumpTest { - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - /** - * SONAR-6905 - */ - @Test - public void dump_metadata_of_uploaded_report() throws Exception { - File projectDir = ItUtils.projectDir("shared/xoo-sample"); - orchestrator.executeBuild(SonarScanner.create(projectDir, "sonar.projectKey", "dump_metadata_of_uploaded_report", "sonar.projectName", "dump_metadata_of_uploaded_report")); - - File metadata = new File(projectDir, ".sonar/report-task.txt"); - assertThat(metadata).exists().isFile(); - - // verify properties - Properties props = new Properties(); - props.load(new StringReader(FileUtils.readFileToString(metadata, StandardCharsets.UTF_8))); - assertThat(props).hasSize(6); - assertThat(props.getProperty("projectKey")).isEqualTo("dump_metadata_of_uploaded_report"); - assertThat(props.getProperty("ceTaskId")).isNotEmpty(); - String serverVersion = orchestrator.getServer().newHttpCall("api/server/version").execute().getBodyAsString(); - assertThat(props.getProperty("serverVersion")).isEqualTo(serverVersion); - verifyUrl(props.getProperty("serverUrl")); - verifyUrl(props.getProperty("dashboardUrl")); - verifyUrl(props.getProperty("ceTaskUrl")); - } - - private void verifyUrl(String url) throws IOException { - HttpResponse response = orchestrator.getServer().newHttpCall(url).execute(); - assertThat(response.isSuccessful()).as(url).isTrue(); - assertThat(response.getBodyAsString()).as(url).isNotEmpty(); - } - -} diff --git a/it/it-tests/src/test/java/it/analysis/SSLTest.java b/it/it-tests/src/test/java/it/analysis/SSLTest.java deleted file mode 100644 index 97b40550297..00000000000 --- a/it/it-tests/src/test/java/it/analysis/SSLTest.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import com.sonar.orchestrator.util.NetworkUtils; -import it.Category3Suite; -import java.net.InetAddress; -import java.nio.file.Path; -import java.nio.file.Paths; -import org.eclipse.jetty.http.HttpVersion; -import org.eclipse.jetty.proxy.ProxyServlet; -import org.eclipse.jetty.server.Handler; -import org.eclipse.jetty.server.HttpConfiguration; -import org.eclipse.jetty.server.HttpConnectionFactory; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.ServerConnector; -import org.eclipse.jetty.server.SslConnectionFactory; -import org.eclipse.jetty.server.handler.DefaultHandler; -import org.eclipse.jetty.server.handler.HandlerCollection; -import org.eclipse.jetty.servlet.ServletContextHandler; -import org.eclipse.jetty.servlet.ServletHandler; -import org.eclipse.jetty.servlet.ServletHolder; -import org.eclipse.jetty.util.ssl.SslContextFactory; -import org.eclipse.jetty.util.thread.QueuedThreadPool; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -public class SSLTest { - - private static final String CLIENT_KEYSTORE = "/analysis/SSLTest/clientkeystore.jks"; - private static final String CLIENT_KEYSTORE_PWD = "clientp12pwd"; - - private static final String CLIENT_TRUSTSTORE = "/analysis/SSLTest/clienttruststore.jks"; - private static final String CLIENT_TRUSTSTORE_PWD = "clienttruststorepwd"; - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - private static Server server; - private static int httpsPort; - - @Before - public void deleteData() { - orchestrator.resetData(); - } - - public static void startSSLTransparentReverseProxy(boolean requireClientAuth) throws Exception { - int httpPort = NetworkUtils.getNextAvailablePort(InetAddress.getLoopbackAddress()); - httpsPort = NetworkUtils.getNextAvailablePort(InetAddress.getLoopbackAddress()); - - // Setup Threadpool - QueuedThreadPool threadPool = new QueuedThreadPool(); - threadPool.setMaxThreads(500); - - server = new Server(threadPool); - - // HTTP Configuration - HttpConfiguration httpConfig = new HttpConfiguration(); - httpConfig.setSecureScheme("https"); - httpConfig.setSecurePort(httpsPort); - httpConfig.setSendServerVersion(true); - httpConfig.setSendDateHeader(false); - - // Handler Structure - HandlerCollection handlers = new HandlerCollection(); - handlers.setHandlers(new Handler[] {proxyHandler(), new DefaultHandler()}); - server.setHandler(handlers); - - ServerConnector http = new ServerConnector(server, new HttpConnectionFactory(httpConfig)); - http.setPort(httpPort); - server.addConnector(http); - - Path serverKeyStore = Paths.get(SSLTest.class.getResource("/analysis/SSLTest/serverkeystore.jks").toURI()).toAbsolutePath(); - String keyStorePassword = "serverkeystorepwd"; - String serverKeyPassword = "serverp12pwd"; - Path serverTrustStore = Paths.get(SSLTest.class.getResource("/analysis/SSLTest/servertruststore.jks").toURI()).toAbsolutePath(); - String trustStorePassword = "servertruststorepwd"; - - // SSL Context Factory - SslContextFactory sslContextFactory = new SslContextFactory(); - sslContextFactory.setKeyStorePath(serverKeyStore.toString()); - sslContextFactory.setKeyStorePassword(keyStorePassword); - sslContextFactory.setKeyManagerPassword(serverKeyPassword); - sslContextFactory.setTrustStorePath(serverTrustStore.toString()); - sslContextFactory.setTrustStorePassword(trustStorePassword); - sslContextFactory.setNeedClientAuth(requireClientAuth); - sslContextFactory.setExcludeCipherSuites("SSL_RSA_WITH_DES_CBC_SHA", - "SSL_DHE_RSA_WITH_DES_CBC_SHA", "SSL_DHE_DSS_WITH_DES_CBC_SHA", - "SSL_RSA_EXPORT_WITH_RC4_40_MD5", - "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA", - "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", - "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"); - - // SSL HTTP Configuration - HttpConfiguration httpsConfig = new HttpConfiguration(httpConfig); - - // SSL Connector - ServerConnector sslConnector = new ServerConnector(server, - new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.asString()), - new HttpConnectionFactory(httpsConfig)); - sslConnector.setPort(httpsPort); - server.addConnector(sslConnector); - - server.start(); - } - - private static ServletContextHandler proxyHandler() { - ServletContextHandler contextHandler = new ServletContextHandler(); - contextHandler.setServletHandler(newServletHandler()); - return contextHandler; - } - - private static ServletHandler newServletHandler() { - ServletHandler handler = new ServletHandler(); - ServletHolder holder = handler.addServletWithMapping(ProxyServlet.Transparent.class, "/*"); - holder.setInitParameter("proxyTo", orchestrator.getServer().getUrl()); - return handler; - } - - @After - public void stopProxy() throws Exception { - if (server != null && server.isStarted()) { - server.stop(); - } - } - - @Test - public void simple_analysis_with_server_and_client_certificate() throws Exception { - startSSLTransparentReverseProxy(true); - - SonarScanner sonarScanner = SonarScanner.create(ItUtils.projectDir("shared/xoo-sample")) - .setScannerVersion("2.7") - .setProperty("sonar.host.url", "https://localhost:" + httpsPort); - - BuildResult buildResult = orchestrator.executeBuildQuietly(sonarScanner); - assertThat(buildResult.getLastStatus()).isNotEqualTo(0); - assertThat(buildResult.getLogs()).contains("javax.net.ssl.SSLHandshakeException"); - - Path clientTruststore = Paths.get(SSLTest.class.getResource(CLIENT_TRUSTSTORE).toURI()).toAbsolutePath(); - String truststorePassword = CLIENT_TRUSTSTORE_PWD; - Path clientKeystore = Paths.get(SSLTest.class.getResource(CLIENT_KEYSTORE).toURI()).toAbsolutePath(); - String keystorePassword = CLIENT_KEYSTORE_PWD; - - buildResult = orchestrator.executeBuild(sonarScanner - .setEnvironmentVariable("SONAR_SCANNER_OPTS", - "-Djavax.net.ssl.trustStore=" + clientTruststore.toString() + - " -Djavax.net.ssl.trustStorePassword=" + truststorePassword + - " -Djavax.net.ssl.keyStore=" + clientKeystore.toString() + - " -Djavax.net.ssl.keyStorePassword=" + keystorePassword)); - } - - @Test - public void simple_analysis_with_server_certificate() throws Exception { - startSSLTransparentReverseProxy(false); - - SonarScanner sonarScanner = SonarScanner.create(ItUtils.projectDir("shared/xoo-sample")) - .setScannerVersion("2.7") - .setProperty("sonar.host.url", "https://localhost:" + httpsPort); - - BuildResult buildResult = orchestrator.executeBuildQuietly(sonarScanner); - assertThat(buildResult.getLastStatus()).isNotEqualTo(0); - assertThat(buildResult.getLogs()).contains("javax.net.ssl.SSLHandshakeException"); - - Path clientTruststore = Paths.get(SSLTest.class.getResource(CLIENT_TRUSTSTORE).toURI()).toAbsolutePath(); - String truststorePassword = CLIENT_TRUSTSTORE_PWD; - - buildResult = orchestrator.executeBuild(sonarScanner - .setEnvironmentVariable("SONAR_SCANNER_OPTS", - "-Djavax.net.ssl.trustStore=" + clientTruststore.toString() + - " -Djavax.net.ssl.trustStorePassword=" + truststorePassword)); - } -} diff --git a/it/it-tests/src/test/java/it/analysis/ScannerTest.java b/it/it-tests/src/test/java/it/analysis/ScannerTest.java deleted file mode 100644 index 60baeecb9bd..00000000000 --- a/it/it-tests/src/test/java/it/analysis/ScannerTest.java +++ /dev/null @@ -1,395 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category3Suite; -import java.io.File; -import java.io.IOException; -import java.util.Map; -import org.apache.commons.io.FileUtils; -import org.junit.Assume; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.rules.TemporaryFolder; -import org.sonarqube.ws.client.component.SearchWsRequest; -import util.ItUtils; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getComponent; -import static util.ItUtils.getComponentNavigation; -import static util.ItUtils.getMeasureAsDouble; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; - -public class ScannerTest { - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Before - public void deleteData() { - orchestrator.resetData(); - ItUtils.restoreProfile(orchestrator, getClass().getResource("/analysis/BatchTest/one-issue-per-line.xml")); - } - - /** - * SONAR-3718 - */ - @Test - public void should_scan_branch_with_forward_slash() { - scan("shared/xoo-multi-modules-sample"); - scan("shared/xoo-multi-modules-sample", "sonar.branch", "branch/0.x"); - - assertThat(newAdminWsClient(orchestrator).components().search(new SearchWsRequest().setQualifiers(singletonList("TRK"))).getComponentsList()).hasSize(2); - assertThat(getComponent(orchestrator, "com.sonarsource.it.samples:multi-modules-sample").getName()).isEqualTo("Sonar :: Integration Tests :: Multi-modules Sample"); - assertThat(getComponent(orchestrator, "com.sonarsource.it.samples:multi-modules-sample:branch/0.x").getName()) - .isEqualTo("Sonar :: Integration Tests :: Multi-modules Sample branch/0.x"); - } - - @Test - public void use_sonar_profile_without_provisioning_project() { - scan("shared/xoo-multi-modules-sample", - "sonar.profile", "one-issue-per-line", - "sonar.verbose", "true"); - assertThat(getMeasureAsDouble(orchestrator, "com.sonarsource.it.samples:multi-modules-sample", "violations")).isEqualTo(61); - } - - // SONAR-4680 - @Test - public void module_should_load_own_settings_from_database() { - String rootModuleKey = "com.sonarsource.it.samples:multi-modules-sample"; - orchestrator.getServer().provisionProject(rootModuleKey, "Sonar :: Integration Tests :: Multi-modules Sample"); - - String propKey = "myFakeProperty"; - String moduleBKey = rootModuleKey + ":module_b"; - resetSettings(orchestrator, rootModuleKey, propKey); - - BuildResult result = scan("shared/xoo-multi-modules-sample", "sonar.showSettings", propKey); - - assertThat(result.getLogs()).doesNotContain(rootModuleKey + ":" + propKey); - assertThat(result.getLogs()).doesNotContain(moduleBKey + ":" + propKey); - - // Set property only on root project - setServerProperty(orchestrator, rootModuleKey, propKey, "project"); - - result = scan("shared/xoo-multi-modules-sample", "sonar.showSettings", propKey); - - assertThat(result.getLogs()).contains(rootModuleKey + ":" + propKey + " = project"); - assertThat(result.getLogs()).contains(moduleBKey + ":" + propKey + " = project"); - - // Override property on moduleB - setServerProperty(orchestrator, moduleBKey, propKey, "moduleB"); - - result = scan("shared/xoo-multi-modules-sample", "sonar.showSettings", propKey); - - assertThat(result.getLogs()).contains(rootModuleKey + ":" + propKey + " = project"); - assertThat(result.getLogs()).contains(moduleBKey + ":" + propKey + " = moduleB"); - } - - // SONAR-4680 - @Test - public void module_should_load_settings_from_parent() { - String rootModuleKey = "com.sonarsource.it.samples:multi-modules-sample"; - orchestrator.getServer().provisionProject(rootModuleKey, "Sonar :: Integration Tests :: Multi-modules Sample"); - - String propKey = "myFakeProperty"; - String moduleBKey = rootModuleKey + ":module_b"; - - // Set property on provisioned project - setServerProperty(orchestrator, rootModuleKey, propKey, "project"); - - BuildResult result = scan("shared/xoo-multi-modules-sample", "sonar.showSettings", propKey); - - assertThat(result.getLogs()).contains(rootModuleKey + ":" + propKey + " = project"); - // Module should inherit from parent - assertThat(result.getLogs()).contains(moduleBKey + ":" + propKey + " = project"); - } - - /** - * SONAR-3024 - */ - @Test - public void should_support_source_files_with_same_deprecated_key() { - orchestrator.getServer().provisionProject("com.sonarsource.it.projects.batch:duplicate-source", "exclusions"); - orchestrator.getServer().associateProjectToQualityProfile("com.sonarsource.it.projects.batch:duplicate-source", "xoo", "one-issue-per-line"); - scan("analysis/duplicate-source"); - - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, "com.sonarsource.it.projects.batch:duplicate-source", "files", "directories"); - // 2 main files and 1 test file all with same deprecated key - assertThat(measures.get("files")).isEqualTo(2); - assertThat(measures.get("directories")).isEqualTo(2); - } - - /** - * SONAR-3125 - */ - @Test - public void should_display_explicit_message_when_no_plugin_language_available() { - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - BuildResult buildResult = scanQuietly("shared/xoo-sample", - "sonar.language", "foo", - "sonar.profile", ""); - assertThat(buildResult.getLastStatus()).isEqualTo(1); - assertThat(buildResult.getLogs()).contains( - "You must install a plugin that supports the language 'foo'"); - } - - @Test - public void should_display_explicit_message_when_wrong_profile() { - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - BuildResult buildResult = scanQuietly("shared/xoo-sample", - "sonar.profile", "unknow"); - assertThat(buildResult.getLastStatus()).isEqualTo(1); - assertThat(buildResult.getLogs()).contains( - "sonar.profile was set to 'unknow' but didn't match any profile for any language. Please check your configuration."); - } - - @Test - public void should_create_project_without_name_version() { - // some of the sub-modules have a name defined, others don't - BuildResult buildResult = scan("shared/xoo-multi-module-sample-without-project-name-version"); - assertThat(buildResult.isSuccess()).isTrue(); - - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample", "com.sonarsource.it.samples:multi-modules-sample", "not provided"); - - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_b", "module_b", "not provided"); - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1", "module_b1", "not provided"); - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2", "Sub-module B2", "not provided"); - - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_a", "Module A", "not provided"); - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1", "Sub-module A1", "not provided"); - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2", "Sub-module A2", "not provided"); - } - - @Test - public void should_analyze_project_without_name_version() { - orchestrator.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-sample", "My project name"); - BuildResult buildResult = scan("shared/xoo-multi-module-sample-without-project-name-version", - "sonar.projectName", "My project name", - "sonar.projectVersion", "1.0"); - assertThat(buildResult.isSuccess()).isTrue(); - - buildResult = scan("shared/xoo-multi-module-sample-without-project-name-version"); - assertThat(buildResult.isSuccess()).isTrue(); - - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample", "My project name", "1.0"); - - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_b", "module_b", "1.0"); - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1", "module_b1", "1.0"); - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2", "Sub-module B2", "1.0"); - - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_a", "Module A", "1.0"); - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1", "Sub-module A1", "1.0"); - assertNameAndVersion("com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2", "Sub-module A2", "1.0"); - } - - private void assertNameAndVersion(String projectKey, String expectedProjectName, String expectedProjectVersion) { - assertThat(getComponent(orchestrator, projectKey).getName()).isEqualTo(expectedProjectName); - assertThat(getComponentNavigation(orchestrator, projectKey).getVersion()).isEqualTo(expectedProjectVersion); - } - - @Test - public void should_honor_sonarUserHome() { - File userHome = temp.getRoot(); - - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - SonarScanner scanner = configureScanner("shared/xoo-sample", - "sonar.verbose", "true"); - scanner.setEnvironmentVariable("SONAR_USER_HOME", "/dev/null"); - BuildResult buildResult = orchestrator.executeBuildQuietly(scanner); - assertThat(buildResult.getLastStatus()).isEqualTo(1); - - buildResult = scan("shared/xoo-sample", - "sonar.verbose", "true", - "sonar.userHome", userHome.getAbsolutePath()); - assertThat(buildResult.isSuccess()).isTrue(); - } - - /** - * SONAR-2291 - */ - @Test - public void batch_should_cache_plugin_jars() throws IOException { - File userHome = temp.newFolder(); - - BuildResult result = scan("shared/xoo-sample", - "sonar.userHome", userHome.getAbsolutePath()); - - File cache = new File(userHome, "cache"); - assertThat(cache).exists().isDirectory(); - int cachedFiles = FileUtils.listFiles(cache, new String[] {"jar"}, true).size(); - assertThat(cachedFiles).isGreaterThan(5); - assertThat(result.getLogs()).contains("User cache: " + cache.getAbsolutePath()); - assertThat(result.getLogs()).contains("Download sonar-xoo-plugin-"); - - result = scan("shared/xoo-sample", - "sonar.userHome", userHome.getAbsolutePath()); - assertThat(cachedFiles).isEqualTo(cachedFiles); - assertThat(result.getLogs()).contains("User cache: " + cache.getAbsolutePath()); - assertThat(result.getLogs()).doesNotContain("Download sonar-xoo-plugin-"); - } - - @Test - public void batch_should_keep_report_verbose() { - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - scanQuietly("shared/xoo-sample", "sonar.verbose", "true"); - File reportDir = new File(new File(ItUtils.projectDir("shared/xoo-sample"), ".sonar"), "batch-report"); - assertThat(reportDir).isDirectory(); - assertThat(reportDir.list()).isNotEmpty(); - } - - /** - * SONAR-4239 - */ - @Test - public void should_display_project_url_after_analysis() throws IOException { - orchestrator.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-sample", "Sonar :: Integration Tests :: Multi-modules Sample"); - orchestrator.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-sample", "xoo", "one-issue-per-line"); - Assume.assumeTrue(orchestrator.getServer().version().isGreaterThanOrEquals("3.6")); - - BuildResult result = scan("shared/xoo-multi-modules-sample"); - - assertThat(result.getLogs()).contains("/dashboard/index/com.sonarsource.it.samples:multi-modules-sample"); - - result = scan("shared/xoo-multi-modules-sample", - "sonar.branch", "mybranch"); - - assertThat(result.getLogs()).contains("/dashboard/index/com.sonarsource.it.samples:multi-modules-sample:mybranch"); - - try { - setServerProperty(orchestrator, null, "sonar.core.serverBaseURL", "http://foo:123/sonar"); - result = scan("shared/xoo-multi-modules-sample"); - assertThat(result.getLogs()).contains("http://foo:123/sonar/dashboard/index/com.sonarsource.it.samples:multi-modules-sample"); - } finally { - resetSettings(orchestrator, null, "sonar.core.serverBaseURL"); - } - } - - /** - * SONAR-4188, SONAR-5178, SONAR-5915 - */ - @Test - public void should_display_explicit_message_when_invalid_project_key_or_branch() { - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - BuildResult buildResult = scanQuietly("shared/xoo-sample", - "sonar.projectKey", "ar g$l:"); - assertThat(buildResult.getLastStatus()).isEqualTo(1); - assertThat(buildResult.getLogs()).contains("\"ar g$l:\" is not a valid project or module key") - .contains("Allowed characters"); - - // SONAR-4629 - buildResult = scanQuietly("shared/xoo-sample", - "sonar.projectKey", "12345"); - assertThat(buildResult.getLastStatus()).isEqualTo(1); - assertThat(buildResult.getLogs()).contains("\"12345\" is not a valid project or module key") - .contains("Allowed characters"); - - buildResult = scanQuietly("shared/xoo-sample", - "sonar.branch", "ar g$l:"); - assertThat(buildResult.getLastStatus()).isEqualTo(1); - assertThat(buildResult.getLogs()).contains("\"ar g$l:\" is not a valid branch") - .contains("Allowed characters"); - } - - /** - * SONAR-4547 - */ - @Test - public void display_MessageException_without_stacktrace() throws Exception { - orchestrator.getServer().provisionProject("sample", "xoo-sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - BuildResult result = scanQuietly("shared/xoo-sample", "raiseMessageException", "true"); - assertThat(result.getLastStatus()).isNotEqualTo(0); - assertThat(result.getLogs()) - // message - .contains("Error message from plugin") - - // but not stacktrace - .doesNotContain("at com.sonarsource.RaiseMessageException"); - } - - /** - * SONAR-4751 - */ - @Test - public void file_extensions_are_case_insensitive() throws Exception { - orchestrator.getServer().provisionProject("case-sensitive-file-extensions", "Case Sensitive"); - orchestrator.getServer().associateProjectToQualityProfile("case-sensitive-file-extensions", "xoo", "one-issue-per-line"); - scan("analysis/case-sensitive-file-extensions"); - - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, "case-sensitive-file-extensions", "files", "ncloc"); - assertThat(measures.get("files")).isEqualTo(2); - assertThat(measures.get("ncloc")).isEqualTo(5 + 2); - } - - /** - * SONAR-4876 - */ - @Test - public void custom_module_key() { - orchestrator.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-sample", "Sonar :: Integration Tests :: Multi-modules Sample"); - orchestrator.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-sample", "xoo", "one-issue-per-line"); - scan("analysis/custom-module-key"); - assertThat(getComponent(orchestrator, "com.sonarsource.it.samples:moduleA")).isNotNull(); - assertThat(getComponent(orchestrator, "com.sonarsource.it.samples:moduleB")).isNotNull(); - } - - private BuildResult scan(String projectPath, String... props) { - SonarScanner scanner = configureScanner(projectPath, props); - return orchestrator.executeBuild(scanner); - } - - private BuildResult scanQuietly(String projectPath, String... props) { - SonarScanner scanner = configureScanner(projectPath, props); - return orchestrator.executeBuildQuietly(scanner); - } - - private SonarScanner configureScanner(String projectPath, String... props) { - SonarScanner scanner = SonarScanner.create(ItUtils.projectDir(projectPath)) - .setProperties(props); - return scanner; - } - -} diff --git a/it/it-tests/src/test/java/it/analysis/SettingsEncryptionTest.java b/it/it-tests/src/test/java/it/analysis/SettingsEncryptionTest.java deleted file mode 100644 index 43768e309a2..00000000000 --- a/it/it-tests/src/test/java/it/analysis/SettingsEncryptionTest.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildFailureException; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category3Suite; -import java.io.File; -import java.net.URL; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -public class SettingsEncryptionTest { - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - /** - * SONAR-2084 - * SONAR-4061 - */ - @Test - public void testEncryptedProperty() throws Exception { - SonarScanner build = SonarScanner.create(ItUtils.projectDir("shared/xoo-sample")) - .setProperty("sonar.secretKeyPath", pathToValidSecretKey()) - .setProperty("sonar.login", "admin") - // wrong password - .setProperty("sonar.password", "{aes}wrongencryption==")// wrong password - // "this is a secret" encrypted with the above secret key - .setProperty("encryptedProperty", "{aes}9mx5Zq4JVyjeChTcVjEide4kWCwusFl7P2dSVXtg9IY="); - BuildResult result = orchestrator.executeBuildQuietly(build); - assertThat(result.getStatus()).isNotEqualTo(0); - assertThat(result.getLogs()).contains("Fail to decrypt the property sonar.password. Please check your secret key"); - - build = SonarScanner.create(ItUtils.projectDir("shared/xoo-sample")) - .setProperty("sonar.secretKeyPath", pathToValidSecretKey()) - // "admin" encrypted with the above secret key - .setProperty("sonar.login", "{aes}evRHXHsEyPr5RjEuxUJcHA==") - .setProperty("sonar.password", "{aes}evRHXHsEyPr5RjEuxUJcHA==") - // "this is a secret" encrypted with the above secret key - .setProperty("encryptedProperty", "{aes}9mx5Zq4JVyjeChTcVjEide4kWCwusFl7P2dSVXtg9IY="); - // no error - orchestrator.executeBuild(build); - } - - /** - * SONAR-2084 - */ - @Test(expected = BuildFailureException.class) - public void failIfEncryptedPropertyButNoSecretKey() throws Exception { - // path to secret key is missing - SonarScanner build = SonarScanner.create(ItUtils.projectDir("shared/xoo-sample")) - .setProperty("encryptedProperty", "{aes}9mx5Zq4JVyjeChTcVjEide4kWCwusFl7P2dSVXtg9IY="); - orchestrator.executeBuild(build); - } - - private String pathToValidSecretKey() throws Exception { - URL resource = getClass().getResource("/analysis/SettingsEncryptionTest/sonar-secret.txt"); - return new File(resource.toURI()).getCanonicalPath(); - } -} diff --git a/it/it-tests/src/test/java/it/analysis/TempFolderTest.java b/it/it-tests/src/test/java/it/analysis/TempFolderTest.java deleted file mode 100644 index 0af1543b3ed..00000000000 --- a/it/it-tests/src/test/java/it/analysis/TempFolderTest.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysis; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category3Suite; -import java.io.File; -import java.io.IOException; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.rules.TemporaryFolder; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -public class TempFolderTest { - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Before - public void deleteData() { - orchestrator.resetData(); - ItUtils.restoreProfile(orchestrator, getClass().getResource("/analysis/TempFolderTest/one-issue-per-line.xml")); - orchestrator.getServer().provisionProject("sample", "Sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - } - - // SONAR-4748 - @Test - public void should_create_in_temp_folder() throws IOException { - File projectDir = ItUtils.projectDir("shared/xoo-sample"); - BuildResult result = scan(); - - assertThat(result.getLogs()).doesNotContain("Creating temp directory:"); - assertThat(result.getLogs()).doesNotContain("Creating temp file:"); - - result = scan("sonar.createTempFiles", "true"); - assertThat(result.getLogs()).contains( - "Creating temp directory: " + projectDir.getCanonicalPath() + File.separator + ".sonar" + File.separator + ".sonartmp" + File.separator + "sonar-it"); - assertThat(result.getLogs()).contains( - "Creating temp file: " + projectDir.getCanonicalPath() + File.separator + ".sonar" + File.separator + ".sonartmp" + File.separator + "sonar-it"); - - // Verify temp folder is deleted after analysis - assertThat(new File(projectDir, ".sonar/.sonartmp/sonar-it")).doesNotExist(); - } - - // SONAR-4748 - @Test - public void should_not_use_system_tmp_dir() throws Exception { - File tmp = temp.newFolder(); - SonarScanner runner = configureScanner() - .setEnvironmentVariable("SONAR_RUNNER_OPTS", "-Djava.io.tmpdir=" + tmp.getAbsolutePath()); - orchestrator.executeBuild(runner); - - // temp directory is clean-up - assertThat(tmp.list()).isEmpty(); - } - - private BuildResult scan(String... props) { - SonarScanner runner = configureScanner(props); - return orchestrator.executeBuild(runner); - } - - private SonarScanner configureScanner(String... props) { - return SonarScanner.create(ItUtils.projectDir("shared/xoo-sample")) - .setProperties(props); - } - -} diff --git a/it/it-tests/src/test/java/it/analysisExclusion/FileExclusionsTest.java b/it/it-tests/src/test/java/it/analysisExclusion/FileExclusionsTest.java deleted file mode 100644 index c949f993240..00000000000 --- a/it/it-tests/src/test/java/it/analysisExclusion/FileExclusionsTest.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysisExclusion; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import java.util.List; -import java.util.Map; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.WsComponents.Component; -import org.sonarqube.ws.client.component.TreeWsRequest; -import util.ItUtils; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; -import static util.ItUtils.newWsClient; - -public class FileExclusionsTest { - static final String PROJECT = "exclusions"; - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Before - public void resetData() { - orchestrator.resetData(); - } - - @Test - public void exclude_source_files() { - scan( - "sonar.global.exclusions", "**/*Ignore*.xoo", - "sonar.exclusions", "**/*Exclude*.xoo,src/main/xoo/org/sonar/tests/packageToExclude/**", - "sonar.test.exclusions", "**/ClassTwoTest.xoo"); - - Map<String, Double> measures = getMeasuresAsDouble("ncloc", "files", "directories"); - assertThat(measures.get("files").intValue()).isEqualTo(4); - assertThat(measures.get("ncloc").intValue()).isEqualTo(60); - assertThat(measures.get("directories").intValue()).isEqualTo(2); - } - - /** - * SONAR-2444 / SONAR-3758 - */ - @Test - public void exclude_test_files() { - scan( - "sonar.global.exclusions", "**/*Ignore*.xoo", - "sonar.exclusions", "**/*Exclude*.xoo,org/sonar/tests/packageToExclude/**", - "sonar.test.exclusions", "**/ClassTwoTest.xoo"); - - List<Component> testFiles = getComponents("UTS"); - assertThat(testFiles).hasSize(2); - assertThat(testFiles).extracting(Component::getName).doesNotContain("ClassTwoTest.xoo"); - } - - /** - * SONAR-1896 - */ - @Test - public void include_source_files() { - scan( - "sonar.dynamicAnalysis", "false", - "sonar.inclusions", "**/*One.xoo,**/*Two.xoo"); - - assertThat(getMeasuresAsDouble("files").get("files")).isEqualTo(2); - - List<Component> sourceFiles = getComponents("FIL"); - assertThat(sourceFiles).hasSize(2); - assertThat(sourceFiles).extracting(Component::getName).containsOnly("ClassOne.xoo", "ClassTwo.xoo"); - } - - /** - * SONAR-1896 - */ - @Test - public void include_test_files() { - scan("sonar.test.inclusions", "src/test/xoo/**/*One*.xoo,src/test/xoo/**/*Two*.xoo"); - - assertThat(getMeasuresAsDouble("tests").get("tests")).isEqualTo(2); - - List<Component> testFiles = getComponents("UTS"); - assertThat(testFiles).hasSize(2); - assertThat(testFiles).extracting(Component::getName).containsOnly("ClassOneTest.xoo", "ClassTwoTest.xoo"); - } - - /** - * SONAR-2760 - */ - @Test - public void include_and_exclude_files_by_absolute_path() { - scan( - // includes everything except ClassOnDefaultPackage - "sonar.inclusions", "file:**/src/main/xoo/org/**/*.xoo", - - // exclude ClassThree and ClassToExclude - "sonar.exclusions", "file:**/src/main/xoo/org/**/packageToExclude/*.xoo,file:**/src/main/xoo/org/**/*Exclude.xoo"); - - List<Component> sourceFiles = getComponents("FIL"); - assertThat(sourceFiles).hasSize(4); - assertThat(sourceFiles).extracting(Component::getName).containsOnly("ClassOne.xoo", "ClassToIgnoreGlobally.xoo", "ClassTwo.xoo", "NoSonarComment.xoo"); - } - - static Map<String, Double> getMeasuresAsDouble(String... metricKeys) { - return getMeasuresAsDoubleByMetricKey(orchestrator, PROJECT, metricKeys); - } - - private void scan(String... properties) { - SonarScanner build = SonarScanner - .create(ItUtils.projectDir("exclusions/exclusions")) - .setProperties(properties); - orchestrator.executeBuild(build); - } - - public static List<Component> getComponents(String qualifier) { - return newWsClient(orchestrator).components().tree(new TreeWsRequest().setBaseComponentKey(PROJECT).setQualifiers(singletonList(qualifier))).getComponentsList(); - } -} diff --git a/it/it-tests/src/test/java/it/analysisExclusion/IssueExclusionsTest.java b/it/it-tests/src/test/java/it/analysisExclusion/IssueExclusionsTest.java deleted file mode 100644 index 46292024bd5..00000000000 --- a/it/it-tests/src/test/java/it/analysisExclusion/IssueExclusionsTest.java +++ /dev/null @@ -1,263 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.analysisExclusion; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import java.util.Map; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; - -public class IssueExclusionsTest { - - private static final String PROJECT_KEY = "com.sonarsource.it.samples:multi-modules-exclusions"; - private static final String PROJECT_DIR = "exclusions/xoo-multi-modules"; - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Before - public void resetData() { - orchestrator.resetData(); - } - - @Test - public void should_not_exclude_anything() { - scan(); - - checkIssueCountBySeverity(67, 2, 57, 4, 0, 4); - } - - @Test - public void should_ignore_all_files() { - scan( - "sonar.issue.ignore.multicriteria", "1", - "sonar.issue.ignore.multicriteria.1.resourceKey", "**/*.xoo", - "sonar.issue.ignore.multicriteria.1.ruleKey", "*"); - - checkIssueCountBySeverity(4, 0, 0, 0, 0, 4); - } - - @Test - public void should_enforce_only_on_one_file() { - scan( - "sonar.issue.enforce.multicriteria", "1", - "sonar.issue.enforce.multicriteria.1.resourceKey", "**/HelloA1.xoo", - "sonar.issue.enforce.multicriteria.1.ruleKey", "*"); - - checkIssueCountBySeverity( - 1 /* tag */ + 18 /* lines in HelloA1.xoo */ + 1 /* file */, - 0 + 1, - 0 + 18, - 0 + 1, - 0, - 0); - } - - @Test - public void should_enforce_on_two_files_with_same_rule() { - scan( - "sonar.issue.enforce.multicriteria", "1,2", - "sonar.issue.enforce.multicriteria.1.resourceKey", "**/HelloA1.xoo", - "sonar.issue.enforce.multicriteria.1.ruleKey", "*", - "sonar.issue.enforce.multicriteria.2.resourceKey", "**/HelloA2.xoo", - "sonar.issue.enforce.multicriteria.2.ruleKey", "*"); - - checkIssueCountBySeverity( - 2 /* tags */ + 18 /* lines in HelloA1.xoo */ + 15 /* lines in HelloA2.xoo */ + 2 /* files */, - 0 + 2, - 0 + 18 + 15, - 0 + 2, - 0, - 0); - } - - @Test - public void should_enforce_on_two_files_with_different_rule() { - scan( - "sonar.issue.enforce.multicriteria", "1,2", - "sonar.issue.enforce.multicriteria.1.resourceKey", "**/HelloA1.xoo", - "sonar.issue.enforce.multicriteria.1.ruleKey", "xoo:OneIssuePerLine", - "sonar.issue.enforce.multicriteria.2.resourceKey", "**/HelloA2.xoo", - "sonar.issue.enforce.multicriteria.2.ruleKey", "xoo:HasTag"); - - checkIssueCountBySeverity( - 1 /* tag in HelloA2 */ + 18 /* lines in HelloA1.xoo */ + 4 /* files */ + 4 /* modules */, - 0 + 1, - 0 + 18, - 4, - 0, - 4); - } - - @Test - public void should_ignore_files_with_regexp() { - scan( - "sonar.issue.ignore.allfile", "1", - "sonar.issue.ignore.allfile.1.fileRegexp", "EXTERMINATE-ALL-ISSUES"); - - checkIssueCountBySeverity( - 67 - 1 /* tag */ - 18 /* lines in HelloA1.xoo */ - 1 /* file */, - 2 - 1, - 57 - 18, - 4 - 1, - 0, - 4); - } - - @Test - public void should_ignore_block_with_regexp() { - scan( - "sonar.issue.ignore.block", "1", - "sonar.issue.ignore.block.1.beginBlockRegexp", "MUTE-SONAR", - "sonar.issue.ignore.block.1.endBlockRegexp", "UNMUTE-SONAR"); - - checkIssueCountBySeverity( - 67 - 1 /* tag */ - 5 /* lines in HelloA2.xoo */, - 2 - 1, - 57 - 5, - 4, - 0, - 4); - } - - @Test - public void should_ignore_to_end_of_file() { - scan( - "sonar.issue.ignore.block", "1", - "sonar.issue.ignore.block.1.beginBlockRegexp", "MUTE-SONAR", - "sonar.issue.ignore.block.1.endBlockRegexp", ""); - - checkIssueCountBySeverity( - 67 - 1 /* tag */ - 7 /* remaining lines in HelloA2.xoo */, - 2 - 1, - 57 - 7, - 4, - 0, - 4); - } - - @Test - public void should_ignore_one_per_line_on_single_package() { - scan( - "sonar.issue.ignore.multicriteria", "1", - "sonar.issue.ignore.multicriteria.1.resourceKey", "**/com/sonar/it/samples/modules/a1/*", - "sonar.issue.ignore.multicriteria.1.ruleKey", "xoo:OneIssuePerLine"); - - checkIssueCountBySeverity( - 67 - 18 /* lines in HelloA1.xoo */, - 2, - 57 - 18, - 4, - 0, - 4); - } - - @Test - public void should_apply_exclusions_from_multiple_sources() { - scan( - "sonar.issue.ignore.allfile", "1", - "sonar.issue.ignore.allfile.1.fileRegexp", "EXTERMINATE-ALL-ISSUES", - "sonar.issue.ignore.block", "1", - "sonar.issue.ignore.block.1.beginBlockRegexp", "MUTE-SONAR", - "sonar.issue.ignore.block.1.endBlockRegexp", "UNMUTE-SONAR", - "sonar.issue.ignore.multicriteria", "1", - "sonar.issue.ignore.multicriteria.1.resourceKey", "**/com/sonar/it/samples/modules/b1/*", - "sonar.issue.ignore.multicriteria.1.ruleKey", "xoo:OneIssuePerLine"); - - checkIssueCountBySeverity( - 67 - 1 /* tag in HelloA1.xoo */ - 1 /* tag in HelloA2.xoo */ - - 18 /* lines in HelloA1.xoo */ - 5 /* lines in HelloA2.xoo */ - 12 /* lines in HelloB1.xoo */ - - 1 /* HelloA1.xoo file */, - 0, - 57 - 18 - 5 - 12, - 4 - 1, - 0, - 4); - } - - @Test - public void should_log_missing_resource_key() { - checkAnalysisFails( - "sonar.issue.ignore.multicriteria", "1", - "sonar.issue.ignore.multicriteria.1.resourceKey", "", - "sonar.issue.ignore.multicriteria.1.ruleKey", "*"); - } - - @Test - public void should_log_missing_rule_key() { - checkAnalysisFails( - "sonar.issue.ignore.multicriteria", "1", - "sonar.issue.ignore.multicriteria.1.resourceKey", "*", - "sonar.issue.ignore.multicriteria.1.ruleKey", ""); - } - - @Test - public void should_log_missing_block_start() { - checkAnalysisFails( - "sonar.issue.ignore.block", "1", - "sonar.issue.ignore.block.1.beginBlockRegexp", "", - "sonar.issue.ignore.block.1.endBlockRegexp", "UNMUTE-SONAR"); - } - - @Test - public void should_log_missing_whole_file_regexp() { - checkAnalysisFails( - "sonar.issue.ignore.allfile", "1", - "sonar.issue.ignore.allfile.1.fileRegexp", ""); - } - - protected BuildResult scan(String... properties) { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/exclusions/IssueExclusionsTest/with-many-rules.xml")); - orchestrator.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-exclusions", - "Sonar :: Integration Tests :: Multi-modules With Exclusions"); - orchestrator.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-exclusions", "xoo", "with-many-rules"); - - SonarScanner scan = SonarScanner.create(ItUtils.projectDir(PROJECT_DIR)) - .setProperty("sonar.cpd.exclusions", "**/*") - .setProperties(properties) - .setProperty("sonar.verbose", "true"); - return orchestrator.executeBuildQuietly(scan); - } - - private void checkIssueCountBySeverity(int total, int taggedXoo, int perLine, int perFile, int blocker, int perModule) { - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, PROJECT_KEY, "violations", "info_violations", "minor_violations", "major_violations", - "blocker_violations", "critical_violations"); - assertThat(measures.get("violations").intValue()).isEqualTo(total); - assertThat(measures.get("info_violations").intValue()).isEqualTo(taggedXoo); // Has tag 'xoo' - assertThat(measures.get("minor_violations").intValue()).isEqualTo(perLine); // One per line - assertThat(measures.get("major_violations").intValue()).isEqualTo(perFile); // One per file - assertThat(measures.get("blocker_violations").intValue()).isEqualTo(blocker); - assertThat(measures.get("critical_violations").intValue()).isEqualTo(perModule); // One per module - } - - private void checkAnalysisFails(String... properties) { - BuildResult buildResult = scan(properties); - assertThat(buildResult.getStatus()).isNotEqualTo(0); - assertThat(buildResult.getLogs().indexOf("IllegalStateException")).isGreaterThan(0); - } -} diff --git a/it/it-tests/src/test/java/it/authorisation/ExecuteAnalysisPermissionTest.java b/it/it-tests/src/test/java/it/authorisation/ExecuteAnalysisPermissionTest.java deleted file mode 100644 index e315c731c44..00000000000 --- a/it/it-tests/src/test/java/it/authorisation/ExecuteAnalysisPermissionTest.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.authorisation; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildFailureException; -import it.Category1Suite; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonar.wsclient.SonarClient; -import org.sonar.wsclient.user.UserParameters; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.permission.AddGroupWsRequest; -import org.sonarqube.ws.client.permission.AddProjectCreatorToTemplateWsRequest; -import org.sonarqube.ws.client.permission.RemoveGroupWsRequest; -import org.sonarqube.ws.client.project.UpdateVisibilityRequest; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.runProjectAnalysis; - -/** - * SONAR-4397 - */ -public class ExecuteAnalysisPermissionTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - private final static String USER_LOGIN = "scanperm"; - private final static String USER_PASSWORD = "thewhite"; - private final static String PROJECT_KEY = "sample"; - - private static WsClient adminWsClient; - private static SonarClient oldAdminWsClient; - - @Before - public void setUp() { - orchestrator.resetData(); - oldAdminWsClient = orchestrator.getServer().adminWsClient(); - oldAdminWsClient.userClient().create(UserParameters.create().login(USER_LOGIN).name(USER_LOGIN).password(USER_PASSWORD).passwordConfirmation(USER_PASSWORD)); - orchestrator.getServer().provisionProject(PROJECT_KEY, "Sample"); - adminWsClient = newAdminWsClient(orchestrator); - } - - @After - public void tearDown() { - addGlobalPermission("anyone", "scan"); - oldAdminWsClient.userClient().deactivate(USER_LOGIN); - } - - @Test - public void should_fail_if_logged_but_no_scan_permission() throws Exception { - executeLoggedAnalysis(); - - removeGlobalPermission("anyone", "scan"); - try { - // Execute logged analysis, but without the "Execute Analysis" permission - executeLoggedAnalysis(); - fail(); - } catch (BuildFailureException e) { - assertThat(e.getResult().getLogs()).contains( - "You're only authorized to execute a local (preview) SonarQube analysis without pushing the results to the SonarQube server. Please contact your SonarQube administrator."); - } - - ItUtils.newAdminWsClient(orchestrator).projects().updateVisibility(UpdateVisibilityRequest.builder().setProject(PROJECT_KEY).setVisibility("private").build()); - try { - // Execute anonymous analysis - executeAnonymousAnalysis(); - fail(); - } catch (BuildFailureException e) { - assertThat(e.getResult().getLogs()).contains( - "You're not authorized to execute any SonarQube analysis. Please contact your SonarQube administrator."); - } - } - - @Test - public void no_need_for_browse_permission_to_scan() throws Exception { - // Do a first analysis, no error - executeAnonymousAnalysis(); - - // make project private - ItUtils.newAdminWsClient(orchestrator).projects().updateVisibility(UpdateVisibilityRequest.builder().setProject("sample").setVisibility("private").build()); - - // still no error - executeAnonymousAnalysis(); - } - - @Test - public void execute_analysis_with_scan_permission_only_on_project() throws Exception { - removeGlobalPermission("anyone", "scan"); - addProjectPermission("anyone", PROJECT_KEY, "scan"); - - executeLoggedAnalysis(); - } - - @Test - public void execute_analysis_with_scan_on_default_template() { - removeGlobalPermission("anyone", "scan"); - adminWsClient.permissions().addProjectCreatorToTemplate(AddProjectCreatorToTemplateWsRequest.builder() - .setPermission("scan") - .setTemplateId("default_template") - .build()); - - runProjectAnalysis(orchestrator, "shared/xoo-sample", "sonar.login", USER_LOGIN, "sonar.password", USER_PASSWORD, "sonar.projectKey", "ANOTHER_PROJECT_KEY"); - } - - private static void addProjectPermission(String groupName, String projectKey, String permission) { - adminWsClient.permissions().addGroup(new AddGroupWsRequest().setGroupName(groupName).setProjectKey(projectKey).setPermission(permission)); - } - - private static void addGlobalPermission(String groupName, String permission) { - adminWsClient.permissions().addGroup(new AddGroupWsRequest().setGroupName(groupName).setPermission(permission)); - } - - private static void removeProjectPermission(String groupName, String projectKey, String permission) { - adminWsClient.permissions().removeGroup(new RemoveGroupWsRequest().setGroupName(groupName).setProjectKey(projectKey).setPermission(permission)); - } - - private static void removeGlobalPermission(String groupName, String permission) { - adminWsClient.permissions().removeGroup(new RemoveGroupWsRequest().setGroupName(groupName).setPermission(permission)); - } - - private static void executeLoggedAnalysis() { - runProjectAnalysis(orchestrator, "shared/xoo-sample", "sonar.login", USER_LOGIN, "sonar.password", USER_PASSWORD); - } - - private static void executeAnonymousAnalysis() { - runProjectAnalysis(orchestrator, "shared/xoo-sample"); - } -} diff --git a/it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java b/it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java deleted file mode 100644 index 61cc647c47a..00000000000 --- a/it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java +++ /dev/null @@ -1,276 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.authorisation; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonar.wsclient.SonarClient; -import org.sonar.wsclient.base.HttpException; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonar.wsclient.user.UserParameters; -import org.sonarqube.ws.Issues; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.issue.BulkChangeRequest; -import org.sonarqube.ws.client.permission.AddUserWsRequest; -import org.sonarqube.ws.client.project.UpdateVisibilityRequest; -import util.ItUtils; - -import static java.util.Arrays.asList; -import static junit.framework.TestCase.fail; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.newUserWsClient; -import static util.ItUtils.projectDir; - -public class IssuePermissionTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - public WsClient adminWsClient = newAdminWsClient(orchestrator); - - @Before - public void init() { - orchestrator.resetData(); - - ItUtils.restoreProfile(orchestrator, getClass().getResource("/authorisation/one-issue-per-line-profile.xml")); - - orchestrator.getServer().provisionProject("privateProject", "PrivateProject"); - ItUtils.newAdminWsClient(orchestrator).projects().updateVisibility(UpdateVisibilityRequest.builder().setProject("privateProject").setVisibility("private").build()); - orchestrator.getServer().associateProjectToQualityProfile("privateProject", "xoo", "one-issue-per-line"); - SonarScanner privateProject = SonarScanner.create(projectDir("shared/xoo-sample")) - .setProperty("sonar.projectKey", "privateProject") - .setProperty("sonar.projectName", "PrivateProject"); - orchestrator.executeBuild(privateProject); - - orchestrator.getServer().provisionProject("publicProject", "PublicProject"); - orchestrator.getServer().associateProjectToQualityProfile("publicProject", "xoo", "one-issue-per-line"); - SonarScanner publicProject = SonarScanner.create(projectDir("shared/xoo-sample")) - .setProperty("sonar.projectKey", "publicProject") - .setProperty("sonar.projectName", "PublicProject"); - - - orchestrator.executeBuild(publicProject); - } - - @Test - public void need_user_permission_on_project_to_see_issue() { - SonarClient client = orchestrator.getServer().adminWsClient(); - - String withBrowsePermission = "with-browse-permission"; - String withoutBrowsePermission = "without-browse-permission"; - - try { - client.userClient().create(UserParameters.create().login(withBrowsePermission).name(withBrowsePermission) - .password("password").passwordConfirmation("password")); - addUserPermission(withBrowsePermission, "privateProject", "user"); - - client.userClient().create(UserParameters.create().login(withoutBrowsePermission).name(withoutBrowsePermission) - .password("password").passwordConfirmation("password")); - - // Without user permission, a user cannot see issues on the project - assertThat(orchestrator.getServer().wsClient(withoutBrowsePermission, "password").issueClient().find( - IssueQuery.create().componentRoots("privateProject")).list()).isEmpty(); - - // With user permission, a user can see issues on the project - assertThat(orchestrator.getServer().wsClient(withBrowsePermission, "password").issueClient().find( - IssueQuery.create().componentRoots("privateProject")).list()).isNotEmpty(); - - } finally { - client.userClient().deactivate(withBrowsePermission); - client.userClient().deactivate(withoutBrowsePermission); - } - } - - /** - * SONAR-4839 - */ - @Test - public void need_user_permission_on_project_to_see_issue_changelog() { - SonarClient client = orchestrator.getServer().adminWsClient(); - Issue issue = client.issueClient().find(IssueQuery.create().componentRoots("privateProject")).list().get(0); - client.issueClient().assign(issue.key(), "admin"); - - String withBrowsePermission = "with-browse-permission"; - String withoutBrowsePermission = "without-browse-permission"; - - try { - client.userClient().create(UserParameters.create().login(withBrowsePermission).name(withBrowsePermission) - .password("password").passwordConfirmation("password")); - addUserPermission(withBrowsePermission, "privateProject", "user"); - - client.userClient().create(UserParameters.create().login(withoutBrowsePermission).name(withoutBrowsePermission) - .password("password").passwordConfirmation("password")); - - // Without user permission, a user cannot see issue changelog on the project - try { - changelog(issue.key(), withoutBrowsePermission, "password"); - fail(); - } catch (Exception e) { - assertThat(e).isInstanceOf(org.sonarqube.ws.client.HttpException.class).describedAs("403"); - } - - // Without user permission, a user cannot see issues on the project - assertThat(changelog(issue.key(), withBrowsePermission, "password").getChangelogList()).isNotEmpty(); - - } finally { - client.userClient().deactivate(withBrowsePermission); - client.userClient().deactivate(withoutBrowsePermission); - } - } - - /** - * SONAR-2447 - */ - @Test - public void need_administer_issue_permission_on_project_to_set_severity() { - SonarClient client = orchestrator.getServer().adminWsClient(); - Issue issueOnPrivateProject = client.issueClient().find(IssueQuery.create().componentRoots("privateProject")).list().get(0); - Issue issueOnPublicProject = client.issueClient().find(IssueQuery.create().componentRoots("publicProject")).list().get(0); - - String user = "user"; - - try { - client.userClient().create(UserParameters.create().login(user).name(user).password("password").passwordConfirmation("password")); - addUserPermission(user, "publicProject", "issueadmin"); - - // Without issue admin permission, a user cannot set severity on the issue - try { - orchestrator.getServer().wsClient(user, "password").issueClient().setSeverity(issueOnPrivateProject.key(), "BLOCKER"); - fail(); - } catch (Exception e) { - assertThat(e).isInstanceOf(HttpException.class).describedAs("404"); - } - - // With issue admin permission, a user can set severity on the issue - assertThat(orchestrator.getServer().wsClient(user, "password").issueClient().setSeverity(issueOnPublicProject.key(), "BLOCKER").severity()).isEqualTo("BLOCKER"); - - } finally { - client.userClient().deactivate(user); - } - } - - /** - * SONAR-2447 - */ - @Test - public void need_administer_issue_permission_on_project_to_flag_as_false_positive() { - SonarClient client = orchestrator.getServer().adminWsClient(); - Issue issueOnPrivateProject = client.issueClient().find(IssueQuery.create().componentRoots("privateProject")).list().get(0); - Issue issueOnPublicProject = client.issueClient().find(IssueQuery.create().componentRoots("publicProject")).list().get(0); - - String user = "user"; - - try { - client.userClient().create(UserParameters.create().login(user).name(user).password("password").passwordConfirmation("password")); - addUserPermission(user, "publicProject", "issueadmin"); - - // Without issue admin permission, a user cannot flag an issue as false positive - try { - orchestrator.getServer().wsClient(user, "password").issueClient().doTransition(issueOnPrivateProject.key(), "falsepositive"); - fail(); - } catch (Exception e) { - assertThat(e).isInstanceOf(HttpException.class).describedAs("404"); - } - - // With issue admin permission, a user can flag an issue as false positive - assertThat(orchestrator.getServer().wsClient(user, "password").issueClient().doTransition(issueOnPublicProject.key(), "falsepositive").status()).isEqualTo("RESOLVED"); - - } finally { - client.userClient().deactivate(user); - } - } - - /** - * SONAR-2447 - */ - @Test - public void need_administer_issue_permission_on_project_to_bulk_change_severity_and_false_positive() { - SonarClient client = orchestrator.getServer().adminWsClient(); - Issue issueOnPrivateProject = client.issueClient().find(IssueQuery.create().componentRoots("privateProject")).list().get(0); - Issue issueOnPublicProject = client.issueClient().find(IssueQuery.create().componentRoots("publicProject")).list().get(0); - - String user = "user"; - - try { - client.userClient().create(UserParameters.create().login(user).name(user).password("password").passwordConfirmation("password")); - addUserPermission(user, "privateProject", "issueadmin"); - - Issues.BulkChangeWsResponse response = makeBlockerAndFalsePositive(user, issueOnPrivateProject, issueOnPublicProject); - - // public project but no issueadmin permission on publicProject => issue visible but not updated - // no user permission on privateproject => issue invisible and not updated - assertThat(response.getTotal()).isEqualTo(1); - assertThat(response.getSuccess()).isEqualTo(0); - assertThat(response.getIgnored()).isEqualTo(1); - - addUserPermission(user, "privateProject", "user"); - response = makeBlockerAndFalsePositive(user, issueOnPrivateProject, issueOnPublicProject); - - // public project but no issueadmin permission on publicProject => unsuccessful on issueOnPublicProject - // user and issueadmin permission on privateproject => successful and 1 more issue visible - assertThat(response.getTotal()).isEqualTo(2); - assertThat(response.getSuccess()).isEqualTo(1); - assertThat(response.getIgnored()).isEqualTo(1); - - addUserPermission(user, "publicProject", "issueadmin"); - response = makeBlockerAndFalsePositive(user, issueOnPrivateProject, issueOnPublicProject); - - // public and issueadmin permission on publicProject => successful on issueOnPublicProject - // issueOnPrivateProject already in specified state => unsuccessful - assertThat(response.getTotal()).isEqualTo(2); - assertThat(response.getSuccess()).isEqualTo(1); - assertThat(response.getIgnored()).isEqualTo(1); - - response = makeBlockerAndFalsePositive(user, issueOnPrivateProject, issueOnPublicProject); - - // issueOnPublicProject and issueOnPrivateProject already in specified state => unsuccessful - assertThat(response.getTotal()).isEqualTo(2); - assertThat(response.getSuccess()).isEqualTo(0); - assertThat(response.getIgnored()).isEqualTo(2); - } finally { - client.userClient().deactivate(user); - } - } - - private Issues.BulkChangeWsResponse makeBlockerAndFalsePositive(String user, Issue issueOnPrivateProject, Issue issueOnPublicProject) { - return newUserWsClient(orchestrator, user, "password").issues() - .bulkChange(BulkChangeRequest.builder().setIssues(asList(issueOnPrivateProject.key(), issueOnPublicProject.key())) - .setSetSeverity("BLOCKER") - .setDoTransition("falsepositive") - .build()); - } - - private void addUserPermission(String login, String projectKey, String permission) { - adminWsClient.permissions().addUser( - new AddUserWsRequest() - .setLogin(login) - .setProjectKey(projectKey) - .setPermission(permission)); - } - - private static Issues.ChangelogWsResponse changelog(String issueKey, String login, String password) { - return newUserWsClient(orchestrator, login, password).issues().changelog(issueKey); - } -} diff --git a/it/it-tests/src/test/java/it/authorisation/PermissionSearchTest.java b/it/it-tests/src/test/java/it/authorisation/PermissionSearchTest.java deleted file mode 100644 index 8b91e3777e5..00000000000 --- a/it/it-tests/src/test/java/it/authorisation/PermissionSearchTest.java +++ /dev/null @@ -1,203 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.authorisation; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.WsPermissions; -import org.sonarqube.ws.WsPermissions.Permission; -import org.sonarqube.ws.WsPermissions.SearchTemplatesWsResponse; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.permission.AddGroupToTemplateWsRequest; -import org.sonarqube.ws.client.permission.AddGroupWsRequest; -import org.sonarqube.ws.client.permission.AddProjectCreatorToTemplateWsRequest; -import org.sonarqube.ws.client.permission.AddUserToTemplateWsRequest; -import org.sonarqube.ws.client.permission.AddUserWsRequest; -import org.sonarqube.ws.client.permission.CreateTemplateWsRequest; -import org.sonarqube.ws.client.permission.GroupsWsRequest; -import org.sonarqube.ws.client.permission.PermissionsService; -import org.sonarqube.ws.client.permission.RemoveGroupFromTemplateWsRequest; -import org.sonarqube.ws.client.permission.RemoveProjectCreatorFromTemplateWsRequest; -import org.sonarqube.ws.client.permission.RemoveUserFromTemplateWsRequest; -import org.sonarqube.ws.client.permission.SearchTemplatesWsRequest; -import org.sonarqube.ws.client.permission.UsersWsRequest; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.tuple; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.projectDir; - -public class PermissionSearchTest { - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - private static WsClient adminWsClient; - private static PermissionsService permissionsWsClient; - - private static final String PROJECT_KEY = "sample"; - private static final String LOGIN = "george.orwell"; - private static final String GROUP_NAME = "1984"; - - @BeforeClass - public static void analyzeProject() { - orchestrator.resetData(); - - ItUtils.restoreProfile(orchestrator, PermissionSearchTest.class.getResource("/authorisation/one-issue-per-line-profile.xml")); - - orchestrator.getServer().provisionProject(PROJECT_KEY, "Sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - SonarScanner sampleProject = SonarScanner.create(projectDir("shared/xoo-sample")); - orchestrator.executeBuild(sampleProject); - - adminWsClient = newAdminWsClient(orchestrator); - permissionsWsClient = adminWsClient.permissions(); - - createUser(LOGIN, "George Orwell"); - createGroup(GROUP_NAME); - } - - @AfterClass - public static void delete_data() { - deactivateUser(LOGIN); - deleteGroup(GROUP_NAME); - } - - @Test - public void permission_web_services() { - permissionsWsClient.addUser( - new AddUserWsRequest() - .setPermission("admin") - .setLogin(LOGIN)); - permissionsWsClient.addGroup( - new AddGroupWsRequest() - .setPermission("admin") - .setGroupName(GROUP_NAME)); - - WsPermissions.WsSearchGlobalPermissionsResponse searchGlobalPermissionsWsResponse = permissionsWsClient.searchGlobalPermissions(); - assertThat(searchGlobalPermissionsWsResponse.getPermissionsList().get(0).getKey()).isEqualTo("admin"); - assertThat(searchGlobalPermissionsWsResponse.getPermissionsList().get(0).getUsersCount()).isEqualTo(1); - // by default, a group has the global admin permission - assertThat(searchGlobalPermissionsWsResponse.getPermissionsList().get(0).getGroupsCount()).isEqualTo(2); - - WsPermissions.UsersWsResponse users = permissionsWsClient - .users(new UsersWsRequest().setPermission("admin")); - assertThat(users.getUsersList()).extracting("login").contains(LOGIN); - - WsPermissions.WsGroupsResponse groupsResponse = permissionsWsClient - .groups(new GroupsWsRequest() - .setPermission("admin")); - assertThat(groupsResponse.getGroupsList()).extracting("name").contains(GROUP_NAME); - } - - @Test - public void template_permission_web_services() { - WsPermissions.CreateTemplateWsResponse createTemplateWsResponse = permissionsWsClient.createTemplate( - new CreateTemplateWsRequest() - .setName("my-new-template") - .setDescription("template-used-in-tests")); - assertThat(createTemplateWsResponse.getPermissionTemplate().getName()).isEqualTo("my-new-template"); - - permissionsWsClient.addUserToTemplate( - new AddUserToTemplateWsRequest() - .setPermission("admin") - .setTemplateName("my-new-template") - .setLogin(LOGIN)); - - permissionsWsClient.addGroupToTemplate( - new AddGroupToTemplateWsRequest() - .setPermission("admin") - .setTemplateName("my-new-template") - .setGroupName(GROUP_NAME)); - - permissionsWsClient.addProjectCreatorToTemplate( - AddProjectCreatorToTemplateWsRequest.builder() - .setPermission("admin") - .setTemplateName("my-new-template") - .build()); - - SearchTemplatesWsResponse searchTemplatesWsResponse = permissionsWsClient.searchTemplates( - new SearchTemplatesWsRequest() - .setQuery("my-new-template")); - assertThat(searchTemplatesWsResponse.getPermissionTemplates(0).getName()).isEqualTo("my-new-template"); - assertThat(searchTemplatesWsResponse.getPermissionTemplates(0).getPermissions(0).getKey()).isEqualTo("admin"); - assertThat(searchTemplatesWsResponse.getPermissionTemplates(0).getPermissions(0).getUsersCount()).isEqualTo(1); - assertThat(searchTemplatesWsResponse.getPermissionTemplates(0).getPermissions(0).getGroupsCount()).isEqualTo(1); - assertThat(searchTemplatesWsResponse.getPermissionTemplates(0).getPermissions(0).getWithProjectCreator()).isTrue(); - - permissionsWsClient.removeGroupFromTemplate( - new RemoveGroupFromTemplateWsRequest() - .setPermission("admin") - .setTemplateName("my-new-template") - .setGroupName(GROUP_NAME)); - - permissionsWsClient.removeUserFromTemplate( - new RemoveUserFromTemplateWsRequest() - .setPermission("admin") - .setTemplateName("my-new-template") - .setLogin(LOGIN)); - - permissionsWsClient.removeProjectCreatorFromTemplate( - RemoveProjectCreatorFromTemplateWsRequest.builder() - .setPermission("admin") - .setTemplateName("my-new-template") - .build() - ); - - SearchTemplatesWsResponse clearedSearchTemplatesWsResponse = permissionsWsClient.searchTemplates( - new SearchTemplatesWsRequest() - .setQuery("my-new-template")); - assertThat(clearedSearchTemplatesWsResponse.getPermissionTemplates(0).getPermissionsList()) - .extracting(Permission::getUsersCount, Permission::getGroupsCount, Permission::getWithProjectCreator) - .hasSize(5) - .containsOnly(tuple(0, 0, false)); - } - - private static void createUser(String login, String name) { - adminWsClient.wsConnector().call( - new PostRequest("api/users/create") - .setParam("login", login) - .setParam("name", name) - .setParam("password", "123456")); - } - - private static void deactivateUser(String login) { - adminWsClient.wsConnector().call( - new PostRequest("api/users/deactivate") - .setParam("login", login)); - } - - private static void createGroup(String groupName) { - adminWsClient.wsConnector().call( - new PostRequest("api/user_groups/create") - .setParam("name", groupName)); - } - - private static void deleteGroup(String groupName) { - adminWsClient.wsConnector().call( - new PostRequest("api/user_groups/delete") - .setParam("name", groupName)); - } -} diff --git a/it/it-tests/src/test/java/it/authorisation/PermissionTemplatesPageTest.java b/it/it-tests/src/test/java/it/authorisation/PermissionTemplatesPageTest.java deleted file mode 100644 index 568c5302da8..00000000000 --- a/it/it-tests/src/test/java/it/authorisation/PermissionTemplatesPageTest.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.authorisation; - -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import org.junit.ClassRule; -import org.junit.Test; - -import static util.selenium.Selenese.runSelenese; - -public class PermissionTemplatesPageTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Test - public void should_display_page() throws Exception { - runSelenese(orchestrator, - "/authorisation/PermissionTemplatesPageTest/should_display_page.html", - "/authorisation/PermissionTemplatesPageTest/should_create.html"); - } - - @Test - public void should_manage_project_creators() throws Exception { - runSelenese(orchestrator, "/authorisation/PermissionTemplatesPageTest/should_manage_project_creators.html"); - } -} diff --git a/it/it-tests/src/test/java/it/authorisation/ProvisioningPermissionTest.java b/it/it-tests/src/test/java/it/authorisation/ProvisioningPermissionTest.java deleted file mode 100644 index 17b91aca415..00000000000 --- a/it/it-tests/src/test/java/it/authorisation/ProvisioningPermissionTest.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.authorisation; - -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; -import org.sonarqube.ws.client.HttpException; -import org.sonarqube.ws.client.permission.AddGroupWsRequest; -import org.sonarqube.ws.client.permission.AddUserWsRequest; -import org.sonarqube.ws.client.permission.PermissionsService; -import org.sonarqube.ws.client.permission.RemoveGroupWsRequest; -import org.sonarqube.ws.client.permission.RemoveUserWsRequest; -import org.sonarqube.ws.client.project.CreateRequest; -import util.user.UserRule; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.newUserWsClient; -import static util.selenium.Selenese.runSelenese; - -public class ProvisioningPermissionTest { - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @ClassRule - public static UserRule userRule = UserRule.from(orchestrator); - - private static final String PASSWORD = "password"; - - private static final String ADMIN_WITH_PROVISIONING = "admin-with-provisioning"; - private static final String ADMIN_WITHOUT_PROVISIONING = "admin-without-provisioning"; - private static final String USER_WITH_PROVISIONING = "user-with-provisioning"; - private static final String USER_WITHOUT_PROVISIONING = "user-without-provisioning"; - - private static PermissionsService permissionsWsClient; - - @BeforeClass - public static void init() { - permissionsWsClient = newAdminWsClient(orchestrator).permissions(); - - // remove default permission "provisioning" from anyone(); - permissionsWsClient.removeGroup(new RemoveGroupWsRequest().setGroupName("anyone").setPermission("provisioning")); - - userRule.createUser(ADMIN_WITH_PROVISIONING, PASSWORD); - addUserPermission(ADMIN_WITH_PROVISIONING, "admin"); - addUserPermission(ADMIN_WITH_PROVISIONING, "provisioning"); - - userRule.createUser(ADMIN_WITHOUT_PROVISIONING, PASSWORD); - addUserPermission(ADMIN_WITHOUT_PROVISIONING, "admin"); - removeUserPermission(ADMIN_WITHOUT_PROVISIONING, "provisioning"); - - userRule.createUser(USER_WITH_PROVISIONING, PASSWORD); - addUserPermission(USER_WITH_PROVISIONING, "provisioning"); - - userRule.createUser(USER_WITHOUT_PROVISIONING, PASSWORD); - removeUserPermission(USER_WITHOUT_PROVISIONING, "provisioning"); - } - - @AfterClass - public static void restoreData() throws Exception { - userRule.resetUsers(); - permissionsWsClient.addGroup(new AddGroupWsRequest().setGroupName("anyone").setPermission("provisioning")); - } - - /** - * SONAR-3871 - * SONAR-4709 - */ - @Test - public void organization_administrator_cannot_provision_project_if_he_doesnt_have_provisioning_permission() { - runSelenese(orchestrator, "/authorisation/ProvisioningPermissionTest/should-not-be-able-to-provision-project.html"); - } - - /** - * SONAR-3871 - * SONAR-4709 - */ - @Test - public void organization_administrator_can_provision_project_if_he_has_provisioning_permission() { - runSelenese(orchestrator, "/authorisation/ProvisioningPermissionTest/should-be-able-to-provision-project.html"); - } - - /** - * SONAR-3871 - * SONAR-4709 - */ - @Test - public void user_can_provision_project_through_ws_if_he_has_provisioning_permission() { - final String newKey = "new-project"; - final String newName = "New Project"; - - Project created = newUserWsClient(orchestrator, USER_WITH_PROVISIONING, PASSWORD).projects() - .create(CreateRequest.builder().setKey(newKey).setName(newName).build()) - .getProject(); - - assertThat(created).isNotNull(); - assertThat(created.getKey()).isEqualTo(newKey); - assertThat(created.getName()).isEqualTo(newName); - } - - /** - * SONAR-3871 - * SONAR-4709 - */ - @Test - public void user_cannot_provision_project_through_ws_if_he_doesnt_have_provisioning_permission() { - thrown.expect(HttpException.class); - thrown.expectMessage("403"); - - newUserWsClient(orchestrator, USER_WITHOUT_PROVISIONING, PASSWORD).projects() - .create(CreateRequest.builder().setKey("new-project").setName("New Project").build()) - .getProject(); - } - - private static void addUserPermission(String login, String permission) { - permissionsWsClient.addUser(new AddUserWsRequest().setLogin(login).setPermission(permission)); - } - - private static void removeUserPermission(String login, String permission) { - permissionsWsClient.removeUser(new RemoveUserWsRequest().setLogin(login).setPermission(permission)); - } -} diff --git a/it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java b/it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java deleted file mode 100644 index 2afa6a4e07f..00000000000 --- a/it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.authorisation; - -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.permission.AddUserWsRequest; -import util.user.UserRule; - -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.runProjectAnalysis; -import static util.selenium.Selenese.runSelenese; - -/** - * SONAR-4210 - */ -public class QualityProfileAdminPermissionTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @ClassRule - public static UserRule userRule = UserRule.from(orchestrator); - - private static WsClient adminWsClient; - - @BeforeClass - public static void init() { - orchestrator.resetData(); - adminWsClient = newAdminWsClient(orchestrator); - runProjectAnalysis(orchestrator, "shared/xoo-sample"); - } - - @AfterClass - public static void clearUsers() throws Exception { - userRule.resetUsers(); - } - - @Test - public void permission_should_grant_access_to_profile() { - userRule.createUser("not_profileadm", "userpwd"); - userRule.createUser("profileadm", "papwd"); - adminWsClient.permissions().addUser(new AddUserWsRequest().setLogin("profileadm").setPermission("profileadmin")); - createProfile("xoo", "foo"); - - runSelenese(orchestrator, - // Verify normal user is not allowed to do any modification - "/authorisation/QualityProfileAdminPermissionTest/normal-user.html", - // Verify profile admin is allowed to do modifications - "/authorisation/QualityProfileAdminPermissionTest/profile-admin.html"); - } - - private static void createProfile(String language, String name) { - adminWsClient.wsConnector().call( - new PostRequest("api/qualityprofiles/create") - .setParam("language", language) - .setParam("name", name)); - } - -} diff --git a/it/it-tests/src/test/java/it/ce/CeWsTest.java b/it/it-tests/src/test/java/it/ce/CeWsTest.java deleted file mode 100644 index 29445245618..00000000000 --- a/it/it-tests/src/test/java/it/ce/CeWsTest.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.ce; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.WsCe; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.ce.ActivityWsRequest; -import util.ItUtils; - -import static com.google.common.collect.Lists.newArrayList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; - -public class CeWsTest { - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - private WsClient wsClient; - private String taskUuid; - - @Before - public void inspectProject() { - orchestrator.resetData(); - BuildResult buildResult = orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - this.taskUuid = ItUtils.extractCeTaskId(buildResult); - this.wsClient = ItUtils.newAdminWsClient(orchestrator); - } - - @Test - public void activity() { - WsCe.ActivityResponse response = wsClient.ce().activity(new ActivityWsRequest() - .setStatus(newArrayList("SUCCESS")) - .setType("REPORT") - .setOnlyCurrents(true) - .setPage(1) - .setPageSize(100)); - - assertThat(response).isNotNull(); - assertThat(response.getTasksCount()).isGreaterThan(0); - WsCe.Task firstTask = response.getTasks(0); - assertThat(firstTask.getId()).isNotEmpty(); - } - - @Test - public void task() { - WsCe.TaskResponse taskResponse = wsClient.ce().task(taskUuid); - - assertThat(taskResponse.hasTask()).isTrue(); - WsCe.Task task = taskResponse.getTask(); - assertThat(task.getId()).isEqualTo(taskUuid); - assertThat(task.hasErrorMessage()).isFalse(); - assertThat(task.hasHasScannerContext()).isTrue(); - assertThat(task.getScannerContext()).isNotNull(); - } - - @Test - public void task_types() { - WsCe.TaskTypesWsResponse response = wsClient.ce().taskTypes(); - - assertThat(response).isNotNull(); - assertThat(response.getTaskTypesCount()).isGreaterThan(0); - } -} diff --git a/it/it-tests/src/test/java/it/complexity/ComplexityMeasuresTest.java b/it/it-tests/src/test/java/it/complexity/ComplexityMeasuresTest.java deleted file mode 100644 index ce192047f07..00000000000 --- a/it/it-tests/src/test/java/it/complexity/ComplexityMeasuresTest.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.complexity; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Java6Assertions.entry; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; -import static util.ItUtils.projectDir; - -// TODO complete the test with other complexity metrics -public class ComplexityMeasuresTest { - - private static final String PROJECT = "com.sonarsource.it.samples:multi-modules-sample"; - private static final String MODULE = "com.sonarsource.it.samples:multi-modules-sample:module_a"; - private static final String SUB_MODULE = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1"; - private static final String DIRECTORY = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1"; - private static final String FILE = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo"; - - private static final String COMPLEXITY_METRIC = "complexity"; - private static final String COGNITIVE_COMPLEXITY_METRIC = "cognitive_complexity"; - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @BeforeClass - public static void inspectProject() { - orchestrator.resetData(); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - } - - @Test - public void compute_complexity_metrics_on_file() { - assertThat(getMeasuresAsDoubleByMetricKey(orchestrator, FILE, COMPLEXITY_METRIC, COGNITIVE_COMPLEXITY_METRIC)).containsOnly( - entry(COMPLEXITY_METRIC, 3d), - entry(COGNITIVE_COMPLEXITY_METRIC, 4d)); - } - - @Test - public void compute_complexity_metrics_on_directory() { - assertThat(getMeasuresAsDoubleByMetricKey(orchestrator, DIRECTORY, COMPLEXITY_METRIC, COGNITIVE_COMPLEXITY_METRIC)).containsOnly( - entry(COMPLEXITY_METRIC, 3d), - entry(COGNITIVE_COMPLEXITY_METRIC, 4d)); - } - - @Test - public void compute_complexity_metrics_on_sub_module() { - assertThat(getMeasuresAsDoubleByMetricKey(orchestrator, SUB_MODULE, COMPLEXITY_METRIC, COGNITIVE_COMPLEXITY_METRIC)).containsOnly( - entry(COMPLEXITY_METRIC, 3d), - entry(COGNITIVE_COMPLEXITY_METRIC, 4d)); - } - - @Test - public void compute_complexity_metrics_on_module() { - assertThat(getMeasuresAsDoubleByMetricKey(orchestrator, MODULE, COMPLEXITY_METRIC, COGNITIVE_COMPLEXITY_METRIC)).containsOnly( - entry(COMPLEXITY_METRIC, 7d), - entry(COGNITIVE_COMPLEXITY_METRIC, 9d)); - } - - @Test - public void compute_complexity_metrics_on_project() { - assertThat(getMeasuresAsDoubleByMetricKey(orchestrator, PROJECT, COMPLEXITY_METRIC, COGNITIVE_COMPLEXITY_METRIC)).containsOnly( - entry(COMPLEXITY_METRIC, 13d), - entry(COGNITIVE_COMPLEXITY_METRIC, 17d)); - } - -} diff --git a/it/it-tests/src/test/java/it/component/ComponentsWsTest.java b/it/it-tests/src/test/java/it/component/ComponentsWsTest.java deleted file mode 100644 index 4820f670cf8..00000000000 --- a/it/it-tests/src/test/java/it/component/ComponentsWsTest.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.component; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonarqube.ws.WsComponents; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.component.SearchWsRequest; -import org.sonarqube.ws.client.component.ShowWsRequest; -import util.ItUtils; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; - -public class ComponentsWsTest { - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - private static final String FILE_KEY = "sample:src/main/xoo/sample/Sample.xoo"; - - @Rule - public ExpectedException expectedException = ExpectedException.none(); - - WsClient wsClient; - - @Before - public void inspectProject() { - orchestrator.resetData(); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - wsClient = ItUtils.newAdminWsClient(orchestrator); - } - - @Test - public void show() { - WsComponents.ShowWsResponse response = wsClient.components().show(new ShowWsRequest().setKey(FILE_KEY)); - - assertThat(response).isNotNull(); - assertThat(response.getComponent().getKey()).isEqualTo(FILE_KEY); - assertThat(response.getAncestorsList()).isNotEmpty(); - } - - @Test - public void search() { - WsComponents.SearchWsResponse response = wsClient.components().search(new SearchWsRequest() - .setQualifiers(singletonList("FIL"))); - - assertThat(response).isNotNull(); - assertThat(response.getComponents(0).getKey()).isEqualTo(FILE_KEY); - } -} diff --git a/it/it-tests/src/test/java/it/component/ProjectsWsTest.java b/it/it-tests/src/test/java/it/component/ProjectsWsTest.java deleted file mode 100644 index a8f760178d9..00000000000 --- a/it/it-tests/src/test/java/it/component/ProjectsWsTest.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.component; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import java.io.IOException; -import org.apache.commons.io.IOUtils; -import org.apache.http.HttpResponse; -import org.apache.http.client.HttpClient; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.util.EntityUtils; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonarqube.ws.WsComponents; -import org.sonarqube.ws.WsProjects.BulkUpdateKeyWsResponse; -import org.sonarqube.ws.WsProjects.BulkUpdateKeyWsResponse.Key; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.component.ShowWsRequest; -import org.sonarqube.ws.client.project.BulkUpdateKeyWsRequest; -import org.sonarqube.ws.client.project.UpdateKeyWsRequest; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; - -public class ProjectsWsTest { - - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - private static final String PROJECT_KEY = "sample"; - - @Rule - public ExpectedException expectedException = ExpectedException.none(); - - private WsClient wsClient; - - @Before - public void inspectProject() { - orchestrator.resetData(); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - wsClient = ItUtils.newAdminWsClient(orchestrator); - } - - /** - * SONAR-3105 - */ - @Test - public void projects_web_service() throws IOException { - SonarScanner build = SonarScanner.create(projectDir("shared/xoo-sample")); - orchestrator.executeBuild(build); - - String url = orchestrator.getServer().getUrl() + "/api/projects/index?key=sample&versions=true"; - HttpClient httpclient = new DefaultHttpClient(); - try { - HttpGet get = new HttpGet(url); - HttpResponse response = httpclient.execute(get); - - assertThat(response.getStatusLine().getStatusCode()).isEqualTo(200); - String content = IOUtils.toString(response.getEntity().getContent()); - assertThat(content).doesNotContain("error"); - assertThat(content).contains("sample"); - EntityUtils.consume(response.getEntity()); - - } finally { - httpclient.getConnectionManager().shutdown(); - } - } - - @Test - public void update_key() { - String newProjectKey = "another_project_key"; - WsComponents.Component project = wsClient.components().show(new ShowWsRequest().setKey(PROJECT_KEY)).getComponent(); - assertThat(project.getKey()).isEqualTo(PROJECT_KEY); - - wsClient.projects().updateKey(UpdateKeyWsRequest.builder() - .setKey(PROJECT_KEY) - .setNewKey(newProjectKey) - .build()); - - assertThat(wsClient.components().show(new ShowWsRequest().setId(project.getId())).getComponent().getKey()).isEqualTo(newProjectKey); - } - - @Test - public void bulk_update_key() { - String newProjectKey = "another_project_key"; - WsComponents.Component project = wsClient.components().show(new ShowWsRequest().setKey(PROJECT_KEY)).getComponent(); - assertThat(project.getKey()).isEqualTo(PROJECT_KEY); - - BulkUpdateKeyWsResponse result = wsClient.projects().bulkUpdateKey(BulkUpdateKeyWsRequest.builder() - .setKey(PROJECT_KEY) - .setFrom(PROJECT_KEY) - .setTo(newProjectKey) - .build()); - - assertThat(wsClient.components().show(new ShowWsRequest().setId(project.getId())).getComponent().getKey()).isEqualTo(newProjectKey); - assertThat(result.getKeysCount()).isEqualTo(1); - assertThat(result.getKeys(0)) - .extracting(Key::getKey, Key::getNewKey, Key::getDuplicate) - .containsOnlyOnce(PROJECT_KEY, newProjectKey, false); - } -} diff --git a/it/it-tests/src/test/java/it/customMeasure/CustomMeasuresTest.java b/it/it-tests/src/test/java/it/customMeasure/CustomMeasuresTest.java deleted file mode 100644 index f7c1149fefb..00000000000 --- a/it/it-tests/src/test/java/it/customMeasure/CustomMeasuresTest.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.customMeasure; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; - -public class CustomMeasuresTest { - - private static final String PROJECT_KEY = "sample"; - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Before - public void deleteProjects() { - orchestrator.resetData(); - } - - @Test - public void custom_measures_should_be_integrated_during_project_analysis() { - analyzeProject(); - setBurnedBudget(1200.3); - setTeamSize(4); - - assertThat(getMeasureAsDouble("team_size")).isNull(); - assertThat(getMeasureAsDouble("burned_budget")).isNull(); - - analyzeProject(); - - assertThat(getMeasureAsDouble("burned_budget")).isEqualTo(1200.3); - assertThat(getMeasureAsDouble("team_size")).isEqualTo(4d); - } - - @Test - public void should_update_value() { - analyzeProject(); - setTeamSize(4); - analyzeProject(); - updateTeamSize(15); - assertThat(getMeasureAsDouble("team_size")).isEqualTo(4d); - analyzeProject();// the value is available when the project is analyzed again - assertThat(getMeasureAsDouble("team_size")).isEqualTo(15d); - } - - @Test - public void should_delete_custom_measure() { - analyzeProject(); - setTeamSize(4); - analyzeProject(); - deleteCustomMeasure("team_size"); - assertThat(getMeasureAsDouble("team_size")).isEqualTo(4d);// the value is still available. It will be removed during next - // analyzed - - analyzeProject(); - assertThat(getMeasureAsDouble("team_size")).isNull(); - } - - private void analyzeProject() { - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - } - - private void setTeamSize(int i) { - orchestrator.getServer().adminWsClient().post("api/custom_measures/create", "projectKey", PROJECT_KEY, "metricKey", "team_size", "value", String.valueOf(i)); - } - - private void updateTeamSize(int i) { - String response = orchestrator.getServer().adminWsClient().get("api/custom_measures/search", "projectKey", PROJECT_KEY, "metricKey", "team_size"); - Matcher jsonObjectMatcher = Pattern.compile(".*?\"id\"\\s*:\\s*\"(.*?)\".*", Pattern.MULTILINE).matcher(response); - jsonObjectMatcher.find(); - String customMeasureId = jsonObjectMatcher.group(1); - orchestrator.getServer().adminWsClient().post("api/custom_measures/update", "id", customMeasureId, "value", String.valueOf(i)); - } - - private void setBurnedBudget(double d) { - orchestrator.getServer().adminWsClient().post("api/custom_measures/create", "projectKey", PROJECT_KEY, "metricKey", "burned_budget", "value", String.valueOf(d)); - } - - private void deleteCustomMeasure(String metricKey) { - String response = orchestrator.getServer().adminWsClient().get("api/custom_measures/search", "projectKey", PROJECT_KEY, "metricKey", metricKey); - Matcher jsonObjectMatcher = Pattern.compile(".*?\"id\"\\s*:\\s*\"(.*?)\".*", Pattern.MULTILINE).matcher(response); - jsonObjectMatcher.find(); - String customMeasureId = jsonObjectMatcher.group(1); - orchestrator.getServer().adminWsClient().post("api/custom_measures/delete", "id", customMeasureId); - } - - private Double getMeasureAsDouble(String metricKey) { - return ItUtils.getMeasureAsDouble(orchestrator, PROJECT_KEY, metricKey); - } -} diff --git a/it/it-tests/src/test/java/it/dbCleaner/PurgeTest.java b/it/it-tests/src/test/java/it/dbCleaner/PurgeTest.java deleted file mode 100644 index 5c5b450dced..00000000000 --- a/it/it-tests/src/test/java/it/dbCleaner/PurgeTest.java +++ /dev/null @@ -1,377 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.dbCleaner; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import java.util.Calendar; -import java.util.Date; -import java.util.List; -import java.util.Map; -import org.apache.commons.lang.time.DateFormatUtils; -import org.apache.commons.lang.time.DateUtils; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ErrorCollector; -import org.sonarqube.ws.WsMeasures; -import org.sonarqube.ws.WsMeasures.SearchHistoryResponse.HistoryValue; -import org.sonarqube.ws.client.measure.SearchHistoryRequest; -import util.ItUtils; - -import static java.util.Collections.singletonList; -import static org.apache.commons.lang.time.DateUtils.addDays; -import static org.assertj.core.api.Assertions.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static util.ItUtils.formatDate; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperty; - -@Ignore -public class PurgeTest { - - private static final String COUNT_FILE_MEASURES = "project_measures pm, projects p where p.uuid = pm.component_uuid and p.scope='FIL'"; - private static final String COUNT_DIR_MEASURES = "project_measures pm, projects p where p.uuid = pm.component_uuid and p.scope='DIR'"; - private static final String PROJECT_KEY = "com.sonarsource.it.samples:multi-modules-sample"; - private static final String PROJECT_SAMPLE_PATH = "dbCleaner/xoo-multi-modules-sample"; - - private static final String ONE_DAY_AGO = DateFormatUtils.ISO_DATE_FORMAT.format(addDays(new Date(), -1)); - private static final String TWO_DAYS_AGO = DateFormatUtils.ISO_DATE_FORMAT.format(addDays(new Date(), -2)); - - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Rule - public ErrorCollector collector = new ErrorCollector(); - - @Before - public void deleteProjectData() { - orchestrator.resetData(); - - orchestrator.getServer().provisionProject(PROJECT_KEY, PROJECT_KEY); - - ItUtils.restoreProfile(orchestrator, getClass().getResource("/dbCleaner/one-issue-per-line-profile.xml")); - - setServerProperty(orchestrator, "sonar.dbcleaner.cleanDirectory", null); - setServerProperty(orchestrator, "sonar.dbcleaner.hoursBeforeKeepingOnlyOneSnapshotByDay", null); - setServerProperty(orchestrator, "sonar.dbcleaner.weeksBeforeKeepingOnlyOneSnapshotByWeek", null); - } - - @Test - public void test_evolution_of_number_of_rows_when_scanning_two_times_the_same_project() { - Date today = new Date(); - Date yesterday = DateUtils.addDays(today, -1); - - scan(PROJECT_SAMPLE_PATH, DateFormatUtils.ISO_DATE_FORMAT.format(yesterday)); - - // count components - collector.checkThat("Wrong number of projects", count("projects where qualifier in ('TRK','BRC')"), equalTo(7)); - collector.checkThat("Wrong number of directories", count("projects where qualifier in ('DIR')"), equalTo(4)); - collector.checkThat("Wrong number of files", count("projects where qualifier in ('FIL')"), equalTo(4)); - collector.checkThat("Wrong number of unit test files", count("projects where qualifier in ('UTS')"), equalTo(0)); - - int measuresOnTrk = 45; - int measuresOnBrc = 222; - int measuresOnDir = 141; - int measuresOnFil = 69; - - // count measures - assertMeasuresCountForQualifier("TRK", measuresOnTrk); - assertMeasuresCountForQualifier("BRC", measuresOnBrc); - assertMeasuresCountForQualifier("DIR", measuresOnDir); - assertMeasuresCountForQualifier("FIL", measuresOnFil); - - // No new_* metrics measure should be recorded the first time - collector.checkThat( - "Wrong number of measure of new_ metrics", - count("project_measures, metrics where metrics.id = project_measures.metric_id and metrics.name like 'new_%'"), - equalTo(0)); - - int expectedMeasures = measuresOnTrk + measuresOnBrc + measuresOnDir + measuresOnFil; - collector.checkThat("Wrong number of measures", count("project_measures"), equalTo(expectedMeasures)); - collector.checkThat("Wrong number of measure data", count("project_measures where measure_data is not null"), equalTo(0)); - - // count other tables that are constant between 2 scans - int expectedIssues = 52; - - collector.checkThat("Wrong number of issues", count("issues"), equalTo(expectedIssues)); - - // must be a different date, else a single snapshot is kept per day - scan(PROJECT_SAMPLE_PATH, DateFormatUtils.ISO_DATE_FORMAT.format(today)); - - int newMeasuresOnTrk = 58; - int newMeasuresOnBrc = 304; - int newMeasuresOnDir = 56; - int newMeasuresOnFil = 0; - - assertMeasuresCountForQualifier("TRK", measuresOnTrk + newMeasuresOnTrk); - assertMeasuresCountForQualifier("BRC", measuresOnBrc + newMeasuresOnBrc); - assertMeasuresCountForQualifier("DIR", measuresOnDir + newMeasuresOnDir); - assertMeasuresCountForQualifier("FIL", measuresOnFil + newMeasuresOnFil); - - // Measures on new_* metrics should be recorded - collector.checkThat( - "Wrong number of measure of new_ metrics", - count("project_measures, metrics where metrics.id = project_measures.metric_id and metrics.name like 'new_%'"), - equalTo(154)); - - // added measures relate to project and new_* metrics - expectedMeasures += newMeasuresOnTrk + newMeasuresOnBrc + newMeasuresOnDir + newMeasuresOnFil; - collector.checkThat("Wrong number of measures after second analysis", count("project_measures"), equalTo(expectedMeasures)); - collector.checkThat("Wrong number of measure data", count("project_measures where measure_data is not null"), equalTo(0)); - collector.checkThat("Wrong number of issues", count("issues"), equalTo(expectedIssues)); - } - - /** - * SONAR-3378 - */ - @Test - public void should_keep_all_snapshots_the_first_day() { - // analyse once - scan(PROJECT_SAMPLE_PATH); - // analyse twice - scan(PROJECT_SAMPLE_PATH); - // and check we have 2 snapshots - assertThat(count("snapshots s where s.component_uuid=(select p.uuid from projects p where p.kee='com.sonarsource.it.samples:multi-modules-sample')")).isEqualTo(2); - } - - /** - * SONAR-2807 & SONAR-3378 & SONAR-4710 - */ - @Test - public void should_keep_only_one_snapshot_per_day() { - scan(PROJECT_SAMPLE_PATH); - - int snapshotsCount = count("snapshots"); - int measuresCount = count("project_measures"); - // Using the "sonar.dbcleaner.hoursBeforeKeepingOnlyOneSnapshotByDay" property set to '0' is the way - // to keep only 1 snapshot per day - setServerProperty(orchestrator, "sonar.dbcleaner.hoursBeforeKeepingOnlyOneSnapshotByDay", "0"); - scan(PROJECT_SAMPLE_PATH); - assertThat(count("snapshots")).as("Different number of snapshots").isEqualTo(snapshotsCount); - - int measureOnNewMetrics = count("project_measures, metrics where metrics.id = project_measures.metric_id and metrics.name like 'new_%'"); - // Number of measures should be the same as previous, with the measures on new metrics - assertThat(count("project_measures")).as("Different number of measures").isEqualTo(measuresCount + measureOnNewMetrics); - } - - /** - * SONAR-7175 - */ - @Test - public void keep_latest_snapshot() { - // Keep all snapshots from last 4 weeks - setServerProperty(orchestrator, "sonar.dbcleaner.weeksBeforeKeepingOnlyOneSnapshotByWeek", "4"); - - Date oneWeekAgo = addDays(new Date(), -7); - - // Execute an analysis wednesday last week - Calendar lastWednesday = Calendar.getInstance(); - lastWednesday.setTime(oneWeekAgo); - lastWednesday.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY); - String lastWednesdayFormatted = formatDate(lastWednesday.getTime()); - runProjectAnalysis(orchestrator, PROJECT_SAMPLE_PATH, "sonar.projectDate", lastWednesdayFormatted); - - // Execute an analysis thursday last week - Calendar lastThursday = Calendar.getInstance(); - lastThursday.setTime(oneWeekAgo); - lastThursday.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY); - String lastThursdayFormatted = formatDate(lastThursday.getTime()); - runProjectAnalysis(orchestrator, PROJECT_SAMPLE_PATH, "sonar.projectDate", lastThursdayFormatted); - - // Now only keep 1 snapshot per week - setServerProperty(orchestrator, "sonar.dbcleaner.weeksBeforeKeepingOnlyOneSnapshotByWeek", "0"); - - // Execute an analysis today to execute the purge of previous weeks snapshots - runProjectAnalysis(orchestrator, PROJECT_SAMPLE_PATH); - - // Check that only analysis from last thursday is kept (as it's the last one from previous week) - WsMeasures.SearchHistoryResponse response = newAdminWsClient(orchestrator).measures().searchHistory(SearchHistoryRequest.builder() - .setComponent(PROJECT_KEY) - .setMetrics(singletonList("ncloc")) - .build()); - assertThat(response.getMeasuresCount()).isEqualTo(1); - assertThat(response.getMeasuresList().get(0).getHistoryList()).extracting(HistoryValue::getDate).doesNotContain(lastWednesdayFormatted, lastThursdayFormatted); - } - - /** - * SONAR-3120 - */ - @Test - public void should_delete_removed_modules() { - scan("dbCleaner/modules/before"); - assertExists("com.sonarsource.it.samples:multi-modules-sample:module_b"); - assertExists("com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1"); - - // we want the previous snapshot to be purged - setServerProperty(orchestrator, "sonar.dbcleaner.hoursBeforeKeepingOnlyOneSnapshotByDay", "0"); - - scan("dbCleaner/modules/after"); - assertDisabled("com.sonarsource.it.samples:multi-modules-sample:module_b"); - assertDisabled("com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1"); - assertExists("com.sonarsource.it.samples:multi-modules-sample:module_c:module_c1"); - } - - /** - * SONAR-3120 - */ - @Test - public void should_delete_removed_files() { - String fileKey = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo"; - scan("dbCleaner/files/before"); - assertExists(fileKey); - - scan("dbCleaner/files/after"); - assertDisabled(fileKey); - assertExists("com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo"); - } - - /** - * SONAR-2754 - */ - @Test - public void should_delete_historical_data_of_directories_by_default() { - scan(PROJECT_SAMPLE_PATH, TWO_DAYS_AGO); - - int fileMeasures = count(COUNT_FILE_MEASURES); - int dirMeasures = count(COUNT_DIR_MEASURES); - - scan(PROJECT_SAMPLE_PATH, ONE_DAY_AGO); - - // second analysis with new_* metrics - assertThat(count(COUNT_FILE_MEASURES)).isLessThan(2 * fileMeasures); - assertThat(count(COUNT_DIR_MEASURES)).isLessThan(2 * dirMeasures); - } - - /** - * SONAR-2754 - */ - @Test - public void should_not_delete_historical_data_of_directories() { - scan(PROJECT_SAMPLE_PATH, TWO_DAYS_AGO); - - int fileMeasures = count(COUNT_FILE_MEASURES); - int dirMeasures = count(COUNT_DIR_MEASURES); - - setServerProperty(orchestrator, "sonar.dbcleaner.cleanDirectory", "false"); - - scan(PROJECT_SAMPLE_PATH, ONE_DAY_AGO); - - // second analysis as NEW_* metrics - assertThat(count(COUNT_FILE_MEASURES)).isLessThan(2 * fileMeasures); - assertThat(count(COUNT_DIR_MEASURES)).isGreaterThan(2 * dirMeasures); - } - - /** - * SONAR-2061 - */ - @Test - public void should_delete_historical_data_of_flagged_metrics() { - scan(PROJECT_SAMPLE_PATH, TWO_DAYS_AGO); - - // historical data of complexity_in_classes is supposed to be deleted (see CoreMetrics) - String selectNcloc = "project_measures where metric_id in (select id from metrics where name='ncloc')"; - String selectComplexityInClasses = "project_measures where metric_id in (select id from metrics where name='complexity_in_classes')"; - int nclocCount = count(selectNcloc); - int complexitInClassesCount = count(selectComplexityInClasses); - - scan(PROJECT_SAMPLE_PATH, ONE_DAY_AGO); - assertThat(count(selectNcloc)).isGreaterThan(nclocCount); - assertThat(count(selectComplexityInClasses)).isEqualTo(complexitInClassesCount); - } - - private void assertDisabled(String key) { - assertThat(enabledStatusOfComponent(key)).isFalse(); - } - - private void assertExists(String key) { - assertThat(enabledStatusOfComponent(key)).isTrue(); - } - - private Boolean enabledStatusOfComponent(String key) { - return orchestrator.getDatabase().executeSql("select enabled from projects p where p.kee='" + key + "'") - .stream() - .findFirst() - .map(PurgeTest::toBoolean) - .orElse(null); - } - - private static Boolean toBoolean(Map<String, String> s) { - String value = s.get("ENABLED"); - if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("t") || value.equals("1")) { - return true; - } - if (value.equalsIgnoreCase("false") || value.equalsIgnoreCase("f") || value.equals("0")) { - return false; - } - throw new IllegalArgumentException("Unsupported value can not be converted to boolean " + value); - } - - private BuildResult scan(String path, String date) { - return scan(path, "sonar.projectDate", date); - } - - private BuildResult scan(String path, String... extraProperties) { - SonarScanner runner = configureRunner(path, extraProperties); - return orchestrator.executeBuild(runner); - } - - private SonarScanner configureRunner(String projectPath, String... props) { - orchestrator.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "one-issue-per-line-profile"); - return SonarScanner.create(ItUtils.projectDir(projectPath)).setProperties(props); - } - - private int count(String condition) { - return orchestrator.getDatabase().countSql("select count(1) from " + condition); - } - - private void assertMeasuresCountForQualifier(String qualifier, int count) { - int result = countMeasures(qualifier); - if (result != count) { - logMeasures("GOT", qualifier); - } - collector.checkThat("Wrong number of measures for qualifier " + qualifier, result, equalTo(count)); - } - - private int countMeasures(String qualifier) { - String sql = "SELECT count(1) FROM project_measures pm, projects p, metrics m where p.uuid=pm.component_uuid and pm.metric_id=m.id and p.qualifier='" + qualifier + "'"; - return orchestrator.getDatabase().countSql(sql); - } - - private void logMeasures(String title, String qualifier) { - String sql = "SELECT m.name as metricName, pm.value as value, pm.text_value as textValue, pm.variation_value_1, pm.variation_value_2, pm.variation_value_3 " - + - "FROM project_measures pm, projects p, metrics m " + - "WHERE pm.component_uuid=p.uuid and pm.metric_id=m.id and p.qualifier='" - + qualifier + "'"; - List<Map<String, String>> rows = orchestrator.getDatabase().executeSql(sql); - - System.out.println("---- " + title + " - measures on qualifier " + qualifier); - for (Map<String, String> row : rows) { - System.out.println(" " + row); - } - } - -} diff --git a/it/it-tests/src/test/java/it/duplication/CrossModuleDuplicationsTest.java b/it/it-tests/src/test/java/it/duplication/CrossModuleDuplicationsTest.java deleted file mode 100644 index b88e5d64982..00000000000 --- a/it/it-tests/src/test/java/it/duplication/CrossModuleDuplicationsTest.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.duplication; - -import com.google.common.collect.ImmutableMap; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import java.io.File; -import java.io.IOException; -import java.util.Map; -import org.apache.commons.io.FileUtils; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; - -public class CrossModuleDuplicationsTest { - private static final String PROJECT_KEY = "cross-module"; - private static final String PROJECT_DIR = "duplications/" + PROJECT_KEY; - private File projectDir; - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @BeforeClass - public static void analyzeProjects() { - - } - - @Before - public void setUpProject() throws IOException { - orchestrator.resetData(); - ItUtils.restoreProfile(orchestrator, getClass().getResource("/duplication/xoo-duplication-profile.xml")); - - FileUtils.copyDirectory(ItUtils.projectDir(PROJECT_DIR), temp.getRoot()); - projectDir = temp.getRoot(); - } - - @Test - public void testDuplications() throws IOException { - analyzeProject(projectDir, PROJECT_KEY, true); - verifyDuplicationMeasures(PROJECT_KEY, 2, 54, 2, 56.3); - - // File1 is the one duplicated in both modules - verifyDuplicationMeasures(PROJECT_KEY + ":module1:src/main/xoo/sample/File1.xoo", 1, 27, 1, 75); - verifyDuplicationMeasures(PROJECT_KEY + ":module2:src/main/xoo/sample/File1.xoo", 1, 27, 1, 75); - } - - @Test - // SONAR-6184 - public void testGhostDuplication() throws IOException { - analyzeProject(projectDir, PROJECT_KEY, true); - - verifyDuplicationMeasures(PROJECT_KEY + ":module1", 1, 27, 1, 45); - verifyDuplicationMeasures(PROJECT_KEY + ":module2", 1, 27, 1, 75); - - // move File2 from module1 to module2 - File src = FileUtils.getFile(projectDir, "module1", "src", "main", "xoo", "sample", "File2.xoo"); - File dst = FileUtils.getFile(projectDir, "module2", "src", "main", "xoo", "sample", "File2.xoo"); - FileUtils.moveFile(src, dst); - - src = new File(src.getParentFile(), "File2.xoo.measures"); - dst = new File(dst.getParentFile(), "File2.xoo.measures"); - FileUtils.moveFile(src, dst); - - // duplication should remain unchanged (except for % of duplication) - analyzeProject(projectDir, PROJECT_KEY, false); - verifyDuplicationMeasures(PROJECT_KEY + ":module1", 1, 27, 1, 75); - verifyDuplicationMeasures(PROJECT_KEY + ":module2", 1, 27, 1, 45); - } - - @Test - // SONAR-6184 - public void testDuplicationFix() throws IOException { - analyzeProject(projectDir, PROJECT_KEY, true); - - verifyDuplicationMeasures(PROJECT_KEY + ":module1", 1, 27, 1, 45); - verifyDuplicationMeasures(PROJECT_KEY + ":module2", 1, 27, 1, 75); - - // remove File1 from module1 - File f1 = FileUtils.getFile(projectDir, "module1", "src", "main", "xoo", "sample", "File1.xoo"); - File f1m = FileUtils.getFile(projectDir, "module2", "src", "main", "xoo", "sample", "File1.xoo.measures"); - f1.delete(); - f1m.delete(); - - // duplication should be 0 - analyzeProject(projectDir, PROJECT_KEY, false); - verifyDuplicationMeasures(PROJECT_KEY + ":module1", 0, 0, 0, 0); - verifyDuplicationMeasures(PROJECT_KEY + ":module2", 0, 0, 0, 0); - } - - private static SonarScanner analyzeProject(File projectDir, String projectKey, boolean create, String... additionalProperties) { - if (create) { - orchestrator.getServer().provisionProject(projectKey, projectKey); - orchestrator.getServer().associateProjectToQualityProfile(projectKey, "xoo", "xoo-duplication-profile"); - } - - SonarScanner sonarRunner = SonarScanner.create(projectDir); - ImmutableMap.Builder<String, String> builder = ImmutableMap.builder(); - - for (int i = 0; i < additionalProperties.length; i += 2) { - builder.put(additionalProperties[i], additionalProperties[i + 1]); - } - SonarScanner scan = sonarRunner.setDebugLogs(true).setProperties(builder.build()); - orchestrator.executeBuild(scan); - return scan; - } - - private static void verifyDuplicationMeasures(String componentKey, int duplicatedBlocks, int duplicatedLines, int duplicatedFiles, double duplicatedLinesDensity) { - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, componentKey, "duplicated_lines", "duplicated_blocks", "duplicated_files", "duplicated_lines_density"); - assertThat(measures.get("duplicated_blocks").intValue()).isEqualTo(duplicatedBlocks); - assertThat(measures.get("duplicated_lines").intValue()).isEqualTo(duplicatedLines); - assertThat(measures.get("duplicated_files").intValue()).isEqualTo(duplicatedFiles); - assertThat(measures.get("duplicated_lines_density")).isEqualTo(duplicatedLinesDensity); - } -} diff --git a/it/it-tests/src/test/java/it/duplication/CrossProjectDuplicationsOnRemoveFileTest.java b/it/it-tests/src/test/java/it/duplication/CrossProjectDuplicationsOnRemoveFileTest.java deleted file mode 100644 index f43cdeda5cb..00000000000 --- a/it/it-tests/src/test/java/it/duplication/CrossProjectDuplicationsOnRemoveFileTest.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.duplication; - -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import org.apache.commons.io.IOUtils; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.skyscreamer.jsonassert.JSONAssert.assertEquals; -import static util.ItUtils.getComponent; -import static util.ItUtils.runProjectAnalysis; -import static util.selenium.Selenese.runSelenese; - -public class CrossProjectDuplicationsOnRemoveFileTest { - - static final String ORIGIN_PROJECT = "origin-project"; - static final String DUPLICATE_PROJECT = "duplicate-project"; - static final String DUPLICATE_FILE = DUPLICATE_PROJECT + ":src/main/xoo/sample/File1.xoo"; - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @BeforeClass - public static void analyzeProjects() { - orchestrator.resetData(); - ItUtils.restoreProfile(orchestrator, CrossProjectDuplicationsOnRemoveFileTest.class.getResource("/duplication/xoo-duplication-profile.xml")); - - analyzeProject(ORIGIN_PROJECT, "duplications/cross-project/origin"); - analyzeProject(DUPLICATE_PROJECT, "duplications/cross-project/duplicate"); - - // Remove origin project - orchestrator.getServer().adminWsClient().post("api/projects/bulk_delete", "keys", ORIGIN_PROJECT); - assertThat(getComponent(orchestrator, ORIGIN_PROJECT)).isNull(); - } - - @Test - public void duplications_show_ws_does_not_contain_key_of_deleted_file() throws Exception { - String duplication = orchestrator.getServer().adminWsClient().get("api/duplications/show", "key", DUPLICATE_FILE); - - assertEquals(IOUtils.toString(CrossProjectDuplicationsTest.class.getResourceAsStream( - "/duplication/CrossProjectDuplicationsOnRemoveFileTest/duplications_on_removed_file-expected.json"), "UTF-8"), - duplication, false); - - // Only one file should be reference, so the reference 2 on origin-project must not exist - assertThat(duplication).doesNotContain("\"2\""); - assertThat(duplication).doesNotContain("origin-project"); - } - - /** - * SONAR-3277 - */ - @Test - public void display_message_in_viewer_when_duplications_with_deleted_files_are_found() throws Exception { - // TODO stas, please replace this IT by a medium test - runSelenese(orchestrator, - "/duplication/CrossProjectDuplicationsOnRemoveFileTest/duplications-with-deleted-project.html"); - } - - private static void analyzeProject(String projectKey, String path) { - orchestrator.getServer().provisionProject(projectKey, projectKey); - orchestrator.getServer().associateProjectToQualityProfile(projectKey, "xoo", "xoo-duplication-profile"); - - runProjectAnalysis(orchestrator, path, - "sonar.cpd.cross_project", "true", - "sonar.projectKey", projectKey, - "sonar.projectName", projectKey); - } - -} diff --git a/it/it-tests/src/test/java/it/duplication/CrossProjectDuplicationsTest.java b/it/it-tests/src/test/java/it/duplication/CrossProjectDuplicationsTest.java deleted file mode 100644 index 9e9529cba7a..00000000000 --- a/it/it-tests/src/test/java/it/duplication/CrossProjectDuplicationsTest.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.duplication; - -import com.google.common.collect.ObjectArrays; -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import java.util.Map; -import org.apache.commons.io.IOUtils; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import util.ItUtils; -import util.issue.IssueRule; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static org.skyscreamer.jsonassert.JSONAssert.assertEquals; -import static util.ItUtils.getMeasureAsDouble; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperty; -import static util.selenium.Selenese.runSelenese; - -public class CrossProjectDuplicationsTest { - - static final String ORIGIN_PROJECT = "origin-project"; - static final String DUPLICATE_PROJECT = "duplicate-project"; - static final String PROJECT_WITH_EXCLUSION = "project-with-exclusion"; - static final String PROJECT_WITHOUT_ENOUGH_TOKENS = "project_without_enough_tokens"; - - static final String DUPLICATE_FILE = DUPLICATE_PROJECT + ":src/main/xoo/sample/File1.xoo"; - static final String BRANCH = "with-branch"; - - static final String ORIGIN_PATH = "duplications/cross-project/origin"; - static final String DUPLICATE_PATH = "duplications/cross-project/duplicate"; - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @ClassRule - public static final IssueRule issueRule = IssueRule.from(orchestrator); - - @BeforeClass - public static void analyzeProjects() { - orchestrator.resetData(); - ItUtils.restoreProfile(orchestrator, CrossProjectDuplicationsTest.class.getResource("/duplication/xoo-duplication-profile.xml")); - - analyzeProject(ORIGIN_PROJECT, ORIGIN_PATH); - analyzeProject(DUPLICATE_PROJECT, DUPLICATE_PATH); - analyzeProjectWithBranch(DUPLICATE_PROJECT, DUPLICATE_PATH, BRANCH); - analyzeProject(PROJECT_WITH_EXCLUSION, DUPLICATE_PATH, "sonar.cpd.exclusions", "**/File*"); - - // Set minimum tokens to a big value in order to not get duplications - setServerProperty(orchestrator, "sonar.cpd.xoo.minimumTokens", "1000"); - analyzeProject(PROJECT_WITHOUT_ENOUGH_TOKENS, DUPLICATE_PATH); - } - - @AfterClass - public static void resetServerProperties() throws Exception { - setServerProperty(orchestrator, "sonar.cpd.xoo.minimumTokens", null); - } - - @Test - public void origin_project_has_no_duplication_as_it_has_not_been_analyzed_twice() throws Exception { - assertProjectHasNoDuplication(ORIGIN_PROJECT); - } - - @Test - public void duplicate_project_has_duplication_as_it_has_been_analyzed_twice() throws Exception { - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, DUPLICATE_PROJECT, "duplicated_lines", "duplicated_blocks", "duplicated_files", "duplicated_lines_density"); - assertThat(measures.get("duplicated_lines").intValue()).isEqualTo(27); - assertThat(measures.get("duplicated_blocks").intValue()).isEqualTo(1); - assertThat(measures.get("duplicated_files").intValue()).isEqualTo(1); - assertThat(measures.get("duplicated_lines_density")).isEqualTo(45d); - } - - @Test - public void issue_on_duplicated_blocks_is_generated_on_file() throws Exception { - assertThat(issueRule.search(new SearchWsRequest().setComponentKeys(singletonList(DUPLICATE_FILE)).setRules(singletonList("common-xoo:DuplicatedBlocks"))).getIssuesList()) - .hasSize(1); - } - - @Test - public void verify_sources_lines_ws_duplication_information() throws Exception { - verifyWsResultOnDuplicateFile("api/sources/lines", "sources_lines_duplication-expected.json"); - } - - @Test - public void verify_duplications_show_ws() throws Exception { - verifyWsResultOnDuplicateFile("api/duplications/show", "duplications_show-expected.json"); - } - - @Test - public void project_with_branch_has_no_duplication() throws Exception { - assertProjectHasNoDuplication(DUPLICATE_PROJECT + ":" + BRANCH); - } - - @Test - public void project_with_exclusion_has_no_duplication() throws Exception { - assertProjectHasNoDuplication(PROJECT_WITH_EXCLUSION); - } - - @Test - public void project_without_enough_tokens_has_duplication() throws Exception { - assertProjectHasNoDuplication(PROJECT_WITHOUT_ENOUGH_TOKENS); - } - - @Test - public void verify_viewer() { - runSelenese(orchestrator, "/duplication/CrossProjectDuplicationsTest/cross-project-duplications-viewer.html"); - } - - private static void analyzeProject(String projectKey, String path, String... additionalProperties) { - initProject(projectKey); - executeAnalysis(projectKey, path, additionalProperties); - } - - private static void analyzeProjectWithBranch(String projectKey, String path, String branch) { - initProject(projectKey + ":" + branch); - executeAnalysis(projectKey, path, "sonar.branch", branch); - } - - private static void initProject(String effectiveProjectKey) { - orchestrator.getServer().provisionProject(effectiveProjectKey, effectiveProjectKey); - orchestrator.getServer().associateProjectToQualityProfile(effectiveProjectKey, "xoo", "xoo-duplication-profile"); - } - - private static void executeAnalysis(String projectKey, String path, String... additionalProperties) { - runProjectAnalysis(orchestrator, path, - ObjectArrays.concat( - new String[] { - "sonar.cpd.cross_project", "true", - "sonar.projectKey", projectKey, - "sonar.projectName", projectKey - }, - additionalProperties, String.class)); - } - - private static void assertProjectHasNoDuplication(String projectKey) { - assertThat(getMeasureAsDouble(orchestrator, projectKey, "duplicated_lines")).isZero(); - } - - private static void verifyWsResultOnDuplicateFile(String ws, String expectedFilePath) throws Exception { - String duplication = newAdminWsClient(orchestrator).wsConnector().call(new GetRequest(ws).setParam("key", DUPLICATE_FILE)).content(); - assertEquals(IOUtils.toString(CrossProjectDuplicationsTest.class.getResourceAsStream("/duplication/CrossProjectDuplicationsTest/" + expectedFilePath), "UTF-8"), duplication, - false); - } - -} diff --git a/it/it-tests/src/test/java/it/duplication/DuplicationsTest.java b/it/it-tests/src/test/java/it/duplication/DuplicationsTest.java deleted file mode 100644 index 6eddcee5915..00000000000 --- a/it/it-tests/src/test/java/it/duplication/DuplicationsTest.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.duplication; - -import com.google.common.collect.ObjectArrays; -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import java.util.Map; -import org.apache.commons.io.IOUtils; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import util.ItUtils; -import util.issue.IssueRule; - -import static java.net.HttpURLConnection.HTTP_BAD_REQUEST; -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static org.skyscreamer.jsonassert.JSONAssert.assertEquals; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperty; - -public class DuplicationsTest { - - static final String DUPLICATIONS = "file-duplications"; - static final String DUPLICATIONS_WITH_EXCLUSIONS = "file-duplications-with-exclusions"; - static final String WITHOUT_ENOUGH_TOKENS = "project_without_enough_tokens"; - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @ClassRule - public static final IssueRule issueRule = IssueRule.from(orchestrator); - - private static WsClient adminWsClient; - - @BeforeClass - public static void analyzeProjects() { - orchestrator.resetData(); - - ItUtils.restoreProfile(orchestrator, DuplicationsTest.class.getResource("/duplication/xoo-duplication-profile.xml")); - analyzeProject(DUPLICATIONS); - analyzeProject(DUPLICATIONS_WITH_EXCLUSIONS, "sonar.cpd.exclusions", "**/File*"); - - // Set minimum tokens to a big value in order to not get duplications - setServerProperty(orchestrator, "sonar.cpd.xoo.minimumTokens", "1000"); - analyzeProject(WITHOUT_ENOUGH_TOKENS); - - adminWsClient = newAdminWsClient(orchestrator); - } - - @AfterClass - public static void resetProperties() throws Exception { - setServerProperty(orchestrator, "sonar.cpd.xoo.minimumTokens", null); - } - - private static Map<String, Double> getMeasures(String key) { - return getMeasuresAsDoubleByMetricKey(orchestrator, key, "duplicated_lines", "duplicated_blocks", "duplicated_files", "duplicated_lines_density"); - } - - private static void verifyDuplicationMeasures(String componentKey, int duplicatedBlocks, int duplicatedLines, int duplicatedFiles, double duplicatedLinesDensity) { - Map<String, Double> measures = getMeasures(componentKey); - assertThat(measures.get("duplicated_blocks").intValue()).isEqualTo(duplicatedBlocks); - assertThat(measures.get("duplicated_lines").intValue()).isEqualTo(duplicatedLines); - assertThat(measures.get("duplicated_files").intValue()).isEqualTo(duplicatedFiles); - assertThat(measures.get("duplicated_lines_density")).isEqualTo(duplicatedLinesDensity); - } - - private static void analyzeProject(String projectKey, String... additionalProperties) { - orchestrator.getServer().provisionProject(projectKey, projectKey); - orchestrator.getServer().associateProjectToQualityProfile(projectKey, "xoo", "xoo-duplication-profile"); - - runProjectAnalysis(orchestrator, "duplications/file-duplications", - ObjectArrays.concat( - new String[] { - "sonar.projectKey", projectKey, - "sonar.projectName", projectKey - }, - additionalProperties, String.class)); - } - - private static void verifyWsResultOnDuplicateFile(String fileKey, String ws, String expectedFilePath) throws Exception { - String duplication = orchestrator.getServer().adminWsClient().get(ws, "key", fileKey); - assertEquals(IOUtils.toString(CrossProjectDuplicationsTest.class.getResourceAsStream("/duplication/DuplicationsTest/" + expectedFilePath), "UTF-8"), duplication, - false); - } - - @Test - public void duplicated_lines_within_same_file() { - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo", - 2, - 30 * 2, // 2 blocks with 30 lines - 1, - 84.5); - } - - @Test - public void duplicated_same_lines_within_3_classes() { - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo", 1, 33, 1, 78.6); - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo", 1, 31, 1, 75.6); - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo", 1, 31, 1, 70.5); - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_same_lines_within_3_files", 3, 95, 3, 74.8); - } - - @Test - public void duplicated_lines_within_directory() { - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo", 1, 30, 1, 28.3); - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo", 1, 30, 1, 41.7); - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_lines_within_dir", 2, 60, 2, 33.7); - } - - @Test - public void duplicated_lines_with_other_directory() { - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo", 1, 39, 1, 92.9); - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_lines_with_other_dir1", 1, 39, 1, 92.9); - - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo", 1, 39, 1, 92.9); - verifyDuplicationMeasures(DUPLICATIONS + ":src/main/xoo/duplicated_lines_with_other_dir2", 1, 39, 1, 92.9); - } - - @Test - public void duplication_measures_on_project() { - verifyDuplicationMeasures(DUPLICATIONS, 9, 293, 8, 63.7); - } - - @Test - public void project_without_enough_tokens_has_duplication() { - verifyDuplicationMeasures(WITHOUT_ENOUGH_TOKENS, 0, 0, 0, 0d); - } - - /** - * SONAR-3108 - */ - @Test - public void use_duplication_exclusions() { - verifyDuplicationMeasures(DUPLICATIONS_WITH_EXCLUSIONS, 6, 198, 5, 43d); - } - - @Test - public void issues_on_duplicated_blocks_are_generated_on_each_file() throws Exception { - assertThat(issueRule.search(new SearchWsRequest().setRules(singletonList("common-xoo:DuplicatedBlocks"))).getIssuesList()).hasSize(13); - } - - @Test - public void verify_sources_lines_ws_duplication_information() throws Exception { - verifyWsResultOnDuplicateFile(DUPLICATIONS + ":src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo", - "api/sources/lines", "sources_lines_duplication-expected.json"); - } - - @Test - public void verify_duplications_show_ws() throws Exception { - verifyWsResultOnDuplicateFile(DUPLICATIONS + ":src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo", - "api/duplications/show", "duplications_show-expected.json"); - } - - // SONAR-9441 - @Test - public void fail_properly_when_no_parameter() { - WsResponse result = adminWsClient.wsConnector().call(new GetRequest("api/duplications/show")); - - assertThat(result.code()).isEqualTo(HTTP_BAD_REQUEST); - assertThat(result.content()).contains("Either 'uuid' or 'key' must be provided, not both"); - } - -} diff --git a/it/it-tests/src/test/java/it/duplication/NewDuplicationsTest.java b/it/it-tests/src/test/java/it/duplication/NewDuplicationsTest.java deleted file mode 100644 index e3dfa701dc4..00000000000 --- a/it/it-tests/src/test/java/it/duplication/NewDuplicationsTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.duplication; - -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import java.util.Map; -import org.assertj.core.data.Offset; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.WsMeasures; - -import static java.lang.Double.parseDouble; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasuresWithVariationsByMetricKey; -import static util.ItUtils.runProjectAnalysis; - -public class NewDuplicationsTest { - - static final Offset<Double> DEFAULT_OFFSET = Offset.offset(0.1d); - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @BeforeClass - public static void analyzeProjects() { - orchestrator.resetData(); - - runProjectAnalysis(orchestrator, "duplications/new-duplications-v1", - "sonar.projectDate", "2015-02-01", - "sonar.scm.disabled", "false"); - runProjectAnalysis(orchestrator, "duplications/new-duplications-v2", - "sonar.scm.disabled", "false"); - } - - @Test - public void new_duplications_on_project() throws Exception { - Map<String, WsMeasures.Measure> measures = getMeasures("new-duplications"); - assertThat(parseDouble(measures.get("new_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(83d, DEFAULT_OFFSET); - assertThat(parseDouble(measures.get("new_duplicated_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(71d, DEFAULT_OFFSET); - assertThat(parseDouble(measures.get("new_duplicated_lines_density").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(85.5d, DEFAULT_OFFSET); - assertThat(parseDouble(measures.get("new_duplicated_blocks").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(12d, DEFAULT_OFFSET); - } - - @Test - public void new_duplications_on_directory() throws Exception { - Map<String, WsMeasures.Measure> measures = getMeasures("new-duplications:src/main/xoo/duplicated_lines_with_other_dir1"); - assertThat(parseDouble(measures.get("new_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(24d, DEFAULT_OFFSET); - assertThat(parseDouble(measures.get("new_duplicated_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(24d, DEFAULT_OFFSET); - assertThat(parseDouble(measures.get("new_duplicated_lines_density").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(100d, DEFAULT_OFFSET); - assertThat(parseDouble(measures.get("new_duplicated_blocks").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(7d, DEFAULT_OFFSET); - } - - @Test - public void new_duplications_on_file() throws Exception { - Map<String, WsMeasures.Measure> measures = getMeasures("new-duplications:src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo"); - assertThat(parseDouble(measures.get("new_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(41d, DEFAULT_OFFSET); - assertThat(parseDouble(measures.get("new_duplicated_lines").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(29d, DEFAULT_OFFSET); - assertThat(parseDouble(measures.get("new_duplicated_lines_density").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(70.7d, DEFAULT_OFFSET); - assertThat(parseDouble(measures.get("new_duplicated_blocks").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(2d, DEFAULT_OFFSET); - } - - private static Map<String, WsMeasures.Measure> getMeasures(String key) { - return getMeasuresWithVariationsByMetricKey(orchestrator, key, "new_lines", "new_duplicated_lines", "new_duplicated_lines_density", "new_duplicated_blocks"); - } -} diff --git a/it/it-tests/src/test/java/it/i18n/I18nTest.java b/it/it-tests/src/test/java/it/i18n/I18nTest.java deleted file mode 100644 index fad347688f5..00000000000 --- a/it/it-tests/src/test/java/it/i18n/I18nTest.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.i18n; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Ignore; -import org.junit.Test; - -import static util.ItUtils.projectDir; -import static util.selenium.Selenese.runSelenese; - -public class I18nTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Before - public void cleanDatabase() { - orchestrator.resetData(); - } - - /** - * TODO This test should use a fake widget that display a fake metric with decimals instead of using provided metric - * Ignored because there is not a good idea to force a display language by GET parameter - * The displayed language is based on browser/system locale - */ - @Test - @Ignore - public void test_localization() { - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - runSelenese(orchestrator, - "/i18n/default-locale-is-english.html", - "/i18n/french-locale.html", - "/i18n/french-pack.html", - "/i18n/locale-with-france-country.html", - "/i18n/locale-with-swiss-country.html"); - } - -} diff --git a/it/it-tests/src/test/java/it/issue/AbstractIssueTest.java b/it/it-tests/src/test/java/it/issue/AbstractIssueTest.java deleted file mode 100644 index 55ddc987572..00000000000 --- a/it/it-tests/src/test/java/it/issue/AbstractIssueTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import com.sonar.orchestrator.Orchestrator; -import it.Category2Suite; -import java.util.List; -import org.junit.ClassRule; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueClient; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonar.wsclient.issue.Issues; - -import static org.assertj.core.api.Assertions.assertThat; - -public abstract class AbstractIssueTest { - - @ClassRule - public static final Orchestrator ORCHESTRATOR = Category2Suite.ORCHESTRATOR; - - static IssueClient adminIssueClient() { - return ORCHESTRATOR.getServer().adminWsClient().issueClient(); - } - - static IssueClient issueClient() { - return ORCHESTRATOR.getServer().wsClient().issueClient(); - } - - static Issue searchRandomIssue() { - List<Issue> issues = searchIssues(IssueQuery.create()); - assertThat(issues).isNotEmpty(); - return issues.get(0); - } - - static Issues search(IssueQuery issueQuery) { - issueQuery.urlParams().put("additionalFields", "_all"); - return issueClient().find(issueQuery); - } - - static List<Issue> searchIssues() { - return searchIssues(IssueQuery.create()); - } - - static List<Issue> searchIssues(IssueQuery issueQuery) { - return issueClient().find(issueQuery).list(); - } - - static List<Issue> searchIssuesByProject(String projectKey) { - return search(IssueQuery.create().componentRoots(projectKey)).list(); - } -} diff --git a/it/it-tests/src/test/java/it/issue/AutoAssignTest.java b/it/it-tests/src/test/java/it/issue/AutoAssignTest.java deleted file mode 100644 index 6110c02f245..00000000000 --- a/it/it-tests/src/test/java/it/issue/AutoAssignTest.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.Arrays; -import java.util.List; -import javax.annotation.Nullable; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.user.CreateRequest; -import org.sonarqube.ws.client.user.SearchRequest; -import util.ProjectAnalysis; -import util.ProjectAnalysisRule; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.setServerProperty; - -public class AutoAssignTest extends AbstractIssueTest { - - @Rule - public final ProjectAnalysisRule projectAnalysisRule = ProjectAnalysisRule.from(ORCHESTRATOR); - - ProjectAnalysis projectAnalysis; - - @Before - public void setup() { - String qualityProfileKey = projectAnalysisRule.registerProfile("/issue/IssueActionTest/xoo-one-issue-per-line-profile.xml"); - String projectKey = projectAnalysisRule.registerProject("issue/AutoAssignTest"); - projectAnalysis = projectAnalysisRule.newProjectAnalysis(projectKey) - .withQualityProfile(qualityProfileKey) - .withProperties("sonar.scm.disabled", "false", "sonar.scm.provider", "xoo"); - } - - @After - public void resetData() throws Exception { - newAdminWsClient(ORCHESTRATOR).wsConnector().call(new PostRequest("api/projects/delete").setParam("project", "AutoAssignTest")); - deleteAllUsers(); - - // Reset default assignee - setServerProperty(ORCHESTRATOR, "sonar.issues.defaultAssigneeLogin", null); - } - - @Test - public void auto_assign_issues_to_user() throws Exception { - // verify that login matches, case-sensitive - createUser("user1", "User 1", "user1@email.com"); - createUser("USER2", "User 2", "user2@email.com"); - // verify that name is not used to match, whatever the case - createUser("user3", "User 3", "user3@email.com"); - createUser("user4", "USER 4", "user4@email.com"); - // verify that email matches, case-insensitive - createUser("user5", "User 5", "user5@email.com"); - createUser("user6", "User 6", "USER6@email.COM"); - // verify that SCM account matches, case-insensitive - createUser("user7", "User 7", "user7@email.com", "user7ScmAccount"); - createUser("user8", "User 8", "user8@email.com", "user8SCMaccOUNT"); - - projectAnalysis.run(); - - List<Issue> issues = search(IssueQuery.create().components("AutoAssignTest:src/sample.xoo").sort("FILE_LINE")).list(); - // login match, case-sensitive - verifyIssueAssignee(issues, 1, "user1"); - verifyIssueAssignee(issues, 2, null); - // user name is not used to match - verifyIssueAssignee(issues, 3, null); - verifyIssueAssignee(issues, 4, null); - // email match, case-insensitive - verifyIssueAssignee(issues, 5, "user5"); - verifyIssueAssignee(issues, 6, "user6"); - // SCM account match, case-insensitive - verifyIssueAssignee(issues, 7, "user7"); - verifyIssueAssignee(issues, 8, "user8"); - } - - private static void verifyIssueAssignee(List<Issue> issues, int line, @Nullable String expectedAssignee) { - assertThat(issues.get(line - 1).assignee()).isEqualTo(expectedAssignee); - } - - @Test - public void auto_assign_issues_to_default_assignee() throws Exception { - createUser("user1", "User 1", "user1@email.com"); - createUser("user2", "User 2", "user2@email.com"); - setServerProperty(ORCHESTRATOR, "sonar.issues.defaultAssigneeLogin", "user2"); - projectAnalysis.run(); - - // user1 is assigned to his issues. All other issues are assigned to the default assignee. - assertThat(search(IssueQuery.create().assignees("user1")).list()).hasSize(1); - assertThat(search(IssueQuery.create().assignees("user2")).list()).hasSize(8); - // No unassigned issues - assertThat(search(IssueQuery.create().assigned(false)).list()).isEmpty(); - } - - /** - * SONAR-7098 - * - * Given two versions of same project: - * v1: issue, but no SCM data - * v2: old issue and SCM data - * Expected: all issues should be associated with authors - */ - @Test - public void update_author_and_assignee_when_scm_is_activated() { - createUser("user1", "User 1", "user1@email.com"); - - // Run a first analysis without SCM - projectAnalysis.withProperties("sonar.scm.disabled", "true").run(); - List<Issue> issues = searchIssues(); - assertThat(issues).isNotEmpty(); - - // No author and assignee are set - for (Issue issue : issues) { - assertThat(issue.author()).isEmpty(); - } - assertThat(search(IssueQuery.create().assigned(true)).list()).isEmpty(); - - // Run a second analysis with SCM - projectAnalysis.run(); - issues = searchIssues(); - assertThat(issues).isNotEmpty(); - - // Authors and assignees are set - for (Issue issue : issues) { - assertThat(issue.author()).isNotEmpty(); - } - assertThat(search(IssueQuery.create().assignees("user1")).list()).hasSize(1); - } - - private static void createUser(String login, String name, String email, String... scmAccounts) { - newAdminWsClient(ORCHESTRATOR).users().create( - CreateRequest.builder() - .setLogin(login) - .setName(name) - .setEmail(email) - .setPassword("xxxxxxx") - .setScmAccounts(Arrays.asList(scmAccounts)) - .build()); - } - - private static void deleteAllUsers() { - WsClient wsClient = newAdminWsClient(ORCHESTRATOR); - WsUsers.SearchWsResponse searchResponse = wsClient.users().search(SearchRequest.builder().build()); - searchResponse.getUsersList().forEach(user -> { - wsClient.wsConnector().call(new PostRequest("api/users/deactivate").setParam("login", user.getLogin())); - }); - } -} diff --git a/it/it-tests/src/test/java/it/issue/CommonRulesTest.java b/it/it-tests/src/test/java/it/issue/CommonRulesTest.java deleted file mode 100644 index c9c7635949f..00000000000 --- a/it/it-tests/src/test/java/it/issue/CommonRulesTest.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.List; -import org.junit.BeforeClass; -import org.junit.Test; -import org.sonarqube.ws.Issues.Issue; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import util.ItUtils; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.runProjectAnalysis; - -public class CommonRulesTest extends AbstractIssueTest { - - public static final String FILE_KEY = "common-rules-project:src/Sample.xoo"; - public static final String TEST_FILE_KEY = "common-rules-project:test/SampleTest.xoo"; - - private static WsClient adminWsClient; - - @BeforeClass - public static void setUp() { - ORCHESTRATOR.resetData(); - ItUtils.restoreProfile(ORCHESTRATOR, CommonRulesTest.class.getResource("/issue/CommonRulesTest/xoo-common-rules-profile.xml")); - ORCHESTRATOR.getServer().provisionProject("common-rules-project", "Sample"); - ORCHESTRATOR.getServer().associateProjectToQualityProfile("common-rules-project", "xoo", "xoo-common-rules"); - runProjectAnalysis(ORCHESTRATOR, "issue/common-rules", - "sonar.cpd.xoo.minimumTokens", "2", - "sonar.cpd.xoo.minimumLines", "2"); - - adminWsClient = newAdminWsClient(ORCHESTRATOR); - } - - @Test - public void test_rule_on_duplicated_blocks() { - List<Issue> issues = findIssues(FILE_KEY, "common-xoo:DuplicatedBlocks"); - assertThat(issues).hasSize(1); - } - - @Test - public void test_rule_on_comments() { - List<Issue> issues = findIssues(FILE_KEY, "common-xoo:InsufficientCommentDensity"); - assertThat(issues.size()).isEqualTo(1); - } - - @Test - public void test_rule_on_coverage() { - List<Issue> issues = findIssues(FILE_KEY, "common-xoo:InsufficientBranchCoverage"); - assertThat(issues.size()).isEqualTo(1); - - issues = findIssues(FILE_KEY, "common-xoo:InsufficientLineCoverage"); - assertThat(issues.size()).isEqualTo(1); - } - - @Test - public void test_rule_on_skipped_tests() { - List<Issue> issues = findIssues(TEST_FILE_KEY, "common-xoo:SkippedUnitTests"); - assertThat(issues.size()).isEqualTo(1); - } - - @Test - public void test_rule_on_test_errors() { - List<Issue> issues = findIssues(TEST_FILE_KEY, "common-xoo:FailedUnitTests"); - assertThat(issues.size()).isEqualTo(1); - } - - private List<Issue> findIssues(String componentKey, String ruleKey) { - return adminWsClient.issues().search( - new SearchWsRequest() - .setComponents(singletonList(componentKey)) - .setRules(singletonList(ruleKey))) - .getIssuesList(); - } -} diff --git a/it/it-tests/src/test/java/it/issue/CustomRulesTest.java b/it/it-tests/src/test/java/it/issue/CustomRulesTest.java deleted file mode 100644 index e8423ccf603..00000000000 --- a/it/it-tests/src/test/java/it/issue/CustomRulesTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.List; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.sonar.wsclient.issue.Issue; -import util.ProjectAnalysis; -import util.ProjectAnalysisRule; - -import static org.assertj.core.api.Assertions.assertThat; - -public class CustomRulesTest extends AbstractIssueTest { - - @Rule - public final ProjectAnalysisRule projectAnalysisRule = ProjectAnalysisRule.from(ORCHESTRATOR); - - private ProjectAnalysis xooSampleAnalysis; - - @Before - public void setup() { - String profileKey = projectAnalysisRule.registerProfile("/issue/CustomRulesTest/custom.xml"); - String projectKey = projectAnalysisRule.registerProject("shared/xoo-sample"); - this.xooSampleAnalysis = projectAnalysisRule.newProjectAnalysis(projectKey) - .withQualityProfile(profileKey); - } - - @Test - public void analyzeProjectWithCustomRules() throws Exception { - ORCHESTRATOR.getServer().adminWsClient().post("api/rules/create", - "template_key", "xoo:TemplateRule", - "custom_key", "MyCustomRule", - "markdown_description", "My description", - "name", "My custom rule", - "severity", "BLOCKER", - "params", "line=2"); - - xooSampleAnalysis.run(); - - List<Issue> issues = searchIssues(); - assertThat(issues).hasSize(1); - - Issue issue = issues.get(0); - assertThat(issue.ruleKey()).isEqualTo("xoo:MyCustomRule"); - assertThat(issue.line()).isEqualTo(2); - // Overriden in quality profile - assertThat(issue.severity()).isEqualTo("CRITICAL"); - } -} diff --git a/it/it-tests/src/test/java/it/issue/IssueActionTest.java b/it/it-tests/src/test/java/it/issue/IssueActionTest.java deleted file mode 100644 index 0006ac98646..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueActionTest.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.List; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.ws.Issues; -import org.sonarqube.ws.Issues.Issue; -import org.sonarqube.ws.client.issue.AddCommentRequest; -import org.sonarqube.ws.client.issue.AssignRequest; -import org.sonarqube.ws.client.issue.EditCommentRequest; -import org.sonarqube.ws.client.issue.IssuesService; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import org.sonarqube.ws.client.issue.SetSeverityRequest; -import util.ProjectAnalysis; -import util.ProjectAnalysisRule; -import util.issue.IssueRule; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; -import static org.sonarqube.ws.Common.Severity.BLOCKER; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.toDatetime; - -public class IssueActionTest extends AbstractIssueTest { - - @Rule - public final ProjectAnalysisRule projectAnalysisRule = ProjectAnalysisRule.from(ORCHESTRATOR); - - @ClassRule - public static final IssueRule issueRule = IssueRule.from(ORCHESTRATOR); - - private ProjectAnalysis projectAnalysis; - private IssuesService issuesService; - - private Issue randomIssue; - - @Before - public void setup() { - String qualityProfileKey = projectAnalysisRule.registerProfile("/issue/IssueActionTest/xoo-one-issue-per-line-profile.xml"); - String projectKey = projectAnalysisRule.registerProject("shared/xoo-sample"); - - this.projectAnalysis = projectAnalysisRule.newProjectAnalysis(projectKey).withQualityProfile(qualityProfileKey); - this.projectAnalysis.run(); - this.issuesService = newAdminWsClient(ORCHESTRATOR).issues(); - this.randomIssue = issueRule.getRandomIssue(); - } - - @Test - public void no_comments_by_default() throws Exception { - assertThat(randomIssue.getComments().getCommentsList()).isEmpty(); - } - - @Test - public void add_comment() throws Exception { - Issues.Comment comment = issuesService.addComment(new AddCommentRequest(randomIssue.getKey(), "this is my *comment*")).getIssue().getComments().getComments(0); - assertThat(comment.getKey()).isNotNull(); - assertThat(comment.getHtmlText()).isEqualTo("this is my <strong>comment</strong>"); - assertThat(comment.getLogin()).isEqualTo("admin"); - assertThat(comment.getCreatedAt()).isNotNull(); - - // reload issue - Issue reloaded = issueRule.getByKey(randomIssue.getKey()); - assertThat(reloaded.getComments().getCommentsList()).hasSize(1); - assertThat(reloaded.getComments().getComments(0).getKey()).isEqualTo(comment.getKey()); - assertThat(reloaded.getComments().getComments(0).getHtmlText()).isEqualTo("this is my <strong>comment</strong>"); - assertThat(toDatetime(reloaded.getUpdateDate())).isAfter(toDatetime(randomIssue.getUpdateDate())); - } - - /** - * SONAR-4450 - */ - @Test - public void should_reject_blank_comment() throws Exception { - try { - issuesService.addComment(new AddCommentRequest(randomIssue.getKey(), " ")); - fail(); - } catch (org.sonarqube.ws.client.HttpException ex) { - assertThat(ex.code()).isEqualTo(400); - } - - Issue reloaded = issueRule.getByKey(randomIssue.getKey()); - assertThat(reloaded.getComments().getCommentsList()).isEmpty(); - } - - @Test - public void edit_comment() throws Exception { - Issues.Comment comment = issuesService.addComment(new AddCommentRequest(randomIssue.getKey(), "this is my *comment*")).getIssue().getComments().getComments(0); - Issues.Comment editedComment = issuesService.editComment(new EditCommentRequest(comment.getKey(), "new *comment*")).getIssue().getComments().getComments(0); - assertThat(editedComment.getHtmlText()).isEqualTo("new <strong>comment</strong>"); - - // reload issue - Issue reloaded = issueRule.getByKey(randomIssue.getKey()); - assertThat(reloaded.getComments().getCommentsList()).hasSize(1); - assertThat(reloaded.getComments().getComments(0).getHtmlText()).isEqualTo("new <strong>comment</strong>"); - } - - @Test - public void delete_comment() throws Exception { - Issues.Comment comment = issuesService.addComment(new AddCommentRequest(randomIssue.getKey(), "this is my *comment*")).getIssue().getComments().getComments(0); - Issue issue = issuesService.deleteComment(comment.getKey()).getIssue(); - assertThat(issue.getComments().getCommentsList()).isEmpty(); - - // reload issue - Issue reloaded = issueRule.getByKey(randomIssue.getKey()); - assertThat(reloaded.getComments().getCommentsList()).isEmpty(); - } - - /** - * SONAR-4352 - */ - @Test - public void change_severity() { - String componentKey = "sample"; - - // there are no blocker issues - assertThat(searchIssuesBySeverities(componentKey, "BLOCKER")).isEmpty(); - - // increase the severity of an issue - issuesService.setSeverity(new SetSeverityRequest(randomIssue.getKey(), "BLOCKER")); - - assertThat(searchIssuesBySeverities(componentKey, "BLOCKER")).hasSize(1); - - projectAnalysis.run(); - Issue reloaded = issueRule.getByKey(randomIssue.getKey()); - assertThat(reloaded.getSeverity()).isEqualTo(BLOCKER); - assertThat(reloaded.getStatus()).isEqualTo("OPEN"); - assertThat(reloaded.hasResolution()).isFalse(); - assertThat(reloaded.getCreationDate()).isEqualTo(randomIssue.getCreationDate()); - assertThat(toDatetime(reloaded.getCreationDate())).isBefore(toDatetime(reloaded.getUpdateDate())); - } - - /** - * SONAR-4287 - */ - @Test - public void assign() { - assertThat(randomIssue.hasAssignee()).isFalse(); - Issues.SearchWsResponse response = issueRule.search(new SearchWsRequest().setIssues(singletonList(randomIssue.getKey()))); - assertThat(response.getUsers().getUsersList()).isEmpty(); - - issuesService.assign(new AssignRequest(randomIssue.getKey(), "admin")); - assertThat(issueRule.search(new SearchWsRequest().setAssignees(singletonList("admin"))).getIssuesList()).hasSize(1); - - projectAnalysis.run(); - Issue reloaded = issueRule.getByKey(randomIssue.getKey()); - assertThat(reloaded.getAssignee()).isEqualTo("admin"); - assertThat(reloaded.getCreationDate()).isEqualTo(randomIssue.getCreationDate()); - - response = issueRule.search(new SearchWsRequest().setIssues(singletonList(randomIssue.getKey())).setAdditionalFields(singletonList("users"))); - assertThat(response.getUsers().getUsersList().stream().filter(user -> "admin".equals(user.getLogin())).findFirst()).isPresent(); - assertThat(response.getUsers().getUsersList().stream().filter(user -> "Administrator".equals(user.getName())).findFirst()).isPresent(); - - // unassign - issuesService.assign(new AssignRequest(randomIssue.getKey(), null)); - reloaded = issueRule.getByKey(randomIssue.getKey()); - assertThat(reloaded.hasAssignee()).isFalse(); - assertThat(issueRule.search(new SearchWsRequest().setAssignees(singletonList("admin"))).getIssuesList()).isEmpty(); - } - - /** - * SONAR-4287 - */ - @Test - public void fail_assign_if_assignee_does_not_exist() { - assertThat(randomIssue.hasAssignee()).isFalse(); - try { - issuesService.assign(new AssignRequest(randomIssue.getKey(), "unknown")); - fail(); - } catch (org.sonarqube.ws.client.HttpException ex) { - assertThat(ex.code()).isEqualTo(404); - } - } - - private static List<Issue> searchIssuesBySeverities(String projectKey, String severity) { - return issueRule.search(new SearchWsRequest().setProjectKeys(singletonList(projectKey)).setSeverities(singletonList(severity))).getIssuesList(); - } - -} diff --git a/it/it-tests/src/test/java/it/issue/IssueBulkChangeTest.java b/it/it-tests/src/test/java/it/issue/IssueBulkChangeTest.java deleted file mode 100644 index bbb4192e4c9..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueBulkChangeTest.java +++ /dev/null @@ -1,272 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import com.google.common.collect.FluentIterable; -import java.util.List; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonar.wsclient.base.HttpException; -import org.sonarqube.ws.Issues; -import org.sonarqube.ws.Issues.BulkChangeWsResponse; -import org.sonarqube.ws.client.issue.BulkChangeRequest; -import org.sonarqube.ws.client.issue.IssuesService; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import util.ProjectAnalysis; -import util.ProjectAnalysisRule; -import util.issue.IssueRule; - -import static java.util.Arrays.asList; -import static org.assertj.core.api.Assertions.assertThat; -import static org.sonarqube.ws.Common.Severity.BLOCKER; -import static org.sonarqube.ws.Issues.Issue; -import static util.ItUtils.newAdminWsClient; - -/** - * SONAR-4421 - */ -public class IssueBulkChangeTest extends AbstractIssueTest { - - private static final int BULK_EDITED_ISSUE_COUNT = 3; - private static final String COMMENT_AS_MARKDOWN = "this is my *comment*"; - private static final String COMMENT_AS_HTML = "this is my <strong>comment</strong>"; - - @Rule - public ExpectedException expectedException = ExpectedException.none(); - - @ClassRule - public static IssueRule issueRule = IssueRule.from(ORCHESTRATOR); - - @Rule - public final ProjectAnalysisRule projectAnalysisRule = ProjectAnalysisRule.from(ORCHESTRATOR); - - private IssuesService issuesService; - private ProjectAnalysis xooSampleLittleIssuesAnalysis; - - @Before - public void setUp() throws Exception { - String qualityProfileKey = projectAnalysisRule.registerProfile("/issue/IssueBulkChangeTest/one-issue-per-line-profile.xml"); - String projectKey = projectAnalysisRule.registerProject("shared/xoo-sample"); - this.xooSampleLittleIssuesAnalysis = projectAnalysisRule.newProjectAnalysis(projectKey) - .withQualityProfile(qualityProfileKey); - this.issuesService = newAdminWsClient(ORCHESTRATOR).issues(); - } - - @Test - public void should_change_severity() { - xooSampleLittleIssuesAnalysis.run(); - - String newSeverity = "BLOCKER"; - String[] issueKeys = searchIssueKeys(BULK_EDITED_ISSUE_COUNT); - BulkChangeWsResponse bulkChange = bulkChangeSeverityOfIssues(issueKeys, newSeverity); - - assertThat(bulkChange.getSuccess()).isEqualTo(BULK_EDITED_ISSUE_COUNT); - assertIssueSeverity(issueKeys, newSeverity); - } - - @Test - public void should_do_transition() { - xooSampleLittleIssuesAnalysis.run(); - String[] issueKeys = searchIssueKeys(BULK_EDITED_ISSUE_COUNT); - BulkChangeWsResponse bulkChangeResponse = bulkTransitionStatusOfIssues(issueKeys, "confirm"); - - assertThat(bulkChangeResponse.getSuccess()).isEqualTo(BULK_EDITED_ISSUE_COUNT); - assertIssueStatus(issueKeys, "CONFIRMED"); - } - - @Test - public void should_assign() { - xooSampleLittleIssuesAnalysis.run(); - - String[] issueKeys = searchIssueKeys(BULK_EDITED_ISSUE_COUNT); - BulkChangeWsResponse bulkChangeResponse = buldChangeAssigneeOfIssues(issueKeys, "admin"); - - assertThat(bulkChangeResponse.getSuccess()).isEqualTo(BULK_EDITED_ISSUE_COUNT); - for (Issue issue : issueRule.getByKeys(issueKeys)) { - assertThat(issue.getAssignee()).isEqualTo("admin"); - } - } - - @Test - public void should_setSeverity_add_comment_in_single_WS_call() { - xooSampleLittleIssuesAnalysis.run(); - - String newSeverity = "BLOCKER"; - String[] issueKeys = searchIssueKeys(BULK_EDITED_ISSUE_COUNT); - - BulkChangeWsResponse bulkChangeResponse = issuesService.bulkChange(BulkChangeRequest.builder() - .setIssues(asList(issueKeys)) - .setSetSeverity(newSeverity) - .setComment(COMMENT_AS_MARKDOWN) - .build()); - - assertThat(bulkChangeResponse.getSuccess()).isEqualTo(BULK_EDITED_ISSUE_COUNT); - for (Issue issue : issueRule.getByKeys(issueKeys)) { - assertThat(issue.getComments().getCommentsList()).hasSize(1); - assertThat(issue.getComments().getComments(0).getHtmlText()).isEqualTo(COMMENT_AS_HTML); - } - } - - @Test - public void should_apply_bulk_change_on_many_actions() { - xooSampleLittleIssuesAnalysis.run(); - String[] issueKeys = searchIssueKeys(BULK_EDITED_ISSUE_COUNT); - - BulkChangeWsResponse bulkChangeResponse = issuesService.bulkChange(BulkChangeRequest.builder() - .setIssues(asList(issueKeys)) - .setDoTransition("confirm") - .setAssign("admin") - .setSetSeverity("BLOCKER") - .setComment(COMMENT_AS_MARKDOWN) - .build()); - - assertThat(bulkChangeResponse.getSuccess()).isEqualTo(BULK_EDITED_ISSUE_COUNT); - for (Issue issue : issueRule.getByKeys(issueKeys)) { - assertThat(issue.getStatus()).isEqualTo("CONFIRMED"); - assertThat(issue.getAssignee()).isEqualTo("admin"); - assertThat(issue.getSeverity()).isEqualTo(BLOCKER); - assertThat(issue.getComments().getCommentsList()).hasSize(1); - assertThat(issue.getComments().getComments(0).getHtmlText()).isEqualTo(COMMENT_AS_HTML); - } - } - - @Test - public void should_not_apply_bulk_change_if_not_logged() { - xooSampleLittleIssuesAnalysis.run(); - - String newSeverity = "BLOCKER"; - String[] issueKeys = searchIssueKeys(BULK_EDITED_ISSUE_COUNT); - - try { - issuesService.bulkChange(createBulkChangeSeverityOfIssuesQuery(issueKeys, newSeverity)); - } catch (Exception e) { - assertHttpException(e, 401); - } - } - - @Test - public void should_not_apply_bulk_change_if_no_change_to_do() { - xooSampleLittleIssuesAnalysis.run(); - - String newSeverity = "BLOCKER"; - String[] issueKeys = searchIssueKeys(BULK_EDITED_ISSUE_COUNT); - - // Apply the bulk change a first time - BulkChangeWsResponse bulkChangeResponse = bulkChangeSeverityOfIssues(issueKeys, newSeverity); - assertThat(bulkChangeResponse.getSuccess()).isEqualTo(BULK_EDITED_ISSUE_COUNT); - - // Re apply the same bulk change -> no issue should be changed - bulkChangeResponse = bulkChangeSeverityOfIssues(issueKeys, newSeverity); - assertThat(bulkChangeResponse.getSuccess()).isEqualTo(0); - assertThat(bulkChangeResponse.getIgnored()).isEqualTo(BULK_EDITED_ISSUE_COUNT); - } - - @Test - public void should_not_apply_bulk_change_if_no_action() { - xooSampleLittleIssuesAnalysis.run(); - - try { - int limit = BULK_EDITED_ISSUE_COUNT; - String[] issueKeys = searchIssueKeys(limit); - issuesService.bulkChange(BulkChangeRequest.builder().setIssues(asList(issueKeys)).build()); - } catch (Exception e) { - assertHttpException(e, 400); - } - } - - @Test - public void should_add_comment_only_on_issues_that_will_be_changed() { - xooSampleLittleIssuesAnalysis.run(); - int nbIssues = BULK_EDITED_ISSUE_COUNT; - String[] issueKeys = searchIssueKeys(nbIssues); - - // Confirm an issue - adminIssueClient().doTransition(searchIssues().iterator().next().key(), "confirm"); - - // Apply a bulk change on unconfirm transition - BulkChangeWsResponse bulkChangeResponse = issuesService.bulkChange(BulkChangeRequest.builder().setIssues(asList(issueKeys)) - .setDoTransition("unconfirm") - .setComment("this is my comment") - .build()); - assertThat(bulkChangeResponse.getSuccess()).isEqualTo(1); - - int nbIssuesWithComment = 0; - for (Issues.Issue issue : issueRule.getByKeys(issueKeys)) { - if (!issue.getComments().getCommentsList().isEmpty()) { - nbIssuesWithComment++; - } - } - // Only one issue should have the comment - assertThat(nbIssuesWithComment).isEqualTo(1); - } - - private static void assertIssueSeverity(String[] issueKeys, String expectedSeverity) { - for (Issues.Issue issue : issueRule.getByKeys(issueKeys)) { - assertThat(issue.getSeverity().name()).isEqualTo(expectedSeverity); - } - } - - private static void assertIssueStatus(String[] issueKeys, String expectedStatus) { - for (Issues.Issue issue : issueRule.getByKeys(issueKeys)) { - assertThat(issue.getStatus()).isEqualTo(expectedStatus); - } - } - - private static void assertHttpException(Exception e, int expectedCode) { - assertThat(e).isInstanceOf(HttpException.class); - assertThat(((HttpException) e).status()).isEqualTo(expectedCode); - } - - private BulkChangeWsResponse bulkChangeSeverityOfIssues(String[] issueKeys, String newSeverity) { - BulkChangeRequest bulkChangeQuery = createBulkChangeSeverityOfIssuesQuery(issueKeys, newSeverity); - return issuesService.bulkChange(bulkChangeQuery); - } - - private static BulkChangeRequest createBulkChangeSeverityOfIssuesQuery(String[] issueKeys, String newSeverity) { - BulkChangeRequest.Builder request = BulkChangeRequest.builder().setSetSeverity(newSeverity); - if (issueKeys != null && issueKeys.length > 0) { - request.setIssues(asList(issueKeys)); - } - return request.build(); - } - - private BulkChangeWsResponse bulkTransitionStatusOfIssues(String[] issueKeys, String newSeverity) { - return issuesService.bulkChange(BulkChangeRequest.builder().setIssues(asList(issueKeys)).setDoTransition(newSeverity).build()); - } - - private BulkChangeWsResponse buldChangeAssigneeOfIssues(String[] issueKeys, String newAssignee) { - return issuesService.bulkChange(BulkChangeRequest.builder().setIssues(asList(issueKeys)).setAssign(newAssignee).build()); - } - - private static String[] searchIssueKeys(int limit) { - return getIssueKeys(issueRule.search(new SearchWsRequest()).getIssuesList(), limit); - } - - private static String[] getIssueKeys(List<Issues.Issue> issues, int nbIssues) { - return FluentIterable.from(issues) - .limit(nbIssues) - .transform(Issue::getKey) - .toArray(String.class); - } - -} diff --git a/it/it-tests/src/test/java/it/issue/IssueChangelogTest.java b/it/it-tests/src/test/java/it/issue/IssueChangelogTest.java deleted file mode 100644 index d9c833e9a41..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueChangelogTest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.List; -import org.junit.Before; -import org.junit.Test; -import org.sonar.wsclient.issue.Issue; -import org.sonarqube.ws.Issues; -import org.sonarqube.ws.Issues.ChangelogWsResponse.Changelog; -import org.sonarqube.ws.client.WsClient; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.tuple; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.runProjectAnalysis; - -public class IssueChangelogTest extends AbstractIssueTest { - - private static WsClient adminClient; - - @Before - public void prepareData() { - ORCHESTRATOR.resetData(); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/IssueChangelogTest/one-issue-per-line-profile.xml")); - ORCHESTRATOR.getServer().provisionProject("sample", "sample"); - ORCHESTRATOR.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - adminClient = newAdminWsClient(ORCHESTRATOR); - } - - @Test - public void update_changelog_when_assigning_issue_by_user() throws Exception { - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample"); - Issue issue = searchRandomIssue(); - assertIssueHasNoChange(issue.key()); - - adminIssueClient().assign(issue.key(), "admin"); - - List<Changelog> changes = changelog(issue.key()).getChangelogList(); - assertThat(changes).hasSize(1); - Changelog change = changes.get(0); - assertThat(change.getUser()).isEqualTo("admin"); - assertThat(change.getCreationDate()).isNotNull(); - assertThat(change.getDiffsList()) - .extracting(Changelog.Diff::getKey, Changelog.Diff::hasOldValue, Changelog.Diff::getNewValue) - .containsOnly(tuple("assignee", false, "Administrator")); - } - - @Test - public void update_changelog_when_reopening_unresolved_issue_by_scan() throws Exception { - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample"); - Issue issue = searchRandomIssue(); - assertIssueHasNoChange(issue.key()); - - // re analyse the project after resolving an issue in order to reopen it - adminIssueClient().doTransition(issue.key(), "resolve"); - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample"); - - List<Changelog> changes = changelog(issue.key()).getChangelogList(); - assertThat(changes).hasSize(2); - - // Change done by the user (first change is be the oldest one) - Changelog change1 = changes.get(0); - assertThat(change1.getUser()).isEqualTo("admin"); - assertThat(change1.getCreationDate()).isNotNull(); - assertThat(change1.getDiffsList()) - .extracting(Changelog.Diff::getKey, Changelog.Diff::getOldValue, Changelog.Diff::getNewValue) - .containsOnly(tuple("resolution", "", "FIXED"), tuple("status", "OPEN", "RESOLVED")); - - // Change done by scan - Changelog change2 = changes.get(1); - assertThat(change2.hasUser()).isFalse(); - assertThat(change2.getCreationDate()).isNotNull(); - assertThat(change2.getDiffsList()) - .extracting(Changelog.Diff::getKey, Changelog.Diff::getOldValue, Changelog.Diff::getNewValue) - .containsOnly(tuple("resolution", "", ""), tuple("status", "RESOLVED", "REOPENED")); - } - - @Test - public void display_file_name_in_changelog_during_file_move() { - // version 1 - runProjectAnalysis(ORCHESTRATOR, "issue/xoo-tracking-v1"); - - // version 2 - runProjectAnalysis(ORCHESTRATOR, "issue/xoo-tracking-v3"); - - Issue issue = searchRandomIssue(); - List<Changelog> changes = changelog(issue.key()).getChangelogList(); - assertThat(changes).hasSize(1); - Changelog change = changes.get(0); - assertThat(change.hasUser()).isFalse(); - assertThat(change.getCreationDate()).isNotNull(); - assertThat(change.getDiffsList()) - .extracting(Changelog.Diff::getKey, Changelog.Diff::getOldValue, Changelog.Diff::getNewValue) - .containsOnly(tuple("file", "src/main/xoo/sample/Sample.xoo", "src/main/xoo/sample/Sample2.xoo")); - } - - private void assertIssueHasNoChange(String issueKey) { - assertThat(changelog(issueKey).getChangelogList()).isEmpty(); - } - - private static Issues.ChangelogWsResponse changelog(String issueKey) { - return adminClient.issues().changelog(issueKey); - } - -} diff --git a/it/it-tests/src/test/java/it/issue/IssueCreationDateTest.java b/it/it-tests/src/test/java/it/issue/IssueCreationDateTest.java deleted file mode 100644 index 0dd27ca82fd..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueCreationDateTest.java +++ /dev/null @@ -1,378 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import com.sonar.orchestrator.build.SonarScanner; -import com.sonar.orchestrator.container.Server; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.function.Function; -import java.util.stream.Stream; -import org.junit.Before; -import org.junit.Test; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonarqube.ws.ProjectAnalyses; -import org.sonarqube.ws.client.projectanalysis.SearchRequest; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; - -/** - * @see <a href="https://jira.sonarsource.com/browse/MMF-567">MMF-567</a> - */ -public class IssueCreationDateTest extends AbstractIssueTest { - - private static final String ISSUE_STATUS_OPEN = "OPEN"; - - private static final String LANGUAGE_XOO = "xoo"; - - private static final String DATETIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ssZ"; - private static final String DATE_FORMAT = "yyyy-MM-dd"; - - private static final String SAMPLE_PROJECT_KEY = "creation-date-sample"; - private static final String SAMPLE_PROJECT_NAME = "Creation date sample"; - private static final String SAMPLE_QUALITY_PROFILE_NAME = "creation-date-quality-profile"; - private static final String SAMPLE_EXPLICIT_DATE_1 = todayMinusDays(2); - private static final String SAMPLE_EXPLICIT_DATE_2 = todayMinusDays(1); - - private Server server = ORCHESTRATOR.getServer(); - - @Before - public void resetData() { - ORCHESTRATOR.resetData(); - server.provisionProject(SAMPLE_PROJECT_KEY, SAMPLE_PROJECT_NAME); - } - - @Test - public void should_use_scm_date_for_new_issues_if_scm_is_available() { - analysis(QProfile.ONE_RULE, SourceCode.INITIAL, ScannerFeature.SCM); - - assertNumberOfIssues(3); - assertIssueCreationDate(Component.OnlyInInitial, IssueCreationDate.OnlyInInitial_R1); - assertIssueCreationDate(Component.ForeverAndModified, IssueCreationDate.ForeverAndModified_R1); - assertIssueCreationDate(Component.ForeverAndUnmodified, IssueCreationDate.ForeverAndUnmodified_R1); - } - - @Test - public void should_use_analysis_date_for_new_issues_if_scm_is_not_available() { - analysis(QProfile.ONE_RULE, SourceCode.INITIAL); - - assertNumberOfIssues(3); - assertIssueCreationDates(COMPONENTS_OF_SOURCE_INITIAL, IssueCreationDate.FIRST_ANALYSIS); - } - - @Test - public void use_explicit_project_date_if_scm_is_not_available() { - analysis(QProfile.ONE_RULE, SourceCode.INITIAL, ScannerFeature.EXPLICIT_DATE_1); - - assertNumberOfIssues(3); - assertIssueCreationDates(COMPONENTS_OF_SOURCE_INITIAL, IssueCreationDate.EXPLICIT_DATE_1); - } - - @Test - public void use_scm_date_even_if_explicit_project_date_is_set() { - analysis(QProfile.ONE_RULE, SourceCode.INITIAL, ScannerFeature.SCM, ScannerFeature.EXPLICIT_DATE_1); - - assertNumberOfIssues(3); - assertIssueCreationDate(Component.OnlyInInitial, IssueCreationDate.OnlyInInitial_R1); - assertIssueCreationDate(Component.ForeverAndModified, IssueCreationDate.ForeverAndModified_R1); - assertIssueCreationDate(Component.ForeverAndUnmodified, IssueCreationDate.ForeverAndUnmodified_R1); - } - - @Test - public void no_rules_no_issues_if_scm_is_available() { - analysis(QProfile.NO_RULES, SourceCode.INITIAL, ScannerFeature.SCM); - - assertNoIssue(); - } - - @Test - public void no_rules_no_issues_if_scm_is_not_available() { - analysis(QProfile.NO_RULES, SourceCode.INITIAL); - - assertNoIssue(); - } - - @Test - public void use_scm_date_for_issues_raised_by_new_rules_if_scm_is_newly_available() { - analysis(QProfile.NO_RULES, SourceCode.INITIAL); - analysis(QProfile.ONE_RULE, SourceCode.CHANGED, ScannerFeature.SCM); - - assertNumberOfIssues(3); - assertIssueCreationDate(Component.ForeverAndModified, IssueCreationDate.ForeverAndModified_R2); - assertIssueCreationDate(Component.ForeverAndUnmodified, IssueCreationDate.ForeverAndUnmodified_R1); - assertIssueCreationDate(Component.OnlyInChanged, IssueCreationDate.OnlyInChanged_R1); - } - - @Test - public void use_scm_date_for_issues_raised_by_new_rules_if_scm_is_available_and_ever_has_been_available() { - analysis(QProfile.NO_RULES, SourceCode.INITIAL, ScannerFeature.SCM); - analysis(QProfile.ONE_RULE, SourceCode.CHANGED, ScannerFeature.SCM); - - assertNumberOfIssues(3); - assertIssueCreationDate(Component.ForeverAndModified, IssueCreationDate.ForeverAndModified_R2); - assertIssueCreationDate(Component.ForeverAndUnmodified, IssueCreationDate.ForeverAndUnmodified_R1); - assertIssueCreationDate(Component.OnlyInChanged, IssueCreationDate.OnlyInChanged_R1); - } - - @Test - public void use_analysis_date_for_issues_raised_by_new_rules_if_scm_is_not_available() { - analysis(QProfile.NO_RULES, SourceCode.INITIAL); - analysis(QProfile.ONE_RULE, SourceCode.CHANGED); - - assertNumberOfIssues(3); - Stream.of(COMPONENTS_OF_SOURCE_CHANGED) - .forEach(component -> { - assertIssueCreationDate(component, IssueCreationDate.LATEST_ANALYSIS); - }); - } - - @Test - public void keep_the_date_of_an_existing_issue_even_if_the_blame_information_changes() { - analysis(QProfile.ONE_RULE, SourceCode.INITIAL, ScannerFeature.SCM); - analysis(QProfile.ONE_RULE, SourceCode.CHANGED, ScannerFeature.SCM); - - assertNumberOfIssues(3); - assertIssueCreationDate(Component.ForeverAndModified, IssueCreationDate.ForeverAndModified_R1); - assertIssueCreationDate(Component.ForeverAndUnmodified, IssueCreationDate.ForeverAndUnmodified_R1); - - // this file is new to the second analysis - assertIssueCreationDate(Component.OnlyInChanged, IssueCreationDate.LATEST_ANALYSIS); - } - - @Test - public void ignore_explicit_date_for_issues_related_to_new_rules_if_scm_is_available() { - analysis(QProfile.NO_RULES, SourceCode.INITIAL, ScannerFeature.SCM, ScannerFeature.EXPLICIT_DATE_1); - analysis(QProfile.ONE_RULE, SourceCode.CHANGED, ScannerFeature.SCM, ScannerFeature.EXPLICIT_DATE_2); - - assertNumberOfIssues(3); - assertIssueCreationDate(Component.ForeverAndModified, IssueCreationDate.ForeverAndModified_R2); - assertIssueCreationDate(Component.ForeverAndUnmodified, IssueCreationDate.ForeverAndUnmodified_R1); - assertIssueCreationDate(Component.OnlyInChanged, IssueCreationDate.OnlyInChanged_R1); - } - - @Test - public void use_explicit_date_for_issues_related_to_new_rules_if_scm_is_not_available() { - analysis(QProfile.NO_RULES, SourceCode.INITIAL, ScannerFeature.EXPLICIT_DATE_1); - analysis(QProfile.ONE_RULE, SourceCode.CHANGED, ScannerFeature.EXPLICIT_DATE_2); - - assertNumberOfIssues(3); - assertIssueCreationDates(COMPONENTS_OF_SOURCE_CHANGED, IssueCreationDate.EXPLICIT_DATE_2); - } - - private void analysis(QProfile qProfile, SourceCode sourceCode, ScannerFeature... scm) { - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource(qProfile.path)); - server.associateProjectToQualityProfile(SAMPLE_PROJECT_KEY, LANGUAGE_XOO, SAMPLE_QUALITY_PROFILE_NAME); - - SonarScanner scanner = SonarScanner.create(projectDir(sourceCode.path)); - Arrays.stream(scm).forEach(s -> s.configure(scanner)); - ORCHESTRATOR.executeBuild(scanner); - } - - private static void assertNoIssue() { - assertNumberOfIssues(0); - } - - private static void assertNumberOfIssues(int number) { - assertThat(getIssues(issueQuery())).hasSize(number); - } - - private static void assertIssueCreationDate(Component component, IssueCreationDate expectedDate) { - assertIssueCreationDates(new Component[] {component}, expectedDate); - } - - private static void assertIssueCreationDates(Component[] components, IssueCreationDate expectedDate) { - String[] keys = Arrays.stream(components).map(Component::getKey).toArray(String[]::new); - List<Issue> issues = getIssues(issueQuery().components(keys)); - Date[] dates = Arrays.stream(components).map(x -> expectedDate.getDate()).toArray(Date[]::new); - - assertThat(issues) - .extracting(Issue::creationDate) - .containsExactly(dates); - } - - private static List<Issue> getIssues(IssueQuery query) { - return issueClient().find(query).list(); - } - - private static IssueQuery issueQuery() { - return IssueQuery.create().statuses(ISSUE_STATUS_OPEN); - } - - private static Date dateTimeParse(String expectedDate) { - try { - return new SimpleDateFormat(DATETIME_FORMAT).parse(expectedDate); - } catch (ParseException e) { - throw new RuntimeException(e); - } - } - - private static Date dateParse(String expectedDate) { - try { - return new SimpleDateFormat(DATE_FORMAT).parse(expectedDate); - } catch (ParseException e) { - throw new RuntimeException(e); - } - } - - private static String todayMinusDays(int numberOfDays) { - return DateTimeFormatter.ofPattern(DATE_FORMAT).format(LocalDate.now().atStartOfDay().minusDays(numberOfDays)); - } - - private enum SourceCode { - INITIAL("issue/creationDateSampleInitial"), - CHANGED("issue/creationDateSampleChanged"), - ; - - private final String path; - - private SourceCode(String path) { - this.path = path; - } - } - - private enum Component { - OnlyInInitial("creation-date-sample:src/main/xoo/sample/OnlyInInitial.xoo"), - ForeverAndModified("creation-date-sample:src/main/xoo/sample/ForeverAndModified.xoo"), - ForeverAndUnmodified("creation-date-sample:src/main/xoo/sample/ForeverAndUnmodified.xoo"), - OnlyInChanged("creation-date-sample:src/main/xoo/sample/OnlyInChanged.xoo"), - ; - private final String key; - - private Component(String key) { - this.key = key; - } - - public String getKey() { - return key; - } - } - - private static final Component[] COMPONENTS_OF_SOURCE_INITIAL = {Component.OnlyInInitial, Component.ForeverAndModified, Component.ForeverAndUnmodified}; - private static final Component[] COMPONENTS_OF_SOURCE_CHANGED = {Component.ForeverAndModified, Component.ForeverAndUnmodified, Component.OnlyInChanged}; - - private enum QProfile { - ONE_RULE("/issue/IssueCreationDateTest/one-rule.xml"), - NO_RULES("/issue/IssueCreationDateTest/no-rules.xml"), - ; - - private final String path; - - private QProfile(String path) { - this.path = path; - } - } - - private enum ScannerFeature { - SCM { - @Override - void configure(SonarScanner scanner) { - scanner - .setProperty("sonar.scm.provider", "xoo") - .setProperty("sonar.scm.disabled", "false"); - } - }, - EXPLICIT_DATE_1 { - @Override - void configure(SonarScanner scanner) { - scanner - .setProperty("sonar.projectDate", SAMPLE_EXPLICIT_DATE_1); - } - }, - EXPLICIT_DATE_2 { - @Override - void configure(SonarScanner scanner) { - scanner - .setProperty("sonar.projectDate", SAMPLE_EXPLICIT_DATE_2); - } - }, - ; - - void configure(SonarScanner scanner) { - } - } - - private enum IssueCreationDate { - OnlyInInitial_R1(dateTimeParse("2001-01-01T00:00:00+0000")), - ForeverAndUnmodified_R1(dateTimeParse("2002-01-01T00:00:00+0000")), - ForeverAndModified_R1(dateTimeParse("2003-01-01T00:00:00+0000")), - ForeverAndModified_R2(dateTimeParse("2004-01-01T00:00:00+0000")), - OnlyInChanged_R1(dateTimeParse("2005-01-01T00:00:00+0000")), - EXPLICIT_DATE_1(dateParse(SAMPLE_EXPLICIT_DATE_1)), - EXPLICIT_DATE_2(dateParse(SAMPLE_EXPLICIT_DATE_2)), - FIRST_ANALYSIS { - @Override - Date getDate() { - return getAnalysisDate(l -> { - if (l.isEmpty()) { - return Optional.empty(); - } - return Optional.of(l.get(l.size() - 1)); - }); - } - }, - LATEST_ANALYSIS { - @Override - Date getDate() { - return getAnalysisDate(l -> { - if (l.size() > 0) { - return Optional.of(l.get(0)); - } - return Optional.empty(); - }); - } - }, - ; - - private final Date date; - - private IssueCreationDate() { - this.date = null; - } - - private IssueCreationDate(Date date) { - this.date = date; - } - - Date getDate() { - return date; - } - - private static Date getAnalysisDate(Function<List<ProjectAnalyses.Analysis>, Optional<ProjectAnalyses.Analysis>> chooseItem) { - return Optional.of( - ItUtils.newWsClient(ORCHESTRATOR) - .projectAnalysis() - .search(SearchRequest.builder().setProject(SAMPLE_PROJECT_KEY).build()) - .getAnalysesList()) - .flatMap(chooseItem) - .map(ProjectAnalyses.Analysis::getDate) - .map(IssueCreationDateTest::dateTimeParse) - .orElseThrow(() -> new IllegalStateException("There is no analysis")); - } - } -} diff --git a/it/it-tests/src/test/java/it/issue/IssueCreationTest.java b/it/it-tests/src/test/java/it/issue/IssueCreationTest.java deleted file mode 100644 index 7f7a819a3b1..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueCreationTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import org.junit.Before; -import org.junit.Test; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonar.wsclient.issue.Issues; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.runProjectAnalysis; - -public class IssueCreationTest extends AbstractIssueTest { - - private static final String SAMPLE_PROJECT_KEY = "sample"; - - @Before - public void resetData() { - ORCHESTRATOR.resetData(); - } - - /** - * See SONAR-4785 - */ - @Test - public void use_rule_name_if_issue_has_no_message() { - ORCHESTRATOR.getServer().provisionProject(SAMPLE_PROJECT_KEY, SAMPLE_PROJECT_KEY); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/IssueCreationTest/with-custom-message.xml")); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(SAMPLE_PROJECT_KEY, "xoo", "with-custom-message"); - - // First analysis, the issue is generated with a message - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample", "sonar.customMessage.message", "a message"); - Issue issue = issueClient().find(IssueQuery.create()).list().get(0); - assertThat(issue.message()).isEqualTo("a message"); - - // Second analysis, the issue is generated without any message, the name of the rule is used - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample"); - issue = issueClient().find(IssueQuery.create()).list().get(0); - assertThat(issue.message()).isEqualTo("Issue With Custom Message"); - } - - @Test - public void plugin_can_override_profile_severity() throws Exception { - ORCHESTRATOR.getServer().provisionProject(SAMPLE_PROJECT_KEY, SAMPLE_PROJECT_KEY); - - // The rule "OneBlockerIssuePerFile" is enabled with severity "INFO" - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/IssueCreationTest/override-profile-severity.xml")); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(SAMPLE_PROJECT_KEY, "xoo", "override-profile-severity"); - - // But it's hardcoded "blocker" when plugin generates the issue - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample"); - - Issues issues = search(IssueQuery.create().rules("xoo:OneBlockerIssuePerFile")); - assertThat(issues.size()).isGreaterThan(0); - for (Issue issue : issues.list()) { - assertThat(issue.severity()).isEqualTo("BLOCKER"); - } - } -} diff --git a/it/it-tests/src/test/java/it/issue/IssueFilterExtensionTest.java b/it/it-tests/src/test/java/it/issue/IssueFilterExtensionTest.java deleted file mode 100644 index 3232a6c0720..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueFilterExtensionTest.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.List; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueQuery; -import util.ProjectAnalysis; -import util.ProjectAnalysisRule; -import util.issue.IssueRule; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasureAsDouble; - -/** - * Tests the extension point IssueFilter - */ -public class IssueFilterExtensionTest extends AbstractIssueTest { - - @Rule - public final ProjectAnalysisRule projectAnalysisRule = ProjectAnalysisRule.from(ORCHESTRATOR); - - @ClassRule - public static final IssueRule issueRule = IssueRule.from(ORCHESTRATOR); - - private final String manyRuleProfileKey = projectAnalysisRule.registerProfile("/issue/IssueFilterExtensionTest/xoo-with-many-rules.xml"); - private final String xooMultiModuleProjectKey = projectAnalysisRule.registerProject("shared/xoo-multi-modules-sample"); - private final ProjectAnalysis analysis = projectAnalysisRule.newProjectAnalysis(xooMultiModuleProjectKey) - .withQualityProfile(manyRuleProfileKey); - - @Test - public void should_filter_files() throws Exception { - analysis.withProperties("sonar.exclusions", "**/HelloA1.xoo").run(); - - List<Issue> issues = searchIssues(); - assertThat(issues).isNotEmpty(); - for (Issue issue : issues) { - // verify exclusion to avoid false positive - assertThat(issue.componentKey()).doesNotContain("HelloA1"); - } - - assertThat(getMeasureAsDouble(ORCHESTRATOR, xooMultiModuleProjectKey, "violations").intValue()).isEqualTo(issues.size()); - } - - @Test - public void should_filter_issues() { - // first analysis without issue-filter - analysis.run(); - - // Issue filter removes issues on lines < 5 - // Deprecated violation filter removes issues detected by PMD - List<Issue> unresolvedIssues = searchResolvedIssues(xooMultiModuleProjectKey); - int issuesBeforeLine5 = countIssuesBeforeLine5(unresolvedIssues); - int pmdIssues = countModuleIssues(unresolvedIssues); - assertThat(issuesBeforeLine5).isGreaterThan(0); - assertThat(pmdIssues).isGreaterThan(0); - - // Enable issue filters - analysis.withProperties("enableIssueFilters", "true").run(); - - unresolvedIssues = searchResolvedIssues(xooMultiModuleProjectKey); - List<Issue> resolvedIssues = searchUnresolvedIssues(xooMultiModuleProjectKey); - assertThat(countIssuesBeforeLine5(unresolvedIssues)).isZero(); - assertThat(countModuleIssues(unresolvedIssues)).isZero(); - assertThat(countModuleIssues(resolvedIssues)).isGreaterThan(0); - for (Issue issue : resolvedIssues) { - // SONAR-6364 no line number on closed issues - assertThat(issue.line()).isNull(); - } - } - - private static List<Issue> searchUnresolvedIssues(String projectKey) { - return searchIssues(IssueQuery.create().componentRoots(projectKey).resolved(true)); - } - - private static List<Issue> searchResolvedIssues(String projectKey) { - return searchIssues(IssueQuery.create().componentRoots(projectKey).resolved(false)); - } - - private static int countModuleIssues(List<Issue> issues) { - int count = 0; - for (Issue issue : issues) { - if (issue.ruleKey().equals("xoo:OneIssuePerModule")) { - count++; - } - } - return count; - } - - private static int countIssuesBeforeLine5(List<Issue> issues) { - int count = 0; - for (Issue issue : issues) { - if (issue.line() != null && issue.line() < 5) { - count++; - } - } - return count; - } -} diff --git a/it/it-tests/src/test/java/it/issue/IssueFilterOnCommonRulesTest.java b/it/it-tests/src/test/java/it/issue/IssueFilterOnCommonRulesTest.java deleted file mode 100644 index 0c2e5a48f98..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueFilterOnCommonRulesTest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.List; -import org.apache.commons.lang.ArrayUtils; -import org.junit.Before; -import org.junit.Test; -import org.sonarqube.ws.Issues; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import util.ItUtils; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperties; - -public class IssueFilterOnCommonRulesTest extends AbstractIssueTest { - - private static WsClient adminWsClient; - - private static final String PROJECT_KEY = "common-rules-project"; - private static final String PROJECT_DIR = "issue/common-rules"; - - private static final String FILE_KEY = "common-rules-project:src/Sample.xoo"; - - @Before - public void resetData() { - ORCHESTRATOR.resetData(); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/IssueFilterOnCommonRulesTest/xoo-common-rules-profile.xml")); - ORCHESTRATOR.getServer().provisionProject(PROJECT_KEY, "Sample"); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "xoo-common-rules"); - - adminWsClient = newAdminWsClient(ORCHESTRATOR); - } - - @Test - public void ignore_all() { - executeAnalysis("sonar.issue.ignore.multicriteria", "1", - "sonar.issue.ignore.multicriteria.1.ruleKey", "*", - "sonar.issue.ignore.multicriteria.1.resourceKey", "**/*.xoo"); - - assertThat(findAllIssues()).hasSize(0); - } - - @Test - public void ignore_some_rule_and_file() { - executeAnalysis( - "sonar.issue.ignore.multicriteria", "1,2", - "sonar.issue.ignore.multicriteria.1.ruleKey", "common-xoo:DuplicatedBlocks", - "sonar.issue.ignore.multicriteria.1.resourceKey", "**/Sample.xoo", - "sonar.issue.ignore.multicriteria.2.ruleKey", "common-xoo:SkippedUnitTests", - "sonar.issue.ignore.multicriteria.2.resourceKey", "**/SampleTest.xoo"); - - assertThat(findAllIssues()).hasSize(4); - assertThat(findIssuesByRuleKey("common-xoo:DuplicatedBlocks")).isEmpty(); - assertThat(findIssuesByRuleKey("common-xoo:SkippedUnitTests")).isEmpty(); - } - - @Test - public void enforce_one_file() { - executeAnalysis( - "sonar.issue.enforce.multicriteria", "1", - "sonar.issue.enforce.multicriteria.1.ruleKey", "*", - // Only issues on this file will be accepted - "sonar.issue.enforce.multicriteria.1.resourceKey", "**/Sample.xoo"); - - assertThat(findAllIssues()).hasSize(4); - } - - @Test - public void enforce_on_rules() { - executeAnalysis( - "sonar.issue.enforce.multicriteria", "1,2", - "sonar.issue.enforce.multicriteria.1.ruleKey", "common-xoo:DuplicatedBlocks", - "sonar.issue.enforce.multicriteria.1.resourceKey", "**/Sample.xoo", - // This rule should only be applied on a file that do not exist => no issue for this rule - "sonar.issue.enforce.multicriteria.2.ruleKey", "common-xoo:InsufficientCommentDensity", - "sonar.issue.enforce.multicriteria.2.resourceKey", "**/OtherFile.xoo"); - - assertThat(findAllIssues()).hasSize(5); - assertThat(findIssuesByRuleKey("common-xoo:DuplicatedBlocks")).hasSize(1); - assertThat(findIssuesByRuleKey("common-xoo:InsufficientCommentDensity")).isEmpty(); - } - - private void executeAnalysis(String... serverProperties) { - String[] cpdProperties = new String[] { - "sonar.cpd.xoo.minimumTokens", "2", - "sonar.cpd.xoo.minimumLines", "2" - }; - setServerProperties(ORCHESTRATOR, PROJECT_KEY, (String[]) ArrayUtils.addAll(serverProperties, cpdProperties)); - runProjectAnalysis(ORCHESTRATOR, PROJECT_DIR); - } - - private List<Issues.Issue> findIssuesByRuleKey(String ruleKey) { - return adminWsClient.issues().search( - new SearchWsRequest() - .setComponents(singletonList(FILE_KEY)) - .setRules(singletonList(ruleKey))) - .getIssuesList(); - } - - private List<Issues.Issue> findAllIssues() { - return adminWsClient.issues().search(new SearchWsRequest()).getIssuesList(); - } - -} diff --git a/it/it-tests/src/test/java/it/issue/IssueFilterTest.java b/it/it-tests/src/test/java/it/issue/IssueFilterTest.java deleted file mode 100644 index 1e848f6d55c..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueFilterTest.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.Map; -import org.junit.Before; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperties; - -public class IssueFilterTest extends AbstractIssueTest { - - private static final String PROJECT_KEY = "com.sonarsource.it.samples:multi-modules-exclusions"; - private static final String PROJECT_DIR = "exclusions/xoo-multi-modules"; - - @Before - public void resetData() { - ORCHESTRATOR.resetData(); - - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/IssueFilterTest/with-many-rules.xml")); - ORCHESTRATOR.getServer().provisionProject(PROJECT_KEY, "project"); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "with-many-rules"); - } - - @Test - public void ignore_all_files() { - executeAnalysis( - "sonar.issue.ignore.multicriteria", "1", - "sonar.issue.ignore.multicriteria.1.resourceKey", "**/*.xoo", - "sonar.issue.ignore.multicriteria.1.ruleKey", "*"); - - checkIssueCountBySeverity(4, 0, 0, 4); - } - - @Test - public void enforce_only_on_one_file() { - executeAnalysis( - "sonar.issue.enforce.multicriteria", "1", - "sonar.issue.enforce.multicriteria.1.resourceKey", "**/HelloA1.xoo", - "sonar.issue.enforce.multicriteria.1.ruleKey", "*"); - - checkIssueCountBySeverity( - 1 /* tag */ + 18 /* lines in HelloA1.xoo */ + 1 /* file */, - 0 + 1, - 0, - 0); - } - - @Test - public void enforce_on_two_files_with_same_rule() { - executeAnalysis( - "sonar.issue.enforce.multicriteria", "1,2", - "sonar.issue.enforce.multicriteria.1.resourceKey", "**/HelloA1.xoo", - "sonar.issue.enforce.multicriteria.1.ruleKey", "*", - "sonar.issue.enforce.multicriteria.2.resourceKey", "**/HelloA2.xoo", - "sonar.issue.enforce.multicriteria.2.ruleKey", "*"); - - checkIssueCountBySeverity( - 2 /* tags */ + 18 /* lines in HelloA1.xoo */ + 15 /* lines in HelloA2.xoo */ + 2 /* files */, - 0 + 2, - 0, - 0); - } - - @Test - public void enforce_on_two_files_with_different_rules() { - executeAnalysis( - "sonar.issue.enforce.multicriteria", "1,2", - "sonar.issue.enforce.multicriteria.1.resourceKey", "**/HelloA1.xoo", - "sonar.issue.enforce.multicriteria.1.ruleKey", "xoo:OneIssuePerLine", - "sonar.issue.enforce.multicriteria.2.resourceKey", "**/HelloA2.xoo", - "sonar.issue.enforce.multicriteria.2.ruleKey", "xoo:HasTag"); - - checkIssueCountBySeverity( - 1 /* tag in HelloA2 */ + 18 /* lines in HelloA1.xoo */ + 4 /* files */ + 4 /* modules */, - 4, - 0, - 4); - } - - private void executeAnalysis(String... serverProperties) { - setServerProperties(ORCHESTRATOR, PROJECT_KEY, serverProperties); - runProjectAnalysis(ORCHESTRATOR, PROJECT_DIR); - } - - private void checkIssueCountBySeverity(int total, int perFile, int perCommonRule, int perModule) { - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(ORCHESTRATOR, PROJECT_KEY, "violations", "major_violations", "blocker_violations", "critical_violations"); - assertThat(measures.get("violations").intValue()).isEqualTo(total); - assertThat(measures.get("major_violations").intValue()).isEqualTo(perFile); // One per file - assertThat(measures.get("blocker_violations").intValue()).isEqualTo(perCommonRule); // On per common rule - assertThat(measures.get("critical_violations").intValue()).isEqualTo(perModule); // One per module - } - -} diff --git a/it/it-tests/src/test/java/it/issue/IssueMeasureTest.java b/it/it-tests/src/test/java/it/issue/IssueMeasureTest.java deleted file mode 100644 index 47860b72875..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueMeasureTest.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.List; -import java.util.Map; -import org.junit.Before; -import org.junit.Test; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueQuery; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; -import static util.ItUtils.runProjectAnalysis; - -public class IssueMeasureTest extends AbstractIssueTest { - - private static final String MULTI_MODULE_SAMPLE_PROJECT_KEY = "com.sonarsource.it.samples:multi-modules-sample"; - private static final String SAMPLE_PROJECT_KEY = "sample"; - - @Before - public void resetData() { - ORCHESTRATOR.resetData(); - } - - @Test - public void issues_by_severity_measures() { - ORCHESTRATOR.getServer().provisionProject(MULTI_MODULE_SAMPLE_PROJECT_KEY, MULTI_MODULE_SAMPLE_PROJECT_KEY); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/with-many-rules.xml")); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(MULTI_MODULE_SAMPLE_PROJECT_KEY, "xoo", "with-many-rules"); - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-multi-modules-sample"); - - assertThat(search(IssueQuery.create().componentRoots(MULTI_MODULE_SAMPLE_PROJECT_KEY)).paging().total()).isEqualTo(136); - - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(ORCHESTRATOR, MULTI_MODULE_SAMPLE_PROJECT_KEY, "violations", "info_violations", "minor_violations", - "major_violations", - "blocker_violations", "critical_violations"); - assertThat(measures.get("violations")).isEqualTo(136); - assertThat(measures.get("info_violations")).isEqualTo(2); - assertThat(measures.get("minor_violations")).isEqualTo(61); - assertThat(measures.get("major_violations")).isEqualTo(65); - assertThat(measures.get("blocker_violations")).isEqualTo(4); - assertThat(measures.get("critical_violations")).isEqualTo(4); - } - - /** - * SONAR-4330 - * SONAR-7555 - */ - @Test - public void issues_by_resolution_and_status_measures() { - ORCHESTRATOR.getServer().provisionProject(SAMPLE_PROJECT_KEY, SAMPLE_PROJECT_KEY); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/one-issue-per-line-profile.xml")); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(SAMPLE_PROJECT_KEY, "xoo", "one-issue-per-line-profile"); - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample"); - - List<Issue> issues = searchIssuesByProject(SAMPLE_PROJECT_KEY); - assertThat(issues).hasSize(17); - - // 1 is a false-positive, 1 is a won't fix, 1 is confirmed, 1 is reopened, and the remaining ones stays open - adminIssueClient().doTransition(issues.get(0).key(), "falsepositive"); - adminIssueClient().doTransition(issues.get(1).key(), "wontfix"); - adminIssueClient().doTransition(issues.get(2).key(), "confirm"); - adminIssueClient().doTransition(issues.get(3).key(), "resolve"); - adminIssueClient().doTransition(issues.get(3).key(), "reopen"); - - // Re analyze the project to compute measures - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample"); - - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(ORCHESTRATOR, SAMPLE_PROJECT_KEY, "false_positive_issues", "wont_fix_issues", "open_issues", "reopened_issues", - "confirmed_issues"); - assertThat(measures.get("false_positive_issues")).isEqualTo(1); - assertThat(measures.get("wont_fix_issues")).isEqualTo(1); - assertThat(measures.get("open_issues")).isEqualTo(13); - assertThat(measures.get("reopened_issues")).isEqualTo(1); - assertThat(measures.get("confirmed_issues")).isEqualTo(1); - } - - @Test - public void no_issue_are_computed_on_empty_profile() { - ORCHESTRATOR.getServer().provisionProject(SAMPLE_PROJECT_KEY, SAMPLE_PROJECT_KEY); - - // no active rules - ORCHESTRATOR.getServer().associateProjectToQualityProfile(SAMPLE_PROJECT_KEY, "xoo", "empty"); - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample"); - - assertThat(searchIssuesByProject(SAMPLE_PROJECT_KEY)).isEmpty(); - - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(ORCHESTRATOR, SAMPLE_PROJECT_KEY, "violations", "blocker_violations"); - assertThat(measures.get("violations")).isEqualTo(0); - assertThat(measures.get("blocker_violations")).isEqualTo(0); - } - - /** - * SONAR-3746 - */ - @Test - public void issues_measures_on_test_files() { - String projectKey = "sample-with-tests"; - String testKey = "sample-with-tests:src/test/xoo/sample/SampleTest.xoo"; - - ORCHESTRATOR.getServer().provisionProject(projectKey, projectKey); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/one-issue-per-file-profile.xml")); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(projectKey, "xoo", "one-issue-per-file-profile"); - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample-with-tests"); - - // Store current number of issues - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(ORCHESTRATOR, testKey, "violations"); - assertThat(measures.get("violations")).isEqualTo(1); - } - -} diff --git a/it/it-tests/src/test/java/it/issue/IssueNotificationsTest.java b/it/it-tests/src/test/java/it/issue/IssueNotificationsTest.java deleted file mode 100644 index a77a85b7bd3..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueNotificationsTest.java +++ /dev/null @@ -1,236 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.Iterator; -import javax.mail.internet.MimeMessage; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueClient; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonar.wsclient.issue.Issues; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.issue.BulkChangeRequest; -import org.sonarqube.ws.client.issue.IssuesService; -import org.subethamail.wiser.Wiser; -import org.subethamail.wiser.WiserMessage; -import util.ItUtils; -import util.user.UserRule; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.newUserWsClient; -import static util.ItUtils.resetEmailSettings; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperty; - -public class IssueNotificationsTest extends AbstractIssueTest { - - private final static String PROJECT_KEY = "sample"; - private final static String USER_LOGIN = "tester"; - private final static String USER_PASSWORD = "tester"; - private static final String USER_EMAIL = "tester@example.org"; - - private static Wiser smtpServer; - - private IssueClient issueClient; - - private IssuesService issuesService; - - @ClassRule - public static UserRule userRule = UserRule.from(ORCHESTRATOR); - - @BeforeClass - public static void before() throws Exception { - smtpServer = new Wiser(0); - smtpServer.start(); - System.out.println("SMTP Server port: " + smtpServer.getServer().getPort()); - - // Configure Sonar - resetEmailSettings(ORCHESTRATOR); - setServerProperty(ORCHESTRATOR, "email.smtp_host.secured", "localhost"); - setServerProperty(ORCHESTRATOR, "email.smtp_port.secured", Integer.toString(smtpServer.getServer().getPort())); - - // Send test email to the test user - newAdminWsClient(ORCHESTRATOR).wsConnector().call(new PostRequest("api/emails/send") - .setParam("to", USER_EMAIL) - .setParam("message", "This is a test message from SonarQube")) - .failIfNotSuccessful(); - - // We need to wait until all notifications will be delivered - waitUntilAllNotificationsAreDelivered(1); - - Iterator<WiserMessage> emails = smtpServer.getMessages().iterator(); - - MimeMessage message = emails.next().getMimeMessage(); - assertThat(message.getHeader("To", null)).isEqualTo("<" + USER_EMAIL + ">"); - assertThat((String) message.getContent()).contains("This is a test message from SonarQube"); - - assertThat(emails.hasNext()).isFalse(); - } - - @AfterClass - public static void stop() { - if (smtpServer != null) { - smtpServer.stop(); - } - userRule.deactivateUsers(USER_LOGIN); - setServerProperty(ORCHESTRATOR, "sonar.issues.defaultAssigneeLogin", null); - resetEmailSettings(ORCHESTRATOR); - } - - @Before - public void prepare() { - ORCHESTRATOR.resetData(); - - // Create test user - userRule.createUser(USER_LOGIN, "Tester", USER_EMAIL, USER_LOGIN); - - smtpServer.getMessages().clear(); - issueClient = ORCHESTRATOR.getServer().adminWsClient().issueClient(); - issuesService = newAdminWsClient(ORCHESTRATOR).issues(); - - setServerProperty(ORCHESTRATOR, "sonar.issues.defaultAssigneeLogin", null); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/one-issue-per-line-profile.xml")); - ORCHESTRATOR.getServer().provisionProject(PROJECT_KEY, "Sample"); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "one-issue-per-line-profile"); - - // Add notifications to the test user - WsClient wsClient = newUserWsClient(ORCHESTRATOR, USER_LOGIN, USER_PASSWORD); - wsClient.wsConnector().call(new PostRequest("api/notifications/add") - .setParam("type", "NewIssues") - .setParam("channel", "EmailNotificationChannel")) - .failIfNotSuccessful(); - wsClient.wsConnector().call(new PostRequest("api/notifications/add") - .setParam("type", "ChangesOnMyIssue") - .setParam("channel", "EmailNotificationChannel")) - .failIfNotSuccessful(); - wsClient.wsConnector().call(new PostRequest("api/notifications/add") - .setParam("type", "SQ-MyNewIssues") - .setParam("channel", "EmailNotificationChannel")) - .failIfNotSuccessful(); - - } - - @Test - public void notifications_for_new_issues_and_issue_changes() throws Exception { - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample", "sonar.projectDate", "2015-12-15"); - - // change assignee - Issues issues = issueClient.find(IssueQuery.create().componentRoots(PROJECT_KEY)); - Issue issue = issues.list().get(0); - issueClient.assign(issue.key(), USER_LOGIN); - - waitUntilAllNotificationsAreDelivered(2); - - Iterator<WiserMessage> emails = smtpServer.getMessages().iterator(); - - assertThat(emails.hasNext()).isTrue(); - MimeMessage message = emails.next().getMimeMessage(); - assertThat(message.getHeader("To", null)).isEqualTo("<tester@example.org>"); - assertThat((String) message.getContent()).contains("Sample"); - assertThat((String) message.getContent()).contains("17 new issues (new debt: 17min)"); - assertThat((String) message.getContent()).contains("Severity"); - assertThat((String) message.getContent()).contains("One Issue Per Line (xoo): 17"); - assertThat((String) message.getContent()).contains( - "See it in SonarQube: http://localhost:9000/project/issues?id=sample&createdAt=2015-12-15T00%3A00%3A00%2B"); - - assertThat(emails.hasNext()).isTrue(); - message = emails.next().getMimeMessage(); - assertThat(message.getHeader("To", null)).isEqualTo("<tester@example.org>"); - assertThat((String) message.getContent()).contains("sample/Sample.xoo"); - assertThat((String) message.getContent()).contains("Assignee changed to Tester"); - assertThat((String) message.getContent()).contains( - "See it in SonarQube: http://localhost:9000/project/issues?id=sample&issues=" + issue.key() + "&open=" + issue.key()); - - assertThat(emails.hasNext()).isFalse(); - } - - @Test - public void notifications_for_personalized_emails() throws Exception { - setServerProperty(ORCHESTRATOR, "sonar.issues.defaultAssigneeLogin", USER_LOGIN); - runProjectAnalysis(ORCHESTRATOR, "issue/xoo-with-scm", "sonar.scm.provider", "xoo", "sonar.scm.disabled", "false"); - - waitUntilAllNotificationsAreDelivered(2); - - Iterator<WiserMessage> emails = smtpServer.getMessages().iterator(); - emails.next(); - // the second email sent is the personalized one - MimeMessage message = emails.next().getMimeMessage(); - - assertThat(message.getHeader("To", null)).isEqualTo("<tester@example.org>"); - assertThat(message.getSubject()).contains("You have 13 new issues"); - } - - /** - * SONAR-4606 - */ - @Test - public void notifications_for_bulk_change_ws() throws Exception { - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample", "sonar.projectDate", "2015-12-15"); - - Issues issues = issueClient.find(IssueQuery.create().componentRoots(PROJECT_KEY)); - Issue issue = issues.list().get(0); - - // bulk change without notification by default - issuesService.bulkChange(BulkChangeRequest.builder() - .setIssues(singletonList(issue.key())) - .setAssign(USER_LOGIN) - .setSetSeverity("MINOR") - .build()); - - // bulk change with notification - issuesService.bulkChange(BulkChangeRequest.builder() - .setIssues(singletonList(issue.key())) - .setSetSeverity("BLOCKER") - .setSendNotifications(true) - .build()); - - waitUntilAllNotificationsAreDelivered(2); - - Iterator<WiserMessage> emails = smtpServer.getMessages().iterator(); - - emails.next(); - MimeMessage message = emails.next().getMimeMessage(); - assertThat(message.getHeader("To", null)).isEqualTo("<tester@example.org>"); - assertThat((String) message.getContent()).contains("sample/Sample.xoo"); - assertThat((String) message.getContent()).contains("Severity: BLOCKER (was MINOR)"); - assertThat((String) message.getContent()).contains( - "See it in SonarQube: http://localhost:9000/project/issues?id=sample&issues=" + issue.key() + "&open=" + issue.key()); - - assertThat(emails.hasNext()).isFalse(); - } - - private static void waitUntilAllNotificationsAreDelivered(int expectedNumberOfEmails) throws InterruptedException { - for (int i = 0; i < 10; i++) { - if (smtpServer.getMessages().size() == expectedNumberOfEmails) { - break; - } - Thread.sleep(1_000); - } - } - -} diff --git a/it/it-tests/src/test/java/it/issue/IssuePurgeTest.java b/it/it-tests/src/test/java/it/issue/IssuePurgeTest.java deleted file mode 100644 index c230d918e67..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssuePurgeTest.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.List; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonar.wsclient.issue.Issues; -import util.ProjectAnalysis; -import util.ProjectAnalysisRule; - -import static org.assertj.core.api.Assertions.assertThat; - -public class IssuePurgeTest extends AbstractIssueTest { - - @Rule - public final ProjectAnalysisRule projectAnalysisRule = ProjectAnalysisRule.from(ORCHESTRATOR); - - private ProjectAnalysis xooSampleAnalysis; - private ProjectAnalysis xooMultiModuleAnalysis; - - @Before - public void setUp() throws Exception { - String manyRulesProfile = projectAnalysisRule.registerProfile("/issue/IssuePurgeTest/with-many-rules.xml"); - String xooSampleProjectKey = projectAnalysisRule.registerProject("shared/xoo-sample"); - this.xooSampleAnalysis = projectAnalysisRule.newProjectAnalysis(xooSampleProjectKey) - .withQualityProfile(manyRulesProfile); - String xooMultiModuleProjectKey = projectAnalysisRule.registerProject("shared/xoo-multi-modules-sample"); - this.xooMultiModuleAnalysis = projectAnalysisRule.newProjectAnalysis(xooMultiModuleProjectKey) - .withQualityProfile(manyRulesProfile); - } - - /** - * SONAR-4308 - */ - @Test - public void purge_old_closed_issues() throws Exception { - projectAnalysisRule.setServerProperty("sonar.dbcleaner.daysBeforeDeletingClosedIssues", "5000"); - - // Generate some issues - xooSampleAnalysis.withProperties( - "sonar.dynamicAnalysis", "false", - "sonar.projectDate", "2014-10-01") - .run(); - - // All the issues are open - List<Issue> issuesList = searchIssues(); - for (Issue issue : issuesList) { - assertThat(issue.resolution()).isNull(); - } - - // Second scan with empty profile -> all issues are resolved and closed - // -> Not deleted because less than 5000 days long - xooSampleAnalysis - .withXooEmptyProfile() - .withProperties( - "sonar.dynamicAnalysis", "false", - "sonar.projectDate", "2014-10-15") - .run(); - issuesList = searchIssues(); - assertThat(issuesList).isNotEmpty(); - for (Issue issue : issuesList) { - assertThat(issue.resolution()).isNotNull(); - assertThat(issue.status()).isEqualTo("CLOSED"); - } - - // Third scan -> closed issues are deleted - projectAnalysisRule.setServerProperty("sonar.dbcleaner.daysBeforeDeletingClosedIssues", "1"); - - xooSampleAnalysis.withXooEmptyProfile() - .withProperties( - "sonar.dynamicAnalysis", "false", - "sonar.projectDate", "2014-10-20") - .run(); - Issues issues = issueClient().find(IssueQuery.create()); - assertThat(issues.list()).isEmpty(); - assertThat(issues.paging().total()).isZero(); - } - - /** - * SONAR-7108 - */ - @Test - public void purge_old_closed_issues_when_zero_closed_issues_wanted() throws Exception { - projectAnalysisRule.setServerProperty("sonar.dbcleaner.daysBeforeDeletingClosedIssues", "5000"); - - // Generate some issues - xooSampleAnalysis.withProperties( - "sonar.dynamicAnalysis", "false", - "sonar.projectDate", "2014-10-01") - .run(); - - // All the issues are open - List<Issue> issueList = searchIssues(); - for (Issue issue : issueList) { - assertThat(issue.resolution()).isNull(); - } - - // Second scan with empty profile -> all issues are resolved and closed - // -> Not deleted because less than 5000 days long - xooSampleAnalysis - .withXooEmptyProfile() - .withProperties( - "sonar.dynamicAnalysis", "false", - "sonar.projectDate", "2014-10-15") - .run(); - issueList = searchIssues(); - assertThat(issueList).isNotEmpty(); - for (Issue issue : issueList) { - assertThat(issue.resolution()).isNotNull(); - assertThat(issue.status()).isEqualTo("CLOSED"); - } - - // Third scan -> closed issues are deleted - projectAnalysisRule.setServerProperty("sonar.dbcleaner.daysBeforeDeletingClosedIssues", "0"); - - xooSampleAnalysis.withXooEmptyProfile() - .withProperties( - "sonar.dynamicAnalysis", "false", - "sonar.projectDate", "2014-10-20") - .run(); - - Issues issues = issueClient().find(IssueQuery.create()); - assertThat(issues.list()).isEmpty(); - assertThat(issues.paging().total()).isZero(); - } - - /** - * SONAR-5200 - */ - @Test - public void resolve_issues_when_removing_module() throws Exception { - // Generate some issues - xooMultiModuleAnalysis - .withProperties("sonar.dynamicAnalysis", "false") - .run(); - - // All the issues are open - List<Issue> issues = searchIssues(); - for (Issue issue : issues) { - assertThat(issue.resolution()).isNull(); - } - Issue issue = issues.get(0); - - int issuesOnModuleB = searchIssues(IssueQuery.create().componentRoots("com.sonarsource.it.samples:multi-modules-sample:module_b")).size(); - assertThat(issuesOnModuleB).isEqualTo(28); - - // Second scan without module B -> issues on module B are resolved as removed and closed - xooMultiModuleAnalysis - .withProperties( - "sonar.dynamicAnalysis", "false", - "sonar.modules", "module_a") - .run(); - - // Resolved should should all be mark as REMOVED and affect to module b - List<Issue> reloadedIssues = searchIssues(IssueQuery.create().resolved(true)); - assertThat(reloadedIssues).hasSize(issuesOnModuleB); - for (Issue reloadedIssue : reloadedIssues) { - assertThat(reloadedIssue.resolution()).isEqualTo("FIXED"); - assertThat(reloadedIssue.status()).isEqualTo("CLOSED"); - assertThat(reloadedIssue.componentKey()).contains("com.sonarsource.it.samples:multi-modules-sample:module_b"); - assertThat(reloadedIssue.updateDate().before(issue.updateDate())).isFalse(); - assertThat(reloadedIssue.closeDate()).isNotNull(); - assertThat(reloadedIssue.closeDate().before(reloadedIssue.creationDate())).isFalse(); - } - } -} diff --git a/it/it-tests/src/test/java/it/issue/IssueSearchTest.java b/it/it-tests/src/test/java/it/issue/IssueSearchTest.java deleted file mode 100644 index a0fd5dd81c3..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueSearchTest.java +++ /dev/null @@ -1,277 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; -import org.apache.commons.lang.time.DateUtils; -import org.assertj.core.api.Fail; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.sonar.wsclient.base.HttpException; -import org.sonar.wsclient.base.Paging; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonar.wsclient.issue.Issues; -import org.sonarqube.ws.Common; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import util.ItUtils; - -import static java.util.Arrays.asList; -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static org.sonarqube.ws.Issues.SearchWsResponse; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperty; -import static util.ItUtils.toDate; - -public class IssueSearchTest extends AbstractIssueTest { - - private static final String PROJECT_KEY = "com.sonarsource.it.samples:multi-modules-sample"; - private static final String PROJECT_KEY2 = "com.sonarsource.it.samples:multi-modules-sample2"; - - private static int DEFAULT_PAGINATED_RESULTS = 100; - private static int TOTAL_NB_ISSUES = 272; - - @BeforeClass - public static void prepareData() { - ORCHESTRATOR.resetData(); - - ItUtils.restoreProfile(ORCHESTRATOR, IssueSearchTest.class.getResource("/issue/with-many-rules.xml")); - - // Launch 2 analysis to have more than 100 issues in total - ORCHESTRATOR.getServer().provisionProject(PROJECT_KEY, PROJECT_KEY); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "with-many-rules"); - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-multi-modules-sample"); - - ORCHESTRATOR.getServer().provisionProject(PROJECT_KEY2, PROJECT_KEY2); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(PROJECT_KEY2, "xoo", "with-many-rules"); - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-multi-modules-sample", "sonar.projectKey", PROJECT_KEY2); - - // Assign a issue to test search by assignee - adminIssueClient().assign(searchRandomIssue().key(), "admin"); - - // Resolve a issue to test search by status and by resolution - adminIssueClient().doTransition(searchRandomIssue().key(), "resolve"); - } - - @Before - public void resetProperties() throws Exception { - setServerProperty(ORCHESTRATOR, "sonar.forceAuthentication", "false"); - } - - @Test - public void search_all_issues() { - assertThat(search(IssueQuery.create()).list()).hasSize(DEFAULT_PAGINATED_RESULTS); - } - - @Test - public void search_issues_by_component_roots() { - assertThat(search(IssueQuery.create().componentRoots("com.sonarsource.it.samples:multi-modules-sample")).list()).hasSize(DEFAULT_PAGINATED_RESULTS); - assertThat(search(IssueQuery.create().componentRoots("com.sonarsource.it.samples:multi-modules-sample:module_a")).list()).hasSize(82); - assertThat(search(IssueQuery.create().componentRoots("com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1")).list()).hasSize(36); - - assertThat(search(IssueQuery.create().componentRoots("unknown")).list()).isEmpty(); - } - - @Test - public void search_issues_by_components() { - assertThat( - search(IssueQuery.create().components("com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo")).list()) - .hasSize(34); - assertThat(search(IssueQuery.create().components("unknown")).list()).isEmpty(); - } - - @Test - public void search_issues_by_severities() { - assertThat(search(IssueQuery.create().severities("BLOCKER")).list()).hasSize(8); - assertThat(search(IssueQuery.create().severities("CRITICAL")).list()).hasSize(8); - assertThat(search(IssueQuery.create().severities("MAJOR")).list()).hasSize(DEFAULT_PAGINATED_RESULTS); - assertThat(search(IssueQuery.create().severities("MINOR")).list()).hasSize(DEFAULT_PAGINATED_RESULTS); - assertThat(search(IssueQuery.create().severities("INFO")).list()).hasSize(4); - } - - @Test - public void search_issues_by_statuses() { - assertThat(search(IssueQuery.create().statuses("OPEN")).list()).hasSize(DEFAULT_PAGINATED_RESULTS); - assertThat(search(IssueQuery.create().statuses("RESOLVED")).list()).hasSize(1); - assertThat(search(IssueQuery.create().statuses("CLOSED")).list()).isEmpty(); - } - - @Test - public void search_issues_by_resolutions() { - assertThat(search(IssueQuery.create().resolutions("FIXED")).list()).hasSize(1); - assertThat(search(IssueQuery.create().resolutions("FALSE-POSITIVE")).list()).isEmpty(); - assertThat(search(IssueQuery.create().resolved(true)).list()).hasSize(1); - assertThat(search(IssueQuery.create().resolved(false)).paging().total()).isEqualTo(TOTAL_NB_ISSUES - 1); - } - - @Test - public void search_issues_by_assignees() { - assertThat(search(IssueQuery.create().assignees("admin")).list()).hasSize(1); - assertThat(search(IssueQuery.create().assignees("unknown")).list()).isEmpty(); - assertThat(search(IssueQuery.create().assigned(true)).list()).hasSize(1); - assertThat(search(IssueQuery.create().assigned(false)).paging().total()).isEqualTo(TOTAL_NB_ISSUES - 1); - } - - @Test - public void search_issues_by_rules() { - assertThat(search(IssueQuery.create().rules("xoo:OneIssuePerLine")).list()).hasSize(DEFAULT_PAGINATED_RESULTS); - assertThat(search(IssueQuery.create().rules("xoo:OneIssuePerFile")).list()).hasSize(8); - - try { - search(IssueQuery.create().rules("unknown")); - Assert.fail(); - } catch (org.sonar.wsclient.base.HttpException e) { - assertThat(e.status()).isEqualTo(400); - } - } - - /** - * SONAR-2981 - */ - @Test - public void search_issues_by_dates() { - // issues have been created today - Date today = toDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date())); - Date past = toDate("2013-01-01"); - Date future = toDate("2020-12-31"); - - // createdAfter in the future => bad request - try { - search(IssueQuery.create().createdAfter(future)).list(); - Fail.fail("Expecting 400 from issues search WS"); - } catch (HttpException exception) { - assertThat(exception.getMessage()).contains("Start bound cannot be in the future"); - } - - // after date - assertThat(search(IssueQuery.create().createdAfter(today)).list().size()).isGreaterThan(0); - assertThat(search(IssueQuery.create().createdAfter(past)).list().size()).isGreaterThan(0); - - // before - assertThat(search(IssueQuery.create().createdBefore(future)).list().size()).isGreaterThan(0); - assertThat(search(IssueQuery.create().createdBefore(past)).list()).isEmpty(); - - // before and after - assertThat(search(IssueQuery.create().createdBefore(future).createdAfter(past)).list().size()).isGreaterThan(0); - - // createdAfter > createdBefore => bad request - try { - search(IssueQuery.create().createdBefore(past).createdAfter(today)).list(); - Fail.fail("Expecting 400 from issues search WS"); - } catch (HttpException exception) { - assertThat(exception.getMessage()).contains("Start bound cannot be larger or equal to end bound"); - } - - } - - /** - * SONAR-5132 - */ - @Test - public void search_issues_by_languages() { - assertThat(search(IssueQuery.create().languages("xoo")).list()).hasSize(DEFAULT_PAGINATED_RESULTS); - assertThat(search(IssueQuery.create().languages("foo")).list()).isEmpty(); - } - - @Test - public void paginate_results() { - Issues issues = search(IssueQuery.create().pageSize(20).pageIndex(2)); - - assertThat(issues.list()).hasSize(20); - Paging paging = issues.paging(); - assertThat(paging.pageIndex()).isEqualTo(2); - assertThat(paging.pageSize()).isEqualTo(20); - assertThat(paging.total()).isEqualTo(TOTAL_NB_ISSUES); - - // SONAR-3257 - // return max page size results when using negative page size value - assertThat(search(IssueQuery.create().pageSize(0)).list()).hasSize(TOTAL_NB_ISSUES); - assertThat(search(IssueQuery.create().pageSize(-1)).list()).hasSize(TOTAL_NB_ISSUES); - } - - @Test - public void sort_results() { - List<Issue> issues = search(IssueQuery.create().sort("SEVERITY").asc(false)).list(); - assertThat(issues.get(0).severity()).isEqualTo("BLOCKER"); - assertThat(issues.get(8).severity()).isEqualTo("CRITICAL"); - assertThat(issues.get(17).severity()).isEqualTo("MAJOR"); - } - - /** - * SONAR-4563 - */ - @Test - public void search_by_exact_creation_date() { - final Issue issue = search(IssueQuery.create()).list().get(0); - assertThat(issue.creationDate()).isNotNull(); - - // search the issue key with the same date - assertThat(search(IssueQuery.create().issues().issues(issue.key()).createdAt(issue.creationDate())).list()).hasSize(1); - - // search issue key with 1 second more and less should return nothing - assertThat(search(IssueQuery.create().issues().issues(issue.key()).createdAt(DateUtils.addSeconds(issue.creationDate(), 1))).size()).isEqualTo(0); - assertThat(search(IssueQuery.create().issues().issues(issue.key()).createdAt(DateUtils.addSeconds(issue.creationDate(), -1))).size()).isEqualTo(0); - - // search with future and past dates that do not match any issues - assertThat(search(IssueQuery.create().createdAt(toDate("2020-01-01"))).size()).isEqualTo(0); - assertThat(search(IssueQuery.create().createdAt(toDate("2010-01-01"))).size()).isEqualTo(0); - } - - @Test - public void return_issue_type() throws Exception { - List<org.sonarqube.ws.Issues.Issue> issues = searchByRuleKey("xoo:OneBugIssuePerLine"); - assertThat(issues).isNotEmpty(); - org.sonarqube.ws.Issues.Issue issue = issues.get(0); - assertThat(issue.getType()).isEqualTo(Common.RuleType.BUG); - - issues = searchByRuleKey("xoo:OneVulnerabilityIssuePerModule"); - assertThat(issues).isNotEmpty(); - issue = issues.get(0); - assertThat(issue.getType()).isEqualTo(Common.RuleType.VULNERABILITY); - - issues = searchByRuleKey("xoo:OneIssuePerLine"); - assertThat(issues).isNotEmpty(); - issue = issues.get(0); - assertThat(issue.getType()).isEqualTo(Common.RuleType.CODE_SMELL); - } - - @Test - public void search_issues_by_types() throws IOException { - assertThat(searchIssues(new SearchWsRequest().setTypes(singletonList("CODE_SMELL"))).getPaging().getTotal()).isEqualTo(142); - assertThat(searchIssues(new SearchWsRequest().setTypes(singletonList("BUG"))).getPaging().getTotal()).isEqualTo(122); - assertThat(searchIssues(new SearchWsRequest().setTypes(singletonList("VULNERABILITY"))).getPaging().getTotal()).isEqualTo(8); - } - - private List<org.sonarqube.ws.Issues.Issue> searchByRuleKey(String... ruleKey) throws IOException { - return searchIssues(new SearchWsRequest().setRules(asList(ruleKey))).getIssuesList(); - } - - private SearchWsResponse searchIssues(SearchWsRequest request) throws IOException { - return newAdminWsClient(ORCHESTRATOR).issues().search(request); - } - -} diff --git a/it/it-tests/src/test/java/it/issue/IssueTagsTest.java b/it/it-tests/src/test/java/it/issue/IssueTagsTest.java deleted file mode 100644 index f5563924b6d..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueTagsTest.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category6Suite; -import java.util.ArrayList; -import java.util.List; -import javax.annotation.Nullable; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import org.sonarqube.ws.client.permission.AddUserWsRequest; -import org.sonarqube.ws.client.project.CreateRequest; -import util.ItUtils; - -import static java.util.Arrays.asList; -import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newProjectKey; -import static util.ItUtils.projectDir; -import static util.ItUtils.restoreProfile; - -/** - * Tests WS api/issues/tags - */ -public class IssueTagsTest { - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - private Organization organization; - - @Before - public void setUp() { - organization = tester.organizations().generate(); - } - - @Test - public void getTags() { - restoreProfile(orchestrator, IssueTagsTest.class.getResource("/issue/one-issue-per-line-profile.xml"), organization.getKey()); - String projectKey = newProjectKey(); - tester.wsClient().projects().create( - CreateRequest.builder() - .setKey(projectKey) - .setOrganization(organization.getKey()) - .setName(randomAlphabetic(10)) - .setVisibility("private") - .build()); - analyzeProject(projectKey); - - String issue = tester.wsClient().issues().search(new SearchWsRequest()).getIssues(0).getKey(); - tester.wsClient().issues().setTags(issue, "bla", "blubb"); - - String[] publicTags = {"bad-practice", "convention", "pitfall"}; - String[] privateTags = {"bad-practice", "bla", "blubb", "convention", "pitfall"}; - String defaultOrganization = null; - - // anonymous must not see custom tags of private project - { - String anonymous = null; - assertTags(anonymous, organization.getKey(), publicTags); - assertTags(anonymous, defaultOrganization, publicTags); - } - - // stranger must not see custom tags of private project - { - User stranger = tester.users().generate(); - assertTags(stranger.getLogin(), organization.getKey(), publicTags); - assertTags(stranger.getLogin(), defaultOrganization, publicTags); - } - - // member with user permission must be able to see custom tags of private project, if he provides the organization parameter - { - User member = tester.users().generate(); - addMemberToOrganization(member); - grantUserPermission(projectKey, member); - assertTags(member.getLogin(), organization.getKey(), privateTags); - assertTags(member.getLogin(), defaultOrganization, publicTags); - } - } - - private void addMemberToOrganization(User member) { - tester.organizations().service().addMember(organization.getKey(), member.getLogin()); - } - - private void grantUserPermission(String projectKey, User member) { - tester.wsClient().permissions().addUser( - new AddUserWsRequest() - .setLogin(member.getLogin()) - .setPermission("user") - .setProjectKey(projectKey)); - } - - private void assertTags(@Nullable String userLogin, @Nullable String organization, String... expectedTags) { - assertThat( - (List<String>) ItUtils.jsonToMap( - tester.as(userLogin) - .wsClient() - .issues() - .getTags(organization) - .content()) - .get("tags")).containsExactly( - expectedTags); - } - - private void analyzeProject(String projectKey) { - List<String> keyValueProperties = new ArrayList<>(asList( - "sonar.projectKey", projectKey, - "sonar.organization", organization.getKey(), - "sonar.profile", "one-issue-per-line-profile", - "sonar.login", "admin", "sonar.password", "admin", - "sonar.scm.disabled", "false")); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"), keyValueProperties.toArray(new String[0]))); - } -} diff --git a/it/it-tests/src/test/java/it/issue/IssueTrackingTest.java b/it/it-tests/src/test/java/it/issue/IssueTrackingTest.java deleted file mode 100644 index a1e2e89ad11..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueTrackingTest.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; -import org.junit.Before; -import org.junit.Test; -import org.sonarqube.ws.Issues.Issue; -import org.sonarqube.ws.Issues.SearchWsResponse; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import util.ItUtils; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.toDate; - -public class IssueTrackingTest extends AbstractIssueTest { - - private static final String SAMPLE_PROJECT_KEY = "sample"; - - private static final String OLD_DATE = "2014-03-01"; - private static final Date NEW_DATE = new Date(); - private static final String NEW_DATE_STR = new SimpleDateFormat("yyyy-MM-dd").format(NEW_DATE); - - private static WsClient adminClient; - - @Before - public void prepareData() { - ORCHESTRATOR.resetData(); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/issue-on-tag-foobar.xml")); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/IssueTrackingTest/one-issue-per-module-profile.xml")); - ORCHESTRATOR.getServer().provisionProject(SAMPLE_PROJECT_KEY, SAMPLE_PROJECT_KEY); - adminClient = newAdminWsClient(ORCHESTRATOR); - } - - @Test - public void close_issues_on_removed_components() throws Exception { - ORCHESTRATOR.getServer().associateProjectToQualityProfile(SAMPLE_PROJECT_KEY, "xoo", "issue-on-tag-foobar"); - - // version 1 - runProjectAnalysis(ORCHESTRATOR, "issue/xoo-tracking-v1", - "sonar.projectDate", OLD_DATE); - - List<Issue> issues = searchUnresolvedIssuesByComponent("sample:src/main/xoo/sample/Sample.xoo"); - assertThat(issues).hasSize(1); - - // version 2 - runProjectAnalysis(ORCHESTRATOR, "issue/xoo-tracking-v1", - "sonar.projectDate", NEW_DATE_STR, - "sonar.exclusions", "**/*.xoo"); - - issues = searchIssues(new SearchWsRequest().setProjectKeys(singletonList("sample"))).getIssuesList(); - assertThat(issues).hasSize(1); - assertThat(issues.get(0).getStatus()).isEqualTo("CLOSED"); - assertThat(issues.get(0).getResolution()).isEqualTo("FIXED"); - } - - /** - * SONAR-3072 - */ - @Test - public void track_issues_based_on_blocks_recognition() throws Exception { - ORCHESTRATOR.getServer().associateProjectToQualityProfile(SAMPLE_PROJECT_KEY, "xoo", "issue-on-tag-foobar"); - - // version 1 - ORCHESTRATOR.getServer().associateProjectToQualityProfile(SAMPLE_PROJECT_KEY, "xoo", "issue-on-tag-foobar"); - runProjectAnalysis(ORCHESTRATOR, "issue/xoo-tracking-v1", - "sonar.projectDate", OLD_DATE); - - List<Issue> issues = searchUnresolvedIssuesByComponent("sample:src/main/xoo/sample/Sample.xoo"); - assertThat(issues).hasSize(1); - Date issueDate = toDate(issues.iterator().next().getCreationDate()); - - // version 2 - runProjectAnalysis(ORCHESTRATOR, "issue/xoo-tracking-v2", - "sonar.projectDate", NEW_DATE_STR); - - issues = searchUnresolvedIssuesByComponent("sample:src/main/xoo/sample/Sample.xoo"); - assertThat(issues).hasSize(3); - - // issue created during the first scan and moved during the second scan - assertThat(toDate(getIssueOnLine(6, "xoo:HasTag", issues).getCreationDate())).isEqualTo(issueDate); - - // issues created during the second scan - assertThat(toDate(getIssueOnLine(10, "xoo:HasTag", issues).getCreationDate())).isAfter(issueDate); - assertThat(toDate(getIssueOnLine(14, "xoo:HasTag", issues).getCreationDate())).isAfter(issueDate); - } - - /** - * SONAR-4310 - */ - @Test - public void track_existing_unchanged_issues_on_module() throws Exception { - // The custom rule on module is enabled - - ORCHESTRATOR.getServer().associateProjectToQualityProfile(SAMPLE_PROJECT_KEY, "xoo", "one-issue-per-module"); - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample"); - - // Only one issue is created - assertThat(searchIssues(new SearchWsRequest()).getIssuesList()).hasSize(1); - Issue issue = getRandomIssue(); - - // Re analysis of the same project - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample"); - - // No new issue should be created - assertThat(searchIssues(new SearchWsRequest()).getIssuesList()).hasSize(1); - - // The issue on module should stay open and be the same from the first analysis - Issue reloadIssue = getIssueByKey(issue.getKey()); - assertThat(reloadIssue.getCreationDate()).isEqualTo(issue.getCreationDate()); - assertThat(reloadIssue.getStatus()).isEqualTo("OPEN"); - assertThat(reloadIssue.hasResolution()).isFalse(); - } - - /** - * SONAR-4310 - */ - @Test - public void track_existing_unchanged_issues_on_multi_modules() throws Exception { - // The custom rule on module is enabled - ORCHESTRATOR.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-sample", "com.sonarsource.it.samples:multi-modules-sample"); - ORCHESTRATOR.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-sample", "xoo", "one-issue-per-module"); - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-multi-modules-sample"); - - // One issue by module are created - List<Issue> issues = searchIssues(new SearchWsRequest()).getIssuesList(); - assertThat(issues).hasSize(4); - - // Re analysis of the same project - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-multi-modules-sample"); - - // No new issue should be created - assertThat(searchIssues(new SearchWsRequest()).getIssuesList()).hasSize(issues.size()); - - // Issues on modules should stay open and be the same from the first analysis - for (Issue issue : issues) { - Issue reloadIssue = getIssueByKey(issue.getKey()); - assertThat(reloadIssue.getStatus()).isEqualTo("OPEN"); - assertThat(reloadIssue.hasResolution()).isFalse(); - assertThat(reloadIssue.getCreationDate()).isEqualTo(issue.getCreationDate()); - assertThat(reloadIssue.getUpdateDate()).isEqualTo(issue.getUpdateDate()); - } - } - - @Test - public void track_file_moves_based_on_identical_content() { - ORCHESTRATOR.getServer().associateProjectToQualityProfile(SAMPLE_PROJECT_KEY, "xoo", "issue-on-tag-foobar"); - - // version 1 - runProjectAnalysis(ORCHESTRATOR, "issue/xoo-tracking-v1", - "sonar.projectDate", OLD_DATE); - - List<Issue> issues = searchUnresolvedIssuesByComponent("sample:src/main/xoo/sample/Sample.xoo"); - assertThat(issues).hasSize(1); - Issue issueOnSample = issues.iterator().next(); - - // version 2 - runProjectAnalysis(ORCHESTRATOR, "issue/xoo-tracking-v3", - "sonar.projectDate", NEW_DATE_STR); - - assertThat(searchUnresolvedIssuesByComponent("sample:src/main/xoo/sample/Sample.xoo")).isEmpty(); - - issues = searchUnresolvedIssuesByComponent("sample:src/main/xoo/sample/Sample2.xoo"); - assertThat(issues).hasSize(1); - Issue issueOnSample2 = issues.get(0); - assertThat(issueOnSample2.getKey()).isEqualTo(issueOnSample.getKey()); - assertThat(issueOnSample2.getCreationDate()).isEqualTo(issueOnSample.getCreationDate()); - assertThat(issueOnSample2.getUpdateDate()).isNotEqualTo(issueOnSample.getUpdateDate()); - assertThat(issueOnSample2.getStatus()).isEqualTo("OPEN"); - } - - private Issue getIssueOnLine(int line, String rule, List<Issue> issues) { - return issues.stream() - .filter(issue -> issue.getRule().equals(rule)) - .filter(issue -> issue.getLine() == line) - .findFirst().orElseThrow(IllegalArgumentException::new); - } - - private List<Issue> searchUnresolvedIssuesByComponent(String componentKey) { - return searchIssues(new SearchWsRequest().setComponentKeys(singletonList(componentKey)).setResolved(false)).getIssuesList(); - } - - private static Issue getRandomIssue() { - return searchIssues(new SearchWsRequest()).getIssues(0); - } - - private static Issue getIssueByKey(String issueKey) { - SearchWsResponse search = searchIssues(new SearchWsRequest().setIssues(singletonList(issueKey))); - assertThat(search.getTotal()).isEqualTo(1); - return search.getIssues(0); - } - - private static SearchWsResponse searchIssues(SearchWsRequest request) { - return adminClient.issues().search(request); - } - -} diff --git a/it/it-tests/src/test/java/it/issue/IssueWorkflowTest.java b/it/it-tests/src/test/java/it/issue/IssueWorkflowTest.java deleted file mode 100644 index a0e366792cf..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssueWorkflowTest.java +++ /dev/null @@ -1,314 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import java.util.List; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.ws.Issues; -import org.sonarqube.ws.Issues.Issue; -import org.sonarqube.ws.client.issue.DoTransitionRequest; -import org.sonarqube.ws.client.issue.IssuesService; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import util.ProjectAnalysis; -import util.ProjectAnalysisRule; -import util.issue.IssueRule; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.toDatetime; - -public class IssueWorkflowTest extends AbstractIssueTest { - - @Rule - public final ProjectAnalysisRule projectAnalysisRule = ProjectAnalysisRule.from(ORCHESTRATOR); - - @ClassRule - public static final IssueRule issueRule = IssueRule.from(ORCHESTRATOR); - - private ProjectAnalysis analysisWithIssues; - private ProjectAnalysis analysisWithoutIssues; - private IssuesService issuesService; - - private Issue issue; - - @Before - public void before() { - issuesService = newAdminWsClient(ORCHESTRATOR).issues(); - String oneIssuePerFileProfileKey = projectAnalysisRule.registerProfile("/issue/IssueWorkflowTest/xoo-one-issue-per-line-profile.xml"); - String analyzedProjectKey = projectAnalysisRule.registerProject("issue/workflow"); - analysisWithIssues = projectAnalysisRule.newProjectAnalysis(analyzedProjectKey).withQualityProfile(oneIssuePerFileProfileKey); - analysisWithoutIssues = analysisWithIssues.withXooEmptyProfile(); - analysisWithIssues.run(); - - issue = issueRule.getRandomIssue(); - } - - /** - * Issue on a disabled rule (uninstalled plugin or rule deactivated from quality profile) must - * be CLOSED with resolution REMOVED - */ - @Test - public void issue_is_closed_as_removed_when_rule_is_disabled() throws Exception { - SearchWsRequest ruleSearchRequest = new SearchWsRequest().setRules(singletonList("xoo:OneIssuePerLine")); - List<Issue> issues = issueRule.search(ruleSearchRequest).getIssuesList(); - assertThat(issues).isNotEmpty(); - - // re-analyze with profile "empty". The rule is disabled so the issues must be closed - analysisWithoutIssues.run(); - issues = issueRule.search(ruleSearchRequest).getIssuesList(); - assertThat(issues).isNotEmpty(); - for (Issue issue : issues) { - assertThat(issue.getStatus()).isEqualTo("CLOSED"); - assertThat(issue.getResolution()).isEqualTo("REMOVED"); - } - } - - /** - * SONAR-4329 - */ - @Test - public void user_should_confirm_issue() { - // mark as confirmed - issuesService.doTransition(new DoTransitionRequest(issue.getKey(), "confirm")); - - Issue confirmed = issueRule.getByKey(issue.getKey()); - assertThat(confirmed.getStatus()).isEqualTo("CONFIRMED"); - assertThat(confirmed.hasResolution()).isFalse(); - assertThat(confirmed.getCreationDate()).isEqualTo(issue.getCreationDate()); - - // user unconfirm the issue - assertThat(transitions(confirmed.getKey())).contains("unconfirm"); - issuesService.doTransition(new DoTransitionRequest(confirmed.getKey(), "unconfirm")); - - Issue unconfirmed = issueRule.getByKey(issue.getKey()); - assertThat(unconfirmed.getStatus()).isEqualTo("REOPENED"); - assertThat(unconfirmed.hasResolution()).isFalse(); - assertThat(unconfirmed.getCreationDate()).isEqualTo(confirmed.getCreationDate()); - } - - /** - * SONAR-4329 - */ - @Test - public void user_should_mark_as_false_positive_confirmed_issue() { - // mark as confirmed - issuesService.doTransition(new DoTransitionRequest(issue.getKey(), "confirm")); - - Issue confirmed = issueRule.getByKey(issue.getKey()); - assertThat(confirmed.getStatus()).isEqualTo("CONFIRMED"); - assertThat(confirmed.hasResolution()).isFalse(); - assertThat(confirmed.getCreationDate()).isEqualTo(issue.getCreationDate()); - - // user mark the issue as false-positive - assertThat(transitions(confirmed.getKey())).contains("falsepositive"); - issuesService.doTransition(new DoTransitionRequest(confirmed.getKey(), "falsepositive")); - - Issue falsePositive = issueRule.getByKey(issue.getKey()); - assertThat(falsePositive.getStatus()).isEqualTo("RESOLVED"); - assertThat(falsePositive.getResolution()).isEqualTo("FALSE-POSITIVE"); - assertThat(falsePositive.getCreationDate()).isEqualTo(confirmed.getCreationDate()); - } - - /** - * SONAR-4329 - */ - @Test - public void scan_should_close_no_more_existing_confirmed() { - // mark as confirmed - issuesService.doTransition(new DoTransitionRequest(issue.getKey(), "confirm")); - Issue falsePositive = issueRule.getByKey(issue.getKey()); - assertThat(falsePositive.getStatus()).isEqualTo("CONFIRMED"); - assertThat(falsePositive.hasResolution()).isFalse(); - assertThat(falsePositive.getCreationDate()).isEqualTo(issue.getCreationDate()); - - // scan without any rules -> confirmed is closed - analysisWithoutIssues.run(); - Issue closed = issueRule.getByKey(issue.getKey()); - assertThat(closed.getStatus()).isEqualTo("CLOSED"); - assertThat(closed.getResolution()).isEqualTo("REMOVED"); - assertThat(closed.getCreationDate()).isEqualTo(issue.getCreationDate()); - } - - /** - * SONAR-4288 - */ - @Test - public void scan_should_reopen_unresolved_issue_but_marked_as_resolved() { - // mark as resolved - issuesService.doTransition(new DoTransitionRequest(issue.getKey(), "resolve")); - Issue resolvedIssue = issueRule.getByKey(issue.getKey()); - assertThat(resolvedIssue.getStatus()).isEqualTo("RESOLVED"); - assertThat(resolvedIssue.getResolution()).isEqualTo("FIXED"); - assertThat(resolvedIssue.getCreationDate()).isEqualTo(issue.getCreationDate()); - - // re-execute scan, with the same Q profile -> the issue has not been fixed - analysisWithIssues.run(); - - // reload issue - Issue reopenedIssue = issueRule.getByKey(issue.getKey()); - - // the issue has been reopened - assertThat(reopenedIssue.getStatus()).isEqualTo("REOPENED"); - assertThat(reopenedIssue.hasResolution()).isFalse(); - assertThat(reopenedIssue.getCreationDate()).isEqualTo(issue.getCreationDate()); - assertThat(toDatetime(reopenedIssue.getUpdateDate())).isAfter(toDatetime(issue.getUpdateDate())); - } - - /** - * SONAR-4288 - */ - @Test - public void scan_should_close_resolved_issue() { - // mark as resolved - issuesService.doTransition(new DoTransitionRequest(issue.getKey(), "resolve")); - Issue resolvedIssue = issueRule.getByKey(issue.getKey()); - assertThat(resolvedIssue.getStatus()).isEqualTo("RESOLVED"); - assertThat(resolvedIssue.getResolution()).isEqualTo("FIXED"); - assertThat(resolvedIssue.getCreationDate()).isEqualTo(issue.getCreationDate()); - assertThat(resolvedIssue.hasCloseDate()).isFalse(); - - // re-execute scan without rules -> the issue is removed with resolution "REMOVED" - analysisWithoutIssues.run(); - - // reload issue - Issue closedIssue = issueRule.getByKey(issue.getKey()); - assertThat(closedIssue.getStatus()).isEqualTo("CLOSED"); - assertThat(closedIssue.getResolution()).isEqualTo("REMOVED"); - assertThat(closedIssue.getCreationDate()).isEqualTo(issue.getCreationDate()); - assertThat(toDatetime(closedIssue.getUpdateDate())).isAfter(toDatetime(resolvedIssue.getUpdateDate())); - assertThat(closedIssue.hasCloseDate()).isTrue(); - assertThat(toDatetime(closedIssue.getCloseDate())).isAfter(toDatetime(closedIssue.getCreationDate())); - } - - /** - * SONAR-4288 - */ - @Test - public void user_should_reopen_issue_marked_as_resolved() { - // user marks issue as resolved - issuesService.doTransition(new DoTransitionRequest(issue.getKey(), "resolve")); - Issue resolved = issueRule.getByKey(issue.getKey()); - assertThat(resolved.getStatus()).isEqualTo("RESOLVED"); - assertThat(resolved.getResolution()).isEqualTo("FIXED"); - assertThat(resolved.getCreationDate()).isEqualTo(issue.getCreationDate()); - - // user reopens the issue - assertThat(transitions(resolved.getKey())).contains("reopen"); - adminIssueClient().doTransition(resolved.getKey(), "reopen"); - - Issue reopened = issueRule.getByKey(resolved.getKey()); - assertThat(reopened.getStatus()).isEqualTo("REOPENED"); - assertThat(reopened.hasResolution()).isFalse(); - assertThat(reopened.getCreationDate()).isEqualTo(resolved.getCreationDate()); - } - - /** - * SONAR-4286 - */ - @Test - public void scan_should_not_reopen_or_close_false_positives() { - // user marks issue as false-positive - issuesService.doTransition(new DoTransitionRequest(issue.getKey(), "falsepositive")); - - Issue falsePositive = issueRule.getByKey(issue.getKey()); - assertThat(falsePositive.getStatus()).isEqualTo("RESOLVED"); - assertThat(falsePositive.getResolution()).isEqualTo("FALSE-POSITIVE"); - assertThat(falsePositive.getCreationDate()).isEqualTo(issue.getCreationDate()); - - // re-execute the same scan - analysisWithIssues.run(); - - // refresh - Issue reloaded = issueRule.getByKey(falsePositive.getKey()); - assertThat(reloaded.getStatus()).isEqualTo("RESOLVED"); - assertThat(reloaded.getResolution()).isEqualTo("FALSE-POSITIVE"); - assertThat(reloaded.getCreationDate()).isEqualTo(issue.getCreationDate()); - assertThat(toDatetime(reloaded.getUpdateDate())).isEqualTo(toDatetime(falsePositive.getUpdateDate())); - } - - /** - * SONAR-4286 - */ - @Test - public void scan_should_close_no_more_existing_false_positive() { - // user marks as false-positive - issuesService.doTransition(new DoTransitionRequest(issue.getKey(), "falsepositive")); - Issue falsePositive = issueRule.getByKey(issue.getKey()); - assertThat(falsePositive.getStatus()).isEqualTo("RESOLVED"); - assertThat(falsePositive.getResolution()).isEqualTo("FALSE-POSITIVE"); - assertThat(falsePositive.getCreationDate()).isEqualTo(issue.getCreationDate()); - - // scan without any rules -> false-positive is closed - analysisWithoutIssues.run(); - Issue closed = issueRule.getByKey(issue.getKey()); - assertThat(closed.getStatus()).isEqualTo("CLOSED"); - assertThat(closed.getResolution()).isEqualTo("REMOVED"); - assertThat(closed.getCreationDate()).isEqualTo(issue.getCreationDate()); - } - - /** - * SONAR-4286 - */ - @Test - public void user_should_reopen_false_positive() { - // user marks as false-positive - issuesService.doTransition(new DoTransitionRequest(issue.getKey(), "falsepositive")); - - Issue falsePositive = issueRule.getByKey(issue.getKey()); - assertThat(falsePositive.getStatus()).isEqualTo("RESOLVED"); - assertThat(falsePositive.getResolution()).isEqualTo("FALSE-POSITIVE"); - assertThat(falsePositive.getCreationDate()).isEqualTo(issue.getCreationDate()); - - // user reopens the issue - assertThat(transitions(falsePositive.getKey())).contains("reopen"); - adminIssueClient().doTransition(falsePositive.getKey(), "reopen"); - - Issue reopened = issueRule.getByKey(issue.getKey()); - assertThat(reopened.getStatus()).isEqualTo("REOPENED"); - assertThat(reopened.hasResolution()).isFalse(); - assertThat(reopened.getCreationDate()).isEqualTo(falsePositive.getCreationDate()); - } - - @Test - public void user_should_not_reopen_closed_issue() { - issuesService.doTransition(new DoTransitionRequest(issue.getKey(), "resolve")); - - // re-execute scan without rules -> the issue is closed - analysisWithoutIssues.run(); - - // user try to reopen the issue - assertThat(transitions(issue.getKey())).isEmpty(); - } - - private List<String> transitions(String issueKey) { - Issues.SearchWsResponse response = searchIssues(new SearchWsRequest().setIssues(singletonList(issueKey)).setAdditionalFields(singletonList("transitions"))); - assertThat(response.getTotal()).isEqualTo(1); - return response.getIssues(0).getTransitions().getTransitionsList(); - } - - private Issues.SearchWsResponse searchIssues(SearchWsRequest request) { - return newAdminWsClient(ORCHESTRATOR).issues().search(request); - } - -} diff --git a/it/it-tests/src/test/java/it/issue/IssuesPageTest.java b/it/it-tests/src/test/java/it/issue/IssuesPageTest.java deleted file mode 100644 index 3af55ed447f..00000000000 --- a/it/it-tests/src/test/java/it/issue/IssuesPageTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import com.sonar.orchestrator.Orchestrator; -import it.Category2Suite; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import pageobjects.Navigation; -import pageobjects.issues.Issue; -import pageobjects.issues.IssuesPage; -import util.ItUtils; -import util.user.UserRule; - -import static util.ItUtils.runProjectAnalysis; - -public class IssuesPageTest { - private static final String PROJECT_KEY = "sample"; - - @ClassRule - public static Orchestrator ORCHESTRATOR = Category2Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(ORCHESTRATOR); - - public Navigation nav = Navigation.create(ORCHESTRATOR); - - private String adminUser; - - @BeforeClass - public static void prepareData() { - ORCHESTRATOR.resetData(); - - ItUtils.restoreProfile(ORCHESTRATOR, IssuesPageTest.class.getResource("/issue/with-many-rules.xml")); - - ORCHESTRATOR.getServer().provisionProject(PROJECT_KEY, PROJECT_KEY); - ORCHESTRATOR.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "with-many-rules"); - runProjectAnalysis(ORCHESTRATOR, "shared/xoo-multi-modules-sample"); - } - - @Before - public void before() { - adminUser = userRule.createAdminUser(); - } - - @Test - public void should_display_actions() { - IssuesPage page = nav.logIn().submitCredentials(adminUser).openIssues(); - Issue issue = page.getFirstIssue(); - issue.shouldAllowAssign().shouldAllowChangeType(); - } - - @Test - public void should_not_display_actions() { - Navigation nav = Navigation.create(ORCHESTRATOR); - IssuesPage page = nav.openIssues(); - Issue issue = page.getFirstIssue(); - issue.shouldNotAllowAssign().shouldNotAllowChangeType(); - } -} diff --git a/it/it-tests/src/test/java/it/issue/NewIssuesMeasureTest.java b/it/it-tests/src/test/java/it/issue/NewIssuesMeasureTest.java deleted file mode 100644 index f5f409cb87d..00000000000 --- a/it/it-tests/src/test/java/it/issue/NewIssuesMeasureTest.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issue; - -import com.sonar.orchestrator.build.SonarScanner; -import java.util.Map; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.Test; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonarqube.ws.WsMeasures; -import org.sonarqube.ws.WsMeasures.Measure; -import util.ItUtils; - -import static java.lang.Integer.parseInt; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getLeakPeriodValue; -import static util.ItUtils.getMeasuresWithVariationsByMetricKey; -import static util.ItUtils.projectDir; -import static util.ItUtils.setServerProperty; - -/** - * SONAR-4564 - */ -public class NewIssuesMeasureTest extends AbstractIssueTest { - - @AfterClass - public static void resetPeriod() { - ItUtils.resetPeriod(ORCHESTRATOR); - } - - @Before - public void cleanUpAnalysisData() { - ORCHESTRATOR.resetData(); - } - - @Test - public void new_issues_measures() throws Exception { - setServerProperty(ORCHESTRATOR, "sonar.leak.period", "previous_analysis"); - ORCHESTRATOR.getServer().provisionProject("sample", "Sample"); - - // Execute an analysis in the past with no issue to have a past snapshot - ORCHESTRATOR.getServer().associateProjectToQualityProfile("sample", "xoo", "empty"); - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample")).setProperty("sonar.projectDate", "2013-01-01")); - - // Execute a analysis now with some issues - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/one-issue-per-line-profile.xml")); - ORCHESTRATOR.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line-profile"); - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - assertThat(ORCHESTRATOR.getServer().wsClient().issueClient().find(IssueQuery.create()).list()).isNotEmpty(); - assertThat(getLeakPeriodValue(ORCHESTRATOR, "sample:src/main/xoo/sample/Sample.xoo", "new_violations")).isEqualTo(17); - - // second analysis, with exactly the same profile -> no new issues - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - assertThat(ORCHESTRATOR.getServer().wsClient().issueClient().find(IssueQuery.create()).list()).isNotEmpty(); - assertThat(getLeakPeriodValue(ORCHESTRATOR, "sample:src/main/xoo/sample/Sample.xoo", "new_violations")).isZero(); - } - - @Test - public void new_issues_measures_should_be_zero_on_project_when_no_new_issues_since_x_days() throws Exception { - setServerProperty(ORCHESTRATOR, "sonar.leak.period", "30"); - ORCHESTRATOR.getServer().provisionProject("sample", "Sample"); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/one-issue-per-line-profile.xml")); - ORCHESTRATOR.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line-profile"); - - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample")) - // Analyse a project in the past, with a date older than 30 last days (second period) - .setProperty("sonar.projectDate", "2013-01-01")); - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - // new issues measures should be to 0 on project on 2 periods as new issues has been created - assertThat(getLeakPeriodValue(ORCHESTRATOR, "sample", "new_violations")).isZero(); - } - - /** - * SONAR-3647 - */ - @Test - public void new_issues_measures_consistent_with_variations() throws Exception { - setServerProperty(ORCHESTRATOR, "sonar.leak.period", "previous_analysis"); - ORCHESTRATOR.getServer().provisionProject("sample", "Sample"); - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/one-issue-per-line-profile.xml")); - ORCHESTRATOR.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line-profile"); - - // Execute an analysis in the past to have a past snapshot - // version 1 - ORCHESTRATOR.executeBuilds(SonarScanner.create(projectDir("shared/xoo-history-v1"))); - - // version 2 with 2 new violations and 3 more ncloc - ORCHESTRATOR.executeBuilds(SonarScanner.create(projectDir("shared/xoo-history-v2"))); - - assertThat(ORCHESTRATOR.getServer().wsClient().issueClient().find(IssueQuery.create()).list()).isNotEmpty(); - - Map<String, Measure> measures = getMeasuresWithVariationsByMetricKey(ORCHESTRATOR, "sample", "new_violations", "violations", "ncloc"); - assertThat(measures.get("new_violations").getPeriods().getPeriodsValueList()).extracting(WsMeasures.PeriodValue::getValue).containsOnly("17"); - - Measure violations = measures.get("violations"); - assertThat(parseInt(violations.getValue())).isEqualTo(43); - assertThat(violations.getPeriods().getPeriodsValueList()).extracting(periodValue -> parseInt(periodValue.getValue())).containsOnly(17); - - Measure ncloc = measures.get("ncloc"); - assertThat(parseInt(ncloc.getValue())).isEqualTo(40); - assertThat(ncloc.getPeriods().getPeriodsValueList()).extracting(periodValue -> parseInt(periodValue.getValue())).containsOnly(16); - } - - @Test - public void new_issues_measures_should_be_correctly_calculated_when_adding_a_new_module() throws Exception { - setServerProperty(ORCHESTRATOR, "sonar.leak.period", "previous_analysis"); - ORCHESTRATOR.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-sample", "com.sonarsource.it.samples:multi-modules-sample"); - - // First analysis without module b - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/NewIssuesMeasureTest/profile1.xml")); - ORCHESTRATOR.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-sample", "xoo", "profile1"); - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample")) - .setProperties("sonar.modules", "module_a")); - - // Second analysis with module b and with a new rule activated to have new issues on module a since last analysis - ItUtils.restoreProfile(ORCHESTRATOR, getClass().getResource("/issue/NewIssuesMeasureTest/profile2.xml")); - ORCHESTRATOR.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-sample", "xoo", "profile2"); - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - assertThat(getLeakPeriodValue(ORCHESTRATOR, "com.sonarsource.it.samples:multi-modules-sample", "new_violations")).isEqualTo(65); - } - -} diff --git a/it/it-tests/src/test/java/it/issue/OrganizationIssueAssignTest.java b/it/it-tests/src/test/java/it/issue/OrganizationIssueAssignTest.java deleted file mode 100644 index ffe6ac715f3..00000000000 --- a/it/it-tests/src/test/java/it/issue/OrganizationIssueAssignTest.java +++ /dev/null @@ -1,219 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package it.issue; - -import com.sonar.orchestrator.Orchestrator; -import it.Category6Suite; -import java.util.List; -import java.util.stream.Collectors; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Issues; -import org.sonarqube.ws.Issues.Issue; -import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.issue.AssignRequest; -import org.sonarqube.ws.client.issue.BulkChangeRequest; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import org.sonarqube.ws.client.project.CreateRequest; -import org.sonarqube.ws.client.qualityprofile.AddProjectRequest; -import pageobjects.issues.IssuesPage; -import util.issue.IssueRule; - -import static java.lang.String.format; -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.expectHttpError; -import static util.ItUtils.restoreProfile; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperty; - -public class OrganizationIssueAssignTest { - - private final static String SAMPLE_PROJECT_KEY = "sample"; - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - @Rule - public Tester tester = new Tester(orchestrator); - - @Rule - public IssueRule issueRule = IssueRule.from(orchestrator); - - private Organizations.Organization org1; - private Organizations.Organization org2; - private User user; - - @Before - public void setUp() throws Exception { - org1 = tester.organizations().generate(); - org2 = tester.organizations().generate(); - user = tester.users().generate(); - restoreProfile(orchestrator, getClass().getResource("/organization/IssueAssignTest/one-issue-per-file-profile.xml"), org1.getKey()); - } - - @Test - public void auto_assign_issues_to_user_if_default_assignee_is_member_of_project_organization() { - tester.organizations().addMember(org1, user); - - provisionProject(SAMPLE_PROJECT_KEY, org1.getKey()); - setServerProperty(orchestrator, "sample", "sonar.issues.defaultAssigneeLogin", user.getLogin()); - - analyseProject(SAMPLE_PROJECT_KEY, org1.getKey()); - - assertThat(issueRule.getRandomIssue().getAssignee()).isEqualTo(user.getLogin()); - } - - @Test - public void does_not_auto_assign_issues_to_user_if_default_assignee_is_not_member_of_project_organization() { - tester.organizations().addMember(org2, user); - provisionProject(SAMPLE_PROJECT_KEY, org1.getKey()); - setServerProperty(orchestrator, "sample", "sonar.issues.defaultAssigneeLogin", user.getLogin()); - - analyseProject(SAMPLE_PROJECT_KEY, org1.getKey()); - - assertThat(issueRule.getRandomIssue().hasAssignee()).isFalse(); - } - - @Test - public void assign_issue_to_user_being_member_of_same_organization_as_project_issue_organization() { - tester.organizations().addMember(org1, user); - provisionAndAnalyseProject(SAMPLE_PROJECT_KEY, org1.getKey()); - Issue issue = issueRule.getRandomIssue(); - - assignIssueTo(issue, user); - - assertThat(issueRule.getByKey(issue.getKey()).getAssignee()).isEqualTo(user.getLogin()); - } - - @Test - public void fail_to_assign_issue_to_user_not_being_member_of_same_organization_as_project_issue_organization() { - tester.organizations().addMember(org2, user); - provisionAndAnalyseProject(SAMPLE_PROJECT_KEY, org1.getKey()); - Issue issue = issueRule.getRandomIssue(); - - expectHttpError(400, - format("User '%s' is not member of organization '%s'", user.getLogin(), org1.getKey()), - () -> assignIssueTo(issue, user)); - } - - @Test - public void bulk_assign_issues_to_user_being_only_member_of_same_organization_as_project_issue_organization() { - restoreProfile(orchestrator, getClass().getResource("/organization/IssueAssignTest/one-issue-per-file-profile.xml"), org2.getKey()); - // User is only member of org1, not of org2 - tester.organizations().addMember(org1, user); - provisionAndAnalyseProject(SAMPLE_PROJECT_KEY, org1.getKey()); - provisionAndAnalyseProject("sample2", org2.getKey()); - List<String> issues = issueRule.search(new org.sonarqube.ws.client.issue.SearchWsRequest()).getIssuesList().stream().map(Issue::getKey).collect(Collectors.toList()); - - Issues.BulkChangeWsResponse response = tester.wsClient().issues() - .bulkChange(BulkChangeRequest.builder().setIssues(issues).setAssign(user.getLogin()).build()); - - assertThat(response.getIgnored()).isGreaterThan(0); - assertThat(issueRule.search(new SearchWsRequest().setProjectKeys(singletonList("sample"))).getIssuesList()).extracting(Issue::getAssignee) - .containsOnly(user.getLogin()); - assertThat(issueRule.search(new SearchWsRequest().setProjectKeys(singletonList("sample2"))).getIssuesList()).extracting(Issue::hasAssignee) - .containsOnly(false); - } - - @Test - public void single_assign_search_show_only_members_in_global_issues() { - tester.organizations().addMember(org1, user); - User otherUser = tester.users().generate(); - provisionAndAnalyseProject(SAMPLE_PROJECT_KEY, org1.getKey()); - IssuesPage page = tester.openBrowser().logIn().submitCredentials(user.getLogin()).openIssues(); - page.getFirstIssue() - .shouldAllowAssign() - .assigneeSearchResultCount(otherUser.getLogin(), 0) - .assigneeSearchResultCount(user.getLogin(), 1); - } - - @Test - public void bulk_assign_search_only_members_of_organization_in_project_issues() { - tester.organizations().addMember(org1, user); - User otherUser = tester.users().generate(); - - provisionAndAnalyseProject(SAMPLE_PROJECT_KEY, org1.getKey()); - IssuesPage page = tester.openBrowser() - .logIn().submitCredentials(user.getLogin()) - .openComponentIssues(SAMPLE_PROJECT_KEY); - page - .bulkChangeOpen() - .bulkChangeAssigneeSearchCount(user.getLogin(), 1) - .bulkChangeAssigneeSearchCount(otherUser.getLogin(), 0); - } - - @Test - public void bulk_assign_search_all_users_in_global_issues() { - tester.organizations().addMember(org1, user); - User otherUser = tester.users().generate(); - provisionAndAnalyseProject(SAMPLE_PROJECT_KEY, org1.getKey()); - IssuesPage page = tester.openBrowser() - .logIn().submitCredentials(user.getLogin()) - .openIssues(); - page - .bulkChangeOpen() - .bulkChangeAssigneeSearchCount(user.getLogin(), 1) - .bulkChangeAssigneeSearchCount(otherUser.getLogin(), 1); - } - - private void provisionAndAnalyseProject(String projectKey, String organization) { - provisionProject(projectKey, organization); - analyseProject(projectKey, organization); - } - - private void provisionProject(String projectKey, String organization) { - tester.wsClient().projects().create( - CreateRequest.builder() - .setKey(projectKey) - .setName(projectKey) - .setOrganization(organization) - .build()); - } - - private void analyseProject(String projectKey, String organization) { - addQualityProfileToProject(organization, projectKey); - runProjectAnalysis(orchestrator, "issue/xoo-with-scm", - "sonar.projectKey", projectKey, - "sonar.organization", organization, - "sonar.login", "admin", - "sonar.password", "admin", - "sonar.scm.disabled", "false", - "sonar.scm.provider", "xoo"); - } - - private void addQualityProfileToProject(String organization, String projectKey) { - tester.wsClient().qualityProfiles().addProject( - AddProjectRequest.builder() - .setProjectKey(projectKey) - .setOrganization(organization) - .setLanguage("xoo") - .setProfileName("one-issue-per-file-profile") - .build()); - } - - private Issues.Operation assignIssueTo(Issue issue, User u) { - return tester.wsClient().issues().assign(new AssignRequest(issue.getKey(), u.getLogin())); - } -} diff --git a/it/it-tests/src/test/java/it/issueFilter/ToDoTest.java b/it/it-tests/src/test/java/it/issueFilter/ToDoTest.java deleted file mode 100644 index eea805f8902..00000000000 --- a/it/it-tests/src/test/java/it/issueFilter/ToDoTest.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.issueFilter; - -public class ToDoTest { -} diff --git a/it/it-tests/src/test/java/it/lite/LiteTest.java b/it/it-tests/src/test/java/it/lite/LiteTest.java deleted file mode 100644 index 1537c8af6c3..00000000000 --- a/it/it-tests/src/test/java/it/lite/LiteTest.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.lite; - -import com.sonar.orchestrator.Orchestrator; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Issues; -import org.sonarqube.ws.WsComponents; -import org.sonarqube.ws.WsMeasures; -import org.sonarqube.ws.client.component.TreeWsRequest; -import org.sonarqube.ws.client.issue.IssuesService; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import org.sonarqube.ws.client.measure.ComponentTreeWsRequest; -import org.sonarqube.ws.client.measure.ComponentWsRequest; -import org.sonarqube.ws.client.measure.MeasuresService; - -import static java.util.Arrays.asList; -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.xooPlugin; - -public class LiteTest { - - private static final String PROJECT_KEY = "com.sonarsource.it.samples:multi-modules-sample"; - - @ClassRule - public static Orchestrator orchestrator = Orchestrator.builderEnv() - .setOrchestratorProperty("sonar.web.context", "/sonarqube") - .addPlugin(xooPlugin()) - .build(); - - @Rule - public Tester tester = new Tester(orchestrator) - .disableOrganizations(); - - @BeforeClass - public static void setUp() { - runProjectAnalysis(orchestrator, "shared/xoo-multi-modules-sample"); - } - - @Test - public void call_issues_ws() { - // all issues - IssuesService issuesService = tester.wsClient().issues(); - Issues.SearchWsResponse response = issuesService.search(new SearchWsRequest()); - assertThat(response.getIssuesCount()).isGreaterThan(0); - - // project issues - response = issuesService.search(new SearchWsRequest().setProjectKeys(singletonList(PROJECT_KEY))); - assertThat(response.getIssuesCount()).isGreaterThan(0); - } - - @Test - public void call_components_ws() { - // files in project - WsComponents.TreeWsResponse tree = tester.wsClient().components().tree(new TreeWsRequest() - .setBaseComponentKey(PROJECT_KEY) - .setQualifiers(singletonList("FIL"))); - assertThat(tree.getComponentsCount()).isEqualTo(4); - tree.getComponentsList().forEach(c -> { - assertThat(c.getQualifier()).isEqualTo("FIL"); - assertThat(c.getName()).endsWith(".xoo"); - }); - } - - @Test - public void call_measures_ws() { - // project measures - MeasuresService measuresService = tester.wsClient().measures(); - WsMeasures.ComponentWsResponse component = measuresService.component(new ComponentWsRequest() - .setComponentKey(PROJECT_KEY) - .setMetricKeys(asList("lines", "ncloc", "files"))); - assertThat(component.getComponent().getMeasuresCount()).isEqualTo(3); - - // file measures - WsMeasures.ComponentTreeWsResponse tree = measuresService.componentTree(new ComponentTreeWsRequest() - .setBaseComponentKey(PROJECT_KEY) - .setQualifiers(singletonList("FIL")) - .setMetricKeys(asList("lines", "ncloc"))); - assertThat(tree.getComponentsCount()).isEqualTo(4); - tree.getComponentsList().forEach(c -> { - assertThat(c.getMeasuresList()).extracting(m -> m.getMetric()).containsOnly("lines", "ncloc"); - }); - } -} diff --git a/it/it-tests/src/test/java/it/measure/DecimalScaleMetricTest.java b/it/it-tests/src/test/java/it/measure/DecimalScaleMetricTest.java deleted file mode 100644 index 6671cb30611..00000000000 --- a/it/it-tests/src/test/java/it/measure/DecimalScaleMetricTest.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.measure; - -import com.sonar.orchestrator.Orchestrator; -import it.Category3Suite; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasureAsDouble; - -/** - * SONAR-6939 - */ -public class DecimalScaleMetricTest { - - /** - * Requires the plugin "batch-plugin" - */ - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - @Test - public void override_decimal_scale_of_numeric_metric() { - String projectKey = "DecimalScaleMetricTest.override_decimal_scale_of_numeric_metric"; - // see DecimalScaleMetric - String metricKey = "decimal_scale"; - ItUtils.runProjectAnalysis(orchestrator, "shared/xoo-sample", - "sonar.projectKey", projectKey, - "sonar.scanner.feedDecimalScaleMetric", String.valueOf(true)); - - assertThat(getMeasureAsDouble(orchestrator, projectKey, metricKey)).isEqualTo(0.0001); - } -} diff --git a/it/it-tests/src/test/java/it/measure/MeasuresWsTest.java b/it/it-tests/src/test/java/it/measure/MeasuresWsTest.java deleted file mode 100644 index f30c4d66003..00000000000 --- a/it/it-tests/src/test/java/it/measure/MeasuresWsTest.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.measure; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import java.util.List; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.WsMeasures; -import org.sonarqube.ws.WsMeasures.ComponentTreeWsResponse; -import org.sonarqube.ws.WsMeasures.ComponentWsResponse; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.measure.ComponentTreeWsRequest; -import org.sonarqube.ws.client.measure.ComponentWsRequest; -import util.ItUtils; - -import static com.google.common.collect.Lists.newArrayList; -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; -import static util.ItUtils.setServerProperty; - -public class MeasuresWsTest { - @ClassRule - public static final Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - private static final String FILE_KEY = "sample:src/main/xoo/sample/Sample.xoo"; - private static final String DIR_KEY = "sample:src/main/xoo/sample"; - WsClient wsClient; - - @BeforeClass - public static void initPeriod() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - } - - @AfterClass - public static void resetPeriod() throws Exception { - ItUtils.resetPeriod(orchestrator); - } - - @Before - public void inspectProject() { - orchestrator.resetData(); - - wsClient = ItUtils.newAdminWsClient(orchestrator); - } - - @Test - public void component_tree() { - scanXooSample(); - - ComponentTreeWsResponse response = wsClient.measures().componentTree(new ComponentTreeWsRequest() - .setBaseComponentKey("sample") - .setMetricKeys(singletonList("ncloc")) - .setAdditionalFields(newArrayList("metrics", "periods"))); - - assertThat(response).isNotNull(); - assertThat(response.getBaseComponent().getKey()).isEqualTo("sample"); - assertThat(response.getMetrics().getMetricsList()).extracting("key").containsOnly("ncloc"); - List<WsMeasures.Component> components = response.getComponentsList(); - assertThat(components).hasSize(2).extracting("key").containsOnly(DIR_KEY, FILE_KEY); - assertThat(components.get(0).getMeasuresList().get(0).getValue()).isEqualTo("13"); - } - - /** - * @see SONAR-7958 - */ - @Test - public void component_tree_supports_module_move_down() { - String projectKey = "sample"; - String newModuleKey = "sample:new_module"; - String moduleAKey = "module_a"; - String dirKey = "module_a:src/main/xoo/sample"; - String fileKey = "module_a:src/main/xoo/sample/Sample.xoo"; - - scanXooSampleModuleMoveV1(); - - verifyComponentTreeWithChildren(projectKey, moduleAKey); - verifyComponentTreeWithChildren(moduleAKey, dirKey); - verifyComponentTreeWithChildren(dirKey, fileKey); - - scanXooSampleModuleMoveV2(); - - verifyComponentTreeWithChildren(projectKey, newModuleKey); - verifyComponentTreeWithChildren(newModuleKey, moduleAKey); - verifyComponentTreeWithChildren(moduleAKey, dirKey); - verifyComponentTreeWithChildren(dirKey, fileKey); - } - - /** - * @see SONAR-7958 - */ - @Test - public void component_tree_supports_module_move_up() { - String projectKey = "sample"; - String newModuleKey = "sample:new_module"; - String moduleAKey = "module_a"; - String dirKey = "module_a:src/main/xoo/sample"; - String fileKey = "module_a:src/main/xoo/sample/Sample.xoo"; - - scanXooSampleModuleMoveV2(); - - verifyComponentTreeWithChildren(projectKey, newModuleKey); - verifyComponentTreeWithChildren(newModuleKey, moduleAKey); - verifyComponentTreeWithChildren(moduleAKey, dirKey); - verifyComponentTreeWithChildren(dirKey, fileKey); - - scanXooSampleModuleMoveV1(); - - verifyComponentTreeWithChildren(projectKey, moduleAKey); - verifyComponentTreeWithChildren(moduleAKey, dirKey); - verifyComponentTreeWithChildren(dirKey, fileKey); - } - - private void verifyComponentTreeWithChildren(String baseComponentKey, String... childKeys) { - ComponentTreeWsResponse response = wsClient.measures().componentTree(new ComponentTreeWsRequest() - .setBaseComponentKey(baseComponentKey) - .setMetricKeys(singletonList("ncloc")) - .setStrategy("children")); - - assertThat(response.getBaseComponent().getKey()).isEqualTo(baseComponentKey); - assertThat(response.getComponentsList()) - .extracting("key").containsOnly(childKeys); - } - - @Test - public void component() { - scanXooSample(); - - ComponentWsResponse response = wsClient.measures().component(new ComponentWsRequest() - .setComponentKey("sample") - .setMetricKeys(singletonList("ncloc")) - .setAdditionalFields(newArrayList("metrics", "periods"))); - - WsMeasures.Component component = response.getComponent(); - assertThat(component.getKey()).isEqualTo("sample"); - assertThat(component.getMeasuresList()).isNotEmpty(); - assertThat(response.getMetrics().getMetricsList()).extracting("key").containsOnly("ncloc"); - } - - private void scanXooSample() { - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - } - - private void scanXooSampleModuleMoveV1() { - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample-module-move-v1"))); - } - - private void scanXooSampleModuleMoveV2() { - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample-module-move-v2"))); - } -} diff --git a/it/it-tests/src/test/java/it/measure/ProjectDashboardTest.java b/it/it-tests/src/test/java/it/measure/ProjectDashboardTest.java deleted file mode 100644 index b0054d9d3af..00000000000 --- a/it/it-tests/src/test/java/it/measure/ProjectDashboardTest.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.measure; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.openqa.selenium.Keys; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import pageobjects.Navigation; -import pageobjects.ProjectDashboardPage; -import util.user.UserRule; - -import static com.codeborne.selenide.Condition.hasText; -import static com.codeborne.selenide.Condition.text; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.projectDir; -import static util.selenium.Selenese.runSelenese; - -public class ProjectDashboardTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - private Navigation nav = Navigation.create(orchestrator); - - private static WsClient wsClient; - private String adminUser; - - @Before - public void setUp() throws Exception { - wsClient = newAdminWsClient(orchestrator); - orchestrator.resetData(); - adminUser = userRule.createAdminUser(); - } - - @Test - public void after_first_analysis() throws Exception { - executeBuild("shared/xoo-sample", "project-for-overview", "Project For Overview"); - - runSelenese(orchestrator, "/measure/ProjectDashboardTest/test_project_overview_after_first_analysis.html"); - } - - @Test - public void display_size() { - executeBuild("shared/xoo-sample", "sample", "Sample"); - - ProjectDashboardPage page = Navigation.create(orchestrator).openProjectDashboard("sample"); - - page.getLinesOfCode().should(hasText("13")); - page.getLanguageDistribution().should(hasText("Xoo"), hasText("13")); - } - - @Test - public void display_tags_without_edit() { - executeBuild("shared/xoo-sample", "sample", "Sample"); - - // Add some tags to the project - wsClient.wsConnector().call( - new PostRequest("api/project_tags/set") - .setParam("project", "sample") - .setParam("tags", "foo,bar,baz")); - - ProjectDashboardPage page = Navigation.create(orchestrator).openProjectDashboard("sample"); - page - .shouldHaveTags("foo", "bar", "baz") - .shouldNotBeEditable(); - } - - @Test - public void display_tags_with_edit() { - executeBuild("shared/xoo-sample", "sample-with-tags", "Sample with tags"); - // Add some tags to another project to have them in the list - wsClient.wsConnector().call( - new PostRequest("api/project_tags/set") - .setParam("project", "sample-with-tags") - .setParam("tags", "foo,bar,baz")); - - executeBuild("shared/xoo-sample", "sample", "Sample"); - ProjectDashboardPage page = nav.logIn().submitCredentials(adminUser).openProjectDashboard("sample"); - page - .shouldHaveTags("No tags") - .shouldBeEditable() - .openTagEditor() - .getTagAtIdx(2).click(); - page - .shouldHaveTags("foo") - .sendKeysToTagsInput("test") - .getTagAtIdx(0).should(hasText("+ test")).click(); - page - .shouldHaveTags("foo", "test") - .getTagAtIdx(1).should(hasText("test")); - page - .sendKeysToTagsInput(Keys.ENTER) - .shouldHaveTags("test"); - } - - @Test - @Ignore("there is no more place to show the error") - public void display_a_nice_error_when_requesting_unknown_project() { - Navigation nav = Navigation.create(orchestrator); - nav.open("/dashboard/index?id=unknown"); - nav.getErrorMessage().should(text("The requested project does not exist. Either it has never been analyzed successfully or it has been deleted.")); - // TODO verify that on global homepage - } - - private void executeBuild(String projectLocation, String projectKey, String projectName) { - orchestrator.executeBuild( - SonarScanner.create(projectDir(projectLocation)) - .setProjectKey(projectKey) - .setProjectName(projectName)); - } - -} diff --git a/it/it-tests/src/test/java/it/measure/ProjectMeasuresPageTest.java b/it/it-tests/src/test/java/it/measure/ProjectMeasuresPageTest.java deleted file mode 100644 index 8c83f7bc3a8..00000000000 --- a/it/it-tests/src/test/java/it/measure/ProjectMeasuresPageTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.measure; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import pageobjects.Navigation; - -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; -import static util.ItUtils.projectDir; -import static util.selenium.Selenese.runSelenese; - -public class ProjectMeasuresPageTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @BeforeClass - public static void inspectProject() { - orchestrator.executeBuild( - SonarScanner - .create(projectDir("shared/xoo-sample")) - .setProperty("sonar.projectKey", "project-measures-page-test-project") - .setProperty("sonar.projectName", "ProjectMeasuresPageTest Project")); - - // one more time - orchestrator.executeBuild( - SonarScanner - .create(projectDir("shared/xoo-sample")) - .setProperty("sonar.projectKey", "project-measures-page-test-project") - .setProperty("sonar.projectName", "ProjectMeasuresPageTest Project")); - } - - @Test - public void should_display_measures_page() { - runSelenese(orchestrator, "/measure/ProjectMeasuresPageTest/should_display_measures_page.html"); - } - - @Test - public void should_drilldown_on_list_view() { - runSelenese(orchestrator, "/measure/ProjectMeasuresPageTest/should_drilldown_on_list_view.html"); - } - - @Test - public void should_drilldown_on_tree_view() { - runSelenese(orchestrator, "/measure/ProjectMeasuresPageTest/should_drilldown_on_tree_view.html"); - } - - @Test - public void should_show_history() { - Navigation nav = Navigation.create(orchestrator); - nav.open("/component_measures/metric/reliability_rating/history?id=project-measures-page-test-project"); - $(".line-chart").shouldBe(visible); - $$(".line-chart-tick-x").shouldHaveSize(5); - } - -} diff --git a/it/it-tests/src/test/java/it/measureHistory/DifferentialPeriodsTest.java b/it/it-tests/src/test/java/it/measureHistory/DifferentialPeriodsTest.java deleted file mode 100644 index 03f40dc23d8..00000000000 --- a/it/it-tests/src/test/java/it/measureHistory/DifferentialPeriodsTest.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.measureHistory; - -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import java.util.Date; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.ws.client.WsClient; -import pageobjects.Navigation; -import util.ItUtils; -import util.user.UserRule; - -import static org.apache.commons.lang.time.DateUtils.addDays; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.formatDate; -import static util.ItUtils.getLeakPeriodValue; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.resetPeriod; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperty; - -public class DifferentialPeriodsTest { - - static final String PROJECT_KEY = "sample"; - static final String MULTI_MODULE_PROJECT_KEY = "com.sonarsource.it.samples:multi-modules-sample"; - - static WsClient CLIENT; - - @ClassRule - public static final Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - private String adminUser; - - @BeforeClass - public static void createWsClient() throws Exception { - CLIENT = newAdminWsClient(orchestrator); - } - - @Before - public void cleanUpAnalysisData() { - orchestrator.resetData(); - adminUser = userRule.createAdminUser(); - } - - @After - public void reset() throws Exception { - resetPeriod(orchestrator); - } - - /** - * SONAR-7093 - */ - @Test - public void ensure_leak_period_defined_at_project_level_is_taken_into_account() throws Exception { - orchestrator.getServer().provisionProject(PROJECT_KEY, PROJECT_KEY); - - // Set a global property and a project property to ensure project property is used - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - setServerProperty(orchestrator, PROJECT_KEY, "sonar.leak.period", "30"); - - // Execute an analysis in the past to have a past snapshot without any issues - orchestrator.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "empty"); - runProjectAnalysis(orchestrator, "shared/xoo-sample", "sonar.projectDate", formatDate(addDays(new Date(), -15))); - - // Second analysis -> issues will be created - ItUtils.restoreProfile(orchestrator, getClass().getResource("/measureHistory/one-issue-per-line-profile.xml")); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "one-issue-per-line"); - runProjectAnalysis(orchestrator, "shared/xoo-sample"); - - // Third analysis -> There's no new issue from previous analysis - runProjectAnalysis(orchestrator, "shared/xoo-sample"); - - // Project should have 17 new issues for leak period - assertThat(getLeakPeriodValue(orchestrator, PROJECT_KEY, "violations")).isEqualTo(17); - - // Check on ui that it's possible to define leak period on project - Navigation.create(orchestrator).openHome().logIn().submitCredentials(adminUser).openSettings("sample") - .assertSettingDisplayed("sonar.leak.period"); - } - - /** - * SONAR-7237 - */ - @Test - public void ensure_differential_measures_are_computed_when_adding_new_component_after_period() throws Exception { - orchestrator.getServer().provisionProject(MULTI_MODULE_PROJECT_KEY, MULTI_MODULE_PROJECT_KEY); - setServerProperty(orchestrator, MULTI_MODULE_PROJECT_KEY, "sonar.leak.period", "30"); - - // Execute an analysis 60 days ago without module b - orchestrator.getServer().associateProjectToQualityProfile(MULTI_MODULE_PROJECT_KEY, "xoo", "empty"); - runProjectAnalysis(orchestrator, "shared/xoo-multi-modules-sample", - "sonar.projectDate", formatDate(addDays(new Date(), -60)), - "sonar.modules", "module_a"); - - // Second analysis, 20 days ago, issues will be created - ItUtils.restoreProfile(orchestrator, getClass().getResource("/measureHistory/one-issue-per-line-profile.xml")); - orchestrator.getServer().associateProjectToQualityProfile(MULTI_MODULE_PROJECT_KEY, "xoo", "one-issue-per-line"); - runProjectAnalysis(orchestrator, "shared/xoo-multi-modules-sample", - "sonar.projectDate", formatDate(addDays(new Date(), -20)), - "sonar.modules", "module_a,module_b"); - - // Variation on module b should exist - assertThat(getLeakPeriodValue(orchestrator, MULTI_MODULE_PROJECT_KEY + ":module_b", "ncloc")).isEqualTo(24); - } - - @Test - public void compute_no_new_lines_measures_when_changes_but_no_scm() throws Exception { - orchestrator.getServer().provisionProject(MULTI_MODULE_PROJECT_KEY, MULTI_MODULE_PROJECT_KEY); - setServerProperty(orchestrator, MULTI_MODULE_PROJECT_KEY, "sonar.leak.period", "previous_analysis"); - - // Execute an analysis 60 days ago without module b - orchestrator.getServer().associateProjectToQualityProfile(MULTI_MODULE_PROJECT_KEY, "xoo", "empty"); - runProjectAnalysis(orchestrator, "shared/xoo-multi-modules-sample", - "sonar.projectDate", formatDate(addDays(new Date(), -60)), - "sonar.modules", "module_a"); - - // Second analysis, 20 days ago - ItUtils.restoreProfile(orchestrator, getClass().getResource("/measureHistory/one-issue-per-line-profile.xml")); - orchestrator.getServer().associateProjectToQualityProfile(MULTI_MODULE_PROJECT_KEY, "xoo", "one-issue-per-line"); - runProjectAnalysis(orchestrator, "shared/xoo-multi-modules-sample", - "sonar.projectDate", formatDate(addDays(new Date(), -20)), - "sonar.modules", "module_a,module_b"); - - // No new lines measure - assertNoMeasures(MULTI_MODULE_PROJECT_KEY, "new_lines", "new_lines_to_cover"); - } - - @Test - public void compute_zero_new_lines_measures_when_no_changes_and_scm_available() throws Exception { - String projectKey = "sample-scm"; - orchestrator.getServer().provisionProject(projectKey, projectKey); - setServerProperty(orchestrator, projectKey, "sonar.leak.period", "previous_analysis"); - - // Execute an analysis 60 days ago - runProjectAnalysis(orchestrator, "scm/xoo-sample-with-scm", "sonar.projectDate", formatDate(addDays(new Date(), -60)), - "sonar.scm.provider", "xoo", "sonar.scm.disabled", "false"); - - // Second analysis, 20 days ago - runProjectAnalysis(orchestrator, "scm/xoo-sample-with-scm", "sonar.projectDate", formatDate(addDays(new Date(), -20)), - "sonar.scm.provider", "xoo", "sonar.scm.disabled", "false"); - - // New lines measures is zero - assertThat(getLeakPeriodValue(orchestrator, projectKey, "new_lines")).isEqualTo(0); - assertThat(getLeakPeriodValue(orchestrator, projectKey, "new_lines_to_cover")).isEqualTo(0); - } - - private void assertNoMeasures(String projectKey, String... metrics) { - assertThat(getMeasuresAsDoubleByMetricKey(orchestrator, projectKey, metrics)).isEmpty(); - } -} diff --git a/it/it-tests/src/test/java/it/measureHistory/SincePreviousVersionHistoryTest.java b/it/it-tests/src/test/java/it/measureHistory/SincePreviousVersionHistoryTest.java deleted file mode 100644 index 888072186ef..00000000000 --- a/it/it-tests/src/test/java/it/measureHistory/SincePreviousVersionHistoryTest.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.measureHistory; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import java.text.SimpleDateFormat; -import java.util.Date; -import javax.annotation.Nullable; -import org.apache.commons.lang.time.DateUtils; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static java.lang.Integer.parseInt; -import static org.assertj.core.api.Assertions.assertThat; -import static org.sonarqube.ws.WsMeasures.Measure; -import static org.sonarqube.ws.WsMeasures.PeriodValue; -import static util.ItUtils.getLeakPeriodValue; -import static util.ItUtils.getMeasureWithVariation; -import static util.ItUtils.projectDir; -import static util.ItUtils.setServerProperty; - -public class SincePreviousVersionHistoryTest { - - private static final String PROJECT = "com.sonarsource.it.samples:multi-modules-sample"; - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @BeforeClass - public static void initPeriod() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "previous_version"); - } - - @AfterClass - public static void resetPeriod() throws Exception { - ItUtils.resetPeriod(orchestrator); - } - - private static void analyzeProject(String version) { - analyzeProject(version, null, null); - } - - private static void analyzeProjectWithExclusions(String version, String exclusions) { - analyzeProject(version, exclusions, null); - } - - private static void analyzeProjectWithDate(String version, String date) { - analyzeProject(version, null, date); - } - - private static void analyzeProject(String version, @Nullable String exclusions, @Nullable String date) { - SonarScanner build = SonarScanner.create(projectDir("shared/xoo-multi-modules-sample")) - .setProperties("sonar.projectVersion", version); - if (exclusions != null) { - build.setProperties("sonar.exclusions", exclusions); - } - if (date != null) { - build.setProperty("sonar.projectDate", date); - } - orchestrator.executeBuild(build); - } - - public static String toStringDate(Date date) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - return sdf.format(date); - } - - @Before - public void resetData() throws Exception { - orchestrator.resetData(); - } - - /** - * SONAR-2496 - */ - @Test - public void test_since_previous_version_period() { - analyzeProjectWithExclusions("0.9", "**/*2.xoo"); - analyzeProject("1.0-SNAPSHOT"); - analyzeProject("1.0-SNAPSHOT"); - - Measure measure = getMeasureWithVariation(orchestrator, PROJECT, "files"); - - // There are 4 files - assertThat(parseInt(measure.getValue())).isEqualTo(4); - // 2 files were added since the first analysis which was version 0.9 - assertThat(measure.getPeriods().getPeriodsValueList()).extracting(PeriodValue::getValue).contains("2"); - } - - /** - * SONAR-6356 - */ - @Test - public void since_previous_version_should_use_first_analysis_when_no_version_found() { - Date now = new Date(); - - // Analyze project by excluding some files - analyzeProject("1.0-SNAPSHOT", "**/*2.xoo", toStringDate(DateUtils.addDays(now, -2))); - // No difference measure after first analysis - assertThat(getLeakPeriodValue(orchestrator, PROJECT, "files")).isNull(); - - analyzeProjectWithDate("1.0-SNAPSHOT", toStringDate(DateUtils.addDays(now, -1))); - // No new version, first analysis is used -> 2 new files - assertThat(getLeakPeriodValue(orchestrator, PROJECT, "files")).isEqualTo(2); - - analyzeProjectWithDate("1.0-SNAPSHOT", toStringDate(now)); - // Still no new version, first analysis is used -> 2 new files - assertThat(getLeakPeriodValue(orchestrator, PROJECT, "files")).isEqualTo(2); - } - -} diff --git a/it/it-tests/src/test/java/it/measureHistory/SinceXDaysHistoryTest.java b/it/it-tests/src/test/java/it/measureHistory/SinceXDaysHistoryTest.java deleted file mode 100644 index 1c53d3df87c..00000000000 --- a/it/it-tests/src/test/java/it/measureHistory/SinceXDaysHistoryTest.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.measureHistory; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import java.text.SimpleDateFormat; -import java.util.Date; -import javax.annotation.Nullable; -import org.apache.commons.lang.time.DateUtils; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.WsMeasures; -import util.ItUtils; - -import static java.lang.Integer.parseInt; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasureWithVariation; -import static util.ItUtils.projectDir; -import static util.ItUtils.setServerProperty; - -public class SinceXDaysHistoryTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - private static final String PROJECT = "multi-files-sample"; - - @BeforeClass - public static void analyseProjectWithHistory() { - initPeriod(); - - orchestrator.resetData(); - ItUtils.restoreProfile(orchestrator, SinceXDaysHistoryTest.class.getResource("/measureHistory/one-issue-per-line-profile.xml")); - orchestrator.getServer().provisionProject(PROJECT, PROJECT); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT, "xoo", "one-issue-per-line"); - - // Execute a analysis in the past before since 30 days period -> 0 issue, 0 file - analyzeProject("2013-01-01", "**/File1*,**/File2*,**/File3*,**/File4*"); - - // Execute a analysis 20 days ago, after since 30 days period -> 16 issues, 1 file - analyzeProject(getPastDate(20), "**/File2*,**/File3*,**/File4*"); - - // Execute a analysis 10 days ago, after since 30 days period -> 28 issues, 2 files - analyzeProject(getPastDate(10), "**/File3*,**/File4*"); - - // Execute a analysis in the present with all modules -> 52 issues, 4 files - analyzeProject(); - } - - private static void initPeriod() { - setServerProperty(orchestrator, "sonar.leak.period", "30"); - } - - @AfterClass - public static void resetPeriods() throws Exception { - ItUtils.resetPeriod(orchestrator); - } - - @Test - public void check_files_variation() throws Exception { - checkMeasure("files", 3); - } - - @Test - public void check_issues_variation() throws Exception { - checkMeasure("violations", 45); - } - - @Test - public void check_new_issues_measures() throws Exception { - checkMeasure("new_violations", 45); - } - - private void checkMeasure(String metric, int variation) { - WsMeasures.Measure measure = getMeasureWithVariation(orchestrator, PROJECT, metric); - assertThat(measure.getPeriods().getPeriodsValueList()).extracting(periodValue -> parseInt(periodValue.getValue())).containsOnly(variation); - } - - private static void analyzeProject() { - analyzeProject(null, null); - } - - private static void analyzeProject(@Nullable String date, @Nullable String exclusions) { - SonarScanner runner = SonarScanner.create(projectDir("measureHistory/xoo-multi-files-sample")); - if (date != null) { - runner.setProperty("sonar.projectDate", date); - } - if (exclusions != null) { - runner.setProperties("sonar.exclusions", exclusions); - } - orchestrator.executeBuild(runner); - } - - private static String getPastDate(int nbPastDays) { - return new SimpleDateFormat("yyyy-MM-dd").format(DateUtils.addDays(new Date(), nbPastDays * -1)); - } - -} diff --git a/it/it-tests/src/test/java/it/measureHistory/TimeMachineTest.java b/it/it-tests/src/test/java/it/measureHistory/TimeMachineTest.java deleted file mode 100644 index 56d4ad6ae92..00000000000 --- a/it/it-tests/src/test/java/it/measureHistory/TimeMachineTest.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.measureHistory; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import java.util.Arrays; -import java.util.Date; -import java.util.Map; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.WsMeasures.Measure; -import org.sonarqube.ws.WsMeasures.SearchHistoryResponse; -import org.sonarqube.ws.WsMeasures.SearchHistoryResponse.HistoryValue; -import org.sonarqube.ws.client.measure.MeasuresService; -import org.sonarqube.ws.client.measure.SearchHistoryRequest; -import util.ItUtils; -import util.ItUtils.ComponentNavigation; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.formatDate; -import static util.ItUtils.getComponentNavigation; -import static util.ItUtils.getMeasuresByMetricKey; -import static util.ItUtils.getMeasuresWithVariationsByMetricKey; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.projectDir; -import static util.ItUtils.setServerProperty; - -public class TimeMachineTest { - - private static final String PROJECT = "sample"; - private static final String FIRST_ANALYSIS_DATE = "2014-10-19"; - private static final String SECOND_ANALYSIS_DATE = "2014-11-13"; - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - private static MeasuresService wsMeasures; - - @BeforeClass - public static void initialize() { - orchestrator.resetData(); - initPeriod(); - ItUtils.restoreProfile(orchestrator, TimeMachineTest.class.getResource("/measureHistory/one-issue-per-line-profile.xml")); - orchestrator.getServer().provisionProject("sample", "Sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - analyzeProject("measure/xoo-history-v1", FIRST_ANALYSIS_DATE); - analyzeProject("measure/xoo-history-v2", SECOND_ANALYSIS_DATE); - - wsMeasures = newAdminWsClient(orchestrator).measures(); - } - - private static void initPeriod() { - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - } - - @AfterClass - public static void resetPeriod() throws Exception { - ItUtils.resetPeriod(orchestrator); - } - - private static BuildResult analyzeProject(String path, String date) { - return orchestrator.executeBuild(SonarScanner.create(projectDir(path), "sonar.projectDate", date)); - } - - @Test - public void projectIsAnalyzed() { - ComponentNavigation component = getComponentNavigation(orchestrator, PROJECT); - assertThat(component.getVersion()).isEqualTo("1.0-SNAPSHOT"); - assertThat(component.getDate().getMonth()).isEqualTo(10); // November - } - - @Test - public void testHistoryOfIssues() { - SearchHistoryResponse response = searchHistory("blocker_violations", "critical_violations", "info_violations", "major_violations", "minor_violations"); - assertThat(response.getPaging().getTotal()).isEqualTo(2); - - assertHistory(response, "blocker_violations", "0", "0"); - assertHistory(response, "critical_violations", "0", "0"); - assertHistory(response, "info_violations", "0", "0"); - assertHistory(response, "major_violations", "0", "0"); - assertHistory(response, "minor_violations", "26", "43"); - } - - @Test - public void testHistoryOfMeasures() { - SearchHistoryResponse response = searchHistory("lines", "ncloc"); - - assertThat(response.getPaging().getTotal()).isEqualTo(2); - assertHistory(response, "lines", "26", "43"); - assertHistory(response, "ncloc", "24", "40"); - } - - @Test - public void noDataForInterval() { - Date now = new Date(); - - SearchHistoryResponse response = wsMeasures.searchHistory(SearchHistoryRequest.builder() - .setComponent(PROJECT) - .setMetrics(singletonList("lines")) - .setFrom(formatDate(now)) - .setTo(formatDate(now)) - .build()); - - assertThat(response.getPaging().getTotal()).isEqualTo(0); - assertThat(response.getMeasures(0).getHistoryList()).isEmpty(); - } - - /** - * SONAR-4962 - */ - @Test - public void measure_variations_are_only_meaningful_when_additional_fields_contains_periods() { - Map<String, Measure> measures = getMeasuresWithVariationsByMetricKey(orchestrator, PROJECT, "violations", "new_violations"); - assertThat(measures.get("violations")).isNotNull(); - assertThat(measures.get("new_violations")).isNotNull(); - SearchHistoryResponse response = searchHistory("new_violations"); - assertThat(response.getMeasures(0).getHistoryCount()).isGreaterThan(0); - - measures = getMeasuresByMetricKey(orchestrator, PROJECT, "violations", "new_violations"); - assertThat(measures.get("violations")).isNotNull(); - assertThat(measures.get("new_violations")).isNull(); - } - - private static SearchHistoryResponse searchHistory(String... metrics) { - return wsMeasures.searchHistory(SearchHistoryRequest.builder() - .setComponent(PROJECT) - .setMetrics(Arrays.asList(metrics)) - .build()); - } - - private static void assertHistory(SearchHistoryResponse response, String metric, String... expectedMeasures) { - for (SearchHistoryResponse.HistoryMeasure measures : response.getMeasuresList()) { - if (metric.equals(measures.getMetric())) { - assertThat(measures.getHistoryList()).extracting(HistoryValue::getValue).containsExactly(expectedMeasures); - return; - } - } - - throw new IllegalArgumentException("Metric not found"); - } -} diff --git a/it/it-tests/src/test/java/it/organization/BillingTest.java b/it/it-tests/src/test/java/it/organization/BillingTest.java deleted file mode 100644 index 975db8b260e..00000000000 --- a/it/it-tests/src/test/java/it/organization/BillingTest.java +++ /dev/null @@ -1,246 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.organization; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category6Suite; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.ws.client.organization.UpdateProjectVisibilityWsRequest; -import org.sonarqube.ws.client.project.CreateRequest; -import org.sonarqube.ws.client.project.UpdateVisibilityRequest; -import pageobjects.Navigation; -import util.ItUtils; - -import static java.lang.String.format; -import static org.assertj.core.api.Java6Assertions.assertThat; -import static org.sonarqube.ws.WsCe.TaskResponse; -import static util.ItUtils.expectHttpError; -import static util.ItUtils.newProjectKey; -import static util.ItUtils.newUserWsClient; -import static util.ItUtils.projectDir; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; - -public class BillingTest { - - private static final String PROPERTY_PREVENT_ANALYSIS = "sonar.billing.preventProjectAnalysis"; - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - private Organizations.Organization organization; - private User orgAdministrator; - - @Before - @After - public void reset() { - resetSettings(orchestrator, null, PROPERTY_PREVENT_ANALYSIS, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate"); - } - - @Before - public void setUp() { - organization = tester.organizations().generate(); - orgAdministrator = tester.users().generateAdministrator(organization); - } - - @Test - public void execute_successfully_ce_analysis_on_organization() { - setServerProperty(orchestrator, PROPERTY_PREVENT_ANALYSIS, "false"); - - String taskUuid = executeAnalysis(newProjectKey()); - - TaskResponse taskResponse = tester.wsClient().ce().task(taskUuid); - assertThat(taskResponse.getTask().hasErrorMessage()).isFalse(); - } - - @Test - public void fail_to_execute_ce_analysis_on_organization() { - setServerProperty(orchestrator, PROPERTY_PREVENT_ANALYSIS, "true"); - - String taskUuid = executeAnalysis(newProjectKey()); - - TaskResponse taskResponse = tester.wsClient().ce().task(taskUuid); - assertThat(taskResponse.getTask().hasErrorMessage()).isTrue(); - assertThat(taskResponse.getTask().getErrorMessage()).contains(format("Organization %s cannot perform analysis", organization.getKey())); - } - - @Test - public void api_navigation_organization_returns_canUpdateProjectsVisibilityToPrivate() { - User user = tester.users().generate(); - tester.organizations().addMember(organization, user); - - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "false"); - assertWsResponseAsAdmin(new GetRequest("api/navigation/organization").setParam("organization", organization.getKey()), - "\"canUpdateProjectsVisibilityToPrivate\":true"); - - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "true"); - assertWsResponseAsAdmin(new GetRequest("api/navigation/organization").setParam("organization", organization.getKey()), - "\"canUpdateProjectsVisibilityToPrivate\":false"); - - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "true"); - assertWsResponseAsUser(new GetRequest("api/navigation/organization").setParam("organization", organization.getKey()), - "\"canUpdateProjectsVisibilityToPrivate\":false", user); - } - - @Test - public void api_navigation_component_returns_canUpdateProjectVisibilityToPrivate() { - String projectKey = createPublicProject(); - - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "false"); - assertWsResponseAsAdmin(new GetRequest("api/navigation/component").setParam("componentKey", projectKey), - "\"canUpdateProjectVisibilityToPrivate\":true"); - - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "true"); - assertWsResponseAsAdmin(new GetRequest("api/navigation/component").setParam("componentKey", projectKey), - "\"canUpdateProjectVisibilityToPrivate\":false"); - } - - @Test - public void does_not_fail_to_update_default_projects_visibility_to_private() { - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "false"); - - tester.wsClient().organizations().updateProjectVisibility(UpdateProjectVisibilityWsRequest.builder() - .setOrganization(organization.getKey()) - .setProjectVisibility("private") - .build()); - - assertWsResponseAsAdmin(new GetRequest("api/navigation/organization").setParam("organization", organization.getKey()), - "\"projectVisibility\":\"private\""); - } - - @Test - public void fail_to_update_organization_default_visibility_to_private() { - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "true"); - - expectHttpError(400, - format("Organization %s cannot use private project", organization.getKey()), - () -> tester.wsClient().organizations() - .updateProjectVisibility(UpdateProjectVisibilityWsRequest.builder().setOrganization(organization.getKey()).setProjectVisibility("private").build())); - } - - @Test - public void does_not_fail_to_update_project_visibility_to_private() { - String projectKey = createPublicProject(); - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "false"); - - tester.wsClient().projects().updateVisibility(UpdateVisibilityRequest.builder().setProject(projectKey).setVisibility("private").build()); - - assertWsResponseAsAdmin(new GetRequest("api/navigation/component").setParam("componentKey", projectKey), "\"visibility\":\"private\""); - } - - @Test - public void fail_to_update_project_visibility_to_private() { - String projectKey = createPublicProject(); - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "true"); - - expectHttpError(400, - format("Organization %s cannot use private project", organization.getKey()), - () -> tester.wsClient().projects().updateVisibility(UpdateVisibilityRequest.builder().setProject(projectKey).setVisibility("private").build())); - } - - @Test - public void does_not_fail_to_create_private_project() { - String projectKey = newProjectKey(); - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "false"); - - tester.wsClient().projects().create(CreateRequest.builder().setKey(projectKey).setName(projectKey).setOrganization(organization.getKey()).setVisibility("public").build()); - - assertWsResponseAsAdmin(new GetRequest("api/navigation/component").setParam("componentKey", projectKey), "\"visibility\":\"public\""); - } - - @Test - public void fail_to_create_private_project() { - String projectKey = newProjectKey(); - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "true"); - - expectHttpError(400, - format("Organization %s cannot use private project", organization.getKey()), - () -> tester.wsClient().projects() - .create(CreateRequest.builder().setKey(projectKey).setName(projectKey).setOrganization(organization.getKey()).setVisibility("private").build())); - } - - @Test - public void ui_does_not_allow_to_turn_project_to_private() { - String projectKey = createPublicProject(); - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "true"); - - Navigation.create(orchestrator) - .logIn().submitCredentials(orgAdministrator.getLogin()) - .openProjectPermissions(projectKey) - .shouldBePublic() - .shouldNotAllowPrivate(); - } - - @Test - public void ui_allows_to_turn_project_to_private() { - String projectKey = createPublicProject(); - setServerProperty(orchestrator, "sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "false"); - - tester.openBrowser() - .logIn().submitCredentials(orgAdministrator.getLogin()) - .openProjectPermissions(projectKey) - .shouldBePublic() - .turnToPrivate(); - } - - private String createPublicProject() { - String projectKey = newProjectKey(); - tester.wsClient().projects().create(CreateRequest.builder() - .setKey(projectKey) - .setName(projectKey) - .setOrganization(organization.getKey()) - .setVisibility("public") - .build()); - return projectKey; - } - - private String executeAnalysis(String projectKey) { - BuildResult buildResult = orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"), - "sonar.organization", organization.getKey(), - "sonar.projectKey", projectKey, - "sonar.login", orgAdministrator.getLogin(), - "sonar.password", orgAdministrator.getLogin())); - return ItUtils.extractCeTaskId(buildResult); - } - - private void assertWsResponseAsAdmin(GetRequest request, String expectedContent) { - WsResponse response = tester.wsClient().wsConnector().call(request).failIfNotSuccessful(); - assertThat(response.content()).contains(expectedContent); - } - - private void assertWsResponseAsUser(GetRequest request, String expectedContent, User user) { - WsResponse response = newUserWsClient(orchestrator, user.getLogin(), user.getLogin()).wsConnector().call(request).failIfNotSuccessful(); - assertThat(response.content()).contains(expectedContent); - } -} diff --git a/it/it-tests/src/test/java/it/organization/OrganizationMembershipTest.java b/it/it-tests/src/test/java/it/organization/OrganizationMembershipTest.java deleted file mode 100644 index 3f71e96d99e..00000000000 --- a/it/it-tests/src/test/java/it/organization/OrganizationMembershipTest.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package it.organization; - -import com.sonar.orchestrator.Orchestrator; -import it.Category6Suite; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.HttpException; -import org.sonarqube.ws.client.permission.AddUserWsRequest; - -import static util.ItUtils.setServerProperty; - -public class OrganizationMembershipTest { - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - @Rule - public ExpectedException expectedException = ExpectedException.none(); - - @BeforeClass - public static void setUp() { - setServerProperty(orchestrator, "sonar.organizations.anyoneCanCreate", "true"); - } - - @AfterClass - public static void tearDown() { - setServerProperty(orchestrator, "sonar.organizations.anyoneCanCreate", null); - } - - @Test - public void new_user_should_not_become_member_of_default_organization() { - User user = tester.users().generate(); - tester.organizations().assertThatNotMemberOf(null, user); - } - - @Test - public void add_and_remove_member() { - Organization organization = tester.organizations().generate(); - User user = tester.users().generate(); - - addMembership(organization, user); - tester.organizations().assertThatMemberOf(organization, user); - - removeMembership(organization, user); - tester.organizations().assertThatNotMemberOf(organization, user); - } - - @Test - public void remove_organization_admin_member() { - Organization organization = tester.organizations().generate(); - User user = tester.users().generate(); - addMembership(organization, user); - - tester.wsClient().permissions().addUser(new AddUserWsRequest().setLogin(user.getLogin()).setPermission("admin").setOrganization(organization.getKey())); - tester.organizations().assertThatMemberOf(organization, user); - - removeMembership(organization, user); - tester.organizations().assertThatNotMemberOf(organization, user); - } - - @Test - public void fail_to_remove_organization_admin_member_when_last_admin() { - Organization organization = tester.organizations().generate(); - User user = tester.users().generate(); - addMembership(organization, user); - - tester.wsClient().permissions().addUser(new AddUserWsRequest().setLogin(user.getLogin()).setPermission("admin").setOrganization(organization.getKey())); - tester.organizations().assertThatMemberOf(organization, user); - // Admin is the creator of the organization so he was granted with admin permission - tester.wsClient().organizations().removeMember(organization.getKey(), "admin"); - - expectedException.expect(HttpException.class); - expectedException.expectMessage("The last administrator member cannot be removed"); - removeMembership(organization, user); - } - - @Test - public void remove_user_remove_its_membership() { - Organization organization = tester.organizations().generate(); - User user = tester.users().generate(); - addMembership(organization, user); - - tester.users().service().deactivate(user.getLogin()); - tester.organizations().assertThatNotMemberOf(organization, user); - } - - @Test - public void user_creating_an_organization_becomes_member_of_this_organization() { - User user = tester.users().generate(); - - Organization organization = tester.as(user.getLogin()).organizations().generate(); - - tester.organizations().assertThatMemberOf(organization, user); - } - - private void addMembership(Organization organization, User user) { - tester.organizations().addMember(organization, user); - } - - private void removeMembership(Organization organization, User user) { - tester.wsClient().organizations().removeMember(organization.getKey(), user.getLogin()); - } -} diff --git a/it/it-tests/src/test/java/it/organization/OrganizationMembershipUiTest.java b/it/it-tests/src/test/java/it/organization/OrganizationMembershipUiTest.java deleted file mode 100644 index 8f39de54af8..00000000000 --- a/it/it-tests/src/test/java/it/organization/OrganizationMembershipUiTest.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package it.organization; - -import com.sonar.orchestrator.Orchestrator; -import it.Category6Suite; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.OrganizationTester; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import pageobjects.organization.MembersPage; - -import static util.ItUtils.setServerProperty; - -public class OrganizationMembershipUiTest { - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - private User root; - - @Before - public void setUp() { - setServerProperty(orchestrator, "sonar.organizations.anyoneCanCreate", "true"); - root = tester.users().generate(); - tester.wsClient().roots().setRoot(root.getLogin()); - } - - @After - public void tearDown() { - setServerProperty(orchestrator, "sonar.organizations.anyoneCanCreate", null); - } - - @Test - public void should_display_members_page() { - Organization organization = tester.organizations().generate(); - User member1 = tester.users().generate(p -> p.setName("foo")); - addMember(organization, member1); - User member2 = tester.users().generate(p -> p.setName("bar")); - addMember(organization, member2); - User nonMember = tester.users().generate(); - - MembersPage page = tester.openBrowser().openOrganizationMembers(organization.getKey()); - page - .canNotAddMember() - .shouldHaveTotal(3); - page.getMembersByIdx(0).shouldBeNamed("admin", "Administrator"); - page.getMembersByIdx(1) - .shouldBeNamed(member2.getLogin(), member2.getName()); - page.getMembersByIdx(2) - .shouldBeNamed(member1.getLogin(), member1.getName()) - .shouldNotHaveActions(); - } - - @Test - public void search_for_members() { - Organization organization = tester.organizations().generate(); - User member1 = tester.users().generate(p -> p.setName("foo")); - addMember(organization, member1); - User member2 = tester.users().generate(p -> p.setName("sameprefixuser1")); - addMember(organization, member2); - // Created to verify that only the user part of the org is returned - User userWithSameNamePrefix = tester.users().generate(p -> p.setName(member2.getName() + "sameprefixuser2")); - - MembersPage page = tester.openBrowser().openOrganizationMembers(organization.getKey()); - page - .searchForMember("sameprefixuser") - .shouldHaveTotal(1); - page.getMembersByIdx(0).shouldBeNamed(member2.getLogin(), member2.getName()); - page - .searchForMember(member1.getLogin()) - .shouldHaveTotal(1); - page.getMembersByIdx(0).shouldBeNamed(member1.getLogin(), member1.getName()); - } - - @Test - public void admin_can_add_members() { - Organization organization = tester.organizations().generate(); - User user1 = tester.users().generate(u -> u.setLogin("foo")); - User user2 = tester.users().generate(); - - MembersPage page = tester.openBrowser() - .logIn().submitCredentials(root.getLogin()) - .openOrganizationMembers(organization.getKey()); - page - .shouldHaveTotal(1) - .addMember(user1.getLogin()) - .shouldHaveTotal(2); - page.getMembersByIdx(0).shouldBeNamed("admin", "Administrator").shouldHaveGroups(2); - page.getMembersByIdx(1).shouldBeNamed(user1.getLogin(), user1.getName()).shouldHaveGroups(1); - } - - @Test - public void admin_can_remove_members() { - Organization organization = tester.organizations().generate(); - User user1 = tester.users().generate(); - addMember(organization, user1); - User user2 = tester.users().generate(); - addMember(organization, user2); - - MembersPage page = tester.openBrowser() - .logIn().submitCredentials(root.getLogin()) - .openOrganizationMembers(organization.getKey()); - page.shouldHaveTotal(3) - .getMembersByIdx(1).removeMembership(); - page.shouldHaveTotal(2); - } - - @Test - public void admin_can_manage_groups() { - Organization organization = tester.organizations().generate(); - User user = tester.users().generate(u -> u.setLogin("foo")); - addMember(organization, user); - - MembersPage page = tester.openBrowser() - .logIn().submitCredentials(root.getLogin()) - .openOrganizationMembers(organization.getKey()); - // foo user - page.getMembersByIdx(1) - .manageGroupsOpen() - .manageGroupsSelect("owners") - .manageGroupsSave() - .shouldHaveGroups(2); - // admin user - page.getMembersByIdx(0) - .manageGroupsOpen() - .manageGroupsSelect("owners") - .manageGroupsSave() - .shouldHaveGroups(1); - } - - @Test - public void groups_count_should_be_updated_when_a_member_was_just_added() { - Organization organization = tester.organizations().generate(); - User user = tester.users().generate(); - - MembersPage page = tester.openBrowser() - .logIn().submitCredentials(root.getLogin()) - .openOrganizationMembers(organization.getKey()); - page - .addMember(user.getLogin()) - .getMembersByIdx(1) - .shouldHaveGroups(1) - .manageGroupsOpen() - .manageGroupsSelect("owners") - .manageGroupsSave() - .shouldHaveGroups(2); - } - - private OrganizationTester addMember(Organization organization, User member1) { - return tester.organizations().addMember(organization, member1); - } -} diff --git a/it/it-tests/src/test/java/it/organization/OrganizationTest.java b/it/it-tests/src/test/java/it/organization/OrganizationTest.java deleted file mode 100644 index fcde79399e2..00000000000 --- a/it/it-tests/src/test/java/it/organization/OrganizationTest.java +++ /dev/null @@ -1,373 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.organization; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildFailureException; -import it.Category6Suite; -import java.util.List; -import java.util.Locale; -import org.junit.After; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonarqube.test.OrganizationTester; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles; -import org.sonarqube.ws.Rules; -import org.sonarqube.ws.WsComponents; -import org.sonarqube.ws.WsUserGroups.Group; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.component.ComponentsService; -import org.sonarqube.ws.client.organization.CreateWsRequest; -import org.sonarqube.ws.client.organization.OrganizationService; -import org.sonarqube.ws.client.organization.SearchWsRequest; -import org.sonarqube.ws.client.organization.UpdateWsRequest; -import org.sonarqube.ws.client.permission.AddUserWsRequest; -import org.sonarqube.ws.client.permission.PermissionsService; - -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; -import static util.ItUtils.expectBadRequestError; -import static util.ItUtils.expectForbiddenError; -import static util.ItUtils.expectNotFoundError; -import static util.ItUtils.expectUnauthorizedError; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.newUserWsClient; -import static util.ItUtils.newWsClient; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperty; - -public class OrganizationTest { - - private static final String SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS = "sonar.organizations.anyoneCanCreate"; - private static final String DEFAULT_ORGANIZATION_KEY = "default-organization"; - private static final String NAME = "Foo Company"; - // private static final String KEY = "foo-company"; - private static final String DESCRIPTION = "the description of Foo company"; - private static final String URL = "https://www.foo.fr"; - private static final String AVATAR_URL = "https://www.foo.fr/corporate_logo.png"; - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - @Rule - public Tester tester = new Tester(orchestrator); - @Rule - public ExpectedException expectedException = ExpectedException.none(); - - @After - public void tearDown() { - setServerProperty(orchestrator, SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS, null); - } - - @Test - public void default_organization_should_exist() { - Organization defaultOrg = tester.organizations().service().search(SearchWsRequest.builder().build()) - .getOrganizationsList() - .stream() - .filter(Organization::getGuarded) - .findFirst() - .orElseThrow(IllegalStateException::new); - assertThat(defaultOrg.getKey()).isEqualTo(DEFAULT_ORGANIZATION_KEY); - assertThat(defaultOrg.getName()).isEqualTo("Default Organization"); - } - - @Test - public void default_organization_can_not_be_deleted() { - expectBadRequestError(() -> tester.organizations().service().delete(DEFAULT_ORGANIZATION_KEY)); - } - - @Test - public void create_update_and_delete_organizations() { - OrganizationService service = tester.organizations().service(); - - Organization org = tester.organizations().generate(o -> o - .setName(NAME) - .setDescription(DESCRIPTION) - .setUrl(URL) - .setAvatar(AVATAR_URL) - .build()); - assertThat(org.getName()).isEqualTo(NAME); - assertThat(org.getDescription()).isEqualTo(DESCRIPTION); - assertThat(org.getUrl()).isEqualTo(URL); - assertThat(org.getAvatar()).isEqualTo(AVATAR_URL); - - verifyOrganization(org, NAME, DESCRIPTION, URL, AVATAR_URL); - assertThatBuiltInQualityProfilesExist(org); - - // update by key - service.update(new UpdateWsRequest.Builder() - .setKey(org.getKey()) - .setName("new name") - .setDescription("new description") - .setUrl("new url") - .setAvatar("new avatar url") - .build()); - verifyOrganization(org, "new name", "new description", "new url", "new avatar url"); - - // remove optional fields - service.update(new UpdateWsRequest.Builder() - .setKey(org.getKey()) - .setName("new name 2") - .setDescription("") - .setUrl("") - .setAvatar("") - .build()); - verifyOrganization(org, "new name 2", null, null, null); - - // delete organization - service.delete(org.getKey()); - assertThatOrganizationDoesNotExit(org); - assertThatQualityProfilesDoNotExist(org); - - // create again - service.create(new CreateWsRequest.Builder() - .setName(NAME) - .setKey(org.getKey()) - .build()) - .getOrganization(); - verifyOrganization(org, NAME, null, null, null); - } - - @Test - public void create_generates_key_from_name() { - // create organization without key - String name = "Foo Company to keyize"; - String expectedKey = "foo-company-to-keyize"; - Organization createdOrganization = tester.organizations().service().create(new CreateWsRequest.Builder() - .setName(name) - .build()) - .getOrganization(); - assertThat(createdOrganization.getKey()).isEqualTo(expectedKey); - verifyOrganization(createdOrganization, name, null, null, null); - } - - @Test - public void anonymous_user_cannot_administrate_organization() { - Organization org = tester.organizations().generate(); - OrganizationTester anonymousTester = tester.asAnonymous().organizations(); - - expectForbiddenError(() -> anonymousTester.generate()); - expectUnauthorizedError(() -> anonymousTester.service().update(new UpdateWsRequest.Builder().setKey(org.getKey()).setName("new name").build())); - expectUnauthorizedError(() -> anonymousTester.service().delete(org.getKey())); - } - - @Test - public void logged_in_user_cannot_administrate_organization() { - Organization org = tester.organizations().generate(); - User user = tester.users().generate(); - OrganizationTester userTester = tester.as(user.getLogin()).organizations(); - - expectForbiddenError(() -> userTester.generate()); - expectForbiddenError(() -> userTester.service().update(new UpdateWsRequest.Builder().setKey(org.getKey()).setName("new name").build())); - expectForbiddenError(() -> userTester.service().delete(org.getKey())); - } - - @Test - public void logged_in_user_can_administrate_organization_if_root() { - User user = tester.users().generate(); - OrganizationTester asUser = tester.as(user.getLogin()).organizations(); - - tester.wsClient().roots().setRoot(user.getLogin()); - Organization org = asUser.generate(); - - // delete org, attempt recreate when no root anymore and ensure it can't anymore - asUser.service().delete(org.getKey()); - - tester.wsClient().roots().unsetRoot(user.getLogin()); - expectForbiddenError(() -> asUser.generate()); - } - - @Test - public void an_organization_member_can_analyze_project() { - Organization organization = tester.organizations().generate(); - User user = tester.users().generate(); - Group group = tester.groups().generate(organization); - // users.removeGroups("sonar-users"); - tester.organizations().service().addMember(organization.getKey(), user.getLogin()); - addPermissionsToUser(organization.getKey(), user.getLogin(), "provisioning", "scan"); - - runProjectAnalysis(orchestrator, "shared/xoo-sample", - "sonar.organization", organization.getKey(), - "sonar.login", user.getLogin(), - "sonar.password", user.getLogin()); - ComponentsService componentsService = newUserWsClient(orchestrator, user.getLogin(), user.getLogin()).components(); - assertThat(searchSampleProject(organization.getKey(), componentsService).getComponentsList()).hasSize(1); - } - - @Test - public void by_default_anonymous_cannot_analyse_project_on_organization() { - Organization organization = tester.organizations().generate(); - - try { - runProjectAnalysis(orchestrator, "shared/xoo-sample", - "sonar.organization", organization.getKey()); - fail(); - } catch (BuildFailureException e) { - assertThat(e.getResult().getLogs()).contains("Insufficient privileges"); - } - - ComponentsService componentsService = newAdminWsClient(orchestrator).components(); - assertThat(searchSampleProject(organization.getKey(), componentsService).getComponentsCount()).isEqualTo(0); - } - - @Test - public void by_default_anonymous_can_browse_project_on_organization() { - Organization organization = tester.organizations().generate(); - - runProjectAnalysis(orchestrator, "shared/xoo-sample", "sonar.organization", organization.getKey(), "sonar.login", "admin", "sonar.password", "admin"); - - ComponentsService componentsService = newWsClient(orchestrator).components(); - assertThat(searchSampleProject(organization.getKey(), componentsService).getComponentsList()).hasSize(1); - } - - private void addPermissionsToUser(String orgKeyAndName, String login, String permission, String... otherPermissions) { - PermissionsService permissionsService = newAdminWsClient(orchestrator).permissions(); - permissionsService.addUser(new AddUserWsRequest().setLogin(login).setOrganization(orgKeyAndName).setPermission(permission)); - for (String otherPermission : otherPermissions) { - permissionsService.addUser(new AddUserWsRequest().setLogin(login).setOrganization(orgKeyAndName).setPermission(otherPermission)); - } - } - - @Test - public void deleting_an_organization_deletes_its_projects() { - Organization organization = tester.organizations().generate(); - - runProjectAnalysis(orchestrator, "shared/xoo-sample", - "sonar.organization", organization.getKey(), - "sonar.login", "admin", - "sonar.password", "admin"); - ComponentsService componentsService = tester.wsClient().components(); - assertThat(searchSampleProject(organization.getKey(), componentsService).getComponentsList()).hasSize(1); - - tester.organizations().service().delete(organization.getKey()); - - expectNotFoundError(() -> searchSampleProject(organization.getKey(), componentsService)); - assertThatOrganizationDoesNotExit(organization); - } - - @Test - public void return_groups_belonging_to_a_user_on_an_organization() throws Exception { - Organization organization = tester.organizations().generate(); - User user = tester.users().generate(); - tester.organizations().service().addMember(organization.getKey(), user.getLogin()); - - Group group = tester.groups().generate(organization); - tester.groups().addMemberToGroups(organization, user.getLogin(), group.getName()); - - List<WsUsers.GroupsWsResponse.Group> memberOfGroups = tester.groups().getGroupsOfUser(organization, user.getLogin()); - - assertThat(memberOfGroups).extracting(WsUsers.GroupsWsResponse.Group::getName) - .containsExactlyInAnyOrder(group.getName(), "Members"); - } - - @Test - public void anonymous_cannot_create_organizations_even_if_anyone_is_allowed_to() { - setServerProperty(orchestrator, SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS, "true"); - - expectUnauthorizedError(() -> tester.asAnonymous().organizations().generate()); - } - - @Test - public void logged_in_user_can_create_organizations_if_anyone_is_allowed_to() { - setServerProperty(orchestrator, SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS, "true"); - User user = tester.users().generate(); - - Organization organization = tester.as(user.getLogin()).organizations().generate(); - - assertThat(organization.getName()).isNotEmpty(); - assertThat(organization.getKey()).isNotEmpty(); - assertThat(organization.getGuarded()).isFalse(); - - List<Organization> reloadedOrgs = tester.organizations().service().search(SearchWsRequest.builder().build()).getOrganizationsList(); - assertThat(reloadedOrgs) - .filteredOn(o -> o.getKey().equals(organization.getKey())) - .hasSize(1); - } - - private WsComponents.SearchWsResponse searchSampleProject(String organizationKey, ComponentsService componentsService) { - return componentsService - .search(new org.sonarqube.ws.client.component.SearchWsRequest() - .setOrganization(organizationKey) - .setQualifiers(singletonList("TRK")) - .setQuery("sample")); - } - - private void assertThatOrganizationDoesNotExit(Organization org) { - SearchWsRequest request = new SearchWsRequest.Builder().setOrganizations(org.getKey()).build(); - assertThat(tester.organizations().service().search(request).getOrganizationsList()).isEmpty(); - } - - private void verifyOrganization(Organization createdOrganization, String name, String description, String url, - String avatarUrl) { - SearchWsRequest request = new SearchWsRequest.Builder().setOrganizations(createdOrganization.getKey()).build(); - List<Organization> result = tester.organizations().service().search(request).getOrganizationsList(); - assertThat(result).hasSize(1); - Organization searchedOrganization = result.get(0); - assertThat(searchedOrganization.getKey()).isEqualTo(createdOrganization.getKey()); - assertThat(searchedOrganization.getName()).isEqualTo(name); - if (description == null) { - assertThat(searchedOrganization.hasDescription()).isFalse(); - } else { - assertThat(searchedOrganization.getDescription()).isEqualTo(description); - } - if (url == null) { - assertThat(searchedOrganization.hasUrl()).isFalse(); - } else { - assertThat(searchedOrganization.getUrl()).isEqualTo(url); - } - if (avatarUrl == null) { - assertThat(searchedOrganization.hasAvatar()).isFalse(); - } else { - assertThat(searchedOrganization.getAvatar()).isEqualTo(avatarUrl); - } - } - - private void assertThatBuiltInQualityProfilesExist(Organization org) { - org.sonarqube.ws.client.qualityprofile.SearchWsRequest profilesRequest = new org.sonarqube.ws.client.qualityprofile.SearchWsRequest() - .setOrganizationKey(org.getKey()); - QualityProfiles.SearchWsResponse response = tester.wsClient().qualityProfiles().search(profilesRequest); - assertThat(response.getProfilesCount()).isGreaterThan(0); - - response.getProfilesList().forEach(p -> { - assertThat(p.getIsInherited()).isFalse(); - assertThat(p.getProjectCount()).isEqualTo(0); - assertThat(p.getIsBuiltIn()).isTrue(); - if (p.getName().toLowerCase(Locale.ENGLISH).contains("empty")) { - assertThat(p.getActiveRuleCount()).isEqualTo(0); - } else { - assertThat(p.getActiveRuleCount()).isGreaterThan(0); - // that allows to check the Elasticsearch index of active rules - Rules.SearchResponse activeRulesResponse = tester.wsClient().rules().search(new org.sonarqube.ws.client.rule.SearchWsRequest().setActivation(true).setQProfile(p.getKey())); - assertThat(activeRulesResponse.getTotal()).as("profile " + p.getName()).isEqualTo(p.getActiveRuleCount()); - assertThat(activeRulesResponse.getRulesCount()).isEqualTo((int) p.getActiveRuleCount()); - } - }); - } - - private void assertThatQualityProfilesDoNotExist(Organization org) { - expectNotFoundError(() -> tester.wsClient().qualityProfiles().search( - new org.sonarqube.ws.client.qualityprofile.SearchWsRequest().setOrganizationKey(org.getKey()))); - } -} diff --git a/it/it-tests/src/test/java/it/organization/PersonalOrganizationTest.java b/it/it-tests/src/test/java/it/organization/PersonalOrganizationTest.java deleted file mode 100644 index 76bf2f9eec3..00000000000 --- a/it/it-tests/src/test/java/it/organization/PersonalOrganizationTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package it.organization; - -import com.sonar.orchestrator.Orchestrator; -import it.Category6Suite; -import java.util.List; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.client.organization.SearchWsRequest; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.setServerProperty; - -public class PersonalOrganizationTest { - - private static final String SETTING_CREATE_PERSONAL_ORG = "sonar.organizations.createPersonalOrg"; - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - @Before - public void setUp() { - setServerProperty(orchestrator, SETTING_CREATE_PERSONAL_ORG, "true"); - } - - @After - public void tearDown() { - setServerProperty(orchestrator, SETTING_CREATE_PERSONAL_ORG, null); - } - - @Test - public void personal_organizations_are_created_for_new_users() { - WsUsers.CreateWsResponse.User user = tester.users().generate(); - - List<Organizations.Organization> existing = tester.wsClient().organizations().search(SearchWsRequest.builder().build()).getOrganizationsList(); - assertThat(existing) - .filteredOn(o -> o.getGuarded()) - .filteredOn(o -> o.getKey().equals(user.getLogin())) - .hasSize(1) - .matches(l -> l.get(0).getName().equals(user.getName())); - - tester.organizations().assertThatMemberOf(existing.get(0), user); - } -} diff --git a/it/it-tests/src/test/java/it/organization/RootUserOnOrganizationTest.java b/it/it-tests/src/test/java/it/organization/RootUserOnOrganizationTest.java deleted file mode 100644 index 75c66ba02df..00000000000 --- a/it/it-tests/src/test/java/it/organization/RootUserOnOrganizationTest.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.organization; - -import com.sonar.orchestrator.Orchestrator; -import it.Category6Suite; -import java.sql.SQLException; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Session; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.WsRoot; -import org.sonarqube.ws.WsUsers; -import util.user.UserRule; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.expectBadRequestError; -import static util.ItUtils.expectForbiddenError; - -public class RootUserOnOrganizationTest { - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - @Test - public void system_administrator_is_flagged_as_root_when_he_enables_organization_support() { - assertThat(tester.wsClient().roots().search().getRootsList()) - .extracting(WsRoot.Root::getLogin) - .containsExactly(UserRule.ADMIN_LOGIN); - } - - @Test - public void a_root_can_flag_other_user_as_root() { - WsUsers.CreateWsResponse.User user = tester.users().generate(); - tester.wsClient().roots().setRoot(user.getLogin()); - - assertThat(tester.wsClient().roots().search().getRootsList()) - .extracting(WsRoot.Root::getLogin) - .containsExactlyInAnyOrder(UserRule.ADMIN_LOGIN, user.getLogin()); - } - - @Test - public void last_root_can_not_be_unset_root() throws SQLException { - expectBadRequestError(() -> tester.wsClient().roots().unsetRoot(UserRule.ADMIN_LOGIN)); - } - - @Test - public void root_can_be_set_and_unset_via_web_services() { - WsUsers.CreateWsResponse.User user1 = tester.users().generate(); - WsUsers.CreateWsResponse.User user2 = tester.users().generate(); - Session user1Session = tester.as(user1.getLogin()); - Session user2Session = tester.as(user2.getLogin()); - - // non root can not set or unset root another user not itself - expectForbiddenError(() -> user1Session.wsClient().roots().setRoot(user2.getLogin())); - expectForbiddenError(() -> user1Session.wsClient().roots().setRoot(user1.getLogin())); - expectForbiddenError(() -> user1Session.wsClient().roots().unsetRoot(user1.getLogin())); - expectForbiddenError(() -> user2Session.wsClient().roots().unsetRoot(user1.getLogin())); - expectForbiddenError(() -> user2Session.wsClient().roots().unsetRoot(user2.getLogin())); - // admin (the first root) sets root1 as root - tester.wsClient().roots().setRoot(user1.getLogin()); - // root1 can set root root2 - user1Session.wsClient().roots().setRoot(user2.getLogin()); - // root2 can unset root root1 - user2Session.wsClient().roots().unsetRoot(user1.getLogin()); - // root2 can unset root itself as it's not the last root - user2Session.wsClient().roots().unsetRoot(user2.getLogin()); - } - -} diff --git a/it/it-tests/src/test/java/it/organization/RootUserTest.java b/it/it-tests/src/test/java/it/organization/RootUserTest.java deleted file mode 100644 index c8bdc4c8b0b..00000000000 --- a/it/it-tests/src/test/java/it/organization/RootUserTest.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.organization; - -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; - -import static util.ItUtils.expectForbiddenError; - -public class RootUserTest { - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator).disableOrganizations(); - - @Test - public void nobody_is_root_by_default_when_organizations_are_disabled() { - // anonymous - expectForbiddenError(() -> tester.wsClient().roots().search()); - - // admin - expectForbiddenError(() -> tester.wsClient().roots().search()); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/PluginsTest.java b/it/it-tests/src/test/java/it/plugins/PluginsTest.java deleted file mode 100644 index 7757d130d26..00000000000 --- a/it/it-tests/src/test/java/it/plugins/PluginsTest.java +++ /dev/null @@ -1,202 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins; - -import com.google.common.collect.Sets; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.OrchestratorBuilder; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.plugins.checks.AbapCheck; -import it.plugins.checks.CCheck; -import it.plugins.checks.Check; -import it.plugins.checks.CobolCheck; -import it.plugins.checks.CppCheck; -import it.plugins.checks.FlexCheck; -import it.plugins.checks.GroovyCheck; -import it.plugins.checks.JavaCheck; -import it.plugins.checks.JavascriptCheck; -import it.plugins.checks.PhpCheck; -import it.plugins.checks.PliCheck; -import it.plugins.checks.PythonCheck; -import it.plugins.checks.RpgCheck; -import it.plugins.checks.SwiftCheck; -import it.plugins.checks.Validation; -import it.plugins.checks.VbCheck; -import it.plugins.checks.WebCheck; -import java.io.File; -import java.util.Arrays; -import java.util.List; -import java.util.Set; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ErrorCollector; - -import static com.sonar.orchestrator.locator.FileLocation.byWildcardMavenFilename; -import static org.assertj.core.api.Assertions.fail; - -/** - * Verify that latest releases of the plugins available in update center - * are correctly supported. - */ -public class PluginsTest { - - private static final Set<String> LICENSED_PLUGINS = Sets.newHashSet( - "abap", "cobol", "cpp", "objc", "pli", "plsql", "rpg", - "swift", "vb", "vbnet"); - - private static final List<Check> CHECKS = Arrays.asList( - new AbapCheck(), - new CCheck(), new CppCheck(), - new CobolCheck(), - // FIXME css plugin is temporary disabled as for the moment incompatible with the web plugin - // new CssCheck(), - new FlexCheck(), - new GroovyCheck(), - new JavaCheck(), - new JavascriptCheck(), - new PhpCheck(), - new PliCheck(), - new PythonCheck(), - new RpgCheck(), - new SwiftCheck(), - new VbCheck(), - new WebCheck()); - - private static Orchestrator ORCHESTRATOR; - - @BeforeClass - public static void startServer() { - OrchestratorBuilder builder = Orchestrator.builderEnv() - .setZipFile(byWildcardMavenFilename(new File("../../sonar-application/target"), "sonar*.zip").getFile()); - - // FIXME JSON plugin is temporarily disabled as for the moment the github repo doesn't exist anymore installPlugin(builder, "JSON");; - installPlugin(builder, "Sonargraph"); - installPlugin(builder, "abap"); - // FIXME AEM Rules plugin is disabled because it is no more compatible with SonarQube 6.4 (ClassNotFoundException: com.google.common.base.Functions) installPlugin(builder, "aemrules"); - installPlugin(builder, "android"); - installPlugin(builder, "authbitbucket"); - installPlugin(builder, "authgithub"); - installPlugin(builder, "checkstyle"); - installPlugin(builder, "clover"); - installPlugin(builder, "cobol"); - installPlugin(builder, "codecrackercsharp"); - installPlugin(builder, "cpp"); - installPlugin(builder, "csharp"); - // FIXME css plugin is temporarily disabled as for the moment incompatible with the web plugin installPlugin(builder, "css"); - // FIXME erlang plugin is temporarily disabled because it is not compatible with SQ 6.4 until usage of Colorizer API is removed - // FIXME findbugs plugin is temporarily disabled because it is not compatible with SQ 6.4 until usage of Colorizer API is removed - installPlugin(builder, "flex"); - installPlugin(builder, "github"); - installPlugin(builder, "googleanalytics"); - installPlugin(builder, "groovy"); - installPlugin(builder, "java"); - // FIXME javaProperties plugin is temporarily disabled as for the moment the github repo doesn't exist anymore installPlugin(builder, "javaProperties"); - installPlugin(builder, "javascript"); - installPlugin(builder, "jdepend"); - installPlugin(builder, "l10nde"); - installPlugin(builder, "l10nel"); - installPlugin(builder, "l10nes"); - installPlugin(builder, "l10nfr"); - installPlugin(builder, "l10nit"); - installPlugin(builder, "l10nja"); - installPlugin(builder, "l10nko"); - installPlugin(builder, "l10npt"); - installPlugin(builder, "l10nru"); - installPlugin(builder, "l10nzh"); - installPlugin(builder, "ldap"); - installPlugin(builder, "lua"); - installPlugin(builder, "php"); - installPlugin(builder, "pitest"); - installPlugin(builder, "pli"); - installPlugin(builder, "plsql"); - installPlugin(builder, "pmd"); - // FIXME puppet plugin is temporarily disabled because it is not compatible with SQ 6.4 until usage of Colorizer API is removed - installPlugin(builder, "python"); - installPlugin(builder, "rci"); - installPlugin(builder, "rpg"); - installPlugin(builder, "scmclearcase"); - installPlugin(builder, "scmcvs"); - installPlugin(builder, "scmgit"); - installPlugin(builder, "scmjazzrtc"); - installPlugin(builder, "scmmercurial"); - installPlugin(builder, "scmperforce"); - installPlugin(builder, "scmsvn"); - installPlugin(builder, "scmtfvc"); - installPlugin(builder, "softvis3d"); - installPlugin(builder, "sonargraphintegration"); - installPlugin(builder, "status"); - installPlugin(builder, "swift"); - installPlugin(builder, "vb"); - installPlugin(builder, "vbnet"); - installPlugin(builder, "web"); - installPlugin(builder, "xanitizer"); - installPlugin(builder, "xml"); - - activateLicenses(builder); - ORCHESTRATOR = builder.build(); - ORCHESTRATOR.start(); - } - - @Rule - public ErrorCollector errorCollector = new ErrorCollector(); - - @Test - public void analysis_of_project_with_all_supported_languages() { - SonarScanner analysis = newAnalysis(); - BuildResult result = ORCHESTRATOR.executeBuildQuietly(analysis); - if (result.getLastStatus() != 0) { - fail(result.getLogs()); - } - for (Check check : CHECKS) { - System.out.println(check.getClass().getSimpleName() + "..."); - check.validate(new Validation(ORCHESTRATOR, errorCollector)); - } - } - - @Test - public void preview_analysis_of_project_with_all_supported_languages() { - SonarScanner analysis = newAnalysis(); - analysis.setProperty("sonar.analysis.mode", "issues"); - BuildResult result = ORCHESTRATOR.executeBuildQuietly(analysis); - if (result.getLastStatus() != 0) { - fail(result.getLogs()); - } - } - - private static SonarScanner newAnalysis() { - SonarScanner analysis = SonarScanner.create(Project.basedir()); - - // required to bypass usage of build-wrapper - analysis.setProperties("sonar.cfamily.build-wrapper-output.bypass", "true"); - return analysis; - } - - private static void activateLicenses(OrchestratorBuilder builder) { - LICENSED_PLUGINS.forEach(builder::activateLicense); - } - - private static void installPlugin(OrchestratorBuilder builder, String pluginKey) { - builder.setOrchestratorProperty(pluginKey + "Version", "LATEST_RELEASE"); - builder.addPlugin(pluginKey); - } - -} diff --git a/it/it-tests/src/test/java/it/plugins/Project.java b/it/it-tests/src/test/java/it/plugins/Project.java deleted file mode 100644 index c1c950f3fc0..00000000000 --- a/it/it-tests/src/test/java/it/plugins/Project.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins; - -import com.google.common.base.Function; -import java.io.File; -import java.util.Collection; -import javax.annotation.Nullable; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.FilenameUtils; -import org.apache.commons.lang.StringUtils; -import util.ItUtils; - -import static com.google.common.collect.FluentIterable.from; - -public class Project { - - public static File basedir() { - return ItUtils.projectDir("plugins/project"); - } - - public static Iterable<String> allFilesInDir(final String dirPath) { - Collection<File> files = FileUtils.listFiles(new File(basedir(), dirPath), null, true); - return from(files).transform(new Function<File, String>() { - @Nullable - public String apply(File file) { - // transforms /absolute/path/to/src/java/Foo.java to src/java/Foo.java - String filePath = FilenameUtils.separatorsToUnix(file.getPath()); - return dirPath + StringUtils.substringAfterLast(filePath, dirPath); - } - }); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/VersionPluginTest.java b/it/it-tests/src/test/java/it/plugins/VersionPluginTest.java deleted file mode 100644 index aecf8658c7b..00000000000 --- a/it/it-tests/src/test/java/it/plugins/VersionPluginTest.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins; - -import com.sonar.orchestrator.Orchestrator; -import it.Category3Suite; -import java.io.IOException; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsClient; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; - -public class VersionPluginTest { - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - private static WsClient wsClient; - - @BeforeClass - public static void init_ws_cient() { - wsClient = newAdminWsClient(orchestrator); - } - - @Before - public void deleteData() throws IOException { - orchestrator.resetData(); - } - - @Test - public void check_functional_version() { - assertThat(wsClient.wsConnector().call(new GetRequest("api/plugins/installed")).content()).contains("1.0.2 (build 42)"); - - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/AbapCheck.java b/it/it-tests/src/test/java/it/plugins/checks/AbapCheck.java deleted file mode 100644 index b734cc84bd5..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/AbapCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class AbapCheck implements Check { - - public static final String DIR = "src/abap"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - validation.mustHaveComplexity(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/CCheck.java b/it/it-tests/src/test/java/it/plugins/checks/CCheck.java deleted file mode 100644 index 7cab14f8067..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/CCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class CCheck implements Check { - - public static final String DIR = "src/c"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - validation.mustHaveComplexity(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/Check.java b/it/it-tests/src/test/java/it/plugins/checks/Check.java deleted file mode 100644 index 8427692fbd8..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/Check.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public interface Check { - void validate(Validation validation); -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/CobolCheck.java b/it/it-tests/src/test/java/it/plugins/checks/CobolCheck.java deleted file mode 100644 index bcd77d8ecad..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/CobolCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class CobolCheck implements Check { - - public static final String DIR = "src/cobol"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - validation.mustHaveComplexity(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/CppCheck.java b/it/it-tests/src/test/java/it/plugins/checks/CppCheck.java deleted file mode 100644 index 5628c900907..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/CppCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class CppCheck implements Check { - - public static final String DIR = "src/cpp"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - validation.mustHaveComplexity(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/CssCheck.java b/it/it-tests/src/test/java/it/plugins/checks/CssCheck.java deleted file mode 100644 index 5902e593042..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/CssCheck.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class CssCheck implements Check { - - public static final String DIR = "src/css"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/FlexCheck.java b/it/it-tests/src/test/java/it/plugins/checks/FlexCheck.java deleted file mode 100644 index aed16f64262..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/FlexCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class FlexCheck implements Check { - - public static final String DIR = "src/flex"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - validation.mustHaveComplexity(DIR); - validation.mustHaveIssues(DIR + "/HasIssues.as"); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/GroovyCheck.java b/it/it-tests/src/test/java/it/plugins/checks/GroovyCheck.java deleted file mode 100644 index 3b26ae89537..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/GroovyCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class GroovyCheck implements Check { - - public static final String DIR = "src/groovy"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - validation.mustHaveComplexity(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/JavaCheck.java b/it/it-tests/src/test/java/it/plugins/checks/JavaCheck.java deleted file mode 100644 index 7c9cb90ec8c..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/JavaCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class JavaCheck implements Check { - - public static final String DIR = "src/java"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - validation.mustHaveComplexity(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/JavascriptCheck.java b/it/it-tests/src/test/java/it/plugins/checks/JavascriptCheck.java deleted file mode 100644 index 0ed806a4b16..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/JavascriptCheck.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class JavascriptCheck implements Check { - - public static final String SRC_DIR = "src/js"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(SRC_DIR); - validation.mustHaveSize(SRC_DIR); - validation.mustHaveComments(SRC_DIR); - validation.mustHaveComplexity(SRC_DIR); - validation.mustHaveIssues(SRC_DIR + "/HasIssues.js"); - validation.mustHaveMeasuresGreaterThan(SRC_DIR + "/Person.js", 0, "coverage"); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/PhpCheck.java b/it/it-tests/src/test/java/it/plugins/checks/PhpCheck.java deleted file mode 100644 index c9593b1b70f..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/PhpCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class PhpCheck implements Check { - - public static final String DIR = "src/php"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - validation.mustHaveComplexity(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/PliCheck.java b/it/it-tests/src/test/java/it/plugins/checks/PliCheck.java deleted file mode 100644 index 464faadbafb..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/PliCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class PliCheck implements Check { - - public static final String DIR = "src/pli"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - validation.mustHaveComplexity(DIR); - validation.mustHaveIssues(DIR + "/hasissues.pli"); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/PythonCheck.java b/it/it-tests/src/test/java/it/plugins/checks/PythonCheck.java deleted file mode 100644 index 7b316faac25..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/PythonCheck.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -import it.plugins.Project; - -public class PythonCheck implements Check { - - public static final String DIR = "src/python"; - - @Override - public void validate(Validation validation) { - // all files have size measures, even empty __init__.py - validation.mustHaveSize(DIR); - - for (String filePath : Project.allFilesInDir(DIR)) { - if (filePath.endsWith("__init__.py")) { - validation.mustHaveSource(filePath); - } else { - validation.mustHaveNonEmptySource(filePath); - validation.mustHaveComments(filePath); - validation.mustHaveComplexity(filePath); - } - } - - validation.mustHaveIssues(DIR + "/hasissues.py"); - } - -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/RpgCheck.java b/it/it-tests/src/test/java/it/plugins/checks/RpgCheck.java deleted file mode 100644 index 790d3858d1b..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/RpgCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class RpgCheck implements Check { - - public static final String DIR = "src/rpg"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - validation.mustHaveComplexity(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/SwiftCheck.java b/it/it-tests/src/test/java/it/plugins/checks/SwiftCheck.java deleted file mode 100644 index 8a4329c5962..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/SwiftCheck.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class SwiftCheck implements Check { - - public static final String DIR = "src/swift"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComplexity(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/Validation.java b/it/it-tests/src/test/java/it/plugins/checks/Validation.java deleted file mode 100644 index de214a9e65e..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/Validation.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -import com.google.common.base.Joiner; -import com.google.gson.Gson; -import com.sonar.orchestrator.Orchestrator; -import it.plugins.Project; -import java.io.File; -import java.util.List; -import java.util.Map; -import org.hamcrest.Matchers; -import org.junit.rules.ErrorCollector; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsResponse; - -import static java.util.Arrays.asList; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; -import static util.ItUtils.newAdminWsClient; - -/** - * - * TODO must have syntax highlighting - * TODO must have duplications - * TODO must have issues with debt - * TODO must have tests - * TODO must have coverage - */ -public class Validation { - - private final Orchestrator orchestrator; - private final ErrorCollector errorCollector; - - public Validation(Orchestrator orchestrator, ErrorCollector errorCollector) { - this.orchestrator = orchestrator; - this.errorCollector = errorCollector; - } - - public void mustHaveIssues(String path) { - // TODO use the WS api/issues - mustHaveMeasuresGreaterThan(path, 1, "violations"); - } - - public void mustHaveComments(String path) { - mustHaveMeasuresGreaterThan(path, 0, "comment_lines", "comment_lines_density"); - } - - public void mustHaveComplexity(String path) { - mustHaveMeasuresGreaterThan(path, 0, "complexity"); - } - - public void mustHaveSize(String path) { - mustHaveMeasuresGreaterThan(path, 0, "ncloc", "lines"); - } - - public void mustHaveMeasuresGreaterThan(String path, int min, String... metricKeys) { - for (String filePath : toFiles(path)) { - fileMustHaveMeasures(filePath, metricKeys, min); - } - } - - private void fileMustHaveMeasures(String filePath, String[] metricKeys, int min) { - String componentKey = filePathToKey(filePath); - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, componentKey, metricKeys); - errorCollector.checkThat("Measures " + Joiner.on(",").join(metricKeys) + " are set on file " + filePath, componentKey, notNullValue()); - if (!measures.isEmpty()) { - for (String metricKey : metricKeys) { - Double measure = measures.get(metricKey); - errorCollector.checkThat("Measure " + metricKey + " is set on file " + filePath, measure, notNullValue()); - if (measure != null) { - errorCollector.checkThat("Measure " + metricKey + " is positive on file " + filePath, measure.intValue(), Matchers.greaterThanOrEqualTo(min)); - } - } - } - } - - /** - * Checks that each source file of the given directory is uploaded to server. - * @param path relative path to source directory or source file - */ - public void mustHaveNonEmptySource(String path) { - mustHaveSourceWithAtLeast(path, 1); - } - - public void mustHaveSource(String path) { - mustHaveSourceWithAtLeast(path, 0); - } - - private void mustHaveSourceWithAtLeast(String path, int minLines) { - for (String filePath : toFiles(path)) { - WsResponse response = newAdminWsClient(orchestrator).wsConnector().call(new GetRequest("api/sources/lines").setParam("key", filePathToKey(filePath))); - errorCollector.checkThat("Source is set on file " + filePath, response.isSuccessful(), is(true)); - Sources source = Sources.parse(response.content()); - if (source != null) { - errorCollector.checkThat("Source is empty on file " + filePath, source.getSources().size(), Matchers.greaterThanOrEqualTo(minLines)); - } - } - } - - private Iterable<String> toFiles(String path) { - File fileOrDir = new File(Project.basedir(), path); - if (!fileOrDir.exists()) { - throw new IllegalArgumentException("Path does not exist: " + fileOrDir); - } - if (fileOrDir.isDirectory()) { - return Project.allFilesInDir(path); - } - return asList(path); - } - - private String filePathToKey(String filePath) { - return "all-langs:" + filePath; - } - - public static class Sources { - - private List<Source> sources; - - private Sources(List<Source> sources) { - this.sources = sources; - } - - public List<Source> getSources() { - return sources; - } - - public static Sources parse(String json) { - Gson gson = new Gson(); - return gson.fromJson(json, Sources.class); - } - - public static class Source { - private final String line; - - private Source(String line) { - this.line = line; - } - - public String getLine() { - return line; - } - } - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/VbCheck.java b/it/it-tests/src/test/java/it/plugins/checks/VbCheck.java deleted file mode 100644 index 6cd1ca7669b..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/VbCheck.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class VbCheck implements Check { - - public static final String DIR = "src/vb"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - validation.mustHaveComplexity(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/plugins/checks/WebCheck.java b/it/it-tests/src/test/java/it/plugins/checks/WebCheck.java deleted file mode 100644 index b0cf9550a43..00000000000 --- a/it/it-tests/src/test/java/it/plugins/checks/WebCheck.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.plugins.checks; - -public class WebCheck implements Check { - - public static final String DIR = "src/web"; - - @Override - public void validate(Validation validation) { - validation.mustHaveNonEmptySource(DIR); - validation.mustHaveIssues(DIR); - validation.mustHaveSize(DIR); - validation.mustHaveComments(DIR); - } -} diff --git a/it/it-tests/src/test/java/it/previewAnalysis/ToDoTest.java b/it/it-tests/src/test/java/it/previewAnalysis/ToDoTest.java deleted file mode 100644 index ce3d94d6d55..00000000000 --- a/it/it-tests/src/test/java/it/previewAnalysis/ToDoTest.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.previewAnalysis; - -public class ToDoTest { -} diff --git a/it/it-tests/src/test/java/it/projectAdministration/BackgroundTasksTest.java b/it/it-tests/src/test/java/it/projectAdministration/BackgroundTasksTest.java deleted file mode 100644 index 33651550e75..00000000000 --- a/it/it-tests/src/test/java/it/projectAdministration/BackgroundTasksTest.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectAdministration; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import pageobjects.BackgroundTaskItem; -import pageobjects.BackgroundTasksPage; -import pageobjects.Navigation; -import util.user.UserRule; - -import static com.codeborne.selenide.CollectionCondition.sizeGreaterThan; -import static util.ItUtils.projectDir; -import static util.selenium.Selenese.runSelenese; - -public class BackgroundTasksTest { - - private static final String ADMIN_USER_LOGIN = "admin-user"; - - @ClassRule - public static Orchestrator ORCHESTRATOR = Category1Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(ORCHESTRATOR); - - private Navigation nav = Navigation.create(ORCHESTRATOR); - - @BeforeClass - public static void beforeClass() { - executeBuild("test-project", "Test Project"); - executeBuild("test-project-2", "Another Test Project"); - } - - @Before - public void before() { - userRule.createAdminUser(ADMIN_USER_LOGIN, ADMIN_USER_LOGIN); - } - - @After - public void deleteAdminUser() { - userRule.resetUsers(); - } - - @Test - public void should_not_display_failing_and_search_and_filter_elements_on_project_level_page() throws Exception { - runSelenese(ORCHESTRATOR, "/projectAdministration/BackgroundTasksTest/should_not_display_failing_and_search_and_filter_elements_on_project_level_page.html"); - } - - @Test - public void display_scanner_context() { - nav.logIn().submitCredentials(ADMIN_USER_LOGIN); - BackgroundTasksPage page = nav.openBackgroundTasksPage(); - - page.getTasks().shouldHave(sizeGreaterThan(0)); - BackgroundTaskItem task = page.getTasksAsItems().get(0); - task.openActions() - .openScannerContext() - .assertScannerContextContains("SonarQube plugins:") - .assertScannerContextContains("Global properties:"); - } - - @Test - public void display_error_stacktrace() { - Navigation nav = Navigation.create(ORCHESTRATOR); - executeBuild("test-project", "Test Project", "2010-01-01"); - - nav.logIn().submitCredentials(ADMIN_USER_LOGIN); - BackgroundTasksPage page = nav.openBackgroundTasksPage(); - - page.getTasks().shouldHave(sizeGreaterThan(0)); - BackgroundTaskItem task = page.getTasksAsItems().get(0); - task.openActions() - .openErrorStacktrace() - .assertErrorStacktraceContains("Date of analysis cannot be older than the date of the last known analysis"); - } - - private static void executeBuild(String projectKey, String projectName) { - ORCHESTRATOR.executeBuild( - SonarScanner.create(projectDir("shared/xoo-sample")) - .setProjectKey(projectKey) - .setProjectName(projectName)); - } - - private static void executeBuild(String projectKey, String projectName, String date) { - ORCHESTRATOR.executeBuild( - SonarScanner.create(projectDir("shared/xoo-sample")) - .setProjectKey(projectKey) - .setProjectName(projectName) - .setProperty("sonar.projectDate", date)); - } -} diff --git a/it/it-tests/src/test/java/it/projectAdministration/BulkDeletionTest.java b/it/it-tests/src/test/java/it/projectAdministration/BulkDeletionTest.java deleted file mode 100644 index 602eeaab829..00000000000 --- a/it/it-tests/src/test/java/it/projectAdministration/BulkDeletionTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectAdministration; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import util.user.UserRule; - -import static util.ItUtils.projectDir; -import static util.selenium.Selenese.runSelenese; - -public class BulkDeletionTest { - - private static final String ADMIN_USER_LOGIN = "admin-user"; - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - @Before - public void deleteData() { - orchestrator.resetData(); - userRule.createAdminUser(ADMIN_USER_LOGIN, ADMIN_USER_LOGIN); - } - - @After - public void deleteAdminUser() { - userRule.resetUsers(); - } - - /** - * SONAR-2614, SONAR-3805 - */ - @Test - public void test_bulk_deletion_on_selected_projects() throws Exception { - // we must have several projects to test the bulk deletion - executeBuild("cameleon-1", "Sample-Project"); - executeBuild("cameleon-2", "Foo-Application"); - executeBuild("cameleon-3", "Bar-Sonar-Plugin"); - - runSelenese(orchestrator, "/projectAdministration/BulkDeletionTest/bulk-delete-filter-projects.html"); - } - - private void executeBuild(String projectKey, String projectName) { - orchestrator.executeBuild( - SonarScanner.create(projectDir("shared/xoo-sample")) - .setProjectKey(projectKey) - .setProjectName(projectName)); - } - -} diff --git a/it/it-tests/src/test/java/it/projectAdministration/ProjectAdministrationTest.java b/it/it-tests/src/test/java/it/projectAdministration/ProjectAdministrationTest.java deleted file mode 100644 index 716463c2fde..00000000000 --- a/it/it-tests/src/test/java/it/projectAdministration/ProjectAdministrationTest.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectAdministration; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import java.io.UnsupportedEncodingException; -import java.sql.SQLException; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import javax.annotation.Nullable; -import org.apache.commons.lang.time.DateFormatUtils; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonar.wsclient.SonarClient; -import org.sonar.wsclient.base.HttpException; -import org.sonar.wsclient.user.UserParameters; -import pageobjects.Navigation; -import pageobjects.settings.SettingsPage; -import util.user.UserRule; - -import static org.apache.commons.lang.time.DateUtils.addDays; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getComponent; -import static util.ItUtils.projectDir; -import static util.selenium.Selenese.runSelenese; - -public class ProjectAdministrationTest { - private static final String DELETE_WS_ENDPOINT = "api/projects/bulk_delete"; - - // take some day in the past - private static final String ANALYSIS_DATE = DateFormatUtils.ISO_DATE_FORMAT.format(addDays(new Date(), -1)); - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Rule - public ExpectedException expectedException = ExpectedException.none(); - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - private Navigation nav = Navigation.create(orchestrator); - - private static final String PROJECT_KEY = "sample"; - private static final String FILE_KEY = "sample:src/main/xoo/sample/Sample.xoo"; - private String adminUser; - - @Before - public void deleteAnalysisData() throws SQLException { - orchestrator.resetData(); - adminUser = userRule.createAdminUser(); - } - - @Test - public void delete_project_by_web_service() { - scanSampleWithDate(ANALYSIS_DATE); - - assertThat(getComponent(orchestrator, PROJECT_KEY)).isNotNull(); - assertThat(getComponent(orchestrator, FILE_KEY)).isNotNull(); - - orchestrator.getServer().adminWsClient().post(DELETE_WS_ENDPOINT, "keys", PROJECT_KEY); - - assertThat(getComponent(orchestrator, PROJECT_KEY)).isNull(); - assertThat(getComponent(orchestrator, FILE_KEY)).isNull(); - } - - @Test - public void fail_when_trying_to_delete_a_file() { - expectedException.expect(HttpException.class); - scanSampleWithDate(ANALYSIS_DATE); - - assertThat(getComponent(orchestrator, PROJECT_KEY)).isNotNull(); - assertThat(getComponent(orchestrator, FILE_KEY)).isNotNull(); - - // it's forbidden to delete only some files - orchestrator.getServer().adminWsClient().post(DELETE_WS_ENDPOINT, "keys", FILE_KEY); - } - - @Test - public void fail_when_insufficient_privilege() { - expectedException.expect(HttpException.class); - scanSampleWithDate(ANALYSIS_DATE); - - assertThat(getComponent(orchestrator, PROJECT_KEY)).isNotNull(); - - // use wsClient() instead of adminWsClient() - orchestrator.getServer().wsClient().post(DELETE_WS_ENDPOINT, "keys", PROJECT_KEY); - } - - /** - * Test updated for SONAR-3570 and SONAR-5923 - */ - @Test - public void project_deletion() { - String projectAdminUser = "project-deletion-with-admin-permission-on-project"; - SonarClient wsClient = orchestrator.getServer().adminWsClient(); - try { - SonarScanner scan = SonarScanner.create(projectDir("shared/xoo-sample")); - orchestrator.executeBuild(scan); - - // Create user having admin permission on previously analysed project - wsClient.userClient().create( - UserParameters.create().login(projectAdminUser).name(projectAdminUser).password("password").passwordConfirmation("password")); - - wsClient.post("api/permissions/add_user", - "login", projectAdminUser, - "projectKey", "sample", - "permission", "admin"); - - runSelenese(orchestrator, "/projectAdministration/ProjectAdministrationTest/project-deletion/project-deletion.html"); - } finally { - wsClient.userClient().deactivate(projectAdminUser); - } - } - - // SONAR-4203 - @Test - @Ignore("refactor with wsClient") - public void delete_version_of_multimodule_project() { - GregorianCalendar today = new GregorianCalendar(); - SonarScanner build = SonarScanner.create(projectDir("shared/xoo-multi-modules-sample")) - .setProperty("sonar.dynamicAnalysis", "false") - .setProperty("sonar.projectDate", (today.get(Calendar.YEAR) - 1) + "-01-01"); - orchestrator.executeBuild(build); - - // The analysis must be run once again to have an history so that it is possible - // to set/delete version on old snapshot - build.setProperty("sonar.projectDate", today.get(Calendar.YEAR) + "-01-01"); - orchestrator.executeBuild(build); - - // There are 7 modules - assertThat(count("events where category='Version'")).as("Different number of events").isEqualTo(1); - - runSelenese(orchestrator, "/projectAdministration/ProjectAdministrationTest/project-administration/multimodule-project-modify-version.html"); - - assertThat(count("events where category='Version'")).as("Different number of events").isEqualTo(2); - - runSelenese(orchestrator, "/projectAdministration/ProjectAdministrationTest/project-administration/multimodule-project-delete-version.html"); - - assertThat(count("events where category='Version'")).as("Different number of events").isEqualTo(1); - } - - @Test - public void display_project_settings() throws UnsupportedEncodingException { - scanSample(null, null); - - SettingsPage page = nav.logIn().submitCredentials(adminUser).openSettings("sample") - .assertMenuContains("Analysis Scope") - .assertMenuContains("Category 1") - .assertMenuContains("DEV") - .assertMenuContains("project-only") - .assertMenuContains("Xoo") - .assertSettingDisplayed("sonar.dbcleaner.daysBeforeDeletingClosedIssues"); - - page.openCategory("project-only") - .assertSettingDisplayed("prop_only_on_project"); - - page.openCategory("General") - .assertStringSettingValue("sonar.dbcleaner.daysBeforeDeletingClosedIssues", "30") - .assertStringSettingValue("sonar.leak.period", "previous_version") - .assertBooleanSettingValue("sonar.dbcleaner.cleanDirectory", true) - .setStringValue("sonar.dbcleaner.daysBeforeDeletingClosedIssues", "1") - .assertStringSettingValue("sonar.dbcleaner.daysBeforeDeletingClosedIssues", "1"); - } - - @Test - public void display_module_settings() throws UnsupportedEncodingException { - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - nav.logIn().submitCredentials(adminUser) - .openSettings("com.sonarsource.it.samples:multi-modules-sample:module_a") - .assertMenuContains("Analysis Scope") - .assertSettingDisplayed("sonar.coverage.exclusions"); - } - - private void scanSampleWithDate(String date) { - scanSample(date, null); - } - - private void scanSample(@Nullable String date, @Nullable String profile) { - SonarScanner scan = SonarScanner.create(projectDir("shared/xoo-sample")) - .setProperty("sonar.cpd.exclusions", "**/*"); - if (date != null) { - scan.setProperty("sonar.projectDate", date); - } - if (profile != null) { - scan.setProfile(profile); - } - orchestrator.executeBuild(scan); - } - - private int count(String condition) { - return orchestrator.getDatabase().countSql("select count(1) from " + condition); - } - -} diff --git a/it/it-tests/src/test/java/it/projectAdministration/ProjectKeyPageTest.java b/it/it-tests/src/test/java/it/projectAdministration/ProjectKeyPageTest.java deleted file mode 100644 index ec55c8fe7ae..00000000000 --- a/it/it-tests/src/test/java/it/projectAdministration/ProjectKeyPageTest.java +++ /dev/null @@ -1,182 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectAdministration; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import pageobjects.Navigation; -import pageobjects.ProjectKeyPage; - -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.WebDriverRunner.url; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.projectDir; - -public class ProjectKeyPageTest { - - @ClassRule - public static Orchestrator ORCHESTRATOR = Category1Suite.ORCHESTRATOR; - - private static WsClient wsClient; - - @BeforeClass - public static void setUp() { - wsClient = newAdminWsClient(ORCHESTRATOR); - } - - @Before - public void cleanUp() { - ORCHESTRATOR.resetData(); - } - - private Navigation nav = Navigation.create(ORCHESTRATOR); - - @Test - public void change_key_when_no_modules() { - createProject("sample"); - - ProjectKeyPage page = openPage("sample"); - page.assertSimpleUpdate().trySimpleUpdate("another"); - - assertThat(url()).endsWith("/project/key?id=another"); - } - - @Test - public void fail_to_change_key_when_no_modules() { - createProject("sample"); - createProject("another"); - - ProjectKeyPage page = openPage("sample"); - page.assertSimpleUpdate().trySimpleUpdate("another"); - - $(".alert.alert-danger").shouldBe(visible); - assertThat(url()).endsWith("/project/key?id=sample"); - } - - @Test - public void change_key_of_multi_modules_project() { - analyzeProject("shared/xoo-multi-modules-sample", "sample"); - - ProjectKeyPage page = openPage("sample"); - page.openFineGrainedUpdate().tryFineGrainedUpdate("sample", "another"); - - assertThat(url()).endsWith("/project/key?id=another"); - } - - @Test - public void fail_to_change_key_of_multi_modules_project() { - analyzeProject("shared/xoo-multi-modules-sample", "sample"); - createProject("another"); - - ProjectKeyPage page = openPage("sample"); - page.openFineGrainedUpdate().tryFineGrainedUpdate("sample", "another"); - - $(".alert.alert-danger").shouldBe(visible); - assertThat(url()).endsWith("/project/key?id=sample"); - } - - @Test - public void change_key_of_module_of_multi_modules_project() { - analyzeProject("shared/xoo-multi-modules-sample", "sample"); - - ProjectKeyPage page = openPage("sample"); - page.openFineGrainedUpdate().tryFineGrainedUpdate("sample:module_a:module_a1", "another"); - - $("#update-key-confirmation-form").shouldNotBe(visible); - - nav.openProjectKey("another"); - assertThat(url()).endsWith("/project/key?id=another"); - } - - @Test - public void fail_to_change_key_of_module_of_multi_modules_project() { - analyzeProject("shared/xoo-multi-modules-sample", "sample"); - createProject("another"); - - ProjectKeyPage page = openPage("sample"); - page.openFineGrainedUpdate().tryFineGrainedUpdate("sample:module_a:module_a1", "another"); - - $(".alert.alert-danger").shouldBe(visible); - } - - @Test - public void bulk_change() { - analyzeProject("shared/xoo-multi-modules-sample", "sample"); - - ProjectKeyPage page = openPage("sample"); - page.assertBulkChange().simulateBulkChange("sample", "another"); - - $("#bulk-update-results").shouldBe(visible); - page.assertBulkChangeSimulationResult("sample", "another") - .assertBulkChangeSimulationResult("sample:module_a:module_a1", "another:module_a:module_a1"); - - page.confirmBulkUpdate().assertSuccessfulBulkUpdate(); - } - - @Test - public void fail_to_bulk_change_because_no_changed_key() { - analyzeProject("shared/xoo-multi-modules-sample", "sample"); - - ProjectKeyPage page = openPage("sample"); - page.assertBulkChange().simulateBulkChange("random", "another"); - - $("#bulk-update-nothing").shouldBe(visible); - $("#bulk-update-results").shouldNotBe(visible); - } - - @Test - public void fail_to_bulk_change_because_of_duplications() { - analyzeProject("shared/xoo-multi-modules-sample", "sample"); - - ProjectKeyPage page = openPage("sample"); - page.assertBulkChange().simulateBulkChange("module_a1", "module_a2"); - - $("#bulk-update-duplicate").shouldBe(visible); - $("#bulk-update-results").shouldBe(visible); - - page.assertBulkChangeSimulationResult("sample:module_a:module_a1", "sample:module_a:module_a2") - .assertDuplicated("sample:module_a:module_a1"); - } - - private ProjectKeyPage openPage(String projectKey) { - nav.logIn().submitCredentials("admin", "admin"); - return nav.openProjectKey(projectKey); - } - - private static void createProject(String projectKey) { - wsClient.wsConnector().call(new PostRequest("api/projects/create") - .setParam("key", projectKey) - .setParam("name", projectKey)); - } - - private static void analyzeProject(String path, String projectKey) { - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir(path)) - .setProjectKey(projectKey)); - } -} diff --git a/it/it-tests/src/test/java/it/projectAdministration/ProjectLinksPageTest.java b/it/it-tests/src/test/java/it/projectAdministration/ProjectLinksPageTest.java deleted file mode 100644 index e9a96bd5a9a..00000000000 --- a/it/it-tests/src/test/java/it/projectAdministration/ProjectLinksPageTest.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectAdministration; - -import com.codeborne.selenide.Condition; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import java.util.List; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.ws.WsProjectLinks.CreateWsResponse; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.projectlinks.CreateWsRequest; -import org.sonarqube.ws.client.projectlinks.DeleteWsRequest; -import pageobjects.Navigation; -import pageobjects.ProjectLinkItem; -import pageobjects.ProjectLinksPage; -import util.user.UserRule; - -import static com.codeborne.selenide.Condition.hasText; -import static com.codeborne.selenide.Selenide.$; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.projectDir; - -public class ProjectLinksPageTest { - - @ClassRule - public static Orchestrator ORCHESTRATOR = Category1Suite.ORCHESTRATOR; - - private Navigation nav = Navigation.create(ORCHESTRATOR); - - @Rule - public UserRule userRule = UserRule.from(ORCHESTRATOR); - - private static WsClient wsClient; - private long customLinkId; - private String adminUser; - - @BeforeClass - public static void setUp() { - wsClient = newAdminWsClient(ORCHESTRATOR); - - ORCHESTRATOR.resetData(); - ORCHESTRATOR.executeBuild( - SonarScanner.create(projectDir("shared/xoo-sample")) - .setProperty("sonar.links.homepage", "http://example.com")); - } - - @Before - public void prepare() { - customLinkId = Long.parseLong(createCustomLink().getLink().getId()); - adminUser = userRule.createAdminUser(); - } - - @After - public void clean() { - deleteLink(customLinkId); - } - - @Test - public void should_list_links() { - ProjectLinksPage page = openPage(); - - page.getLinks().shouldHaveSize(2); - - List<ProjectLinkItem> links = page.getLinksAsItems(); - ProjectLinkItem homepageLink = links.get(0); - ProjectLinkItem customLink = links.get(1); - - homepageLink.getName().should(hasText("Home")); - homepageLink.getType().should(hasText("sonar.links.homepage")); - homepageLink.getUrl().should(hasText("http://example.com")); - homepageLink.getDeleteButton().shouldNot(Condition.present); - - customLink.getName().should(hasText("Custom")); - customLink.getType().shouldNot(Condition.present); - customLink.getUrl().should(hasText("http://example.org/custom")); - customLink.getDeleteButton().shouldBe(Condition.visible); - } - - @Test - public void should_create_link() { - ProjectLinksPage page = openPage(); - - page.getLinks().shouldHaveSize(2); - - $("#create-project-link").click(); - $("#create-link-name").setValue("Test"); - $("#create-link-url").setValue("http://example.com/test"); - $("#create-link-confirm").click(); - - page.getLinks().shouldHaveSize(3); - - ProjectLinkItem testLink = page.getLinksAsItems().get(2); - - testLink.getName().should(hasText("Test")); - testLink.getType().shouldNot(Condition.present); - testLink.getUrl().should(hasText("http://example.com/test")); - testLink.getDeleteButton().shouldBe(Condition.visible); - } - - @Test - public void should_delete_link() { - ProjectLinksPage page = openPage(); - - page.getLinks().shouldHaveSize(2); - - List<ProjectLinkItem> links = page.getLinksAsItems(); - ProjectLinkItem customLink = links.get(1); - - customLink.getDeleteButton().click(); - $("#delete-link-confirm").click(); - - page.getLinks().shouldHaveSize(1); - } - - private CreateWsResponse createCustomLink() { - return wsClient.projectLinks().create(new CreateWsRequest() - .setProjectKey("sample") - .setName("Custom") - .setUrl("http://example.org/custom")); - } - - private void deleteLink(long id) { - try { - wsClient.projectLinks().delete(new DeleteWsRequest().setId(id)); - } catch (Exception e) { - // fail silently - } - } - - private ProjectLinksPage openPage() { - nav.logIn().submitCredentials(adminUser, adminUser); - return nav.openProjectLinks("sample"); - } -} diff --git a/it/it-tests/src/test/java/it/projectAdministration/ProjectPermissionsTest.java b/it/it-tests/src/test/java/it/projectAdministration/ProjectPermissionsTest.java deleted file mode 100644 index e1b3c33cb52..00000000000 --- a/it/it-tests/src/test/java/it/projectAdministration/ProjectPermissionsTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectAdministration; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import pageobjects.Navigation; -import pageobjects.ProjectPermissionsPage; -import util.user.UserRule; - -import static util.ItUtils.projectDir; -import static util.selenium.Selenese.runSelenese; - -public class ProjectPermissionsTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - private Navigation nav = Navigation.create(orchestrator); - private String adminUser; - - @BeforeClass - public static void beforeClass() { - executeBuild("project-permissions-project", "Test Project"); - executeBuild("project-permissions-project-2", "Another Test Project"); - } - - @Before - public void before() { - adminUser = userRule.createAdminUser(); - } - - @Test - public void test_project_permissions_page_shows_only_single_project() throws Exception { - runSelenese(orchestrator, "/projectAdministration/ProjectPermissionsTest/test_project_permissions_page_shows_only_single_project.html"); - } - - @Test - public void change_project_visibility() { - ProjectPermissionsPage page = nav.logIn().submitCredentials(adminUser).openProjectPermissions("project-permissions-project"); - page - .shouldBePublic() - .turnToPrivate() - .turnToPublic(); - } - - private static void executeBuild(String projectKey, String projectName) { - orchestrator.executeBuild( - SonarScanner.create(projectDir("shared/xoo-sample")) - .setProjectKey(projectKey) - .setProjectName(projectName) - ); - } -} diff --git a/it/it-tests/src/test/java/it/projectAdministration/ProjectQualityGatePageTest.java b/it/it-tests/src/test/java/it/projectAdministration/ProjectQualityGatePageTest.java deleted file mode 100644 index 2484cd298b6..00000000000 --- a/it/it-tests/src/test/java/it/projectAdministration/ProjectQualityGatePageTest.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectAdministration; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.SelenideElement; -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Ignore; -import org.junit.Test; -import org.sonar.wsclient.qualitygate.QualityGate; -import org.sonar.wsclient.qualitygate.QualityGateClient; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.qualitygate.SelectWsRequest; -import pageobjects.Navigation; -import pageobjects.ProjectQualityGatePage; - -import static util.ItUtils.newAdminWsClient; - -public class ProjectQualityGatePageTest { - - @ClassRule - public static Orchestrator ORCHESTRATOR = Category1Suite.ORCHESTRATOR; - - private Navigation nav = Navigation.create(ORCHESTRATOR); - - private static WsClient wsClient; - - @BeforeClass - public static void prepare() { - wsClient = newAdminWsClient(ORCHESTRATOR); - } - - @Before - public void setUp() { - ORCHESTRATOR.resetData(); - - wsClient.wsConnector().call(new PostRequest("api/projects/create") - .setParam("name", "Sample") - .setParam("key", "sample")); - } - - @Test - public void should_display_default() { - QualityGate customQualityGate = createCustomQualityGate("should_display_default"); - qualityGateClient().setDefault(customQualityGate.id()); - - ProjectQualityGatePage page = openPage(); - SelenideElement selectedQualityGate = page.getSelectedQualityGate(); - selectedQualityGate.should(Condition.hasText("Default")); - selectedQualityGate.should(Condition.hasText(customQualityGate.name())); - } - - @Test - public void should_display_custom() { - QualityGate customQualityGate = createCustomQualityGate("should_display_custom"); - associateWithQualityGate(customQualityGate); - - ProjectQualityGatePage page = openPage(); - SelenideElement selectedQualityGate = page.getSelectedQualityGate(); - selectedQualityGate.shouldNot(Condition.hasText("Default")); - selectedQualityGate.should(Condition.hasText(customQualityGate.name())); - } - - @Test - public void should_display_none() { - qualityGateClient().unsetDefault(); - - ProjectQualityGatePage page = openPage(); - page.assertNotSelected(); - } - - @Test - public void should_set_custom() { - QualityGate customQualityGate = createCustomQualityGate("should_set_custom"); - - ProjectQualityGatePage page = openPage(); - page.setQualityGate(customQualityGate.name()); - - SelenideElement selectedQualityGate = page.getSelectedQualityGate(); - selectedQualityGate.should(Condition.hasText(customQualityGate.name())); - } - - @Test - public void should_set_default() { - QualityGate customQualityGate = createCustomQualityGate("should_set_default"); - qualityGateClient().setDefault(customQualityGate.id()); - - ProjectQualityGatePage page = openPage(); - page.setQualityGate(customQualityGate.name()); - - SelenideElement selectedQualityGate = page.getSelectedQualityGate(); - selectedQualityGate.should(Condition.hasText("Default")); - selectedQualityGate.should(Condition.hasText(customQualityGate.name())); - } - - @Test - @Ignore("find a way to select None") - public void should_set_none() { - qualityGateClient().unsetDefault(); - QualityGate customQualityGate = createCustomQualityGate("should_set_none"); - associateWithQualityGate(customQualityGate); - - ProjectQualityGatePage page = openPage(); - page.setQualityGate(""); - - page.assertNotSelected(); - } - - private ProjectQualityGatePage openPage() { - nav.logIn().submitCredentials("admin", "admin"); - return nav.openProjectQualityGate("sample"); - } - - private static QualityGate createCustomQualityGate(String name) { - return qualityGateClient().create(name); - } - - private void associateWithQualityGate(QualityGate qualityGate) { - wsClient.qualityGates().associateProject(new SelectWsRequest().setProjectKey("sample").setGateId(qualityGate.id())); - } - - private static QualityGateClient qualityGateClient() { - return ORCHESTRATOR.getServer().adminWsClient().qualityGateClient(); - } -} diff --git a/it/it-tests/src/test/java/it/projectEvent/EventTest.java b/it/it-tests/src/test/java/it/projectEvent/EventTest.java deleted file mode 100644 index ec7b9df723d..00000000000 --- a/it/it-tests/src/test/java/it/projectEvent/EventTest.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectEvent; - -import com.google.common.collect.Lists; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import java.util.List; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Ignore; -import org.junit.Test; -import org.sonar.wsclient.services.Event; -import org.sonar.wsclient.services.EventQuery; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsConnector; -import org.sonarqube.ws.client.WsResponse; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; - -@Ignore("refactor using wsClient") -public class EventTest { - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Before - public void setUp() throws Exception { - orchestrator.resetData(); - } - - @Test - public void old_ws_events_does_not_allow_creating_events_on_modules() { - SonarScanner sampleProject = SonarScanner.create(projectDir("shared/xoo-multi-modules-sample")); - orchestrator.executeBuild(sampleProject); - - WsConnector wsConnector = ItUtils.newAdminWsClient(orchestrator).wsConnector(); - WsResponse response = wsConnector.call(newCreateEventRequest("com.sonarsource.it.samples:multi-modules-sample", "bar")); - assertThat(response.code()) - .isEqualTo(200); - - assertThat(wsConnector.call(newCreateEventRequest("com.sonarsource.it.samples:multi-modules-sample:module_a", "bar")).code()) - .isEqualTo(400); - } - - private static PostRequest newCreateEventRequest(String componentKey, String eventName) { - return new PostRequest("/api/events") - .setParam("resource", componentKey) - .setParam("name", eventName) - .setParam("category", "Foo"); - } - - /** - * SONAR-3308 - */ - @Test - public void keep_only_one_event_per_version_in_project_history() throws Exception { - // first analyse the 1.0-SNAPSHOT version - executeAnalysis(); - // then analyse the 1.0 version - executeAnalysis("sonar.projectVersion", "1.0"); - // and do this all over again - executeAnalysis(); - executeAnalysis("sonar.projectVersion", "1.0"); - - // there should be only 1 "0.1-SNAPSHOT" event and only 1 "0.1" event - List<Event> events = orchestrator.getServer().getWsClient().findAll(new EventQuery().setResourceKey("sample")); - assertThat(events.size()).isEqualTo(2); - List<String> eventNames = Lists.newArrayList(events.get(0).getName(), events.get(1).getName()); - assertThat(eventNames).contains("1.0", "1.0-SNAPSHOT"); - } - - private static void executeAnalysis(String... properties) { - SonarScanner sampleProject = SonarScanner.create(projectDir("shared/xoo-sample")).setProperties(properties); - orchestrator.executeBuild(sampleProject); - } -} diff --git a/it/it-tests/src/test/java/it/projectEvent/ProjectActivityPageTest.java b/it/it-tests/src/test/java/it/projectEvent/ProjectActivityPageTest.java deleted file mode 100644 index 8128fb2dc7d..00000000000 --- a/it/it-tests/src/test/java/it/projectEvent/ProjectActivityPageTest.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectEvent; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import java.util.List; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import pageobjects.Navigation; -import pageobjects.ProjectActivityPage; -import pageobjects.ProjectAnalysisItem; -import util.user.UserRule; - -import static util.ItUtils.projectDir; - -public class ProjectActivityPageTest { - - @ClassRule - public static Orchestrator ORCHESTRATOR = Category4Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(ORCHESTRATOR); - - private Navigation nav = Navigation.create(ORCHESTRATOR); - - @Before - public void setUp() throws Exception { - ORCHESTRATOR.resetData(); - } - - @Test - public void should_list_snapshots() { - analyzeProject("shared/xoo-history-v1", "2014-10-19"); - analyzeProject("shared/xoo-history-v2", "2014-11-13"); - - ProjectActivityPage page = openPage(); - page.getAnalyses().shouldHaveSize(2); - - List<ProjectAnalysisItem> analyses = page.getAnalysesAsItems(); - analyses.get(0) - .shouldHaveEventWithText("1.0-SNAPSHOT") - .shouldNotHaveDeleteButton(); - - analyses.get(1) - .shouldHaveEventWithText("0.9-SNAPSHOT") - .shouldHaveDeleteButton(); - } - - @Test - public void add_change_delete_custom_event() { - analyzeProject(); - openPage().getLastAnalysis() - .addCustomEvent("foo") - .changeLastEvent("bar") - .deleteLastEvent(); - } - - @Test - public void delete_analysis() { - analyzeProject(); - analyzeProject(); - openPage().getFirstAnalysis().delete(); - } - - private ProjectActivityPage openPage() { - String userAdmin = userRule.createAdminUser(); - nav.logIn().submitCredentials(userAdmin, userAdmin); - return nav.openProjectActivity("sample"); - } - - private static void analyzeProject() { - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - } - - private static void analyzeProject(String path, String date) { - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir(path)).setProperties("sonar.projectDate", date)); - } -} diff --git a/it/it-tests/src/test/java/it/projectSearch/LeakProjectsPageTest.java b/it/it-tests/src/test/java/it/projectSearch/LeakProjectsPageTest.java deleted file mode 100644 index 0e799250639..00000000000 --- a/it/it-tests/src/test/java/it/projectSearch/LeakProjectsPageTest.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectSearch; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category6Suite; -import java.util.ArrayList; -import java.util.List; -import javax.annotation.Nullable; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations.Organization; -import pageobjects.projects.ProjectsPage; - -import static com.codeborne.selenide.WebDriverRunner.url; -import static java.util.Arrays.asList; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newProjectKey; -import static util.ItUtils.projectDir; -import static util.ItUtils.resetSettings; -import static util.ItUtils.restoreProfile; -import static util.ItUtils.setServerProperty; - -public class LeakProjectsPageTest { - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - private Organization organization; - - @BeforeClass - public static void beforeClass() { - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - } - - @AfterClass - public static void tearDown() { - resetSettings(orchestrator, null, "sonar.leak.period"); - } - - @Before - public void setUp() { - organization = tester.organizations().generate(); - restoreProfile(orchestrator, SearchProjectsTest.class.getResource("/projectSearch/SearchProjectsTest/with-many-rules.xml"), organization.getKey()); - } - - @Test - public void should_display_leak_information() { - // This project has 0% duplication on new code - String projectKey2 = newProjectKey(); - analyzeProject(projectKey2, "projectSearch/xoo-history-v1", "2016-12-31"); - analyzeProject(projectKey2, "projectSearch/xoo-history-v2", null); - - // This project has no duplication on new code - String projectKey1 = newProjectKey(); - analyzeProject(projectKey1, "shared/xoo-sample", "2016-12-31"); - analyzeProject(projectKey1, "shared/xoo-sample", null); - - // Check the facets and project cards - ProjectsPage page = tester.openBrowser().openProjects(organization.getKey()); - page.changePerspective("Leak"); - assertThat(url()).endsWith("/projects?view=leak"); - page.shouldHaveTotal(2); - page.getProjectByKey(projectKey2) - .shouldHaveMeasure("new_reliability_rating", "0A") - .shouldHaveMeasure("new_security_rating", "0A") - .shouldHaveMeasure("new_maintainability_rating", "17A") - .shouldHaveMeasure("new_coverage", "–") - .shouldHaveMeasure("new_duplicated_lines_density", "0.0%") - .shouldHaveMeasure("new_lines", "17"); - page.getFacetByProperty("new_duplications") - .shouldHaveValue("1", "1") - .shouldHaveValue("2", "0") - .shouldHaveValue("3", "0") - .shouldHaveValue("4", "0") - .shouldHaveValue("5", "0") - .shouldHaveValue("6", "1"); - } - - private void analyzeProject(String projectKey, String relativePath, @Nullable String analysisDate) { - List<String> keyValueProperties = new ArrayList<>(asList( - "sonar.projectKey", projectKey, - "sonar.organization", organization.getKey(), - "sonar.profile", "with-many-rules", - "sonar.login", "admin", "sonar.password", "admin", - "sonar.scm.disabled", "false")); - if (analysisDate != null) { - keyValueProperties.add("sonar.projectDate"); - keyValueProperties.add(analysisDate); - } - orchestrator.executeBuild(SonarScanner.create(projectDir(relativePath), keyValueProperties.toArray(new String[0]))); - } -} diff --git a/it/it-tests/src/test/java/it/projectSearch/ProjectsPageTest.java b/it/it-tests/src/test/java/it/projectSearch/ProjectsPageTest.java deleted file mode 100644 index 6ce32eccae5..00000000000 --- a/it/it-tests/src/test/java/it/projectSearch/ProjectsPageTest.java +++ /dev/null @@ -1,203 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectSearch; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.rules.RuleChain; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.project.DeleteRequest; -import pageobjects.Navigation; -import pageobjects.projects.ProjectsPage; - -import static com.codeborne.selenide.Selenide.clearBrowserLocalStorage; -import static com.codeborne.selenide.WebDriverRunner.url; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; - -public class ProjectsPageTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - private static final String PROJECT_KEY = "key-foo"; - private static Tester tester = new Tester(orchestrator).disableOrganizations(); - - @ClassRule - public static RuleChain ruleChain = RuleChain.outerRule(orchestrator) - .around(tester); - - @BeforeClass - public static void setUp() { - orchestrator.resetData(); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample")).setProjectKey(PROJECT_KEY)); - orchestrator.executeBuild(SonarScanner.create(projectDir("duplications/file-duplications")).setProjectKey("key-bar")); - } - - @AfterClass - public static void tearDown() { - tester.wsClient().projects().delete(DeleteRequest.builder().setKey(PROJECT_KEY).build()); - tester.wsClient().projects().delete(DeleteRequest.builder().setKey("key-bar").build()); - } - - @Before - public void before() { - clearBrowserLocalStorage(); - } - - @Test - public void should_display_projects() { - ProjectsPage page = tester.openBrowser().openProjects(); - page.shouldHaveTotal(2); - page.getProjectByKey(PROJECT_KEY) - .shouldHaveMeasure("reliability_rating", "A") - .shouldHaveMeasure("security_rating", "A") - .shouldHaveMeasure("sqale_rating", "A") - .shouldHaveMeasure("duplicated_lines_density", "0.0%") - .shouldHaveMeasure("ncloc", "13") - .shouldHaveMeasure("ncloc", "Xoo"); - } - - @Test - public void should_display_facets() { - ProjectsPage page = tester.openBrowser().openProjects(); - page.getFacetByProperty("duplications") - .shouldHaveValue("1", "1") - .shouldHaveValue("2", "1") - .shouldHaveValue("3", "1") - .shouldHaveValue("4", "1") - .shouldHaveValue("5", "1") - .shouldHaveValue("6", "0"); - } - - @Test - public void should_filter_using_facet() { - ProjectsPage page = tester.openBrowser().openProjects(); - page.shouldHaveTotal(2); - page.getFacetByProperty("duplications").selectValue("3"); - page.shouldHaveTotal(1); - } - - @Test - public void should_open_default_page() { - // default page can be "All Projects" or "Favorite Projects" depending on your last choice - Navigation nav = tester.openBrowser(); - ProjectsPage page = nav.openProjects(); - - // all projects for anonymous user with default sorting to analysis date - page.shouldHaveTotal(2).shouldDisplayAllProjectsWidthSort("-analysis_date"); - - // all projects by default for logged in user - WsUsers.CreateWsResponse.User administrator = tester.users().generateAdministrator(); - page = nav.logIn().submitCredentials(administrator.getLogin()).openProjects(); - page.shouldHaveTotal(2).shouldDisplayAllProjects(); - - // favorite one project - WsClient administratorWsClient = tester.as(administrator.getLogin()).wsClient(); - administratorWsClient.favorites().add(PROJECT_KEY); - page = nav.openProjects(); - page.shouldHaveTotal(1).shouldDisplayFavoriteProjects(); - - // un-favorite this project - administratorWsClient.favorites().remove(PROJECT_KEY); - page = nav.openProjects(); - page.shouldHaveTotal(2).shouldDisplayAllProjects(); - - // select favorite - page.selectFavoriteProjects(); - page = nav.openProjects(); - page.shouldHaveTotal(0).shouldDisplayFavoriteProjects(); - - // select all - page.selectAllProjects(); - page = nav.openProjects(); - page.shouldHaveTotal(2).shouldDisplayAllProjects(); - } - - @Test - public void should_add_language_to_facet() { - ProjectsPage page = tester.openBrowser().openProjects(); - page.getFacetByProperty("languages") - .selectOptionItem("xoo2") - .shouldHaveValue("xoo2", "0"); - } - - @Test - public void should_add_tag_to_facet() { - // Add some tags to this project - tester.wsClient().wsConnector().call( - new PostRequest("api/project_tags/set") - .setParam("project", PROJECT_KEY) - .setParam("tags", "aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,zz")); - - ProjectsPage page = tester.openBrowser().openProjects(); - page.getFacetByProperty("tags") - .shouldHaveValue("aa", "1") - .shouldHaveValue("ii", "1") - .selectOptionItem("zz") - .shouldHaveValue("zz", "1"); - } - - @Test - public void should_switch_between_perspectives() { - WsUsers.CreateWsResponse.User administrator = tester.users().generateAdministrator(); - ProjectsPage page = tester.openBrowser() - .logIn().submitCredentials(administrator.getLogin()) - .openProjects(); - page.changePerspective("Risk"); - assertThat(url()).endsWith("/projects?view=visualizations&visualization=risk"); - page.changePerspective("Leak"); - assertThat(url()).endsWith("/projects?view=leak"); - } - - @Test - public void should_sort_by_facet() { - ProjectsPage page = tester.openBrowser().openProjects(); - page.sortProjects("Duplications"); - page.getProjectByIdx(0).shouldHaveMeasure("duplicated_lines_density", "63.7%"); - page.invertSorting(); - page.getProjectByIdx(0).shouldHaveMeasure("duplicated_lines_density", "0.0%"); - } - - @Test - public void should_search_for_project() { - ProjectsPage page = tester.openBrowser().openProjects(); - page.searchProject("s").shouldHaveTotal(2); - page.searchProject("sam").shouldHaveTotal(1); - } - - @Test - public void should_search_for_project_and_keep_other_filters() { - ProjectsPage page = tester.openBrowser().openProjects(); - page.shouldHaveTotal(2); - page.getFacetByProperty("duplications").selectValue("3"); - page.shouldHaveTotal(1); - page.searchProject("sample").shouldHaveTotal(0); - } -} diff --git a/it/it-tests/src/test/java/it/projectSearch/SearchProjectsTest.java b/it/it-tests/src/test/java/it/projectSearch/SearchProjectsTest.java deleted file mode 100644 index 534e0688156..00000000000 --- a/it/it-tests/src/test/java/it/projectSearch/SearchProjectsTest.java +++ /dev/null @@ -1,306 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.projectSearch; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category6Suite; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import org.assertj.core.groups.Tuple; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Common; -import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsComponents.Component; -import org.sonarqube.ws.WsComponents.SearchProjectsWsResponse; -import org.sonarqube.ws.client.component.SearchProjectsRequest; -import org.sonarqube.ws.client.project.CreateRequest; - -import static java.util.Arrays.asList; -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.groups.Tuple.tuple; -import static util.ItUtils.concat; -import static util.ItUtils.newProjectKey; -import static util.ItUtils.projectDir; -import static util.ItUtils.restoreProfile; -import static util.ItUtils.sanitizeTimezones; -import static util.ItUtils.setServerProperty; - -/** - * Tests WS api/components/search_projects - */ -public class SearchProjectsTest { - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - private Organization organization; - - @Before - public void setUp() { - organization = tester.organizations().generate(); - restoreProfile(orchestrator, SearchProjectsTest.class.getResource("/projectSearch/SearchProjectsTest/with-many-rules.xml"), organization.getKey()); - } - - @Test - public void filter_projects_by_measure_values() throws Exception { - String projectKey = newProjectKey(); - analyzeProject(projectKey, "shared/xoo-sample"); - - verifyFilterMatches(projectKey, "ncloc > 1"); - verifyFilterMatches(projectKey, "ncloc > 1 and duplicated_lines_density <= 100"); - verifyFilterDoesNotMatch("ncloc <= 1"); - } - - @Test - public void find_projects_with_no_data() throws Exception { - String projectKey = newProjectKey(); - analyzeProject(projectKey, "shared/xoo-sample"); - - verifyFilterMatches(projectKey, "coverage = NO_DATA"); - verifyFilterDoesNotMatch("ncloc = NO_DATA"); - } - - @Test - public void provisioned_projects_should_be_included_to_results() throws Exception { - String projectKey = newProjectKey(); - tester.wsClient().projects().create(CreateRequest.builder().setKey(projectKey).setName(projectKey).setOrganization(organization.getKey()).build()); - - SearchProjectsWsResponse response = searchProjects(SearchProjectsRequest.builder().setOrganization(organization.getKey()).build()); - - assertThat(response.getComponentsList()).extracting(Component::getKey).containsOnly(projectKey); - } - - @Test - public void return_leak_period_date() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "previous_version"); - // This project has a leak period - String projectKey1 = newProjectKey(); - analyzeProject(projectKey1, "shared/xoo-sample", "sonar.projectDate", "2016-12-31"); - analyzeProject(projectKey1, "shared/xoo-sample"); - // This project has only one analysis, so no leak period - String projectKey2 = newProjectKey(); - analyzeProject(projectKey2, "shared/xoo-sample"); - // This project is provisioned, so has no leak period - String projectKey3 = newProjectKey(); - tester.wsClient().projects().create(CreateRequest.builder().setKey(projectKey3).setName(projectKey3).setOrganization(organization.getKey()).build()); - - SearchProjectsWsResponse response = searchProjects( - SearchProjectsRequest.builder().setAdditionalFields(singletonList("leakPeriodDate")).setOrganization(organization.getKey()).build()); - - assertThat(response.getComponentsList()).extracting(Component::getKey, Component::hasLeakPeriodDate) - .containsOnly( - tuple(projectKey1, true), - tuple(projectKey2, false), - tuple(projectKey3, false)); - Component project1 = response.getComponentsList().stream().filter(component -> component.getKey().equals(projectKey1)).findFirst() - .orElseThrow(() -> new IllegalStateException("Project1 is not found")); - assertThat(sanitizeTimezones(project1.getLeakPeriodDate())).isEqualTo("2016-12-31T00:00:00+0000"); - } - - @Test - public void filter_by_text_query() throws IOException { - analyzeProject("project1", "shared/xoo-sample", "sonar.projectName", "apachee"); - analyzeProject("project2", "shared/xoo-sample", "sonar.projectName", "Apache"); - analyzeProject("project3", "shared/xoo-multi-modules-sample", "sonar.projectName", "Apache Foundation"); - analyzeProject("project4", "shared/xoo-multi-modules-sample", "sonar.projectName", "Windows"); - - // Search only by text query - assertThat(searchProjects("query = \"apache\"").getComponentsList()).extracting(Component::getKey).containsExactly("project2", "project3", "project1"); - assertThat(searchProjects("query = \"pAch\"").getComponentsList()).extracting(Component::getKey).containsExactly("project2", "project3", "project1"); - assertThat(searchProjects("query = \"hee\"").getComponentsList()).extracting(Component::getKey).containsExactly("project1"); - assertThat(searchProjects("query = \"project1\"").getComponentsList()).extracting(Component::getKey).containsExactly("project1"); - assertThat(searchProjects("query = \"unknown\"").getComponentsList()).isEmpty(); - - // Search by metric criteria and text query - assertThat(searchProjects(SearchProjectsRequest.builder().setFilter("query = \"pAch\" AND ncloc > 50").build()).getComponentsList()) - .extracting(Component::getKey).containsExactly("project3"); - assertThat(searchProjects(SearchProjectsRequest.builder().setFilter("query = \"nd\" AND ncloc > 50").build()).getComponentsList()) - .extracting(Component::getKey).containsExactly("project3", "project4"); - assertThat(searchProjects(SearchProjectsRequest.builder().setFilter("query = \"unknown\" AND ncloc > 50").build()).getComponentsList()).isEmpty(); - ; - - // Check facets - assertThat(searchProjects(SearchProjectsRequest.builder().setFilter("query = \"apache\"").setFacets(singletonList("ncloc")).build()).getFacets().getFacets(0).getValuesList()) - .extracting(Common.FacetValue::getVal, Common.FacetValue::getCount) - .containsOnly(tuple("*-1000.0", 3L), tuple("1000.0-10000.0", 0L), tuple("10000.0-100000.0", 0L), tuple("100000.0-500000.0", 0L), tuple("500000.0-*", 0L)); - assertThat(searchProjects(SearchProjectsRequest.builder().setFilter("query = \"unknown\"").setFacets(singletonList("ncloc")).build()).getFacets().getFacets(0) - .getValuesList()).extracting(Common.FacetValue::getVal, Common.FacetValue::getCount) - .containsOnly(tuple("*-1000.0", 0L), tuple("1000.0-10000.0", 0L), tuple("10000.0-100000.0", 0L), tuple("100000.0-500000.0", 0L), tuple("500000.0-*", 0L)); - } - - @Test - public void should_return_facets() throws Exception { - analyzeProject(newProjectKey(), "shared/xoo-sample"); - analyzeProject(newProjectKey(), "shared/xoo-multi-modules-sample"); - - SearchProjectsWsResponse response = searchProjects(SearchProjectsRequest.builder().setOrganization(organization.getKey()).setFacets(asList( - "alert_status", - "coverage", - "duplicated_lines_density", - "languages", - "ncloc", - "reliability_rating", - "security_rating", - "sqale_rating", - "tags")).build()); - - checkFacet(response, "alert_status", - tuple("OK", 2L), - tuple("WARN", 0L), - tuple("ERROR", 0L)); - checkFacet(response, "coverage", - tuple("NO_DATA", 2L), - tuple("*-30.0", 0L), - tuple("30.0-50.0", 0L), - tuple("50.0-70.0", 0L), - tuple("70.0-80.0", 0L), - tuple("80.0-*", 0L)); - checkFacet(response, "duplicated_lines_density", - tuple("NO_DATA", 0L), - tuple("*-3.0", 2L), - tuple("3.0-5.0", 0L), - tuple("5.0-10.0", 0L), - tuple("10.0-20.0", 0L), - tuple("20.0-*", 0L)); - checkFacet(response, "languages", - tuple("xoo", 2L)); - checkFacet(response, "ncloc", - tuple("*-1000.0", 2L), - tuple("1000.0-10000.0", 0L), - tuple("10000.0-100000.0", 0L), - tuple("100000.0-500000.0", 0L), - tuple("500000.0-*", 0L)); - checkFacet(response, "reliability_rating", - tuple("1", 2L), - tuple("2", 0L), - tuple("3", 0L), - tuple("4", 0L), - tuple("5", 0L)); - checkFacet(response, "security_rating", - tuple("1", 2L), - tuple("2", 0L), - tuple("3", 0L), - tuple("4", 0L), - tuple("5", 0L)); - checkFacet(response, "sqale_rating", - tuple("1", 0L), - tuple("2", 0L), - tuple("3", 0L), - tuple("4", 2L), - tuple("5", 0L)); - checkFacet(response, "tags"); - } - - @Test - public void should_return_facets_on_leak() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - // This project has no duplication on new code - String projectKey1 = newProjectKey(); - analyzeProject(projectKey1, "shared/xoo-sample", "sonar.projectDate", "2016-12-31"); - analyzeProject(projectKey1, "shared/xoo-sample"); - // This project has 0% duplication on new code - String projectKey2 = newProjectKey(); - analyzeProject(projectKey2, "projectSearch/xoo-history-v1", "sonar.projectDate", "2016-12-31"); - analyzeProject(projectKey2, "projectSearch/xoo-history-v2"); - - SearchProjectsWsResponse response = searchProjects(SearchProjectsRequest.builder().setOrganization(organization.getKey()).setFacets(asList( - "new_reliability_rating", "new_security_rating", "new_maintainability_rating", "new_coverage", "new_duplicated_lines_density", "new_lines")).build()); - - checkFacet(response, "new_reliability_rating", - tuple("1", 2L), - tuple("2", 0L), - tuple("3", 0L), - tuple("4", 0L), - tuple("5", 0L)); - checkFacet(response, "new_security_rating", - tuple("1", 2L), - tuple("2", 0L), - tuple("3", 0L), - tuple("4", 0L), - tuple("5", 0L)); - checkFacet(response, "new_maintainability_rating", - tuple("1", 2L), - tuple("2", 0L), - tuple("3", 0L), - tuple("4", 0L), - tuple("5", 0L)); - checkFacet(response, "new_coverage", - tuple("NO_DATA", 2L), - tuple("*-30.0", 0L), - tuple("30.0-50.0", 0L), - tuple("50.0-70.0", 0L), - tuple("70.0-80.0", 0L), - tuple("80.0-*", 0L)); - checkFacet(response, "new_duplicated_lines_density", - tuple("NO_DATA", 1L), - tuple("*-3.0", 1L), - tuple("3.0-5.0", 0L), - tuple("5.0-10.0", 0L), - tuple("10.0-20.0", 0L), - tuple("20.0-*", 0L)); - checkFacet(response, "new_lines", - tuple("*-1000.0", 1L), - tuple("1000.0-10000.0", 0L), - tuple("10000.0-100000.0", 0L), - tuple("100000.0-500000.0", 0L), - tuple("500000.0-*", 0L)); - } - - private void checkFacet(SearchProjectsWsResponse response, String facetKey, Tuple... values) { - Common.Facet facet = response.getFacets().getFacetsList().stream().filter(f -> f.getProperty().equals(facetKey)).findAny().get(); - assertThat(facet.getValuesList()).extracting(Common.FacetValue::getVal, Common.FacetValue::getCount).containsExactlyInAnyOrder(values); - } - - private void analyzeProject(String projectKey, String relativePath, String... properties) { - List<String> keyValueProperties = new ArrayList<>(asList( - "sonar.projectKey", projectKey, - "sonar.organization", organization.getKey(), - "sonar.profile", "with-many-rules", - "sonar.login", "admin", "sonar.password", "admin", - "sonar.scm.disabled", "false")); - orchestrator.executeBuild(SonarScanner.create(projectDir(relativePath), concat(keyValueProperties.toArray(new String[0]), properties))); - } - - private SearchProjectsWsResponse searchProjects(String filter) throws IOException { - return searchProjects(SearchProjectsRequest.builder().setOrganization(organization.getKey()).setFilter(filter).build()); - } - - private SearchProjectsWsResponse searchProjects(SearchProjectsRequest request) throws IOException { - return tester.wsClient().components().searchProjects(request); - } - - private void verifyFilterMatches(String projectKey, String filter) throws IOException { - assertThat(searchProjects(filter).getComponentsList()).extracting(Component::getKey).containsOnly(projectKey); - } - - private void verifyFilterDoesNotMatch(String filter) throws IOException { - assertThat(searchProjects(filter).getComponentsCount()).isZero(); - } -} diff --git a/it/it-tests/src/test/java/it/qualityGate/QualityGateNotificationTest.java b/it/it-tests/src/test/java/it/qualityGate/QualityGateNotificationTest.java deleted file mode 100644 index 64f8dffa974..00000000000 --- a/it/it-tests/src/test/java/it/qualityGate/QualityGateNotificationTest.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityGate; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import java.util.Iterator; -import javax.mail.internet.MimeMessage; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonar.wsclient.qualitygate.NewCondition; -import org.sonar.wsclient.qualitygate.QualityGate; -import org.sonar.wsclient.qualitygate.QualityGateClient; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.subethamail.wiser.Wiser; -import org.subethamail.wiser.WiserMessage; -import util.user.UserRule; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.sonarqube.ws.WsMeasures.Measure; -import static util.ItUtils.getMeasure; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.newUserWsClient; -import static util.ItUtils.projectDir; -import static util.ItUtils.resetEmailSettings; -import static util.ItUtils.resetPeriod; -import static util.ItUtils.setServerProperty; - -public class QualityGateNotificationTest { - - private static long DEFAULT_QUALITY_GATE; - - private static final String PROJECT_KEY = "sample"; - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @ClassRule - public static UserRule userRule = UserRule.from(orchestrator); - - private static Wiser smtpServer; - - @BeforeClass - public static void init() throws Exception { - DEFAULT_QUALITY_GATE = qgClient().list().defaultGate().id(); - - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - resetEmailSettings(orchestrator); - - smtpServer = new Wiser(0); - smtpServer.start(); - } - - @AfterClass - public static void resetData() throws Exception { - qgClient().setDefault(DEFAULT_QUALITY_GATE); - - resetPeriod(orchestrator); - resetEmailSettings(orchestrator); - - if (smtpServer != null) { - smtpServer.stop(); - } - } - - @Before - public void cleanUp() { - orchestrator.resetData(); - } - - @Test - public void status_on_metric_variation_and_send_notifications() throws Exception { - setServerProperty(orchestrator, "email.smtp_host.secured", "localhost"); - setServerProperty(orchestrator, "email.smtp_port.secured", Integer.toString(smtpServer.getServer().getPort())); - - // Create user, who will receive notifications for new violations - userRule.createUser("tester", "Tester", "tester@example.org", "tester"); - // Send test email to the test user - newAdminWsClient(orchestrator).wsConnector().call(new PostRequest("api/emails/send") - .setParam("to", "test@example.org") - .setParam("message", "This is a test message from SonarQube")) - .failIfNotSuccessful(); - // Add notifications to the test user - WsClient wsClient = newUserWsClient(orchestrator, "tester", "tester"); - wsClient.wsConnector().call(new PostRequest("api/notifications/add") - .setParam("type", "NewAlerts") - .setParam("channel", "EmailNotificationChannel")) - .failIfNotSuccessful(); - - // Create quality gate with conditions on variations - QualityGate simple = qgClient().create("SimpleWithDifferential"); - qgClient().setDefault(simple.id()); - qgClient().createCondition(NewCondition.create(simple.id()).metricKey("ncloc").period(1).operator("EQ").warningThreshold("0")); - - SonarScanner analysis = SonarScanner.create(projectDir("qualitygate/xoo-sample")); - orchestrator.executeBuild(analysis); - assertThat(getGateStatusMeasure().getValue()).isEqualTo("OK"); - - orchestrator.executeBuild(analysis); - assertThat(getGateStatusMeasure().getValue()).isEqualTo("WARN"); - - qgClient().unsetDefault(); - qgClient().destroy(simple.id()); - - waitUntilAllNotificationsAreDelivered(smtpServer); - - Iterator<WiserMessage> emails = smtpServer.getMessages().iterator(); - - MimeMessage message = emails.next().getMimeMessage(); - assertThat(message.getHeader("To", null)).isEqualTo("<test@example.org>"); - assertThat((String) message.getContent()).contains("This is a test message from SonarQube"); - - assertThat(emails.hasNext()).isTrue(); - message = emails.next().getMimeMessage(); - assertThat(message.getHeader("To", null)).isEqualTo("<tester@example.org>"); - assertThat((String) message.getContent()).contains("Quality gate status: Orange (was Green)"); - assertThat((String) message.getContent()).contains("Quality gate threshold: Lines of Code variation = 0 since previous analysis"); - assertThat((String) message.getContent()).contains("/dashboard?id=sample"); - assertThat(emails.hasNext()).isFalse(); - } - - private Measure getGateStatusMeasure() { - return getMeasure(orchestrator, PROJECT_KEY, "alert_status"); - } - - private static QualityGateClient qgClient() { - return orchestrator.getServer().adminWsClient().qualityGateClient(); - } - - private static void waitUntilAllNotificationsAreDelivered(Wiser smtpServer) throws InterruptedException { - for (int i = 0; i < 10; i++) { - if (smtpServer.getMessages().size() == 2) { - break; - } - Thread.sleep(1_000); - } - } -} diff --git a/it/it-tests/src/test/java/it/qualityGate/QualityGateOnRatingMeasuresTest.java b/it/it-tests/src/test/java/it/qualityGate/QualityGateOnRatingMeasuresTest.java deleted file mode 100644 index 39946f4d24b..00000000000 --- a/it/it-tests/src/test/java/it/qualityGate/QualityGateOnRatingMeasuresTest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityGate; - -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonar.wsclient.qualitygate.QualityGateClient; -import org.sonarqube.ws.WsMeasures; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.qualitygate.CreateConditionRequest; -import org.sonarqube.ws.client.qualitygate.QualityGatesService; -import org.sonarqube.ws.client.qualitygate.SelectWsRequest; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasure; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.resetSettings; -import static util.ItUtils.runProjectAnalysis; -import static util.ItUtils.setServerProperty; - -public class QualityGateOnRatingMeasuresTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - private static final String PROJECT_KEY = "sample"; - - static WsClient wsClient; - - static QualityGatesService QUALITY_GATES; - - Long qualityGateId; - - @BeforeClass - public static void init() { - wsClient = newAdminWsClient(orchestrator); - QUALITY_GATES = wsClient.qualityGates(); - } - - @Before - public void prepareData() { - orchestrator.resetData(); - qualityGateId = QUALITY_GATES.create("QualityGate").getId(); - orchestrator.getServer().provisionProject(PROJECT_KEY, PROJECT_KEY); - QUALITY_GATES.associateProject(new SelectWsRequest().setGateId(qualityGateId).setProjectKey(PROJECT_KEY)); - } - - @After - public void resetData() throws Exception { - qgClient().destroy(qualityGateId); - resetSettings(orchestrator, null, "sonar.leak.period"); - } - - @Test - public void generate_warning_qgate_on_rating_metric() throws Exception { - QUALITY_GATES.createCondition(CreateConditionRequest.builder() - .setQualityGateId(qualityGateId.intValue()) - .setMetricKey("security_rating") - .setOperator("GT") - .setWarning("3") - .build()); - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityGate/QualityGateOnRatingMeasuresTest/with-many-rules.xml")); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "with-many-rules"); - - runProjectAnalysis(orchestrator, "qualitygate/xoo-sample"); - - assertThat(getGateStatusMeasure().getValue()).isEqualTo("WARN"); - } - - @Test - public void generate_error_qgate_on_rating_metric_on_leak_period() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - QUALITY_GATES.createCondition(CreateConditionRequest.builder() - .setQualityGateId(qualityGateId.intValue()) - .setMetricKey("new_security_rating") - .setOperator("GT") - .setError("3") - .setPeriod(1) - .build()); - - // Run first analysis with empty quality gate -> quality gate is green - orchestrator.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "empty"); - runProjectAnalysis(orchestrator, "qualitygate/xoo-sample"); - assertThat(getGateStatusMeasure().getValue()).isEqualTo("OK"); - - // Run second analysis with some rules that makes Security Rating to E -> quality gate is red - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityGate/QualityGateOnRatingMeasuresTest/with-many-rules.xml")); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT_KEY, "xoo", "with-many-rules"); - runProjectAnalysis(orchestrator, "qualitygate/xoo-sample"); - assertThat(getGateStatusMeasure().getValue()).isEqualTo("ERROR"); - } - - private WsMeasures.Measure getGateStatusMeasure() { - return getMeasure(orchestrator, PROJECT_KEY, "alert_status"); - } - - private static QualityGateClient qgClient() { - return orchestrator.getServer().adminWsClient().qualityGateClient(); - } - -} diff --git a/it/it-tests/src/test/java/it/qualityGate/QualityGateTest.java b/it/it-tests/src/test/java/it/qualityGate/QualityGateTest.java deleted file mode 100644 index e5675df4a4f..00000000000 --- a/it/it-tests/src/test/java/it/qualityGate/QualityGateTest.java +++ /dev/null @@ -1,405 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityGate; - -import com.google.gson.Gson; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import java.io.File; -import java.io.IOException; -import java.io.StringReader; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; -import org.apache.commons.io.Charsets; -import org.apache.commons.io.FileUtils; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonar.wsclient.qualitygate.NewCondition; -import org.sonar.wsclient.qualitygate.QualityGate; -import org.sonar.wsclient.qualitygate.QualityGateClient; -import org.sonarqube.ws.MediaTypes; -import org.sonarqube.ws.WsCe; -import org.sonarqube.ws.WsMeasures.Measure; -import org.sonarqube.ws.WsQualityGates.ProjectStatusWsResponse; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.ws.client.qualitygate.ProjectStatusWsRequest; - -import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.groups.Tuple.tuple; -import static util.ItUtils.concat; -import static util.ItUtils.extractCeTaskId; -import static util.ItUtils.getMeasure; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.newProjectKey; -import static util.ItUtils.projectDir; - -public class QualityGateTest { - - private static final String TASK_STATUS_SUCCESS = "SUCCESS"; - private static final String QG_STATUS_NO_QG = "null"; - private static final String QG_STATUS_OK = "OK"; - private static final String QG_STATUS_ERROR = "ERROR"; - private static final String QG_STATUS_WARN = "WARN"; - - private static long DEFAULT_QUALITY_GATE; - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - private static WsClient wsClient; - - @BeforeClass - public static void startOrchestrator() { - wsClient = newAdminWsClient(orchestrator); - DEFAULT_QUALITY_GATE = qgClient().list().defaultGate().id(); - } - - @AfterClass - public static void restoreDefaultQualitGate() throws Exception { - qgClient().setDefault(DEFAULT_QUALITY_GATE); - } - - @Test - public void do_not_compute_status_if_no_gate() throws IOException { - String projectKey = newProjectKey(); - BuildResult buildResult = executeAnalysis(projectKey); - - verifyQGStatusInPostTask(buildResult, projectKey, TASK_STATUS_SUCCESS, QG_STATUS_NO_QG); - - assertThat(getGateStatusMeasure(projectKey)).isNull(); - } - - @Test - public void status_ok_if_empty_gate() throws IOException { - QualityGate empty = qgClient().create("Empty"); - qgClient().setDefault(empty.id()); - - try { - String projectKey = newProjectKey(); - BuildResult buildResult = executeAnalysis(projectKey); - - verifyQGStatusInPostTask(buildResult, projectKey, TASK_STATUS_SUCCESS, QG_STATUS_OK); - - assertThat(getGateStatusMeasure(projectKey).getValue()).isEqualTo("OK"); - } finally { - qgClient().unsetDefault(); - qgClient().destroy(empty.id()); - } - } - - @Test - public void test_status_ok() throws IOException { - QualityGate simple = qgClient().create("SimpleWithHighThreshold"); - qgClient().setDefault(simple.id()); - qgClient().createCondition(NewCondition.create(simple.id()).metricKey("ncloc").operator("GT").warningThreshold("40")); - - try { - String projectKey = newProjectKey(); - BuildResult buildResult = executeAnalysis(projectKey); - - verifyQGStatusInPostTask(buildResult, projectKey, TASK_STATUS_SUCCESS, QG_STATUS_OK); - - assertThat(getGateStatusMeasure(projectKey).getValue()).isEqualTo("OK"); - } finally { - qgClient().unsetDefault(); - qgClient().destroy(simple.id()); - } - } - - @Test - public void test_status_warning() throws IOException { - QualityGate simple = qgClient().create("SimpleWithLowThreshold"); - qgClient().setDefault(simple.id()); - qgClient().createCondition(NewCondition.create(simple.id()).metricKey("ncloc").operator("GT").warningThreshold("10")); - - try { - String projectKey = newProjectKey(); - BuildResult buildResult = executeAnalysis(projectKey); - - verifyQGStatusInPostTask(buildResult, projectKey, TASK_STATUS_SUCCESS, QG_STATUS_WARN); - - assertThat(getGateStatusMeasure(projectKey).getValue()).isEqualTo("WARN"); - } finally { - qgClient().unsetDefault(); - qgClient().destroy(simple.id()); - } - } - - @Test - public void test_status_error() throws IOException { - QualityGate simple = qgClient().create("SimpleWithLowThreshold"); - qgClient().setDefault(simple.id()); - qgClient().createCondition(NewCondition.create(simple.id()).metricKey("ncloc").operator("GT").errorThreshold("10")); - - try { - String projectKey = newProjectKey(); - BuildResult buildResult = executeAnalysis(projectKey); - - verifyQGStatusInPostTask(buildResult, projectKey, TASK_STATUS_SUCCESS, QG_STATUS_ERROR); - - assertThat(getGateStatusMeasure(projectKey).getValue()).isEqualTo("ERROR"); - } finally { - qgClient().unsetDefault(); - qgClient().destroy(simple.id()); - } - } - - @Test - public void use_server_settings_instead_of_default_gate() throws IOException { - QualityGate alert = qgClient().create("AlertWithLowThreshold"); - qgClient().createCondition(NewCondition.create(alert.id()).metricKey("ncloc").operator("GT").warningThreshold("10")); - QualityGate error = qgClient().create("ErrorWithLowThreshold"); - qgClient().createCondition(NewCondition.create(error.id()).metricKey("ncloc").operator("GT").errorThreshold("10")); - - qgClient().setDefault(alert.id()); - String projectKey = newProjectKey(); - orchestrator.getServer().provisionProject(projectKey, projectKey); - associateQualityGateToProject(error.id(), projectKey); - - try { - BuildResult buildResult = executeAnalysis(projectKey); - - verifyQGStatusInPostTask(buildResult, projectKey, TASK_STATUS_SUCCESS, QG_STATUS_ERROR); - - assertThat(getGateStatusMeasure(projectKey).getValue()).isEqualTo("ERROR"); - } finally { - qgClient().unsetDefault(); - qgClient().destroy(alert.id()); - qgClient().destroy(error.id()); - } - } - - @Test - public void conditions_on_multiple_metric_types() throws IOException { - QualityGate allTypes = qgClient().create("AllMetricTypes"); - qgClient().createCondition(NewCondition.create(allTypes.id()).metricKey("ncloc").operator("GT").warningThreshold("10")); - qgClient().createCondition(NewCondition.create(allTypes.id()).metricKey("duplicated_lines_density").operator("GT").warningThreshold("20")); - qgClient().setDefault(allTypes.id()); - - try { - String projectKey = newProjectKey(); - BuildResult buildResult = executeAnalysis(projectKey, "sonar.cpd.xoo.minimumLines", "2", "sonar.cpd.xoo.minimumTokens", "5"); - - verifyQGStatusInPostTask(buildResult, projectKey, TASK_STATUS_SUCCESS, QG_STATUS_WARN); - - Measure alertStatus = getGateStatusMeasure(projectKey); - assertThat(alertStatus.getValue()).isEqualTo("WARN"); - - String qualityGateDetailJson = getMeasure(orchestrator, projectKey, "quality_gate_details").getValue(); - assertThat(QualityGateDetails.parse(qualityGateDetailJson).getConditions()) - .extracting(QualityGateDetails.Conditions::getMetric, QualityGateDetails.Conditions::getOp, QualityGateDetails.Conditions::getWarning) - .contains(tuple("ncloc", "GT", "10"), tuple("duplicated_lines_density", "GT", "20")); - } finally { - qgClient().unsetDefault(); - qgClient().destroy(allTypes.id()); - } - } - - @Test - public void ad_hoc_build_break_strategy() throws IOException { - QualityGate simple = qgClient().create("SimpleWithLowThresholdForBuildBreakStrategy"); - qgClient().setDefault(simple.id()); - qgClient().createCondition(NewCondition.create(simple.id()).metricKey("ncloc").operator("GT").errorThreshold("7")); - - try { - String projectKey = newProjectKey(); - BuildResult buildResult = executeAnalysis(projectKey); - - verifyQGStatusInPostTask(buildResult, projectKey, TASK_STATUS_SUCCESS, QG_STATUS_ERROR); - - String taskId = getTaskIdInLocalReport(projectDir("qualitygate/xoo-sample")); - String analysisId = getAnalysisId(taskId); - - ProjectStatusWsResponse projectStatusWsResponse = wsClient.qualityGates().projectStatus(new ProjectStatusWsRequest().setAnalysisId(analysisId)); - ProjectStatusWsResponse.ProjectStatus projectStatus = projectStatusWsResponse.getProjectStatus(); - assertThat(projectStatus.getStatus()).isEqualTo(ProjectStatusWsResponse.Status.ERROR); - assertThat(projectStatus.getConditionsCount()).isEqualTo(1); - ProjectStatusWsResponse.Condition condition = projectStatus.getConditionsList().get(0); - assertThat(condition.getMetricKey()).isEqualTo("ncloc"); - assertThat(condition.getErrorThreshold()).isEqualTo("7"); - } finally { - qgClient().unsetDefault(); - qgClient().destroy(simple.id()); - } - } - - @Test - public void does_not_fail_when_condition_is_on_removed_metric() throws IOException { - String customMetricKey = randomAlphabetic(10); - createCustomIntMetric(orchestrator, customMetricKey); - QualityGate simple = qgClient().create("OnCustomMetric"); - qgClient().setDefault(simple.id()); - qgClient().createCondition(NewCondition.create(simple.id()).metricKey(customMetricKey).operator("GT").warningThreshold("40")); - try { - deleteCustomMetric(orchestrator, customMetricKey); - String projectKey = newProjectKey(); - BuildResult buildResult = executeAnalysis(projectKey); - - verifyQGStatusInPostTask(buildResult, projectKey, TASK_STATUS_SUCCESS, QG_STATUS_OK); - - assertThat(getGateStatusMeasure(projectKey).getValue()).isEqualTo("OK"); - } finally { - deleteCustomMetric(orchestrator, customMetricKey); - qgClient().unsetDefault(); - qgClient().destroy(simple.id()); - } - } - - private BuildResult executeAnalysis(String projectKey, String... keyValueProperties) { - return orchestrator.executeBuild(SonarScanner.create( - projectDir("qualitygate/xoo-sample"), concat(keyValueProperties, "sonar.projectKey", projectKey))); - } - - private void verifyQGStatusInPostTask(BuildResult buildResult, String projectKey, String taskStatus, String qgStatus) throws IOException { - List<String> logsLines = FileUtils.readLines(orchestrator.getServer().getCeLogs(), Charsets.UTF_8); - List<String> postTaskLogLines = extractPosttaskPluginLogs(extractCeTaskId(buildResult), logsLines); - - assertThat(postTaskLogLines).hasSize(1); - assertThat(postTaskLogLines.iterator().next()) - .contains("CeTask[" + taskStatus + "]") - .contains("Project[" + projectKey + "]") - .contains("QualityGate[" + qgStatus + "]"); - } - - private String getAnalysisId(String taskId) throws IOException { - WsResponse activity = wsClient - .wsConnector() - .call(new GetRequest("api/ce/task") - .setParam("id", taskId) - .setMediaType(MediaTypes.PROTOBUF)); - WsCe.TaskResponse activityWsResponse = WsCe.TaskResponse.parseFrom(activity.contentStream()); - return activityWsResponse.getTask().getAnalysisId(); - } - - private String getTaskIdInLocalReport(File projectDirectory) throws IOException { - File metadata = new File(projectDirectory, ".sonar/report-task.txt"); - assertThat(metadata).exists().isFile(); - // verify properties - Properties props = new Properties(); - props.load(new StringReader(FileUtils.readFileToString(metadata, StandardCharsets.UTF_8))); - assertThat(props.getProperty("ceTaskId")).isNotEmpty(); - - return props.getProperty("ceTaskId"); - } - - private Measure getGateStatusMeasure(String projectKey) { - return getMeasure(orchestrator, projectKey, "alert_status"); - } - - private static QualityGateClient qgClient() { - return orchestrator.getServer().adminWsClient().qualityGateClient(); - } - - private static void associateQualityGateToProject(long qGateId, String projectKey) { - newAdminWsClient(orchestrator).wsConnector() - .call(new PostRequest("api/qualitygates/select") - .setParam("gateId", qGateId) - .setParam("projectKey", projectKey)) - .failIfNotSuccessful(); - } - - private static List<String> extractPosttaskPluginLogs(String taskUuid, Iterable<String> ceLogs) { - return StreamSupport.stream(ceLogs.spliterator(), false) - .filter(s -> s.contains("POSTASKPLUGIN: finished()")) - .filter(s -> s.contains(taskUuid)) - .collect(Collectors.toList()); - } - - private static void createCustomIntMetric(Orchestrator orchestrator, String metricKey) { - newAdminWsClient(orchestrator).wsConnector().call(new PostRequest("api/metrics/create") - .setParam("key", metricKey) - .setParam("name", metricKey) - .setParam("type", "INT")) - .failIfNotSuccessful(); - } - - private static void deleteCustomMetric(Orchestrator orchestrator, String metricKey) { - newAdminWsClient(orchestrator).wsConnector().call(new PostRequest("api/metrics/delete") - .setParam("keys", metricKey)) - .failIfNotSuccessful(); - } - - static class QualityGateDetails { - - private String level; - - private List<Conditions> conditions = new ArrayList<>(); - - String getLevel() { - return level; - } - - List<Conditions> getConditions() { - return conditions; - } - - public static QualityGateDetails parse(String json) { - Gson gson = new Gson(); - return gson.fromJson(json, QualityGateDetails.class); - } - - public static class Conditions { - private final String metric; - private final String op; - private final String warning; - private final String actual; - private final String level; - - private Conditions(String metric, String op, String values, String actual, String level) { - this.metric = metric; - this.op = op; - this.warning = values; - this.actual = actual; - this.level = level; - } - - String getMetric() { - return metric; - } - - String getOp() { - return op; - } - - String getWarning() { - return warning; - } - - String getActual() { - return actual; - } - - String getLevel() { - return level; - } - } - } -} diff --git a/it/it-tests/src/test/java/it/qualityGate/QualityGateUiTest.java b/it/it-tests/src/test/java/it/qualityGate/QualityGateUiTest.java deleted file mode 100644 index 9d09e69aebf..00000000000 --- a/it/it-tests/src/test/java/it/qualityGate/QualityGateUiTest.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityGate; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import java.util.Date; -import javax.annotation.Nullable; -import org.apache.commons.lang.time.DateFormatUtils; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonar.wsclient.qualitygate.NewCondition; -import org.sonar.wsclient.qualitygate.QualityGate; -import org.sonar.wsclient.qualitygate.QualityGateClient; -import org.sonar.wsclient.qualitygate.QualityGateCondition; -import org.sonar.wsclient.qualitygate.UpdateCondition; -import pageobjects.Navigation; -import pageobjects.ProjectActivityPage; - -import static org.apache.commons.lang.time.DateUtils.addDays; -import static util.ItUtils.projectDir; -import static util.ItUtils.resetPeriod; -import static util.ItUtils.setServerProperty; -import static util.selenium.Selenese.runSelenese; - -public class QualityGateUiTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - private static long DEFAULT_QUALITY_GATE; - - @BeforeClass - public static void initPeriod() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - DEFAULT_QUALITY_GATE = qgClient().list().defaultGate().id(); - } - - @AfterClass - public static void resetData() throws Exception { - resetPeriod(orchestrator); - qgClient().setDefault(DEFAULT_QUALITY_GATE); - } - - @Before - public void cleanUp() { - orchestrator.resetData(); - } - - /** - * SONAR-3326 - */ - @Test - public void display_alerts_correctly_in_history_page() { - QualityGateClient qgClient = qgClient(); - QualityGate qGate = qgClient.create("AlertsForHistory"); - qgClient.setDefault(qGate.id()); - - String firstAnalysisDate = DateFormatUtils.ISO_DATE_FORMAT.format(addDays(new Date(), -2)); - String secondAnalysisDate = DateFormatUtils.ISO_DATE_FORMAT.format(addDays(new Date(), -1)); - - // with this configuration, project should have an Orange alert - QualityGateCondition lowThresholds = qgClient.createCondition(NewCondition.create(qGate.id()).metricKey("lines").operator("GT").warningThreshold("5").errorThreshold("50")); - scanSampleWithDate(firstAnalysisDate); - // with this configuration, project should have a Green alert - qgClient.updateCondition(UpdateCondition.create(lowThresholds.id()).metricKey("lines").operator("GT").warningThreshold("5000").errorThreshold("5000")); - scanSampleWithDate(secondAnalysisDate); - - Navigation nav = Navigation.create(orchestrator); - ProjectActivityPage page = nav.openProjectActivity("sample"); - page - .assertFirstAnalysisOfTheDayHasText(secondAnalysisDate, "Green (was Orange)") - .assertFirstAnalysisOfTheDayHasText(firstAnalysisDate, "Orange"); - - qgClient.unsetDefault(); - qgClient.destroy(qGate.id()); - } - - @Test - public void should_display_quality_gates_page() { - runSelenese(orchestrator, "/qualityGate/QualityGateUiTest/should_display_quality_gates_page.html"); - } - - private void scanSampleWithDate(String date) { - scanSample(date, null); - } - - private void scanSample(@Nullable String date, @Nullable String profile) { - SonarScanner scan = SonarScanner.create(projectDir("shared/xoo-sample")) - .setProperty("sonar.cpd.exclusions", "**/*"); - if (date != null) { - scan.setProperty("sonar.projectDate", date); - } - if (profile != null) { - scan.setProfile(profile); - } - orchestrator.executeBuild(scan); - } - - private static QualityGateClient qgClient() { - return orchestrator.getServer().adminWsClient().qualityGateClient(); - } - -} diff --git a/it/it-tests/src/test/java/it/qualityModel/DebtConfigurationRule.java b/it/it-tests/src/test/java/it/qualityModel/DebtConfigurationRule.java deleted file mode 100644 index 7ab6e14f657..00000000000 --- a/it/it-tests/src/test/java/it/qualityModel/DebtConfigurationRule.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityModel; - -import com.google.common.base.Joiner; -import com.google.common.collect.ImmutableSet; -import com.sonar.orchestrator.Orchestrator; -import java.util.Set; -import org.junit.rules.ExternalResource; - -import static com.google.common.base.Preconditions.checkState; -import static util.ItUtils.setServerProperty; - -/** - * This rule should be used when dealing with technical debt properties, in order to always be sure that the properties are correctly reset between each tests. - */ -public class DebtConfigurationRule extends ExternalResource { - - private static final String DEV_COST_PROPERTY = "sonar.technicalDebt.developmentCost"; - private static final String RATING_GRID_PROPERTY = "sonar.technicalDebt.ratingGrid"; - - private static final String DEV_COST_LANGUAGE_PROPERTY = "languageSpecificParameters"; - private static final String DEV_COST_LANGUAGE_NAME_PROPERTY = DEV_COST_LANGUAGE_PROPERTY + ".0.language"; - private static final String DEV_COST_LANGUAGE_COST_PROPERTY = DEV_COST_LANGUAGE_PROPERTY + ".0.man_days"; - - private static final Joiner COMA_JOINER = Joiner.on(","); - - private static final Set<String> DEV_COST_PROPERTIES = ImmutableSet.of( - DEV_COST_PROPERTY, - DEV_COST_LANGUAGE_PROPERTY, - DEV_COST_LANGUAGE_NAME_PROPERTY, - DEV_COST_LANGUAGE_COST_PROPERTY, - RATING_GRID_PROPERTY); - - private final Orchestrator orchestrator; - - private DebtConfigurationRule(Orchestrator orchestrator) { - this.orchestrator = orchestrator; - } - - public static DebtConfigurationRule create(Orchestrator orchestrator) { - return new DebtConfigurationRule(orchestrator); - } - - @Override - protected void before() throws Throwable { - reset(); - } - - @Override - protected void after() { - reset(); - } - - public void reset() { - resetDevelopmentCost(); - resetRatingGrid(); - } - - public DebtConfigurationRule updateDevelopmentCost(int developmentCost) { - setProperty(DEV_COST_PROPERTY, Integer.toString(developmentCost)); - return this; - } - - public DebtConfigurationRule updateLanguageDevelopmentCost(String language, int developmentCost) { - setServerProperty(orchestrator, DEV_COST_LANGUAGE_PROPERTY, "0"); - setServerProperty(orchestrator, DEV_COST_LANGUAGE_NAME_PROPERTY, language); - setServerProperty(orchestrator, DEV_COST_LANGUAGE_COST_PROPERTY, Integer.toString(developmentCost)); - return this; - } - - public void resetDevelopmentCost() { - for (String property : DEV_COST_PROPERTIES) { - resetProperty(property); - } - } - - public DebtConfigurationRule updateRatingGrid(Double... ratingGrid) { - checkState(ratingGrid.length == 4, "Rating grid must contains 4 values"); - setProperty(RATING_GRID_PROPERTY, COMA_JOINER.join(ratingGrid)); - return this; - } - - public DebtConfigurationRule resetRatingGrid() { - resetProperty(RATING_GRID_PROPERTY); - return this; - } - - private void setProperty(String property, String value) { - setServerProperty(orchestrator, property, value); - } - - private void resetProperty(String property) { - setProperty(property, null); - } - -} diff --git a/it/it-tests/src/test/java/it/qualityModel/MaintainabilityMeasureTest.java b/it/it-tests/src/test/java/it/qualityModel/MaintainabilityMeasureTest.java deleted file mode 100644 index 53afb199131..00000000000 --- a/it/it-tests/src/test/java/it/qualityModel/MaintainabilityMeasureTest.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityModel; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category2Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasureAsDouble; -import static util.ItUtils.projectDir; - -/** - * SONAR-4715 - */ -public class MaintainabilityMeasureTest { - - private static final String PROJECT = "com.sonarsource.it.samples:multi-modules-sample"; - private static final String MODULE = "com.sonarsource.it.samples:multi-modules-sample:module_a"; - private static final String SUB_MODULE = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1"; - private static final String DIRECTORY = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1"; - private static final String FILE = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo"; - - private static final String CODE_SMELLS_METRIC = "code_smells"; - private static final String MAINTAINABILITY_REMEDIATION_EFFORT_METRIC = "sqale_index"; - private static final String MAINTAINABILITY_RATING_METRIC = "sqale_rating"; - private static final String EFFORT_TO_REACH_MAINTAINABILITY_RATING_A_METRIC = "effort_to_reach_maintainability_rating_a"; - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - @Rule - public DebtConfigurationRule debtConfiguration = DebtConfigurationRule.create(orchestrator); - - @Before - public void init() { - orchestrator.resetData(); - - // Set rating grid values to not depend from default value - debtConfiguration.updateRatingGrid(0.1d, 0.2d, 0.5d, 1d); - - orchestrator.getServer().provisionProject(PROJECT, PROJECT); - } - - @Test - public void verify_maintainability_measures_when_code_smells_rules_activated() { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/with-many-rules.xml")); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT, "xoo", "with-many-rules"); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - assertThat(getMeasureAsDouble(orchestrator, PROJECT, CODE_SMELLS_METRIC)).isEqualTo(71); - assertThat(getMeasureAsDouble(orchestrator, PROJECT, MAINTAINABILITY_REMEDIATION_EFFORT_METRIC)).isEqualTo(445); - assertThat(getMeasureAsDouble(orchestrator, PROJECT, MAINTAINABILITY_RATING_METRIC)).isEqualTo(3); - assertThat(getMeasureAsDouble(orchestrator, PROJECT, EFFORT_TO_REACH_MAINTAINABILITY_RATING_A_METRIC)).isEqualTo(292); - - assertThat(getMeasureAsDouble(orchestrator, MODULE, CODE_SMELLS_METRIC)).isEqualTo(43); - assertThat(getMeasureAsDouble(orchestrator, MODULE, MAINTAINABILITY_REMEDIATION_EFFORT_METRIC)).isEqualTo(231); - assertThat(getMeasureAsDouble(orchestrator, MODULE, MAINTAINABILITY_RATING_METRIC)).isEqualTo(3); - assertThat(getMeasureAsDouble(orchestrator, MODULE, EFFORT_TO_REACH_MAINTAINABILITY_RATING_A_METRIC)).isEqualTo(150); - - assertThat(getMeasureAsDouble(orchestrator, SUB_MODULE, CODE_SMELLS_METRIC)).isEqualTo(19); - assertThat(getMeasureAsDouble(orchestrator, SUB_MODULE, MAINTAINABILITY_REMEDIATION_EFFORT_METRIC)).isEqualTo(113); - assertThat(getMeasureAsDouble(orchestrator, SUB_MODULE, MAINTAINABILITY_RATING_METRIC)).isEqualTo(3); - assertThat(getMeasureAsDouble(orchestrator, SUB_MODULE, EFFORT_TO_REACH_MAINTAINABILITY_RATING_A_METRIC)).isEqualTo(77); - - assertThat(getMeasureAsDouble(orchestrator, DIRECTORY, CODE_SMELLS_METRIC)).isEqualTo(18); - assertThat(getMeasureAsDouble(orchestrator, DIRECTORY, MAINTAINABILITY_REMEDIATION_EFFORT_METRIC)).isEqualTo(28); - assertThat(getMeasureAsDouble(orchestrator, DIRECTORY, MAINTAINABILITY_RATING_METRIC)).isEqualTo(1); - assertThat(getMeasureAsDouble(orchestrator, DIRECTORY, EFFORT_TO_REACH_MAINTAINABILITY_RATING_A_METRIC)).isZero(); - - assertThat(getMeasureAsDouble(orchestrator, FILE, CODE_SMELLS_METRIC)).isEqualTo(18); - assertThat(getMeasureAsDouble(orchestrator, FILE, MAINTAINABILITY_REMEDIATION_EFFORT_METRIC)).isEqualTo(28); - assertThat(getMeasureAsDouble(orchestrator, FILE, MAINTAINABILITY_RATING_METRIC)).isEqualTo(1); - assertThat(getMeasureAsDouble(orchestrator, FILE, EFFORT_TO_REACH_MAINTAINABILITY_RATING_A_METRIC)).isZero(); - } - - @Test - public void verify_reliability_measures_when_no_code_smells_rule() { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/without-type-code-smells.xml")); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT, "xoo", "without-type-code-smells"); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - assertThat(getMeasureAsDouble(orchestrator, PROJECT, CODE_SMELLS_METRIC)).isZero(); - assertThat(getMeasureAsDouble(orchestrator, PROJECT, MAINTAINABILITY_REMEDIATION_EFFORT_METRIC)).isZero(); - assertThat(getMeasureAsDouble(orchestrator, PROJECT, MAINTAINABILITY_RATING_METRIC)).isEqualTo(1); - assertThat(getMeasureAsDouble(orchestrator, PROJECT, EFFORT_TO_REACH_MAINTAINABILITY_RATING_A_METRIC)).isZero(); - } - -} diff --git a/it/it-tests/src/test/java/it/qualityModel/MaintainabilityRatingMeasureTest.java b/it/it-tests/src/test/java/it/qualityModel/MaintainabilityRatingMeasureTest.java deleted file mode 100644 index bac82dfc695..00000000000 --- a/it/it-tests/src/test/java/it/qualityModel/MaintainabilityRatingMeasureTest.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityModel; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category2Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasureAsDouble; -import static util.ItUtils.projectDir; - -/** - * SONAR-4715 - */ -public class MaintainabilityRatingMeasureTest { - - private static final String PROJECT = "com.sonarsource.it.samples:multi-modules-sample"; - private static final String MODULE = "com.sonarsource.it.samples:multi-modules-sample:module_a"; - private static final String SUB_MODULE = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1"; - private static final String DIRECTORY = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1"; - private static final String FILE = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo"; - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - @Rule - public DebtConfigurationRule debtConfiguration = DebtConfigurationRule.create(orchestrator); - - @Before - public void init() { - orchestrator.resetData(); - - // Set rating grid values to not depend from default value - debtConfiguration.updateRatingGrid(0.1d, 0.2d, 0.5d, 1d); - } - - @Test - public void sqale_rating_measures() { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/with-many-rules.xml")); - orchestrator.getServer().provisionProject(PROJECT, PROJECT); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT, "xoo", "with-many-rules"); - - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - assertThat(getMeasureAsDouble(orchestrator, PROJECT, "sqale_rating")).isEqualTo(3); - assertThat(getMeasureAsDouble(orchestrator, MODULE, "sqale_rating")).isEqualTo(3); - assertThat(getMeasureAsDouble(orchestrator, SUB_MODULE, "sqale_rating")).isEqualTo(3); - assertThat(getMeasureAsDouble(orchestrator, DIRECTORY, "sqale_rating")).isEqualTo(1); - assertThat(getMeasureAsDouble(orchestrator, FILE, "sqale_rating")).isEqualTo(1); - } - - @Test - public void sqale_debt_ratio_measures() { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/with-many-rules.xml")); - orchestrator.getServer().provisionProject(PROJECT, PROJECT); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT, "xoo", "with-many-rules"); - - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - assertThat(getMeasureAsDouble(orchestrator, PROJECT, "sqale_debt_ratio")).isEqualTo(29.1d); - assertThat(getMeasureAsDouble(orchestrator, MODULE, "sqale_debt_ratio")).isEqualTo(28.5d); - assertThat(getMeasureAsDouble(orchestrator, SUB_MODULE, "sqale_debt_ratio")).isEqualTo(31.4d); - assertThat(getMeasureAsDouble(orchestrator, DIRECTORY, "sqale_debt_ratio")).isEqualTo(7.8d); - assertThat(getMeasureAsDouble(orchestrator, FILE, "sqale_debt_ratio")).isEqualTo(7.8d); - } - - @Test - public void use_development_cost_parameter() throws Exception { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/one-issue-per-line.xml")); - orchestrator.getServer().provisionProject("sample", "sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - assertThat(getMeasureAsDouble(orchestrator, "sample", "sqale_rating")).isEqualTo(1); - - debtConfiguration.updateDevelopmentCost(2); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - assertThat(getMeasureAsDouble(orchestrator, "sample", "sqale_rating")).isEqualTo(4); - } - - @Test - public void use_language_specific_parameters() throws Exception { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/one-issue-per-line.xml")); - orchestrator.getServer().provisionProject(PROJECT, PROJECT); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT, "xoo", "one-issue-per-line"); - - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - assertThat(getMeasureAsDouble(orchestrator, PROJECT, "sqale_rating")).isEqualTo(1); - - debtConfiguration.updateLanguageDevelopmentCost("xoo", 1); - orchestrator.executeBuild( - SonarScanner.create(projectDir("shared/xoo-multi-modules-sample")) - .setProfile("one-issue-per-line")); - - assertThat(getMeasureAsDouble(orchestrator, PROJECT, "sqale_rating")).isEqualTo(5); - } - - @Test - public void use_rating_grid_parameter() throws Exception { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/one-issue-per-line.xml")); - orchestrator.getServer().provisionProject("sample", "sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - assertThat(getMeasureAsDouble(orchestrator, "sample", "sqale_rating")).isEqualTo(1); - - debtConfiguration.updateRatingGrid(0.001d, 0.005d, 0.01d, 0.015d); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - assertThat(getMeasureAsDouble(orchestrator, "sample", "sqale_rating")).isEqualTo(5); - } - - @Test - public void effort_to_reach_maintainability_rating_a() { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/with-many-rules.xml")); - orchestrator.getServer().provisionProject(PROJECT, PROJECT); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT, "xoo", "with-many-rules"); - - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - assertThat(getMeasureAsDouble(orchestrator, PROJECT, "sqale_rating")).isEqualTo(3); - assertThat(getMeasureAsDouble(orchestrator, PROJECT, "effort_to_reach_maintainability_rating_a")).isEqualTo(292); - - assertThat(getMeasureAsDouble(orchestrator, MODULE, "sqale_rating")).isEqualTo(3); - assertThat(getMeasureAsDouble(orchestrator, MODULE, "effort_to_reach_maintainability_rating_a")).isEqualTo(150); - - assertThat(getMeasureAsDouble(orchestrator, SUB_MODULE, "sqale_rating")).isEqualTo(3); - assertThat(getMeasureAsDouble(orchestrator, SUB_MODULE, "effort_to_reach_maintainability_rating_a")).isEqualTo(77); - - assertThat(getMeasureAsDouble(orchestrator, DIRECTORY, "sqale_rating")).isEqualTo(1); - assertThat(getMeasureAsDouble(orchestrator, DIRECTORY, "effort_to_reach_maintainability_rating_a")).isZero(); - - assertThat(getMeasureAsDouble(orchestrator, FILE, "sqale_rating")).isEqualTo(1); - assertThat(getMeasureAsDouble(orchestrator, FILE, "effort_to_reach_maintainability_rating_a")).isZero(); - } - -} diff --git a/it/it-tests/src/test/java/it/qualityModel/NewDebtRatioMeasureTest.java b/it/it-tests/src/test/java/it/qualityModel/NewDebtRatioMeasureTest.java deleted file mode 100644 index 66bcad3470f..00000000000 --- a/it/it-tests/src/test/java/it/qualityModel/NewDebtRatioMeasureTest.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityModel; - -import com.sonar.orchestrator.Orchestrator; -import it.Category2Suite; -import java.util.Date; -import javax.annotation.Nullable; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static org.apache.commons.lang.time.DateUtils.addDays; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.within; -import static util.ItUtils.formatDate; -import static util.ItUtils.getLeakPeriodValue; -import static util.ItUtils.resetPeriod; -import static util.ItUtils.setServerProperty; -import static util.ItUtils.toDate; - -/** - * SONAR-5876 - */ -public class NewDebtRatioMeasureTest { - - private static final String NEW_DEBT_RATIO_METRIC_KEY = "new_sqale_debt_ratio"; - - private static final Date FIRST_COMMIT_DATE = toDate("2016-09-01"); - private static final Date SECOND_COMMIT_DATE = toDate("2016-09-17"); - private static final Date THIRD_COMMIT_DATE = toDate("2016-09-20"); - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - @AfterClass - public static void reset() throws Exception { - resetPeriod(orchestrator); - } - - @Before - public void cleanUpAnalysisData() { - orchestrator.resetData(); - } - - @Test - public void new_debt_ratio_is_computed_from_new_debt_and_new_ncloc_count_per_file() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - - // run analysis on the day of after the first commit, with 'one-issue-per-line' profile - defineQualityProfile("one-issue-per-line"); - provisionSampleProject(); - setSampleProjectQualityProfile("one-issue-per-line"); - runSampleProjectAnalysis("v1", "sonar.projectDate", formatDate(addDays(FIRST_COMMIT_DATE, 1))); - - // first analysis, no previous snapshot => periods not resolved => no value - assertNoNewDebtRatio(); - - // run analysis on the day after of second commit 'one-issue-per-line' profile* - // => 3 new issues will be created - runSampleProjectAnalysis("v2", "sonar.projectDate", formatDate(addDays(SECOND_COMMIT_DATE, 1))); - assertNewDebtRatio(4.44); - - // run analysis on the day after of third commit 'one-issue-per-line' profile* - // => 4 new issues will be created - runSampleProjectAnalysis("v3", "sonar.projectDate", formatDate(addDays(THIRD_COMMIT_DATE, 1))); - assertNewDebtRatio(4.17); - } - - @Test - public void compute_new_debt_ratio_using_number_days_in_leak_period() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "30"); - - // run analysis on the day of after the first commit, with 'one-issue-per-line' profile - defineQualityProfile("one-issue-per-line"); - provisionSampleProject(); - setSampleProjectQualityProfile("one-issue-per-line"); - runSampleProjectAnalysis("v1", "sonar.projectDate", formatDate(addDays(FIRST_COMMIT_DATE, 1))); - - // first analysis, no previous snapshot => periods not resolved => no value - assertNoNewDebtRatio(); - - // run analysis on the day after of second commit 'one-issue-per-line' profile* - // => 3 new issues will be created - runSampleProjectAnalysis("v2", "sonar.projectDate", formatDate(addDays(SECOND_COMMIT_DATE, 1))); - assertNewDebtRatio(4.44); - - // run analysis on the day after of third commit 'one-issue-per-line' profile* - // => previous 3 issues plus 4 new issues will be taking into account - runSampleProjectAnalysis("v3", "sonar.projectDate", formatDate(addDays(THIRD_COMMIT_DATE, 1))); - assertNewDebtRatio(4.28); - } - - private void assertNoNewDebtRatio() { - assertThat(getLeakPeriodValue(orchestrator, "sample:src/main/xoo/sample/Sample.xoo", NEW_DEBT_RATIO_METRIC_KEY)).isZero(); - } - - private void assertNewDebtRatio(@Nullable Double valuePeriod) { - assertThat(getLeakPeriodValue(orchestrator, "sample:src/main/xoo/sample/Sample.xoo", NEW_DEBT_RATIO_METRIC_KEY)).isEqualTo(valuePeriod, within(0.01)); - } - - private void setSampleProjectQualityProfile(String qualityProfileKey) { - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", qualityProfileKey); - } - - private void provisionSampleProject() { - orchestrator.getServer().provisionProject("sample", "sample"); - } - - private void defineQualityProfile(String qualityProfileKey) { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/measure/" + qualityProfileKey + ".xml")); - } - - private void runSampleProjectAnalysis(String projectVersion, String... properties) { - ItUtils.runVerboseProjectAnalysis( - NewDebtRatioMeasureTest.orchestrator, - "measure/xoo-new-debt-ratio-" + projectVersion, - ItUtils.concat(properties, - // disable standard scm support so that it does not interfere with Xoo Scm sensor - "sonar.scm.disabled", "false")); - } - -} diff --git a/it/it-tests/src/test/java/it/qualityModel/ReliabilityMeasureTest.java b/it/it-tests/src/test/java/it/qualityModel/ReliabilityMeasureTest.java deleted file mode 100644 index 05358f4e66f..00000000000 --- a/it/it-tests/src/test/java/it/qualityModel/ReliabilityMeasureTest.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityModel; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category2Suite; -import java.util.Map; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.WsMeasures; -import util.ItUtils; - -import static java.lang.Double.parseDouble; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasuresByMetricKey; -import static util.ItUtils.projectDir; - -public class ReliabilityMeasureTest { - - private static final String PROJECT = "com.sonarsource.it.samples:multi-modules-sample"; - private static final String MODULE = "com.sonarsource.it.samples:multi-modules-sample:module_a"; - private static final String SUB_MODULE = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1"; - private static final String DIRECTORY = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1"; - private static final String FILE = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo"; - - private static final String BUGS_METRIC = "bugs"; - private static final String RELIABILITY_REMEDIATION_EFFORT_METRIC = "reliability_remediation_effort"; - private static final String RELIABILITY_RATING_METRIC = "reliability_rating"; - - private static final String[] METRICS = new String[] {BUGS_METRIC, RELIABILITY_RATING_METRIC, RELIABILITY_REMEDIATION_EFFORT_METRIC}; - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - @Before - public void init() { - orchestrator.resetData(); - - orchestrator.getServer().provisionProject(PROJECT, PROJECT); - } - - @Test - public void verify_reliability_measures_when_bug_rules_activated() { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/with-many-rules.xml")); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT, "xoo", "with-many-rules"); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - assertMeasures(PROJECT, 61, 305, 4); - assertMeasures(MODULE, 37, 185, 4); - assertMeasures(SUB_MODULE, 16, 80, 4); - assertMeasures(DIRECTORY, 16, 80, 4); - assertMeasures(FILE, 16, 80, 4); - } - - @Test - public void verify_reliability_measures_when_no_bug_rule() { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/without-type-bug.xml")); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT, "xoo", "without-type-bug"); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - assertMeasures(PROJECT, 0, 0, 1); - } - - private void assertMeasures(String componentKey, int expectedBugs, int expectedReliabilityRemediationEffort, int expectedReliabilityRating) { - Map<String, WsMeasures.Measure> measures = getMeasuresByMetricKey(orchestrator, componentKey, METRICS); - assertThat(parseDouble(measures.get(BUGS_METRIC).getValue())).isEqualTo(expectedBugs); - assertThat(parseDouble(measures.get(RELIABILITY_REMEDIATION_EFFORT_METRIC).getValue())).isEqualTo(expectedReliabilityRemediationEffort); - assertThat(parseDouble(measures.get(RELIABILITY_RATING_METRIC).getValue())).isEqualTo(expectedReliabilityRating); - } - -} diff --git a/it/it-tests/src/test/java/it/qualityModel/SecurityMeasureTest.java b/it/it-tests/src/test/java/it/qualityModel/SecurityMeasureTest.java deleted file mode 100644 index 4ea301408d9..00000000000 --- a/it/it-tests/src/test/java/it/qualityModel/SecurityMeasureTest.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityModel; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category2Suite; -import java.util.Map; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.WsMeasures; -import util.ItUtils; - -import static java.lang.Double.parseDouble; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasuresByMetricKey; -import static util.ItUtils.projectDir; - -public class SecurityMeasureTest { - - private static final String PROJECT = "com.sonarsource.it.samples:multi-modules-sample"; - private static final String MODULE = "com.sonarsource.it.samples:multi-modules-sample:module_a"; - private static final String SUB_MODULE = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1"; - private static final String DIRECTORY = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1"; - private static final String FILE = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo"; - - private static final String VULNERABILITIES_METRIC = "vulnerabilities"; - private static final String SECURITY_REMEDIATION_EFFORT_METRIC = "security_remediation_effort"; - private static final String SECURITY_RATING_METRIC = "security_rating"; - - private static final String[] METRICS = new String[] {VULNERABILITIES_METRIC, SECURITY_REMEDIATION_EFFORT_METRIC, SECURITY_RATING_METRIC}; - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - @Before - public void init() { - orchestrator.resetData(); - - orchestrator.getServer().provisionProject(PROJECT, PROJECT); - } - - @Test - public void verify_security_measures_when_vulnerability_rules_activated() { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/with-many-rules.xml")); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT, "xoo", "with-many-rules"); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - assertMeasures(PROJECT, 4, 340, 5); - assertMeasures(MODULE, 2, 170, 5); - assertMeasures(SUB_MODULE, 1, 85, 5); - assertMeasures(DIRECTORY, 0, 0, 1); - assertMeasures(FILE, 0, 0, 1); - } - - @Test - public void verify_security_measures_when_no_vulnerability_rule() { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/without-type-vulnerability.xml")); - orchestrator.getServer().associateProjectToQualityProfile(PROJECT, "xoo", "without-type-vulnerability"); - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-multi-modules-sample"))); - - assertMeasures(PROJECT, 0, 0, 1); - } - - private void assertMeasures(String componentKey, int expectedVulnerabilities, int expectedReliabilityRemediationEffort, int expectedReliabilityRating) { - Map<String, WsMeasures.Measure> measures = getMeasuresByMetricKey(orchestrator, componentKey, METRICS); - assertThat(parseDouble(measures.get(VULNERABILITIES_METRIC).getValue())).isEqualTo(expectedVulnerabilities); - assertThat(parseDouble(measures.get(SECURITY_REMEDIATION_EFFORT_METRIC).getValue())).isEqualTo(expectedReliabilityRemediationEffort); - assertThat(parseDouble(measures.get(SECURITY_RATING_METRIC).getValue())).isEqualTo(expectedReliabilityRating); - } -} diff --git a/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtInIssueChangelogTest.java b/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtInIssueChangelogTest.java deleted file mode 100644 index 2389846f764..00000000000 --- a/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtInIssueChangelogTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityModel; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category2Suite; -import java.util.List; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueClient; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonarqube.ws.Issues; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.tuple; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.projectDir; - -/** - * SONAR-4834 - */ -public class TechnicalDebtInIssueChangelogTest { - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - @Rule - public DebtConfigurationRule debtConfiguration = DebtConfigurationRule.create(orchestrator); - - @Before - public void deleteAnalysisData() { - orchestrator.resetData(); - } - - @Test - public void display_debt_in_issue_changelog() throws Exception { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/one-issue-per-file.xml")); - orchestrator.getServer().provisionProject("sample", "sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-file"); - - // Execute a first analysis to have a past snapshot - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - // Second analysis, existing issues on OneIssuePerFile will have their technical debt updated with the effort to fix - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample")) - .setProperties("sonar.oneIssuePerFile.effortToFix", "10")); - - IssueClient issueClient = orchestrator.getServer().wsClient().issueClient(); - Issue issue = issueClient.find(IssueQuery.create()).list().get(0); - - List<Issues.ChangelogWsResponse.Changelog> changes = changelog(issue.key()).getChangelogList(); - assertThat(changes).hasSize(1); - assertThat(changes.get(0).getDiffsList()) - .extracting(Issues.ChangelogWsResponse.Changelog.Diff::getKey, Issues.ChangelogWsResponse.Changelog.Diff::getOldValue, Issues.ChangelogWsResponse.Changelog.Diff::getNewValue) - .containsOnly(tuple("effort", "10", "100")); - } - - private static Issues.ChangelogWsResponse changelog(String issueKey) { - return newAdminWsClient(orchestrator).issues().changelog(issueKey); - } - -} diff --git a/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtMeasureVariationTest.java b/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtMeasureVariationTest.java deleted file mode 100644 index bfc83b21ccf..00000000000 --- a/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtMeasureVariationTest.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityModel; - -import com.sonar.orchestrator.Orchestrator; -import it.Category2Suite; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getLeakPeriodValue; -import static util.ItUtils.setServerProperty; - -/** - * SONAR-4776 - */ -public class TechnicalDebtMeasureVariationTest { - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - @AfterClass - public static void resetPeriod() throws Exception { - ItUtils.resetPeriod(orchestrator); - } - - @Before - public void cleanUpAnalysisData() { - orchestrator.resetData(); - } - - @Test - public void new_technical_debt_measures_from_new_issues() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - - // Execute an analysis in the past to have a past snapshot without any issues - provisionSampleProject(); - setSampleProjectQualityProfile("empty"); - runSampleProjectAnalysis("sonar.projectDate", "2013-01-01"); - - // Second analysis -> issues will be created - defineQualityProfile("one-issue-per-line"); - setSampleProjectQualityProfile("one-issue-per-line"); - runSampleProjectAnalysis(); - - // New technical debt only comes from new issues - assertThat(getLeakPeriodValue(orchestrator, "sample:src/main/xoo/sample/Sample.xoo", "new_technical_debt")).isEqualTo(17d); - - // Third analysis, with exactly the same profile -> no new issues so no new technical debt - runSampleProjectAnalysis(); - // No variation => measure is 0 (best value) - assertThat(getLeakPeriodValue(orchestrator, "sample:src/main/xoo/sample/Sample.xoo", "new_technical_debt")).isZero(); - } - - @Test - public void new_technical_debt_measures_from_technical_debt_update_since_previous_analysis() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - - // Execute twice analysis - defineQualityProfile("one-issue-per-file"); - provisionSampleProject(); - setSampleProjectQualityProfile("one-issue-per-file"); - runSampleProjectAnalysis(); - runSampleProjectAnalysis(); - - // Third analysis, existing issues on OneIssuePerFile will have their technical debt updated with the effort to fix - runSampleProjectAnalysis("sonar.oneIssuePerFile.effortToFix", "10"); - assertThat(getLeakPeriodValue(orchestrator, "sample:src/main/xoo/sample/Sample.xoo", "new_technical_debt")).isEqualTo(90); - - // Fourth analysis, with exactly the same profile -> no new issues so no new technical debt since previous analysis - runSampleProjectAnalysis("sonar.oneIssuePerFile.effortToFix", "10"); - assertThat(getLeakPeriodValue(orchestrator, "sample:src/main/xoo/sample/Sample.xoo", "new_technical_debt")).isZero(); - } - - @Test - public void new_technical_debt_measures_from_technical_debt_update_since_30_days() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "30"); - - // Execute an analysis in the past to have a past snapshot without any issues - provisionSampleProject(); - setSampleProjectQualityProfile("empty"); - runSampleProjectAnalysis("sonar.projectDate", "2013-01-01"); - - // Second analysis -> issues will be created - String profileXmlFile = "one-issue-per-file"; - defineQualityProfile(profileXmlFile); - setSampleProjectQualityProfile("one-issue-per-file"); - runSampleProjectAnalysis(); - - // Third analysis, existing issues on OneIssuePerFile will have their technical debt updated with the effort to fix - runSampleProjectAnalysis("sonar.oneIssuePerFile.effortToFix", "10"); - assertThat(getLeakPeriodValue(orchestrator, "sample:src/main/xoo/sample/Sample.xoo", "new_technical_debt")).isEqualTo(90); - - // Fourth analysis, with exactly the same profile -> no new issues so no new technical debt since previous analysis but still since 30 - // days - runSampleProjectAnalysis("sonar.oneIssuePerFile.effortToFix", "10"); - assertThat(getLeakPeriodValue(orchestrator, "sample:src/main/xoo/sample/Sample.xoo", "new_technical_debt")).isEqualTo(90); - } - - /** - * SONAR-5059 - */ - @Test - public void new_technical_debt_measures_should_never_be_negative() throws Exception { - setServerProperty(orchestrator, "sonar.leak.period", "previous_analysis"); - - // Execute an analysis with a big effort to fix - defineQualityProfile("one-issue-per-file"); - provisionSampleProject(); - setSampleProjectQualityProfile("one-issue-per-file"); - runSampleProjectAnalysis("sonar.oneIssuePerFile.effortToFix", "100"); - - // Execute a second analysis with a smaller effort to fix -> Added technical debt should be 0, not negative - runSampleProjectAnalysis("sonar.oneIssuePerFile.effortToFix", "10"); - assertThat(getLeakPeriodValue(orchestrator, "sample:src/main/xoo/sample/Sample.xoo", "new_technical_debt")).isZero(); - } - - private void setSampleProjectQualityProfile(String qualityProfileKey) { - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", qualityProfileKey); - } - - private void provisionSampleProject() { - orchestrator.getServer().provisionProject("sample", "sample"); - } - - private void defineQualityProfile(String qualityProfileKey) { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/measure/" + qualityProfileKey + ".xml")); - } - - private void runSampleProjectAnalysis(String... properties) { - ItUtils.runVerboseProjectAnalysis(TechnicalDebtMeasureVariationTest.orchestrator, "shared/xoo-sample", properties); - } - -} diff --git a/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtTest.java b/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtTest.java deleted file mode 100644 index a69e2c72e31..00000000000 --- a/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityModel; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category2Suite; -import java.util.List; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueQuery; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; - -public class TechnicalDebtTest { - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - @Rule - public DebtConfigurationRule debtConfiguration = DebtConfigurationRule.create(orchestrator); - - @Before - public void deleteAnalysisData() { - orchestrator.resetData(); - } - - /** - * SONAR-4716 - */ - @Test - public void technical_debt_on_issue() throws Exception { - ItUtils.restoreProfile(orchestrator, getClass().getResource("/qualityModel/one-issue-per-line.xml")); - orchestrator.getServer().provisionProject("sample", "sample"); - orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line"); - - // Generate some issues - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - - // All the issues should have a technical debt - List<Issue> issues = orchestrator.getServer().wsClient().issueClient().find(IssueQuery.create()).list(); - assertThat(issues).isNotEmpty(); - for (Issue issue : issues) { - assertThat(issue.debt()).isEqualTo("1min"); - } - } - -} diff --git a/it/it-tests/src/test/java/it/qualityProfile/BuiltInQualityProfilesTest.java b/it/it-tests/src/test/java/it/qualityProfile/BuiltInQualityProfilesTest.java deleted file mode 100644 index fa9a4e8ccd0..00000000000 --- a/it/it-tests/src/test/java/it/qualityProfile/BuiltInQualityProfilesTest.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityProfile; - -import com.sonar.orchestrator.Orchestrator; -import it.Category6Suite; -import java.util.function.Predicate; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Session; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles; -import org.sonarqube.ws.QualityProfiles.CreateWsResponse; -import org.sonarqube.ws.QualityProfiles.SearchWsResponse; -import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.qualityprofile.ChangeParentRequest; -import org.sonarqube.ws.client.qualityprofile.CopyRequest; -import org.sonarqube.ws.client.qualityprofile.QualityProfilesService; -import org.sonarqube.ws.client.qualityprofile.SearchWsRequest; -import org.sonarqube.ws.client.qualityprofile.SetDefaultRequest; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.tuple; -import static util.ItUtils.expectBadRequestError; - -public class BuiltInQualityProfilesTest { - private static final String RULE_ONE_BUG_PER_LINE = "xoo:OneBugIssuePerLine"; - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - @Test - public void built_in_profiles_are_available_in_new_organization() { - Organization org = tester.organizations().generate(); - SearchWsResponse result = tester.qProfiles().service().search(new SearchWsRequest().setOrganizationKey(org.getKey())); - - assertThat(result.getProfilesList()) - .extracting(QualityProfile::getName, QualityProfile::getLanguage, QualityProfile::getIsBuiltIn, QualityProfile::getIsDefault) - .containsExactlyInAnyOrder( - tuple("Basic", "xoo", true, true), - tuple("empty", "xoo", true, false), - tuple("Basic", "xoo2", true, true)); - } - - @Test - public void built_in_profiles_are_available_in_default_organization() { - SearchWsResponse result = tester.qProfiles().service().search(new SearchWsRequest().setOrganizationKey("default-organization")); - - assertThat(result.getProfilesList()) - .extracting(QualityProfile::getOrganization, QualityProfile::getName, QualityProfile::getLanguage, QualityProfile::getIsBuiltIn, QualityProfile::getIsDefault) - .containsExactlyInAnyOrder( - tuple("default-organization", "Basic", "xoo", true, true), - tuple("default-organization", "empty", "xoo", true, false), - tuple("default-organization", "Basic", "xoo2", true, true)); - } - - @Test - public void cannot_delete_built_in_profile_even_when_not_the_default_profile() { - Organization org = tester.organizations().generate(); - QualityProfile builtInProfile = getProfile(org, p -> p.getIsBuiltIn() && p.getIsDefault() && "Basic".equals(p.getName()) && "xoo".equals(p.getLanguage())); - - CreateWsResponse.QualityProfile profileInOrg = tester.qProfiles().createXooProfile(org); - tester.qProfiles().service().setDefault(new SetDefaultRequest(profileInOrg.getKey())); - - expectBadRequestError(() -> tester.qProfiles().service().delete(builtInProfile.getKey())); - } - - @Test - public void built_in_profile_cannot_be_modified() { - Organization org = tester.organizations().generate(); - QualityProfile builtInProfile = getProfile(org, p -> p.getIsBuiltIn() && p.getIsDefault() && "Basic".equals(p.getName()) && "xoo".equals(p.getLanguage())); - - QualityProfilesService service = tester.qProfiles().service(); - expectBadRequestError(() -> tester.qProfiles().activateRule(builtInProfile.getKey(), RULE_ONE_BUG_PER_LINE)); - expectBadRequestError(() -> service.deactivateRule(builtInProfile.getKey(), RULE_ONE_BUG_PER_LINE)); - expectBadRequestError(() -> service.delete(builtInProfile.getKey())); - } - - @Test - public void copy_built_in_profile_to_a_custom_profile() { - Organization org = tester.organizations().generate(); - User administrator = tester.users().generateAdministrator(org); - QualityProfile builtInProfile = getProfile(org, p -> p.getIsBuiltIn() && "Basic".equals(p.getName()) && "xoo".equals(p.getLanguage())); - Session adminSession = tester.as(administrator.getLogin()); - - QualityProfiles.CopyWsResponse copyResponse = adminSession.qProfiles().service().copy(new CopyRequest(builtInProfile.getKey(), "My copy")); - - assertThat(copyResponse.getIsDefault()).isFalse(); - assertThat(copyResponse.getKey()).isNotEmpty().isNotEqualTo(builtInProfile.getKey()); - assertThat(copyResponse.getLanguage()).isEqualTo(builtInProfile.getLanguage()); - assertThat(copyResponse.getName()).isEqualTo("My copy"); - assertThat(copyResponse.getIsInherited()).isFalse(); - - QualityProfile copy = getProfile(org, p -> "My copy".equals(p.getName()) && "xoo".equals(p.getLanguage())); - assertThat(copy.getIsBuiltIn()).isFalse(); - assertThat(copy.getIsDefault()).isFalse(); - assertThat(builtInProfile.getActiveRuleCount()).isGreaterThan(0); - adminSession.qProfiles().assertThatNumberOfActiveRulesEqualsTo(copy.getKey(), (int) builtInProfile.getActiveRuleCount()); - } - - @Test - public void can_inherit_and_disinherit_from_built_in_profile_to_a_custom_profile() { - Organization org = tester.organizations().generate(); - User administrator = tester.users().generateAdministrator(org); - QualityProfile builtInProfile = getProfile(org, p -> p.getIsBuiltIn() && "Basic".equals(p.getName()) && "xoo".equals(p.getLanguage())); - Session adminSession = tester.as(administrator.getLogin()); - - QualityProfiles.CopyWsResponse copyResponse = adminSession.qProfiles().service().copy(new CopyRequest(builtInProfile.getKey(), "My copy")); - adminSession.qProfiles().service().changeParent( - ChangeParentRequest.builder().setParentKey(builtInProfile.getKey()).setProfileKey(copyResponse.getKey()).build()); - - QualityProfile inheritedQualityPropfile = getProfile(org, p -> p.getKey().equals(copyResponse.getKey())); - - assertThat(inheritedQualityPropfile.getParentKey()).isEqualTo(builtInProfile.getKey()); - assertThat(inheritedQualityPropfile.getParentName()).isEqualTo(builtInProfile.getName()); - - // Remove inheritance - adminSession.qProfiles().service().changeParent( - new ChangeParentRequest(ChangeParentRequest.builder().setProfileKey(inheritedQualityPropfile.getKey()))); - - inheritedQualityPropfile = getProfile(org, p -> p.getKey().equals(copyResponse.getKey())); - - assertThat(inheritedQualityPropfile.getParentKey()).isEmpty(); - assertThat(inheritedQualityPropfile.getParentName()).isEmpty(); - } - - private QualityProfile getProfile(Organization organization, Predicate<QualityProfile> filter) { - return tester.qProfiles().service().search(new SearchWsRequest() - .setOrganizationKey(organization.getKey())).getProfilesList() - .stream() - .filter(filter) - .findAny().orElseThrow(IllegalStateException::new); - } -} diff --git a/it/it-tests/src/test/java/it/qualityProfile/CustomQualityProfilesTest.java b/it/it-tests/src/test/java/it/qualityProfile/CustomQualityProfilesTest.java deleted file mode 100644 index ab9cd6b6582..00000000000 --- a/it/it-tests/src/test/java/it/qualityProfile/CustomQualityProfilesTest.java +++ /dev/null @@ -1,328 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityProfile; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category6Suite; -import java.util.List; -import java.util.Map; -import java.util.function.Predicate; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.QProfileTester; -import org.sonarqube.test.Session; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles; -import org.sonarqube.ws.QualityProfiles.CreateWsResponse.QualityProfile; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.qualityprofile.AddProjectRequest; -import org.sonarqube.ws.client.qualityprofile.ChangeParentRequest; -import org.sonarqube.ws.client.qualityprofile.CopyRequest; -import org.sonarqube.ws.client.qualityprofile.CreateRequest; -import org.sonarqube.ws.client.qualityprofile.SearchWsRequest; -import org.sonarqube.ws.client.qualityprofile.SetDefaultRequest; -import util.ItUtils; - -import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.expectForbiddenError; -import static util.ItUtils.expectMissingError; -import static util.ItUtils.expectUnauthorizedError; -import static util.ItUtils.projectDir; - -public class CustomQualityProfilesTest { - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - @Test - public void activation_of_rules_is_isolated_among_organizations() { - // create two profiles with same names in two organizations - Organization org1 = tester.organizations().generate(); - Organization org2 = tester.organizations().generate(); - QualityProfile profileInOrg1 = tester.qProfiles().createXooProfile(org1, p -> p.setProfileName("foo")); - QualityProfile profileInOrg2 = tester.qProfiles().createXooProfile(org2, p -> p.setProfileName("foo")); - - tester.qProfiles() - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg1, 0) - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg2, 0); - - tester.qProfiles() - .activateRule(profileInOrg1, "xoo:OneIssuePerLine") - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg1, 1) - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg2, 0); - - tester.qProfiles() - .activateRule(profileInOrg1, "xoo:OneIssuePerFile") - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg1, 2) - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg2, 0); - - tester.qProfiles() - .deactivateRule(profileInOrg1, "xoo:OneIssuePerFile") - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg1, 1) - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg2, 0); - - tester.qProfiles() - .activateRule(profileInOrg2, "xoo:OneIssuePerFile") - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg1, 1) - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg2, 1); - - delete(profileInOrg1); - tester.qProfiles() - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg1, 0) - .assertThatNumberOfActiveRulesEqualsTo(profileInOrg2, 1); - } - - @Test - public void an_organization_administrator_can_manage_the_profiles_of_organization() { - Organization org = tester.organizations().generate(); - User user = tester.users().generateAdministrator(org); - - QProfileTester adminSession = tester.as(user.getLogin()).qProfiles(); - QualityProfile profile = adminSession.createXooProfile(org); - adminSession.assertThatNumberOfActiveRulesEqualsTo(profile, 0); - - adminSession - .activateRule(profile, "xoo:OneIssuePerFile") - .assertThatNumberOfActiveRulesEqualsTo(profile, 1); - - adminSession.service().delete(profile.getKey()); - adminSession.assertThatNumberOfActiveRulesEqualsTo(profile, 0); - } - - @Test - public void deleting_an_organization_delete_all_profiles_on_this_organization() { - Organization org = tester.organizations().generate(); - User user = tester.users().generateAdministrator(org); - - QProfileTester adminSession = tester.as(user.getLogin()).qProfiles(); - // Profile - QualityProfile parentProfile = adminSession.createXooProfile(org); - - // Copied profile - QualityProfiles.SearchWsResponse.QualityProfile builtInProfile = getProfile(org, p -> p.getIsBuiltIn() && "Basic".equals(p.getName()) && "xoo".equals(p.getLanguage())); - QualityProfiles.CopyWsResponse copyResponse = adminSession.service().copy(new CopyRequest(builtInProfile.getKey(), "My copy")); - - // Inherited profile from custom - QualityProfile inheritedProfile1 = adminSession.service().create( - CreateRequest.builder() - .setLanguage(parentProfile.getLanguage()) - .setOrganizationKey(org.getKey()) - .setProfileName("inherited_profile") - .build()) - .getProfile(); - - adminSession.service().changeParent( - ChangeParentRequest.builder().setParentKey(parentProfile.getKey()).setProfileKey(inheritedProfile1.getKey()).build()); - - // Inherited profile from builtIn - QualityProfile inheritedProfile2 = adminSession.service().create( - CreateRequest.builder() - .setLanguage(parentProfile.getLanguage()) - .setOrganizationKey(org.getKey()) - .setProfileName("inherited_profile2") - .build()) - .getProfile(); - - adminSession.service().changeParent( - ChangeParentRequest.builder().setParentKey(builtInProfile.getKey()).setProfileKey(inheritedProfile2.getKey()).build()); - - tester.organizations().service().delete(org.getKey()); - - expectMissingError(() -> tester.qProfiles().service().search(new SearchWsRequest() - .setOrganizationKey(org.getKey()))); - - tester.qProfiles().service().search(new SearchWsRequest()).getProfilesList() - .forEach(p -> { - assertThat(p.getOrganization()).isNotEqualTo(org.getKey()); - assertThat(p.getKey()).isNotIn(parentProfile.getKey(), copyResponse.getKey(), inheritedProfile1.getKey(), inheritedProfile2.getKey()); - }); - } - - @Test - public void an_organization_administrator_cannot_manage_the_profiles_of_other_organizations() { - Organization org1 = tester.organizations().generate(); - Organization org2 = tester.organizations().generate(); - QualityProfile profileInOrg2 = tester.qProfiles().createXooProfile(org2); - User adminOfOrg1 = tester.users().generateAdministrator(org1); - - QProfileTester adminSession = tester.as(adminOfOrg1.getLogin()).qProfiles(); - - expectForbiddenError(() -> adminSession.createXooProfile(org2)); - expectForbiddenError(() -> adminSession.service().delete(profileInOrg2.getKey())); - expectForbiddenError(() -> adminSession.activateRule(profileInOrg2, "xoo:OneIssuePerFile")); - expectForbiddenError(() -> adminSession.deactivateRule(profileInOrg2, "xoo:OneIssuePerFile")); - } - - private void delete(QualityProfile profile) { - tester.qProfiles().service().delete(profile.getKey()); - } - - @Test - public void anonymous_cannot_manage_the_profiles_of_an_organization() { - Organization org = tester.organizations().generate(); - QualityProfile profile = tester.qProfiles().createXooProfile(org); - - Session anonymousSession = tester.asAnonymous(); - - expectUnauthorizedError(() -> anonymousSession.qProfiles().createXooProfile(org)); - expectUnauthorizedError(() -> anonymousSession.qProfiles().service().delete(profile.getKey())); - expectUnauthorizedError(() -> anonymousSession.qProfiles().activateRule(profile, "xoo:OneIssuePerFile")); - expectUnauthorizedError(() -> anonymousSession.qProfiles().deactivateRule(profile, "xoo:OneIssuePerFile")); - } - - @Test - public void root_can_manage_the_profiles_of_any_organization() { - Organization org = tester.organizations().generate(); - - User orgAdmin = tester.users().generateAdministrator(org); - Session adminSession = tester.as(orgAdmin.getLogin()); - QualityProfile profile = adminSession.qProfiles().createXooProfile(org); - - // root can activate rule and delete the profile - tester.qProfiles() - .activateRule(profile, "xoo:OneIssuePerFile") - .assertThatNumberOfActiveRulesEqualsTo(profile, 1); - tester.qProfiles().service().delete(profile.getKey()); - tester.qProfiles().assertThatNumberOfActiveRulesEqualsTo(profile, 0); - } - - @Test - public void can_inherit_and_disinherit_and__from_another_custom_profile() { - Organization org = tester.organizations().generate(); - User user = tester.users().generateAdministrator(org); - - Session adminSession = tester.as(user.getLogin()); - QualityProfile parentProfile = adminSession.qProfiles().createXooProfile(org); - QualityProfile inheritedProfile = adminSession.qProfiles().service().create( - CreateRequest.builder() - .setLanguage(parentProfile.getLanguage()) - .setOrganizationKey(org.getKey()) - .setProfileName("inherited_profile") - .build()) - .getProfile(); - - adminSession.qProfiles().service().changeParent( - ChangeParentRequest.builder().setParentKey(parentProfile.getKey()).setProfileKey(inheritedProfile.getKey()).build()); - - QualityProfiles.SearchWsResponse.QualityProfile inheritedQualityPropfile = getProfile(org, p -> p.getKey().equals(inheritedProfile.getKey())); - - assertThat(inheritedQualityPropfile.getParentKey()).isEqualTo(parentProfile.getKey()); - assertThat(inheritedQualityPropfile.getParentName()).isEqualTo(parentProfile.getName()); - - // Remove inheritance - adminSession.qProfiles().service().changeParent( - new ChangeParentRequest(ChangeParentRequest.builder().setProfileKey(inheritedQualityPropfile.getKey()))); - - inheritedQualityPropfile = getProfile(org, p -> p.getKey().equals(inheritedProfile.getKey())); - - assertThat(inheritedQualityPropfile.getParentKey()).isEmpty(); - assertThat(inheritedQualityPropfile.getParentName()).isEmpty(); - } - - @Test - public void analysis_must_use_default_profile() { - Organization org = tester.organizations().generate(); - User admin = tester.users().generateAdministrator(org); - - Session adminSession = tester.as(admin.getLogin()); - - String projectKey = randomAlphanumeric(10); - String projectName = randomAlphanumeric(10); - orchestrator.executeBuild( - SonarScanner.create(projectDir("shared/xoo-sample"), - "sonar.login", admin.getLogin(), - "sonar.password", admin.getLogin(), - "sonar.organization", org.getKey()) - .setProjectKey(projectKey) - .setProjectName(projectName)); - - QualityProfiles.SearchWsResponse.QualityProfile defaultProfile = getProfile(org, p -> "xoo".equals(p.getLanguage()) && - p.getIsDefault()); - assertThatQualityProfileIsUsedFor(projectKey, defaultProfile.getKey()); - - QualityProfile newXooProfile = adminSession.qProfiles().createXooProfile(org); - adminSession.qProfiles().service().setDefault(new SetDefaultRequest(newXooProfile.getKey())); - - orchestrator.executeBuild( - SonarScanner.create(projectDir("shared/xoo-sample"), - "sonar.login", admin.getLogin(), - "sonar.password", admin.getLogin(), - "sonar.organization", org.getKey()) - .setProjectKey(projectKey) - .setProjectName(projectName)); - - assertThatQualityProfileIsUsedFor(projectKey, newXooProfile.getKey()); - } - - @Test - public void analysis_must_use_associated_profile() { - Organization org = tester.organizations().generate(); - User admin = tester.users().generateAdministrator(org); - String projectKey = randomAlphanumeric(10); - String projectName = randomAlphanumeric(10); - Session adminSession = tester.as(admin.getLogin()); - QualityProfile newXooProfile = adminSession.qProfiles().createXooProfile(org); - - adminSession.wsClient().wsConnector().call(new PostRequest("api/projects/create") - .setParam("project", projectKey) - .setParam("name", projectName) - .setParam("organization", org.getKey())); - - adminSession.qProfiles().service().addProject(AddProjectRequest.builder() - .setProfileKey(newXooProfile.getKey()) - .setProjectKey(projectKey) - .build()); - - orchestrator.executeBuild( - SonarScanner.create(projectDir("shared/xoo-sample"), - "sonar.login", admin.getLogin(), - "sonar.password", admin.getLogin(), - "sonar.organization", org.getKey()) - .setProjectKey(projectKey) - .setProjectName(projectName)); - - assertThatQualityProfileIsUsedFor(projectKey, newXooProfile.getKey()); - } - - private void assertThatQualityProfileIsUsedFor(String projectKey, String qualityProfileKey) { - GetRequest request = new GetRequest("api/navigation/component") - .setParam("componentKey", projectKey); - Map components = ItUtils.jsonToMap(tester.wsClient().wsConnector().call(request).content()); - - assertThat(((Map) ((List) components.get("qualityProfiles")).get(0)).get("key")).isEqualTo(qualityProfileKey); - } - - private QualityProfiles.SearchWsResponse.QualityProfile getProfile(Organization organization, Predicate<QualityProfiles.SearchWsResponse.QualityProfile> filter) { - return tester.qProfiles().service().search(new SearchWsRequest() - .setOrganizationKey(organization.getKey())).getProfilesList() - .stream() - .filter(filter) - .findAny().orElseThrow(IllegalStateException::new); - } -} diff --git a/it/it-tests/src/test/java/it/qualityProfile/OrganizationQualityProfilesUiTest.java b/it/it-tests/src/test/java/it/qualityProfile/OrganizationQualityProfilesUiTest.java deleted file mode 100644 index 11d31a89a65..00000000000 --- a/it/it-tests/src/test/java/it/qualityProfile/OrganizationQualityProfilesUiTest.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityProfile; - -import com.codeborne.selenide.Condition; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category6Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.qualityprofile.AddProjectRequest; -import org.sonarqube.ws.client.qualityprofile.ChangeParentRequest; -import pageobjects.Navigation; - -import static com.codeborne.selenide.Selenide.$; -import static util.ItUtils.projectDir; - -public class OrganizationQualityProfilesUiTest { - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - private Organizations.Organization organization; - - @Before - public void setUp() { - // key and name are overridden for HTML Selenese tests - organization = tester.organizations().generate(o -> o.setKey("test-org").setName("test-org")); - tester.users().generateAdministrator(organization, u -> u.setLogin("admin2").setPassword("admin2")); - createProfile("xoo", "sample"); - inheritProfile("xoo", "sample", "Basic"); - analyzeProject("shared/xoo-sample"); - addProfileToProject("xoo", "sample", "sample"); - } - - @Test - public void testNoGlobalPage() { - Navigation nav = tester.openBrowser(); - nav.open("/profiles"); - $(".page-wrapper-simple").should(Condition.visible); - } - - @Test - public void testHomePage() { - tester.runHtmlTests( - "/organization/OrganizationQualityProfilesUiTest/should_display_list.html", - "/organization/OrganizationQualityProfilesUiTest/should_open_from_list.html", - "/organization/OrganizationQualityProfilesUiTest/should_filter_by_language.html"); - } - - @Test - public void testProfilePage() { - tester.runHtmlTests( - "/organization/OrganizationQualityProfilesUiTest/should_display_profile_rules.html", - "/organization/OrganizationQualityProfilesUiTest/should_display_profile_inheritance.html", - "/organization/OrganizationQualityProfilesUiTest/should_display_profile_projects.html", - "/organization/OrganizationQualityProfilesUiTest/should_display_profile_exporters.html"); - } - - @Test - public void testNotFound() { - Navigation nav = tester.openBrowser(); - nav.open("/organizations/" + organization.getKey() + "/quality_profiles/show?key=unknown"); - $(".quality-profile-not-found").should(Condition.visible); - - nav.open("/organizations/" + organization.getKey() + "/quality_profiles/show?language=xoo&name=unknown"); - $(".quality-profile-not-found").should(Condition.visible); - } - - @Test - public void testProfileChangelog() { - tester.runHtmlTests( - "/organization/OrganizationQualityProfilesUiTest/should_display_changelog.html"); - } - - @Ignore("to be replaced by selenide test in order to inject profile key") - @Test - public void testComparison() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_compare.html"); - } - - @Test - public void testCreation() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_create.html"); - } - - @Test - public void testDeletion() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_delete.html"); - } - - @Test - public void testCopying() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_copy.html"); - } - - @Test - public void testRenaming() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_rename.html"); - } - - @Test - public void testSettingDefault() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_set_default.html"); - } - - @Test - public void testRestoration() { - deleteProfile("xoo", "empty"); - - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_restore.html"); - } - - private void createProfile(String language, String name) { - tester.wsClient().wsConnector().call( - new PostRequest("api/qualityprofiles/create") - .setParam("language", language) - .setParam("name", name) - .setParam("organization", organization.getKey())); - } - - private void inheritProfile(String language, String name, String parentName) { - tester.wsClient().qualityProfiles().changeParent(ChangeParentRequest.builder() - .setLanguage(language) - .setProfileName(name) - .setParentName(parentName) - .setOrganization(organization.getKey()) - .build()); - } - - private void analyzeProject(String path) { - orchestrator.executeBuild(SonarScanner.create(projectDir(path)).setProperties( - "sonar.organization", organization.getKey(), - "sonar.login", "admin", - "sonar.password", "admin")); - } - - private void addProfileToProject(String language, String profileName, String projectKey) { - tester.wsClient().qualityProfiles().addProject(AddProjectRequest.builder() - .setLanguage(language) - .setProfileName(profileName) - .setProjectKey(projectKey) - .setOrganization(organization.getKey()) - .build()); - } - - private void deleteProfile(String language, String name) { - tester.wsClient().wsConnector().call( - new PostRequest("api/qualityprofiles/delete") - .setParam("language", language) - .setParam("profileName", name) - .setParam("organization", organization.getKey())); - } - -} diff --git a/it/it-tests/src/test/java/it/qualityProfile/QualityProfilesUiTest.java b/it/it-tests/src/test/java/it/qualityProfile/QualityProfilesUiTest.java deleted file mode 100644 index 4aa69ae1978..00000000000 --- a/it/it-tests/src/test/java/it/qualityProfile/QualityProfilesUiTest.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.qualityProfile; - -import com.codeborne.selenide.Condition; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.qualityprofile.AddProjectRequest; -import org.sonarqube.ws.client.qualityprofile.ChangeParentRequest; -import org.sonarqube.ws.client.qualityprofile.CreateRequest; -import pageobjects.Navigation; -import util.user.UserRule; - -import static com.codeborne.selenide.Selenide.$; -import static util.ItUtils.projectDir; - -public class QualityProfilesUiTest { - - private static final String ADMIN_USER_LOGIN = "admin-user"; - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - private static WsClient adminWsClient; - - @Rule - public Tester tester = new Tester(orchestrator).disableOrganizations(); - - @Before - public void initAdminUser() throws Exception { - userRule.createAdminUser(ADMIN_USER_LOGIN, ADMIN_USER_LOGIN); - } - - @After - public void deleteAdminUser() { - userRule.resetUsers(); - } - - @Before - public void createSampleProfile() { - createProfile("xoo", "sample"); - inheritProfile("xoo", "sample", "Basic"); - analyzeProject("shared/xoo-sample"); - addProfileToProject("xoo", "sample", "sample"); - } - - @After - public void tearDown() { - setDefault("xoo", "Basic"); - deleteProfile("xoo", "sample"); - deleteProfile("xoo", "new name"); - } - - @Test - public void testHomePage() { - tester.runHtmlTests( - "/qualityProfile/QualityProfilesUiTest/should_display_list.html", - "/qualityProfile/QualityProfilesUiTest/should_open_from_list.html", - "/qualityProfile/QualityProfilesUiTest/should_filter_by_language.html"); - } - - @Test - public void testProfilePage() { - tester.runHtmlTests( - "/qualityProfile/QualityProfilesUiTest/should_display_profile_rules.html", - "/qualityProfile/QualityProfilesUiTest/should_display_profile_inheritance.html", - "/qualityProfile/QualityProfilesUiTest/should_display_profile_projects.html", - "/qualityProfile/QualityProfilesUiTest/should_display_profile_exporters.html"); - } - - @Test - public void testNotFound() { - Navigation nav = tester.openBrowser(); - - nav.open("/profiles/show?key=unknown"); - $(".quality-profile-not-found").should(Condition.visible); - - nav.open("/profiles/show?language=xoo&name=unknown"); - $(".quality-profile-not-found").should(Condition.visible); - } - - @Test - public void testProfileChangelog() { - tester.runHtmlTests( - "/qualityProfile/QualityProfilesUiTest/should_display_changelog.html"); - } - - @Ignore("find a way to know profile key inside selenium tests") - @Test - public void testComparison() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_compare.html"); - } - - @Test - public void testCreation() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_create.html"); - } - - @Test - public void testDeletion() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_delete.html"); - } - - @Test - public void testCopying() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_copy.html"); - } - - @Test - public void testRenaming() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_rename.html"); - } - - @Test - public void testSettingDefault() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_set_default.html"); - } - - @Test - public void testRestore() { - deleteProfile("xoo", "empty"); - - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_restore.html"); - } - - private void createProfile(String language, String name) { - tester.wsClient().qualityProfiles().create(CreateRequest.builder() - .setLanguage(language) - .setProfileName(name) - .build()); - } - - private void inheritProfile(String language, String name, String parentName) { - tester.wsClient().qualityProfiles().changeParent(ChangeParentRequest.builder() - .setLanguage(language) - .setProfileName(name) - .setParentName(parentName) - .build()); - } - - private static void analyzeProject(String path) { - orchestrator.executeBuild(SonarScanner.create(projectDir(path))); - } - - private void addProfileToProject(String language, String profileName, String projectKey) { - tester.wsClient().qualityProfiles().addProject(AddProjectRequest.builder() - .setLanguage(language) - .setProfileName(profileName) - .setProjectKey(projectKey) - .build()); - } - - private void deleteProfile(String language, String name) { - tester.wsClient().wsConnector().call( - new PostRequest("api/qualityprofiles/delete") - .setParam("language", language) - .setParam("profileName", name)); - } - - private void setDefault(String language, String name) { - tester.wsClient().wsConnector().call( - new PostRequest("api/qualityprofiles/set_default") - .setParam("language", language) - .setParam("profileName", name)); - } -} diff --git a/it/it-tests/src/test/java/it/rule/RuleTagsTest.java b/it/it-tests/src/test/java/it/rule/RuleTagsTest.java deleted file mode 100644 index 28267882459..00000000000 --- a/it/it-tests/src/test/java/it/rule/RuleTagsTest.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.rule; - -import com.sonar.orchestrator.Orchestrator; -import it.Category6Suite; -import java.util.List; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.rules.RuleChain; -import org.junit.rules.TestRule; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.client.PostRequest; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; - -public class RuleTagsTest { - - private static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - private static Tester tester = new Tester(orchestrator); - - @ClassRule - public static TestRule chain = RuleChain.outerRule(orchestrator) - .around(tester); - - private static Organizations.Organization organization1; - private static Organizations.Organization organization2; - - @BeforeClass - public static void setUp() { - organization1 = tester.organizations().generate(); - organization2 = tester.organizations().generate(); - } - - @Test - public void should_not_show_tags_of_other_organization() { - updateTag("foo-tag", organization1); - updateTag("bar-tag", organization2); - assertThat(showRuleTags(organization1)).containsExactly("foo-tag"); - assertThat(showRuleTags(organization2)).containsExactly("bar-tag"); - } - - @Test - public void should_not_list_tags_of_other_organization() { - updateTag("foo-tag", organization1); - updateTag("bar-tag", organization2); - assertThat(listTags(organization1)) - .contains("foo-tag") - .doesNotContain("bar-tag"); - } - - @Test - public void should_not_show_removed_tags() { - updateTag("foo-tag", organization1); - assertThat(showRuleTags(organization1)).contains("foo-tag"); - - updateTag("", organization1); - assertThat(showRuleTags(organization1)).isEmpty(); - } - - @Test - public void should_not_list_removed_tags() { - updateTag("foo-tag", organization1); - assertThat(listTags(organization1)).contains("foo-tag"); - - updateTag("", organization1); - assertThat(listTags(organization1)).doesNotContain("foo-tag"); - } - - private List<String> listTags(Organizations.Organization organization) { - String json = orchestrator.getServer().newHttpCall("/api/rules/tags") - .setParam("organization", organization.getKey()) - .execute() - .getBodyAsString(); - return (List<String>) ItUtils.jsonToMap(json).get("tags"); - } - - private List<String> showRuleTags(Organizations.Organization organization) { - return tester.wsClient().rules().show(organization.getKey(), "xoo:OneIssuePerFile") - .getRule().getTags().getTagsList(); - } - - private void updateTag(String tag, Organizations.Organization organization) { - tester.wsClient().wsConnector().call(new PostRequest("/api/rules/update") - .setParam("organization", organization.getKey()) - .setParam("key", "xoo:OneIssuePerFile") - .setParam("tags", tag)) - .failIfNotSuccessful(); - } -} diff --git a/it/it-tests/src/test/java/it/scm/ScmTest.java b/it/it-tests/src/test/java/it/scm/ScmTest.java deleted file mode 100644 index 17ec36b8066..00000000000 --- a/it/it-tests/src/test/java/it/scm/ScmTest.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.scm; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category2Suite; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import org.apache.commons.lang.builder.EqualsBuilder; -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.commons.lang.builder.ToStringBuilder; -import org.apache.commons.lang.builder.ToStringStyle; -import org.assertj.core.data.MapEntry; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonar.wsclient.jsonsimple.JSONArray; -import org.sonar.wsclient.jsonsimple.JSONObject; -import org.sonar.wsclient.jsonsimple.JSONValue; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; - -public class ScmTest { - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - private static final SimpleDateFormat DATETIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); - - @Before - public void delete_data() { - orchestrator.resetData(); - } - - @Test - public void scm_optimization() throws Exception { - SonarScanner build = SonarScanner.create(projectDir("scm/xoo-sample-with-scm")) - .setProperty("sonar.scm.provider", "xoo") - .setProperty("sonar.scm.disabled", "false"); - - // First run - BuildResult buildResult = orchestrator.executeBuild(build); - - assertThat(getScmData("sample-scm:src/main/xoo/sample/Sample.xoo")) - .containsExactly( - MapEntry.entry(1, new LineData("1", "2013-01-04T00:00:00+0000", "jhenry")), - MapEntry.entry(3, new LineData("2", "2013-01-04T00:00:00+0000", "jhenry")), - MapEntry.entry(4, new LineData("1", "2013-01-04T00:00:00+0000", "jhenry")), - MapEntry.entry(8, new LineData("3", "2014-01-04T00:00:00+0000", "toto"))); - - assertThat(buildResult.getLogs()).containsSequence("1 files to be analyzed", "1/1 files analyzed"); - - // Second run with same file should not trigger blame but SCM data are copied from previous analysis - buildResult = orchestrator.executeBuild(build); - - assertThat(getScmData("sample-scm:src/main/xoo/sample/Sample.xoo")) - .containsExactly( - MapEntry.entry(1, new LineData("1", "2013-01-04T00:00:00+0000", "jhenry")), - MapEntry.entry(3, new LineData("2", "2013-01-04T00:00:00+0000", "jhenry")), - MapEntry.entry(4, new LineData("1", "2013-01-04T00:00:00+0000", "jhenry")), - MapEntry.entry(8, new LineData("3", "2014-01-04T00:00:00+0000", "toto"))); - - assertThat(buildResult.getLogs()).doesNotContain("1 files to be analyzed"); - assertThat(buildResult.getLogs()).doesNotContain("1/1 files analyzed"); - - // Now if SCM is explicitely disabled it should clear SCM data on server side - buildResult = orchestrator.executeBuild(build.setProperty("sonar.scm.disabled", "true")); - - assertThat(getScmData("sample-scm:src/main/xoo/sample/Sample.xoo")).isEmpty(); - - assertThat(buildResult.getLogs()).doesNotContain("1 files to be analyzed"); - assertThat(buildResult.getLogs()).doesNotContain("1/1 files analyzed"); - } - - private class LineData { - - final String revision; - final Date date; - final String author; - - public LineData(String revision, String datetime, String author) throws ParseException { - this.revision = revision; - this.date = DATETIME_FORMAT.parse(datetime); - this.author = author; - } - - @Override - public boolean equals(Object obj) { - return EqualsBuilder.reflectionEquals(this, obj); - } - - @Override - public int hashCode() { - return new HashCodeBuilder().append(revision).append(date).append(author).toHashCode(); - } - - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this, ToStringStyle.SIMPLE_STYLE); - } - } - - private Map<Integer, LineData> getScmData(String fileKey) throws ParseException { - Map<Integer, LineData> result = new HashMap<>(); - String json = orchestrator.getServer().adminWsClient().get("api/sources/scm", "key", fileKey); - JSONObject obj = (JSONObject) JSONValue.parse(json); - JSONArray array = (JSONArray) obj.get("scm"); - for (Object anArray : array) { - JSONArray item = (JSONArray) anArray; - String datetime = (String) item.get(2); - result.put(((Long) item.get(0)).intValue(), new LineData((String) item.get(3), datetime, (String) item.get(1))); - } - return result; - } - -} diff --git a/it/it-tests/src/test/java/it/serverSystem/ClusterTest.java b/it/it-tests/src/test/java/it/serverSystem/ClusterTest.java deleted file mode 100644 index 99b974df50d..00000000000 --- a/it/it-tests/src/test/java/it/serverSystem/ClusterTest.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.serverSystem; - -import com.google.common.base.Joiner; -import com.google.common.collect.ImmutableMap; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.server.StartupLogWatcher; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.nio.file.Files; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.junit.Ignore; -import org.junit.Test; -import org.sonarqube.ws.Issues; -import org.sonarqube.ws.Settings; -import org.sonarqube.ws.client.rule.SearchWsRequest; -import org.sonarqube.ws.client.setting.ValuesRequest; -import util.ItUtils; - -import static org.apache.commons.lang3.StringUtils.containsIgnoreCase; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newWsClient; - -@Ignore("temporarily ignored") -public class ClusterTest { - - private static final String CONF_FILE_PATH = "conf/sonar.properties"; - - /** - * SONAR-7899 - */ - @Test - public void secondary_nodes_do_not_write_to_datastores_at_startup() throws Exception { - // start "startup leader", which creates and populates datastores - Orchestrator orchestrator = Orchestrator.builderEnv() - .setServerProperty("sonar.cluster.enabled", "true") - .setServerProperty("sonar.cluster.name", "secondary_nodes_do_not_write_to_datastores_at_startup") - .setServerProperty("sonar.cluster.web.startupLeader", "true") - .setServerProperty("sonar.log.level", "TRACE") - .addPlugin(ItUtils.xooPlugin()) - .build(); - orchestrator.start(); - - expectLog(orchestrator, "Cluster enabled (startup leader)"); - expectWriteOperations(orchestrator, true); - // verify that datastores are populated by requesting rules - assertThat(newWsClient(orchestrator).rules().search(new SearchWsRequest()).getTotal()).isGreaterThan(0); - - FileUtils.write(orchestrator.getServer().getWebLogs(), "", false); - updateSonarPropertiesFile(orchestrator, ImmutableMap.of("sonar.cluster.web.startupLeader", "false")); - orchestrator.restartServer(); - - expectLog(orchestrator, "Cluster enabled (startup follower)"); - expectWriteOperations(orchestrator, false); - - orchestrator.stop(); - } - - @Test - public void start_cluster_of_elasticsearch_and_web_nodes() throws IOException { - Orchestrator elasticsearch = null; - Orchestrator web = null; - - try { - ElasticsearchStartupWatcher esWatcher = new ElasticsearchStartupWatcher(); - elasticsearch = Orchestrator.builderEnv() - .setServerProperty("sonar.cluster.enabled", "true") - .setServerProperty("sonar.cluster.name", "start_cluster_of_elasticsearch_and_web_nodes") - .setServerProperty("sonar.cluster.web.disabled", "true") - .setServerProperty("sonar.cluster.ce.disabled", "true") - .setStartupLogWatcher(esWatcher) - .build(); - elasticsearch.start(); - assertThat(esWatcher.port).isGreaterThan(0); - assertThat(FileUtils.readFileToString(elasticsearch.getServer().getAppLogs())).doesNotContain("Process[web]"); - - web = Orchestrator.builderEnv() - .setServerProperty("sonar.cluster.enabled", "true") - .setServerProperty("sonar.cluster.name", "start_cluster_of_elasticsearch_and_web_nodes") - .setServerProperty("sonar.cluster.web.startupLeader", "true") - .setServerProperty("sonar.cluster.search.disabled", "true") - .setServerProperty("sonar.cluster.search.hosts", "localhost:" + esWatcher.port) - // no need for compute engine in this test. Disable it for faster test. - .setServerProperty("sonar.cluster.ce.disabled", "true") - // override the default watcher provided by Orchestrator - // which waits for Compute Engine to be up - .setStartupLogWatcher(log -> log.contains("SonarQube is up")) - .build(); - web.start(); - - String coreId = getPropertyValue(web, "sonar.core.id"); - String startTime = getPropertyValue(web, "sonar.core.startTime"); - - assertThat(FileUtils.readFileToString(web.getServer().getAppLogs())).doesNotContain("Process[es]"); - // call a web service that requires Elasticsearch - Issues.SearchWsResponse wsResponse = ItUtils.newWsClient(web).issues().search(new org.sonarqube.ws.client.issue.SearchWsRequest()); - assertThat(wsResponse.getIssuesCount()).isEqualTo(0); - - web.restartServer(); - - // sonar core id must not change after restart - assertThat(getPropertyValue(web, "sonar.core.id")).isEqualTo(coreId); - // startTime must change at each startup - assertThat(getPropertyValue(web, "sonar.core.startTime")).isNotEqualTo(startTime); - } finally { - if (web != null) { - web.stop(); - } - if (elasticsearch != null) { - elasticsearch.stop(); - } - } - } - - private static String getPropertyValue(Orchestrator web, String property) { - Settings.ValuesWsResponse response = ItUtils.newAdminWsClient(web).settings().values(ValuesRequest.builder().setKeys(property).build()); - List<Settings.Setting> settingsList = response.getSettingsList(); - if (settingsList.isEmpty()) { - return null; - } - assertThat(settingsList).hasSize(1); - return settingsList.iterator().next().getValue(); - } - - private static class ElasticsearchStartupWatcher implements StartupLogWatcher { - private final Pattern pattern = Pattern.compile("Elasticsearch listening on .*:(\\d+)"); - private int port = -1; - - @Override - public boolean isStarted(String log) { - Matcher matcher = pattern.matcher(log); - if (matcher.find()) { - port = Integer.parseInt(matcher.group(1)); - } - return log.contains("Process[es] is up"); - } - } - - private static void expectLog(Orchestrator orchestrator, String expectedLog) throws IOException { - File logFile = orchestrator.getServer().getWebLogs(); - try (Stream<String> lines = Files.lines(logFile.toPath())) { - assertThat(lines.anyMatch(s -> StringUtils.containsIgnoreCase(s, expectedLog))).isTrue(); - } - } - - private static void expectWriteOperations(Orchestrator orchestrator, boolean expected) throws IOException { - try (Stream<String> lines = Files.lines(orchestrator.getServer().getWebLogs().toPath())) { - List<String> writeOperations = lines.filter(ClusterTest::isWriteOperation).collect(Collectors.toList()); - if (expected) { - assertThat(writeOperations).isNotEmpty(); - } else { - assertThat(writeOperations).as("Unexpected write operations: " + Joiner.on('\n').join(writeOperations)).isEmpty(); - - } - } - } - - private static boolean isWriteOperation(String log) { - return isDbWriteOperation(log) || isEsWriteOperation(log); - } - - private static boolean isDbWriteOperation(String log) { - return log.contains("web[][sql]") && (containsIgnoreCase(log, "sql=insert") || - containsIgnoreCase(log, "sql=update") || - containsIgnoreCase(log, "sql=delete") || - containsIgnoreCase(log, "sql=create")); - } - - private static boolean isEsWriteOperation(String log) { - return log.contains("web[][es]") && (containsIgnoreCase(log, "Create index") || - containsIgnoreCase(log, "Create type") || - containsIgnoreCase(log, "put mapping request") || - containsIgnoreCase(log, "refresh request") || - containsIgnoreCase(log, "index request")); - } - - private static void updateSonarPropertiesFile(Orchestrator orchestrator, Map<String, String> props) throws IOException { - Properties propsFile = new Properties(); - try (FileInputStream conf = FileUtils.openInputStream(new File(orchestrator.getServer().getHome(), CONF_FILE_PATH))) { - propsFile.load(conf); - propsFile.putAll(props); - } - try (FileOutputStream conf = FileUtils.openOutputStream(new File(orchestrator.getServer().getHome(), CONF_FILE_PATH))) { - propsFile.store(conf, ""); - } - } -} diff --git a/it/it-tests/src/test/java/it/serverSystem/HttpHeadersTest.java b/it/it-tests/src/test/java/it/serverSystem/HttpHeadersTest.java deleted file mode 100644 index 12fccdb9ed7..00000000000 --- a/it/it-tests/src/test/java/it/serverSystem/HttpHeadersTest.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.serverSystem; - -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import okhttp3.CacheControl; -import okhttp3.Response; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; - -import static com.google.common.io.Files.getFileExtension; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.call; - -public class HttpHeadersTest { - - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - private static String JS_HASH; - - @BeforeClass - public static void setUp() throws Exception { - JS_HASH = getJsHash(); - } - - @Test - public void verify_headers_of_base_url() throws Exception { - Response response = call(orchestrator.getServer().getUrl() + "/"); - - verifySecurityHeaders(response); - verifyContentType(response, "text/html;charset=utf-8"); - - // SONAR-6964 - assertNoCacheInBrowser(response); - } - - @Test - public void verify_headers_of_ws() throws Exception { - Response response = call(orchestrator.getServer().getUrl() + "/api/issues/search"); - - verifySecurityHeaders(response); - verifyContentType(response, "application/json"); - assertNoCacheInBrowser(response); - } - - @Test - public void verify_headers_of_images() throws Exception { - Response response = call(orchestrator.getServer().getUrl() + "/images/logo.svg"); - - verifySecurityHeaders(response); - verifyContentType(response, "image/svg+xml"); - assertCacheInBrowser(response); - } - - @Test - public void verify_headers_of_css() throws Exception { - Response response = call(orchestrator.getServer().getUrl() + "/css/sonar." + JS_HASH + ".css"); - - verifySecurityHeaders(response); - verifyContentType(response, "text/css"); - assertCacheInBrowser(response); - } - - @Test - public void verify_headers_of_js() throws Exception { - Response response = call(orchestrator.getServer().getUrl() + "/js/app." + JS_HASH + ".js"); - - verifySecurityHeaders(response); - verifyContentType(response, "application/javascript"); - } - - @Test - public void verify_headers_of_images_provided_by_plugins() throws Exception { - Response response = call(orchestrator.getServer().getUrl() + "/static/uiextensionsplugin/cute.jpg"); - - verifySecurityHeaders(response); - verifyContentType(response, "image/jpeg"); - } - - @Test - public void verify_headers_of_js_provided_by_plugins() throws Exception { - Response response = call(orchestrator.getServer().getUrl() + "/static/uiextensionsplugin/extension.js"); - - verifySecurityHeaders(response); - verifyContentType(response, "application/javascript"); - } - - @Test - public void verify_headers_of_html_provided_by_plugins() throws Exception { - Response response = call(orchestrator.getServer().getUrl() + "/static/uiextensionsplugin/file.html"); - - verifySecurityHeaders(response); - verifyContentType(response, "text/html"); - } - - private static void assertCacheInBrowser(Response httpResponse) { - CacheControl cacheControl = httpResponse.cacheControl(); - assertThat(cacheControl.mustRevalidate()).isFalse(); - assertThat(cacheControl.noCache()).isFalse(); - assertThat(cacheControl.noStore()).isFalse(); - } - - private static void assertNoCacheInBrowser(Response httpResponse) { - CacheControl cacheControl = httpResponse.cacheControl(); - assertThat(cacheControl.mustRevalidate()).isTrue(); - assertThat(cacheControl.noCache()).isTrue(); - assertThat(cacheControl.noStore()).isTrue(); - } - - /** - * SONAR-8247 - */ - private static void verifySecurityHeaders(Response httpResponse) { - assertThat(httpResponse.isSuccessful()).as("Code is %s", httpResponse.code()).isTrue(); - assertThat(httpResponse.headers().get("X-Frame-Options")).isEqualTo("SAMEORIGIN"); - assertThat(httpResponse.headers().get("X-XSS-Protection")).isEqualTo("1; mode=block"); - assertThat(httpResponse.headers().get("X-Content-Type-Options")).isEqualTo("nosniff"); - } - - private static void verifyContentType(Response httpResponse, String expectedContentType) { - assertThat(httpResponse.headers().get("Content-Type")).isEqualTo(expectedContentType); - } - - /** - * Every JS and CSS files contains a hash between the file name and the extension. - */ - private static String getJsHash() throws IOException { - File cssFolder = new File(orchestrator.getServer().getHome(), "web/css"); - String fileName = Files.list(cssFolder.toPath()) - .map(path -> path.toFile().getName()) - .filter(name -> getFileExtension(name).equals("css")) - .findFirst() - .orElseThrow(() -> new IllegalStateException("sonar.css hasn't been found")); - return fileName.replace("sonar.", "").replace(".css", ""); - } -} diff --git a/it/it-tests/src/test/java/it/serverSystem/LogsTest.java b/it/it-tests/src/test/java/it/serverSystem/LogsTest.java deleted file mode 100644 index 7b29b6229db..00000000000 --- a/it/it-tests/src/test/java/it/serverSystem/LogsTest.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.serverSystem; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.input.ReversedLinesFileReader; -import org.assertj.core.util.Files; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.issue.SearchWsRequest; -import util.ItUtils; - -import static java.lang.String.format; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; - -public class LogsTest { - - public static final String ACCESS_LOGS_PATTERN = "\"%reqAttribute{ID}\" \"%reqAttribute{LOGIN}\" \"%r\" %s"; - private static final String PATH = "/called/from/LogsTest"; - - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Before - public void cleanDatabase() { - orchestrator.resetData(); - } - - /** - * SONAR-7581 - */ - @Test - public void verify_login_in_access_logs() throws Exception { - // log "-" for anonymous - sendHttpRequest(ItUtils.newWsClient(orchestrator), PATH); - assertThat(accessLogsFile()).isFile().exists(); - verifyLastAccessLogLine("-", PATH, 200); - - sendHttpRequest(ItUtils.newAdminWsClient(orchestrator), PATH); - verifyLastAccessLogLine("admin", PATH, 200); - } - - @Test - public void verify_request_id_in_access_logs() throws IOException { - sendHttpRequest(ItUtils.newWsClient(orchestrator), PATH); - String lastAccessLog = readLastAccessLog(); - assertThat(lastAccessLog).doesNotStartWith("\"\"").startsWith("\""); - int firstQuote = lastAccessLog.indexOf('"'); - String requestId = lastAccessLog.substring(firstQuote + 1, lastAccessLog.indexOf('"', firstQuote + 1)); - assertThat(requestId.length()).isGreaterThanOrEqualTo(20); - } - - @Test - public void info_log_in_sonar_log_file_when_SQ_is_done_starting() throws IOException { - List<String> logs = FileUtils.readLines(orchestrator.getServer().getAppLogs()); - String sqIsUpMessage = "SonarQube is up"; - assertThat(logs.stream().filter(str -> str.contains(sqIsUpMessage)).findFirst()).describedAs("message is there").isNotEmpty(); - assertThat(logs.get(logs.size() - 1)).describedAs("message is the last line of logs").contains(sqIsUpMessage); - } - - @Test - public void test_ws_change_log_level() throws IOException { - generateSqlAndEsLogsInWebAndCe(); - - assertThat(logLevelsOf(orchestrator.getServer().getWebLogs())).doesNotContain("DEBUG", "TRACE"); - assertThat(logLevelsOf(orchestrator.getServer().getCeLogs())).doesNotContain("DEBUG", "TRACE"); - - orchestrator.getServer().adminWsClient().post("api/system/change_log_level", "level", "TRACE"); - - generateSqlAndEsLogsInWebAndCe(); - - // there is hardly DEBUG logs, but we are sure there must be TRACE logs for SQL and ES requests - assertThat(logLevelsOf(orchestrator.getServer().getWebLogs())).contains("TRACE"); - assertThat(logLevelsOf(orchestrator.getServer().getCeLogs())).contains("TRACE"); - - // reset log files to empty and level to INFO - orchestrator.getServer().adminWsClient().post("api/system/change_log_level", "level", "INFO"); - FileUtils.write(orchestrator.getServer().getWebLogs(), ""); - FileUtils.write(orchestrator.getServer().getCeLogs(), ""); - - generateSqlAndEsLogsInWebAndCe(); - - assertThat(logLevelsOf(orchestrator.getServer().getWebLogs())).doesNotContain("DEBUG", "TRACE"); - assertThat(logLevelsOf(orchestrator.getServer().getCeLogs())).doesNotContain("DEBUG", "TRACE"); - } - - private void generateSqlAndEsLogsInWebAndCe() { - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - ItUtils.newAdminWsClient(orchestrator).issues().search(new SearchWsRequest() - .setProjectKeys(Collections.singletonList("sample"))); - } - - private Collection<String> logLevelsOf(File webLogs) { - return Files.linesOf(webLogs, "UTF-8").stream() - .filter(str -> str.length() >= 25) - .map(str -> str.substring(20, 25)) - .map(String::trim) - .collect(Collectors.toSet()); - } - - private void verifyLastAccessLogLine(String login, String path, int status) throws IOException { - assertThat(readLastAccessLog()).endsWith(format("\"%s\" \"GET %s HTTP/1.1\" %d", login, path, status)); - } - - private String readLastAccessLog() throws IOException { - try (ReversedLinesFileReader tailer = new ReversedLinesFileReader(accessLogsFile())) { - return tailer.readLine(); - } - } - - private void sendHttpRequest(WsClient client, String path) { - client.wsConnector().call(new GetRequest(path)); - } - - private File accessLogsFile() { - return new File(orchestrator.getServer().getHome(), "logs/access.log"); - } -} diff --git a/it/it-tests/src/test/java/it/serverSystem/PingTest.java b/it/it-tests/src/test/java/it/serverSystem/PingTest.java deleted file mode 100644 index 3be2e6c7132..00000000000 --- a/it/it-tests/src/test/java/it/serverSystem/PingTest.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.serverSystem; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.http.HttpResponse; -import it.Category4Suite; -import org.junit.ClassRule; -import org.junit.Test; - -import static org.assertj.core.api.Assertions.assertThat; - -public class PingTest { - - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Test - public void ping_answers_pong() throws Exception { - HttpResponse response = orchestrator.getServer().newHttpCall("/api/system/ping").execute(); - - assertThat(response.getBodyAsString()).isEqualTo("pong"); - assertThat(response.getHeader("Content-Type")).isEqualTo("text/plain"); - } -} diff --git a/it/it-tests/src/test/java/it/serverSystem/RestartTest.java b/it/it-tests/src/test/java/it/serverSystem/RestartTest.java deleted file mode 100644 index cd58134a2c2..00000000000 --- a/it/it-tests/src/test/java/it/serverSystem/RestartTest.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.serverSystem; - -import com.sonar.orchestrator.Orchestrator; -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.SystemUtils; -import org.junit.After; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.DisableOnDebug; -import org.junit.rules.ExpectedException; -import org.junit.rules.TestRule; -import org.junit.rules.Timeout; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.ws.client.permission.AddUserWsRequest; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.newWsClient; - -/** - * This class starts a new orchestrator on each test case - */ -public class RestartTest { - - private Orchestrator orchestrator; - - @Rule - public ExpectedException thrown = ExpectedException.none(); - @Rule - public TestRule safeguardTimeout = new DisableOnDebug(Timeout.seconds(900)); - - @After - public void stop() { - if (orchestrator != null) { - orchestrator.stop(); - } - } - - @Test - public void restart_in_prod_mode_requires_sysadmin_permission_and_restarts() throws Exception { - // server classloader locks Jar files on Windows - if (!SystemUtils.IS_OS_WINDOWS) { - orchestrator = Orchestrator.builderEnv() - .setOrchestratorProperty("orchestrator.keepWorkspace", "true") - .build(); - orchestrator.start(); - - verifyFailWith403(() -> newWsClient(orchestrator).system().restart()); - - createNonSystemAdministrator("john", "doe"); - verifyFailWith403(() -> ItUtils.newUserWsClient(orchestrator, "john", "doe").system().restart()); - - createSystemAdministrator("big", "boss"); - ItUtils.newUserWsClient(orchestrator, "big", "boss").system().restart(); - WsResponse wsResponse = newAdminWsClient(orchestrator).wsConnector().call(new GetRequest("/api/system/status")).failIfNotSuccessful(); - assertThat(wsResponse.content()).contains("RESTARTING"); - - // we just wait five seconds, for a lack of a better approach to waiting for the restart process to start in SQ - Thread.sleep(5000); - - assertThat(FileUtils.readFileToString(orchestrator.getServer().getWebLogs())) - .contains("SonarQube restart requested by big"); - } - } - - /** - * SONAR-4843 - */ - @Test - public void restart_on_dev_mode() throws Exception { - // server classloader locks Jar files on Windows - if (!SystemUtils.IS_OS_WINDOWS) { - orchestrator = Orchestrator.builderEnv() - .setServerProperty("sonar.web.dev", "true") - .build(); - orchestrator.start(); - - newAdminWsClient(orchestrator).system().restart(); - assertThat(FileUtils.readFileToString(orchestrator.getServer().getWebLogs())) - .contains("Fast restarting WebServer...") - .contains("WebServer restarted"); - } - } - - private static void verifyFailWith403(Runnable runnable) { - try { - runnable.run(); - fail(); - } catch (Exception e) { - assertThat(e.getMessage()).contains("403"); - } - } - - private void createSystemAdministrator(String login, String password) { - WsClient wsClient = newAdminWsClient(orchestrator); - createNonSystemAdministrator(wsClient, login, password); - wsClient.permissions().addUser(new AddUserWsRequest().setLogin(login).setPermission("admin")); - } - - private void createNonSystemAdministrator(String login, String password) { - createNonSystemAdministrator(newAdminWsClient(orchestrator), login, password); - } - - private static void createNonSystemAdministrator(WsClient wsClient, String login, String password) { - wsClient.wsConnector().call( - new PostRequest("api/users/create") - .setParam("login", login) - .setParam("name", login) - .setParam("password", password)); - } -} diff --git a/it/it-tests/src/test/java/it/serverSystem/ServerSystemRestartingOrchestrator.java b/it/it-tests/src/test/java/it/serverSystem/ServerSystemRestartingOrchestrator.java deleted file mode 100644 index 03142b3e7cc..00000000000 --- a/it/it-tests/src/test/java/it/serverSystem/ServerSystemRestartingOrchestrator.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.serverSystem; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.locator.FileLocation; -import java.io.File; -import java.util.Map; -import org.apache.commons.io.FileUtils; -import org.junit.After; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsResponse; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; -import static util.ItUtils.newWsClient; - -/** - * This class start a new orchestrator on each test case - */ -public class ServerSystemRestartingOrchestrator { - - Orchestrator orchestrator; - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @After - public void stop() { - if (orchestrator != null) { - orchestrator.stop(); - } - } - - /** - * SONAR-3516 - */ - @Test - public void check_minimal_sonar_version_at_startup() throws Exception { - try { - orchestrator = Orchestrator.builderEnv() - .addPlugin(FileLocation.of(new File(ServerSystemRestartingOrchestrator.class.getResource("/serverSystem/ServerSystemTest/incompatible-plugin-1.0.jar").toURI()))) - .build(); - orchestrator.start(); - fail(); - } catch (Exception e) { - assertThat(FileUtils.readFileToString(orchestrator.getServer().getWebLogs())).contains( - "Plugin incompatible-plugin [incompatibleplugin] requires at least SonarQube 100"); - } - } - - @Test - public void support_install_dir_with_whitespaces() throws Exception { - String dirName = "target/has space"; - FileUtils.deleteDirectory(new File(dirName)); - orchestrator = Orchestrator.builderEnv() - .setOrchestratorProperty("orchestrator.workspaceDir", dirName) - .build(); - orchestrator.start(); - - WsResponse statusResponse = newWsClient(orchestrator).wsConnector().call(new GetRequest("api/system/status")); - Map<String, Object> json = ItUtils.jsonToMap(statusResponse.content()); - assertThat(json.get("status")).isEqualTo("UP"); - } - - // SONAR-4748 - @Test - public void should_create_in_temp_folder() throws Exception { - orchestrator = Orchestrator.builderEnv() - .addPlugin(ItUtils.pluginArtifact("server-plugin")) - .setServerProperty("sonar.createTempFiles", "true") - .build(); - orchestrator.start(); - - File tempDir = new File(orchestrator.getServer().getHome(), "temp/tmp"); - - String logs = FileUtils.readFileToString(orchestrator.getServer().getWebLogs()); - assertThat(logs).contains("Creating temp directory: " + tempDir.getAbsolutePath() + File.separator + "sonar-it"); - assertThat(logs).contains("Creating temp file: " + tempDir.getAbsolutePath() + File.separator + "sonar-it"); - - // Verify temp folder is created - assertThat(new File(tempDir, "sonar-it")).isDirectory().exists(); - - orchestrator.stop(); - - // Verify temp folder is deleted after shutdown - assertThat(new File(tempDir, "sonar-it")).doesNotExist(); - } - -} diff --git a/it/it-tests/src/test/java/it/serverSystem/ServerSystemTest.java b/it/it-tests/src/test/java/it/serverSystem/ServerSystemTest.java deleted file mode 100644 index 6edb93ad309..00000000000 --- a/it/it-tests/src/test/java/it/serverSystem/ServerSystemTest.java +++ /dev/null @@ -1,223 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.serverSystem; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import java.io.File; -import java.io.IOException; -import java.util.Map; -import okhttp3.Response; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.json.simple.JSONValue; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.ws.MediaTypes; -import org.sonarqube.ws.ServerId.ShowWsResponse; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsResponse; -import pageobjects.Navigation; -import pageobjects.ServerIdPage; -import util.ItUtils; -import util.user.UserRule; - -import static org.apache.commons.lang.StringUtils.startsWithAny; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; -import static util.ItUtils.call; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.newWsClient; -import static util.selenium.Selenese.runSelenese; - -public class ServerSystemTest { - - private static final String ADMIN_USER_LOGIN = "admin-user"; - - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - @Before - public void initAdminUser() { - userRule.createAdminUser(ADMIN_USER_LOGIN, ADMIN_USER_LOGIN); - } - - @After - public void deleteAdminUser() { - userRule.resetUsers(); - } - - @Test - public void get_sonarqube_version() { - Map<String, Object> json = callStatus(); - - String version = (String) json.get("version"); - if (!startsWithAny(version, new String[] {"6."})) { - fail("Bad version: " + version); - } - } - - @Test - public void get_server_status() { - Map<String, Object> json = callStatus(); - assertThat(json.get("status")).isEqualTo("UP"); - } - - @Test - public void generate_server_id() throws IOException { - Navigation nav = Navigation.create(orchestrator).openHome().logIn().submitCredentials(ADMIN_USER_LOGIN); - String validIpAddress = getValidIpAddress(); - - nav.openServerId() - .setOrganization("Name with invalid chars like $") - .setIpAddress(validIpAddress) - .submitForm() - .assertError(); - - nav.openServerId() - .setOrganization("DEMO") - .setIpAddress("invalid_address") - .submitForm() - .assertError(); - - ServerIdPage page = nav.openServerId() - .setOrganization("DEMO") - .setIpAddress(validIpAddress) - .submitForm(); - - String serverId = page.serverIdInput().val(); - assertThat(serverId).isNotEmpty(); - } - - private Map<String, Object> callStatus() { - WsResponse statusResponse = newWsClient(orchestrator).wsConnector().call(new GetRequest("api/system/status")); - return ItUtils.jsonToMap(statusResponse.content()); - } - - @Test - public void display_system_info() { - runSelenese(orchestrator, "/serverSystem/ServerSystemTest/system_info.html"); - } - - @Test - public void download_system_info() throws Exception { - waitForComputeEngineToBeUp(orchestrator); - - WsResponse response = newAdminWsClient(orchestrator).wsConnector().call( - new GetRequest("api/system/info")); - - assertThat(response.code()).isEqualTo(200); - - assertThat(response.content()).contains( - // SONAR-7436 monitor ES and CE - "\"Compute Engine Database Connection\":", "\"Compute Engine State\":", "\"Compute Engine Tasks\":", - "\"Elasticsearch\":", "\"State\":\"GREEN\"", - - // SONAR-7271 get settings - "\"Settings\":", "\"sonar.jdbc.url\":", "\"sonar.path.data\":"); - } - - private static void waitForComputeEngineToBeUp(Orchestrator orchestrator) throws IOException { - for (int i = 0; i < 10_000; i++) { - File logs = orchestrator.getServer().getCeLogs(); - if (FileUtils.readFileToString(logs).contains("Compute Engine is operational")) { - return; - } - try { - Thread.sleep(100); - } catch (InterruptedException e) { - // ignored - } - } - throw new IllegalStateException("Compute Engine is not operational"); - } - - /** - * See http://jira.codehaus.org/browse/SONAR-2727 - */ - @Test - public void display_warnings_when_using_h2() { - if (orchestrator.getConfiguration().getString("sonar.jdbc.dialect").equals("h2")) { - runSelenese(orchestrator, "/serverSystem/ServerSystemTest/derby-warning.html"); - } - } - - /** - * See http://jira.codehaus.org/browse/SONAR-2840 - */ - @Test - public void hide_jdbc_settings_to_non_admin() { - runSelenese(orchestrator, "/serverSystem/ServerSystemTest/hide-jdbc-settings.html"); - } - - @Test - public void http_response_should_be_gzipped() throws IOException { - String url = orchestrator.getServer().getUrl() + "/api/rules/search"; - Response metricsResponse = call(url); - assertThat(metricsResponse.isSuccessful()).as("Response code is %s", metricsResponse.code()).isTrue(); - assertThat(metricsResponse.header("Content-Encoding")).isNull(); - - Response homeResponse = call(url, "Accept-Encoding", "gzip, deflate"); - assertThat(homeResponse.isSuccessful()).as("Response code is %s", metricsResponse.code()).isTrue(); - assertThat(homeResponse.header("Content-Encoding")).isEqualToIgnoringCase("gzip"); - } - - /** - * SONAR-3962 - */ - // TODO should be moved elsewhere - @Test - public void not_fail_with_url_ending_by_jsp() { - orchestrator.executeBuild(SonarScanner.create(ItUtils.projectDir("shared/xoo-sample")) - .setProperty("sonar.projectKey", "myproject.jsp")); - // Access dashboard - runSelenese(orchestrator, "/serverSystem/ServerSystemTest/url_ending_by_jsp.html"); - } - - /** - * SONAR-5197 - */ - // TODO should be moved elsewhere - @Test - public void api_ws_shortcut() throws Exception { - Response response = call(orchestrator.getServer().getUrl() + "/api"); - assertThat(response.isSuccessful()).as("Response code is %s", response.code()).isTrue(); - String json = IOUtils.toString(response.body().byteStream()); - Map jsonAsMap = (Map) JSONValue.parse(json); - assertThat(jsonAsMap.get("webServices")).isNotNull(); - } - - private String getValidIpAddress() throws IOException { - WsClient adminWsClient = newAdminWsClient(orchestrator); - ShowWsResponse response = ShowWsResponse.parseFrom(adminWsClient.wsConnector().call( - new GetRequest("api/server_id/show").setMediaType(MediaTypes.PROTOBUF)).contentStream()); - assertThat(response.getValidIpAddressesCount()).isGreaterThan(0); - return response.getValidIpAddresses(0); - } - -} diff --git a/it/it-tests/src/test/java/it/settings/DeprecatedPropertiesWsTest.java b/it/it-tests/src/test/java/it/settings/DeprecatedPropertiesWsTest.java deleted file mode 100644 index f98eef7565c..00000000000 --- a/it/it-tests/src/test/java/it/settings/DeprecatedPropertiesWsTest.java +++ /dev/null @@ -1,417 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.settings; - -import com.google.common.base.Throwables; -import com.google.gson.Gson; -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.TimeUnit; -import javax.annotation.CheckForNull; -import javax.annotation.Nullable; -import okhttp3.Credentials; -import okhttp3.FormBody; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.ws.client.setting.SetRequest; -import org.sonarqube.ws.client.setting.SettingsService; -import util.user.UserRule; - -import static java.net.URLEncoder.encode; -import static java.util.Arrays.asList; -import static org.assertj.core.api.Java6Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.newUserWsClient; -import static util.ItUtils.newWsClient; -import static util.ItUtils.resetSettings; -import static util.ItUtils.runProjectAnalysis; - -public class DeprecatedPropertiesWsTest { - - private final static String PROJECT_KEY = "com.sonarsource.it.samples:multi-modules-sample"; - private static final String MODULE_KEY = "com.sonarsource.it.samples:multi-modules-sample:module_a"; - private static final String SUB_MODULE_KEY = "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1"; - - private static final String PROJECT_SETTING_KEY = "sonar.dbcleaner.hoursBeforeKeepingOnlyOneSnapshotByDay"; - - private static String USER_LOGIN = "john"; - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @ClassRule - public static UserRule userRule = UserRule.from(orchestrator); - - static WsClient adminWsClient; - static WsClient userWsClient; - static WsClient anonymousWsClient; - - static SettingsService adminSettingsService; - - @BeforeClass - public static void init() throws Exception { - orchestrator.resetData(); - userRule.createUser(USER_LOGIN, "password"); - adminWsClient = newAdminWsClient(orchestrator); - userWsClient = newUserWsClient(orchestrator, USER_LOGIN, "password"); - anonymousWsClient = newWsClient(orchestrator); - adminSettingsService = newAdminWsClient(orchestrator).settings(); - runProjectAnalysis(orchestrator, "shared/xoo-multi-modules-sample"); - } - - @AfterClass - public static void resetAfterClass() throws Exception { - doResetSettings(); - userRule.deactivateUsers(USER_LOGIN); - } - - @Before - public void resetBefore() throws Exception { - doResetSettings(); - } - - private static void doResetSettings() { - resetSettings(orchestrator, null, "some-property", "custom-property", "int", "multi", "boolean", "hidden", "not_defined", "setting.secured", "setting.license.secured", "list", - "undefined"); - resetSettings(orchestrator, PROJECT_KEY, PROJECT_SETTING_KEY, "sonar.coverage.exclusions", "project.setting"); - } - - @Test - public void get_default_global_value() throws Exception { - assertThat(getProperty("some-property", null).getValue()).isEqualTo("aDefaultValue"); - } - - @Test - public void get_global_value() throws Exception { - setProperty("some-property", "value", null); - - assertThat(getProperty("some-property", null).getValue()).isEqualTo("value"); - } - - @Test - public void get_multi_values() throws Exception { - setProperty("multi", asList("value1", "value2", "value,3"), null); - - Properties.Property setting = getProperty("multi", null); - assertThat(setting.getValue()).isEqualTo("value1,value2,value%2C3"); - assertThat(setting.getValues()).containsOnly("value1", "value2", "value,3"); - } - - @Test - public void get_hidden_setting() throws Exception { - setProperty("hidden", "value", null); - - assertThat(getProperty("hidden", null).getValue()).isEqualTo("value"); - } - - @Test - public void get_secured_setting() throws Exception { - setProperty("setting.secured", "value", null); - - assertThat(getProperty("setting.secured", null).getValue()).isEqualTo("value"); - } - - @Test - public void get_license_setting() throws Exception { - setProperty("setting.license.secured", "value", null); - - assertThat(getProperty("setting.license.secured", null).getValue()).isEqualTo("value"); - } - - @Test - public void get_not_defined_setting() throws Exception { - setProperty("not_defined", "value", null); - - assertThat(getProperty("not_defined", null).getValue()).isEqualTo("value"); - } - - @Test - public void secured_setting_not_returned_to_not_admin() throws Exception { - setProperty("setting.secured", "value", null); - - // Admin can see the secured setting - assertThat(getProperties(null)).extracting(Properties.Property::getKey).contains("setting.secured"); - - // Not admin cannot see the secured setting - assertThat(getProperties(userWsClient, null)).extracting(Properties.Property::getKey).doesNotContain("setting.secured"); - assertThat(getProperties(anonymousWsClient, null)).extracting(Properties.Property::getKey).doesNotContain("setting.secured"); - } - - @Test - public void license_setting_not_returned_to_not_logged() throws Exception { - setProperty("setting.license.secured", "value", null); - - // Admin and user can see the license setting - assertThat(getProperties(null)).extracting(Properties.Property::getKey).contains("setting.license.secured"); - assertThat(getProperties(userWsClient, null)).extracting(Properties.Property::getKey).contains("setting.license.secured"); - - // Anonymous cannot see the license setting - assertThat(getProperties(anonymousWsClient, null)).extracting(Properties.Property::getKey).doesNotContain("setting.license.secured"); - } - - @Test - public void get_all_global_settings() throws Exception { - List<Properties.Property> properties = getProperties(null); - assertThat(properties).isNotEmpty(); - assertThat(properties).extracting("key") - .contains("sonar.core.id", "some-property", "boolean") - .doesNotContain("hidden"); - } - - @Test - public void get_default_component_value() throws Exception { - // Check default value is returned - assertThat(getProperty(PROJECT_SETTING_KEY, PROJECT_KEY).getValue()).isEqualTo("24"); - assertThat(getProperty(PROJECT_SETTING_KEY, MODULE_KEY).getValue()).isEqualTo("24"); - assertThat(getProperty(PROJECT_SETTING_KEY, SUB_MODULE_KEY).getValue()).isEqualTo("24"); - } - - @Test - public void get_global_component_value() throws Exception { - // Check global value is returned - setProperty(PROJECT_SETTING_KEY, "30", null); - assertThat(getProperty(PROJECT_SETTING_KEY, PROJECT_KEY).getValue()).isEqualTo("30"); - assertThat(getProperty(PROJECT_SETTING_KEY, MODULE_KEY).getValue()).isEqualTo("30"); - assertThat(getProperty(PROJECT_SETTING_KEY, SUB_MODULE_KEY).getValue()).isEqualTo("30"); - } - - @Test - public void get_component_value() throws Exception { - setProperty("sonar.coverage.exclusions", asList("file"), PROJECT_KEY); - - assertThat(getProperty("sonar.coverage.exclusions", PROJECT_KEY).getValue()).isEqualTo("file"); - } - - @Test - public void get_global_value_when_component_is_unknown() throws Exception { - setProperty("some-property", "value", null); - - assertThat(getProperty("some-property", PROJECT_KEY).getValue()).isEqualTo("value"); - } - - @Test - public void get_all_component_settings() throws Exception { - List<Properties.Property> properties = getProperties(PROJECT_KEY); - assertThat(properties).isNotEmpty(); - assertThat(properties).extracting("key") - .contains("sonar.dbcleaner.cleanDirectory", "sonar.dbcleaner.weeksBeforeDeletingAllSnapshots") - .doesNotContain("hidden"); - } - - @Test - public void get_global_value_using_id_parameter() throws Exception { - setProperty("some-property", "value", null); - - assertThat(getProperty(adminWsClient, "some-property", null, true).getValue()).isEqualTo("value"); - } - - @Test - public void put_property() throws Exception { - putProperty("some-property", "some-value", null, false); - - assertThat(getProperty("some-property", null).getValue()).isEqualTo("some-value"); - } - - @Test - public void put_property_using_id_parameter() throws Exception { - putProperty("some-property", "some-value", null, true); - - assertThat(getProperty("some-property", null).getValue()).isEqualTo("some-value"); - } - - @Test - public void put_property_on_project() throws Exception { - putProperty("project.setting", "some-value", PROJECT_KEY, false); - - assertThat(getProperty("project.setting", PROJECT_KEY).getValue()).isEqualTo("some-value"); - } - - @Test - public void put_property_for_undefined_setting() throws Exception { - putProperty("undefined", "some-value", null, false); - - assertThat(getProperty("undefined", null).getValue()).isEqualTo("some-value"); - } - - @Test - public void put_property_multi_values() throws Exception { - putProperty("multi", "value1,value2,value3", null, false); - - Properties.Property setting = getProperty("multi", null); - assertThat(setting.getValue()).isEqualTo("value1,value2,value3"); - assertThat(setting.getValues()).containsOnly("value1", "value2", "value3"); - } - - @Test - public void fail_with_error_400_when_put_property_without_id() throws Exception { - Response response = putProperty("", "some-value", null, false); - assertThat(response.code()).isEqualTo(400); - } - - @Test - public void delete_property() throws Exception { - setProperty("custom-property", "value", null); - - deleteProperty("custom-property", null, false); - - assertThat(getProperty("custom-property", null)).isNull(); - } - - @Test - public void delete_property_using_id_parameter() throws Exception { - setProperty("custom-property", "value", null); - - deleteProperty("custom-property", null, true); - - assertThat(getProperty("custom-property", null)).isNull(); - } - - @Test - public void delete_property_on_project() throws Exception { - setProperty("project.setting", "value", PROJECT_KEY); - - deleteProperty("project.setting", PROJECT_KEY, false); - - assertThat(getProperty("project.setting", PROJECT_KEY)).isNull(); - } - - private static void setProperty(String key, String value, @Nullable String componentKey) { - adminSettingsService.set(SetRequest.builder().setKey(key).setValue(value).setComponent(componentKey).build()); - } - - private static void setProperty(String key, List<String> values, @Nullable String componentKey) { - adminSettingsService.set(SetRequest.builder().setKey(key).setValues(values).setComponent(componentKey).build()); - } - - private static List<Properties.Property> getProperties(@Nullable String componentKey) { - return getProperties(adminWsClient, componentKey); - } - - private static List<Properties.Property> getProperties(WsClient wsClient, @Nullable String componentKey) { - WsResponse response = wsClient.wsConnector() - .call(new GetRequest("api/properties") - .setParam("resource", componentKey)) - .failIfNotSuccessful(); - return asList(Properties.parse(response.content())); - } - - private static Properties.Property getProperty(String key, @Nullable String componentKey) throws UnsupportedEncodingException { - return getProperty(adminWsClient, key, componentKey, false); - } - - @CheckForNull - private static Properties.Property getProperty(WsClient wsClient, String key, @Nullable String componentKey, boolean useIdParameter) throws UnsupportedEncodingException { - GetRequest getRequest = useIdParameter ? new GetRequest("api/properties").setParam("id", encode(key, "UTF-8")).setParam("resource", componentKey) - : new GetRequest("api/properties/" + encode(key, "UTF-8")).setParam("resource", componentKey); - WsResponse response = wsClient.wsConnector() - .call(getRequest) - .failIfNotSuccessful(); - Properties.Property[] properties = Properties.parse(response.content()); - return Arrays.stream(properties).findFirst().orElseGet(() -> null); - } - - private static Response putProperty(String key, String value, @Nullable String componentKey, boolean useIdParameter) throws UnsupportedEncodingException { - String url = useIdParameter ? orchestrator.getServer().getUrl() + "/api/properties?id=" + encode(key, "UTF-8") + "&value=" + value - : orchestrator.getServer().getUrl() + "/api/properties/" + encode(key, "UTF-8") + "?value=" + value; - url += componentKey != null ? "&resource=" + componentKey : ""; - return call(new Request.Builder() - .put(new FormBody.Builder().build()) - .url(url)); - } - - private static Response deleteProperty(String key, @Nullable String componentKey, boolean useIdParameter) throws UnsupportedEncodingException { - String url = useIdParameter ? orchestrator.getServer().getUrl() + "/api/properties?id=" + encode(key, "UTF-8") - : orchestrator.getServer().getUrl() + "/api/properties/" + encode(key, "UTF-8"); - url += componentKey != null ? "?resource=" + componentKey : ""; - return call(new Request.Builder() - .delete(new FormBody.Builder().build()) - .url(url)); - } - - private static Response call(Request.Builder requestBuilder) { - try { - requestBuilder.header("Authorization", Credentials.basic("admin", "admin")); - return new OkHttpClient.Builder() - .connectTimeout(30, TimeUnit.SECONDS) - .readTimeout(30, TimeUnit.SECONDS) - .build() - .newCall(requestBuilder.build()) - .execute(); - } catch (IOException e) { - throw Throwables.propagate(e); - } - } - - public static class Properties { - - private List<Property> properties; - - private Properties(List<Property> properties) { - this.properties = properties; - } - - public List<Property> getProperties() { - return properties; - } - - public static Property[] parse(String json) { - Gson gson = new Gson(); - return gson.fromJson(json, Property[].class); - } - - public static class Property { - private final String key; - private final String value; - private final String[] values; - - private Property(String key, String value, String[] values) { - this.key = key; - this.value = value; - this.values = values; - } - - public String getKey() { - return key; - } - - public String getValue() { - return value; - } - - public String[] getValues() { - return values; - } - } - } - -} diff --git a/it/it-tests/src/test/java/it/settings/EmailsTest.java b/it/it-tests/src/test/java/it/settings/EmailsTest.java deleted file mode 100644 index 9d2924ed133..00000000000 --- a/it/it-tests/src/test/java/it/settings/EmailsTest.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.settings; - -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import java.util.Iterator; -import javax.annotation.Nullable; -import javax.mail.internet.MimeMessage; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.Settings; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.setting.SettingsService; -import org.sonarqube.ws.client.setting.ValuesRequest; -import org.subethamail.wiser.Wiser; -import org.subethamail.wiser.WiserMessage; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.groups.Tuple.tuple; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.resetEmailSettings; -import static util.ItUtils.setServerProperty; - -public class EmailsTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - static Wiser SMTP_SERVER; - static WsClient ADMIN_WS_CLIENT; - static SettingsService SETTINGS; - - @BeforeClass - public static void before() throws Exception { - ADMIN_WS_CLIENT = newAdminWsClient(orchestrator); - SETTINGS = ADMIN_WS_CLIENT.settings(); - - SMTP_SERVER = new Wiser(0); - SMTP_SERVER.start(); - System.out.println("SMTP Server port: " + SMTP_SERVER.getServer().getPort()); - } - - @AfterClass - public static void stop() { - if (SMTP_SERVER != null) { - SMTP_SERVER.stop(); - } - resetEmailSettings(orchestrator); - } - - @Before - public void prepare() { - orchestrator.resetData(); - SMTP_SERVER.getMessages().clear(); - resetEmailSettings(orchestrator); - } - - @Test - public void update_email_settings() throws Exception { - updateEmailSettings("localhost", "42", "noreply@email.com", "[EMAIL]", "ssl", "john", "123456"); - - Settings.ValuesWsResponse response = SETTINGS.values(ValuesRequest.builder() - .setKeys("email.smtp_host.secured", "email.smtp_port.secured", "email.smtp_secure_connection.secured", "email.smtp_username.secured", "email.smtp_password.secured", - "email.from", "email.prefix") - .build()); - - assertThat(response.getSettingsList()).extracting(Settings.Setting::getKey, Settings.Setting::getValue) - .containsOnly( - tuple("email.smtp_host.secured", "localhost"), - tuple("email.smtp_port.secured", "42"), - tuple("email.smtp_secure_connection.secured", "ssl"), - tuple("email.smtp_username.secured", "john"), - tuple("email.smtp_password.secured", "123456"), - tuple("email.from", "noreply@email.com"), - tuple("email.prefix", "[EMAIL]")); - } - - @Test - public void send_test_email() throws Exception { - updateEmailSettings("localhost", Integer.toString(SMTP_SERVER.getServer().getPort()), null, null, null, null, null); - - sendEmail("test@example.org", "Test Message from SonarQube", "This is a test message from SonarQube"); - - // We need to wait until all notifications will be delivered - waitUntilAllNotificationsAreDelivered(); - Iterator<WiserMessage> emails = SMTP_SERVER.getMessages().iterator(); - MimeMessage message = emails.next().getMimeMessage(); - assertThat(message.getHeader("To", null)).isEqualTo("<test@example.org>"); - assertThat(message.getSubject()).contains("Test Message from SonarQube"); - assertThat((String) message.getContent()).contains("This is a test message from SonarQube"); - assertThat(emails.hasNext()).isFalse(); - } - - private static void waitUntilAllNotificationsAreDelivered() throws InterruptedException { - Thread.sleep(10000); - } - - private static void updateEmailSettings(@Nullable String host, @Nullable String port, @Nullable String from, @Nullable String prefix, @Nullable String secure, - @Nullable String username, @Nullable String password) { - setServerProperty(orchestrator, "email.smtp_host.secured", host); - setServerProperty(orchestrator, "email.smtp_port.secured", port); - setServerProperty(orchestrator, "email.smtp_secure_connection.secured", secure); - setServerProperty(orchestrator, "email.smtp_username.secured", username); - setServerProperty(orchestrator, "email.smtp_password.secured", password); - setServerProperty(orchestrator, "email.from", from); - setServerProperty(orchestrator, "email.prefix", prefix); - } - - private static void sendEmail(String to, String subject, String message) { - ADMIN_WS_CLIENT.wsConnector().call( - new PostRequest("/api/emails/send") - .setParam("to", to) - .setParam("subject", subject) - .setParam("message", message)) - .failIfNotSuccessful(); - } - -} diff --git a/it/it-tests/src/test/java/it/settings/LicensesPageTest.java b/it/it-tests/src/test/java/it/settings/LicensesPageTest.java deleted file mode 100644 index 36c51a9c8bc..00000000000 --- a/it/it-tests/src/test/java/it/settings/LicensesPageTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.settings; - -import com.sonar.orchestrator.Orchestrator; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.ws.Settings.ValuesWsResponse; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.setting.ValuesRequest; -import pageobjects.Navigation; -import pageobjects.licenses.LicenseItem; -import pageobjects.licenses.LicensesPage; -import util.user.UserRule; - -import static com.codeborne.selenide.Condition.text; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.pluginArtifact; - -public class LicensesPageTest { - private static Orchestrator orchestrator; - private static WsClient wsClient; - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - private String adminUser; - - @BeforeClass - public static void start() { - orchestrator = Orchestrator.builderEnv() - .addPlugin(pluginArtifact("license-plugin")) - .build(); - orchestrator.start(); - - wsClient = newAdminWsClient(orchestrator); - } - - @AfterClass - public static void stop() { - if (orchestrator != null) { - orchestrator.stop(); - } - } - - @Before - public void before() { - adminUser = userRule.createAdminUser(); - } - - @Test - public void display_licenses() { - LicensesPage page = Navigation.create(orchestrator).logIn().submitCredentials(adminUser).openLicenses(); - - page.getLicenses().shouldHaveSize(2); - page.getLicensesAsItems().get(0).getName().shouldHave(text("Typed property")); - page.getLicensesAsItems().get(1).getName().shouldHave(text("Property without license type")); - } - - @Test - public void change_licenses() { - String EXAMPLE_LICENSE = "TmFtZTogRGV2ZWxvcHBlcnMKUGx1Z2luOiBhdXRvY29udHJvbApFeHBpcmVzOiAyMDEyLTA0LTAxCktleTogNjI5N2MxMzEwYzg2NDZiZTE5MDU1MWE4ZmZmYzk1OTBmYzEyYTIyMgo="; - - LicensesPage page = Navigation.create(orchestrator).logIn().submitCredentials(adminUser).openLicenses(); - LicenseItem licenseItem = page.getLicenseByKey("typed.license.secured"); - licenseItem.setLicense(EXAMPLE_LICENSE); - - ValuesWsResponse response = wsClient.settings() - .values(ValuesRequest.builder().setKeys("typed.license.secured").build()); - assertThat(response.getSettings(0).getValue()).isEqualTo(EXAMPLE_LICENSE); - } -} diff --git a/it/it-tests/src/test/java/it/settings/PropertySetsTest.java b/it/it-tests/src/test/java/it/settings/PropertySetsTest.java deleted file mode 100644 index d2be7424966..00000000000 --- a/it/it-tests/src/test/java/it/settings/PropertySetsTest.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.settings; - -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import java.io.UnsupportedEncodingException; -import java.util.List; -import java.util.Map; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.ws.Settings; -import org.sonarqube.ws.client.setting.SetRequest; -import org.sonarqube.ws.client.setting.SettingsService; -import org.sonarqube.ws.client.setting.ValuesRequest; -import pageobjects.Navigation; -import pageobjects.settings.SettingsPage; -import util.user.UserRule; - -import static com.google.common.collect.Lists.newArrayList; -import static java.util.Arrays.asList; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.entry; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.resetSettings; - -public class PropertySetsTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - private Navigation nav = Navigation.create(orchestrator); - - static SettingsService SETTINGS; - private String adminUser; - - @BeforeClass - public static void initSettingsService() throws Exception { - SETTINGS = newAdminWsClient(orchestrator).settings(); - } - - @Before - public void before() { - adminUser = userRule.createAdminUser(); - } - - @After - public void reset_settings() throws Exception { - resetSettings(orchestrator, null, "sonar.demo", "sonar.autogenerated", "sonar.test.jira.servers"); - } - - @Test - public void support_property_sets() throws UnsupportedEncodingException { - SettingsPage page = nav.logIn().submitCredentials(adminUser).openSettings(null).openCategory("DEV") - .assertSettingDisplayed("sonar.test.jira.servers"); - - page.getPropertySetInput("sonar.test.jira.servers") - .setFieldValue("key", "jira1") - .setFieldValue("url", "http://jira") - .setFieldValue("port", "12345") - .save(); - - assertPropertySet("sonar.test.jira.servers", asList( - entry("key", "jira1"), - entry("url", "http://jira"), - entry("port", "12345"))); - } - - @Test - public void support_property_sets_with_auto_generated_keys() throws UnsupportedEncodingException { - SettingsPage page = nav.logIn().submitCredentials(adminUser).openSettings(null).openCategory("DEV") - .assertSettingDisplayed("sonar.autogenerated"); - - page.getPropertySetInput("sonar.autogenerated") - .setFieldValue(0, "value", "FIRST") - .setFieldValue(1, "value", "SECOND") - .setFieldValue(2, "value", "THIRD") - .save(); - - assertPropertySet("sonar.autogenerated", - asList(entry("value", "FIRST")), - asList(entry("value", "SECOND")), - asList(entry("value", "THIRD"))); - } - - @Test - public void edit_property_set() { - SETTINGS.set(SetRequest.builder() - .setKey("sonar.test.jira.servers") - .setFieldValues(newArrayList( - "{\"key\":\"jira1\", \"url\":\"http://jira1\", \"port\":\"12345\"}", - "{\"key\":\"jira2\", \"url\":\"http://jira2\", \"port\":\"54321\"}")) - .build()); - - assertPropertySet("sonar.test.jira.servers", - asList(entry("key", "jira1"), entry("url", "http://jira1"), entry("port", "12345")), - asList(entry("key", "jira2"), entry("url", "http://jira2"), entry("port", "54321"))); - } - - @Test - public void delete_property_set() throws Exception { - SETTINGS.set(SetRequest.builder() - .setKey("sonar.test.jira.servers") - .setFieldValues(newArrayList("{\"url\":\"http://jira1\"}", "{\"port\":\"12345\"}")) - .build()); - - resetSettings(orchestrator, null, "sonar.test.jira.servers"); - - assertThat(SETTINGS.values(ValuesRequest.builder().setKeys("sonar.test.jira.servers").build()).getSettingsList()).isEmpty(); - } - - private void assertPropertySet(String baseSettingKey, List<Map.Entry<String, String>>... fieldsValues) { - Settings.Setting setting = getSetting(baseSettingKey); - assertThat(setting.getFieldValues().getFieldValuesList()).hasSize(fieldsValues.length); - int index = 0; - for (Settings.FieldValues.Value fieldValue : setting.getFieldValues().getFieldValuesList()) { - assertThat(fieldValue.getValue()).containsOnly(fieldsValues[index].toArray(new Map.Entry[] {})); - index++; - } - } - - private Settings.Setting getSetting(String key) { - Settings.ValuesWsResponse response = SETTINGS.values(ValuesRequest.builder().setKeys(key).build()); - List<Settings.Setting> settings = response.getSettingsList(); - assertThat(settings).hasSize(1); - return settings.get(0); - } - -} diff --git a/it/it-tests/src/test/java/it/settings/SettingsTest.java b/it/it-tests/src/test/java/it/settings/SettingsTest.java deleted file mode 100644 index 06c948ef824..00000000000 --- a/it/it-tests/src/test/java/it/settings/SettingsTest.java +++ /dev/null @@ -1,208 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.settings; - -import com.google.common.collect.ImmutableMap; -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import java.io.IOException; -import java.util.List; -import javax.annotation.CheckForNull; -import org.apache.commons.io.FileUtils; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.Settings; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.permission.AddGroupWsRequest; -import org.sonarqube.ws.client.permission.AddUserWsRequest; -import org.sonarqube.ws.client.permission.RemoveGroupWsRequest; -import org.sonarqube.ws.client.setting.ResetRequest; -import org.sonarqube.ws.client.setting.SetRequest; -import org.sonarqube.ws.client.setting.SettingsService; -import org.sonarqube.ws.client.setting.ValuesRequest; -import util.user.UserRule; - -import static java.util.Arrays.asList; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.tuple; -import static org.sonarqube.ws.Settings.Setting; -import static org.sonarqube.ws.Settings.ValuesWsResponse; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.newUserWsClient; -import static util.ItUtils.newWsClient; -import static util.ItUtils.resetSettings; - -public class SettingsTest { - - /** - * This setting is defined by server-plugin - */ - private final static String PLUGIN_SETTING_KEY = "some-property"; - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @ClassRule - public static UserRule userRule = UserRule.from(orchestrator); - - private static WsClient adminWsClient; - private static SettingsService anonymousSettingsService; - private static SettingsService userSettingsService; - private static SettingsService scanSettingsService; - private static SettingsService adminSettingsService; - - @BeforeClass - public static void initSettingsService() throws Exception { - userRule.createUser("setting-user", "setting-user"); - userRule.createUser("scanner-user", "scanner-user"); - adminWsClient = newAdminWsClient(orchestrator); - // Remove 'Execute Analysis' permission from anyone - adminWsClient.permissions().removeGroup(new RemoveGroupWsRequest().setGroupName("anyone").setPermission("scan")); - - // Anonymous user, without 'Execute Analysis' permission - anonymousSettingsService = newWsClient(orchestrator).settings(); - - // Authenticated user, without 'Execute Analysis' permission - userSettingsService = newUserWsClient(orchestrator, "setting-user", "setting-user").settings(); - - // User with 'Execute Analysis' permission - adminWsClient.permissions().addUser(new AddUserWsRequest().setLogin("scanner-user").setPermission("scan")); - scanSettingsService = newUserWsClient(orchestrator, "scanner-user", "scanner-user").settings(); - - // User with 'Administer System' permission but without 'Execute Analysis' permission - adminSettingsService = adminWsClient.settings(); - } - - @AfterClass - public static void tearDown() throws Exception { - userRule.deactivateUsers("setting-user", "scanner-user"); - // Restore 'Execute Analysis' permission to anyone - adminWsClient.permissions().addGroup(new AddGroupWsRequest().setGroupName("anyone").setPermission("scan")); - } - - @After - public void reset_settings() throws Exception { - resetSettings(orchestrator, null, PLUGIN_SETTING_KEY, "globalPropertyChange.received", "hidden", "setting.secured", "setting.license.secured"); - } - - /** - * SONAR-3320 - */ - @Test - public void global_property_change_extension_point() throws IOException { - adminSettingsService.set(SetRequest.builder().setKey("globalPropertyChange.received").setValue("NEWVALUE").build()); - assertThat(FileUtils.readFileToString(orchestrator.getServer().getWebLogs())) - .contains("Received change: [key=globalPropertyChange.received, newValue=NEWVALUE]"); - } - - @Test - public void get_default_value() { - Setting setting = getSetting(PLUGIN_SETTING_KEY, anonymousSettingsService); - assertThat(setting.getValue()).isEqualTo("aDefaultValue"); - assertThat(setting.getInherited()).isTrue(); - } - - @Test - public void set_setting() { - adminSettingsService.set(SetRequest.builder().setKey(PLUGIN_SETTING_KEY).setValue("some value").build()); - - String value = getSetting(PLUGIN_SETTING_KEY, anonymousSettingsService).getValue(); - assertThat(value).isEqualTo("some value"); - } - - @Test - public void remove_setting() { - adminSettingsService.set(SetRequest.builder().setKey(PLUGIN_SETTING_KEY).setValue("some value").build()); - adminSettingsService.set(SetRequest.builder().setKey("sonar.links.ci").setValue("http://localhost").build()); - - adminSettingsService.reset(ResetRequest.builder().setKeys(PLUGIN_SETTING_KEY, "sonar.links.ci").build()); - assertThat(getSetting(PLUGIN_SETTING_KEY, anonymousSettingsService).getValue()).isEqualTo("aDefaultValue"); - assertThat(getSetting("sonar.links.ci", anonymousSettingsService)).isNull(); - } - - @Test - public void hidden_setting() { - adminSettingsService.set(SetRequest.builder().setKey("hidden").setValue("test").build()); - assertThat(getSetting("hidden", anonymousSettingsService).getValue()).isEqualTo("test"); - } - - @Test - public void secured_setting() { - adminSettingsService.set(SetRequest.builder().setKey("setting.secured").setValue("test").build()); - assertThat(getSetting("setting.secured", anonymousSettingsService)).isNull(); -// assertThat(getSetting("setting.secured", userSettingsService)).isNull(); - assertThat(getSetting("setting.secured", scanSettingsService).getValue()).isEqualTo("test"); - assertThat(getSetting("setting.secured", adminSettingsService).getValue()).isEqualTo("test"); - } - - @Test - public void license_setting() { - adminSettingsService.set(SetRequest.builder().setKey("setting.license.secured").setValue("test").build()); - assertThat(getSetting("setting.license.secured", anonymousSettingsService)).isNull(); - assertThat(getSetting("setting.license.secured", userSettingsService).getValue()).isEqualTo("test"); - assertThat(getSetting("setting.license.secured", scanSettingsService).getValue()).isEqualTo("test"); - assertThat(getSetting("setting.license.secured", adminSettingsService).getValue()).isEqualTo("test"); - } - - @Test - public void multi_values_setting() throws Exception { - adminSettingsService.set(SetRequest.builder().setKey("multi").setValues(asList("value1", "value2", "value3")).build()); - assertThat(getSetting("multi", anonymousSettingsService).getValues().getValuesList()).containsOnly("value1", "value2", "value3"); - } - - @Test - public void property_set_setting() throws Exception { - adminSettingsService.set(SetRequest.builder().setKey("sonar.jira").setFieldValues(asList( - "{\"key\":\"jira1\", \"url\":\"http://jira1\", \"port\":\"12345\", \"type\":\"A\"}", - "{\"key\":\"jira2\", \"url\":\"http://jira2\", \"port\":\"54321\"}")) - .build()); - - assertThat(getSetting("sonar.jira", anonymousSettingsService).getFieldValues().getFieldValuesList()).extracting(Settings.FieldValues.Value::getValue).containsOnly( - ImmutableMap.of("key", "jira1", "url", "http://jira1", "port", "12345", "type", "A"), - ImmutableMap.of("key", "jira2", "url", "http://jira2", "port", "54321")); - } - - @Test - public void return_defined_settings_when_no_key_provided() throws Exception { - adminSettingsService.set(SetRequest.builder().setKey(PLUGIN_SETTING_KEY).setValue("some value").build()); - adminSettingsService.set(SetRequest.builder().setKey("hidden").setValue("test").build()); - - assertThat(adminSettingsService.values(ValuesRequest.builder().build()).getSettingsList()) - .extracting(Setting::getKey) - .contains(PLUGIN_SETTING_KEY, "hidden", "sonar.forceAuthentication", - // Settings for scanner - "sonar.core.startTime"); - - assertThat(adminSettingsService.values(ValuesRequest.builder().build()).getSettingsList()) - .extracting(Setting::getKey, Setting::getValue) - .contains(tuple(PLUGIN_SETTING_KEY, "some value"), tuple("hidden", "test")); - } - - @CheckForNull - private static Setting getSetting(String key, SettingsService settingsService) { - ValuesWsResponse response = settingsService.values(ValuesRequest.builder().setKeys(key).build()); - List<Settings.Setting> settings = response.getSettingsList(); - return settings.isEmpty() ? null : settings.get(0); - } - -} diff --git a/it/it-tests/src/test/java/it/settings/SettingsTestRestartingOrchestrator.java b/it/it-tests/src/test/java/it/settings/SettingsTestRestartingOrchestrator.java deleted file mode 100644 index aafdf91bac9..00000000000 --- a/it/it-tests/src/test/java/it/settings/SettingsTestRestartingOrchestrator.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.settings; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import java.io.UnsupportedEncodingException; -import java.net.URL; -import org.junit.After; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import pageobjects.EncryptionPage; -import pageobjects.Navigation; -import util.user.UserRule; - -import static com.codeborne.selenide.Condition.visible; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.pluginArtifact; -import static util.ItUtils.projectDir; -import static util.ItUtils.xooPlugin; - -/** - * This class start a new orchestrator on each test case - */ -public class SettingsTestRestartingOrchestrator { - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - private Orchestrator orchestrator; - - private UserRule userRule; - - @After - public void stop() { - if (orchestrator != null) { - userRule.resetUsers(); - orchestrator.stop(); - } - } - - @Test - public void test_settings() throws UnsupportedEncodingException { - URL secretKeyUrl = getClass().getResource("/settings/SettingsTest/sonar-secret.txt"); - orchestrator = Orchestrator.builderEnv() - .addPlugin(pluginArtifact("settings-plugin")) - .addPlugin(pluginArtifact("license-plugin")) - .setServerProperty("sonar.secretKeyPath", secretKeyUrl.getFile()) - .build(); - startOrchestrator(); - - String adminUser = userRule.createAdminUser(); - Navigation nav = Navigation.create(orchestrator).openHome().logIn().submitCredentials(adminUser); - - nav.openSettings(null) - .assertMenuContains("General") - .assertSettingDisplayed("sonar.dbcleaner.cleanDirectory") - .assertSettingNotDisplayed("settings.extension.hidden") - .assertSettingNotDisplayed("settings.extension.global"); - - EncryptionPage encryptionPage = nav.openEncryption(); - assertThat(encryptionPage.encryptValue("clear")).isEqualTo("{aes}4aQbfYe1lrEjiRzv/ETbyg=="); - encryptionPage.generateNewKey(); - encryptionPage.generationForm().shouldBe(visible).submit(); - encryptionPage.generationForm().shouldNotBe(visible); - encryptionPage.newSecretKey().shouldBe(visible); - } - - @Test - public void property_relocation() throws UnsupportedEncodingException { - orchestrator = Orchestrator.builderEnv() - .addPlugin(pluginArtifact("property-relocation-plugin")) - .addPlugin(xooPlugin()) - .setServerProperty("sonar.deprecatedKey", "true") - .build(); - startOrchestrator(); - - SonarScanner withDeprecatedKey = SonarScanner.create(projectDir("shared/xoo-sample")) - .setProperty("sonar.deprecatedKey", "true"); - SonarScanner withNewKey = SonarScanner.create(projectDir("shared/xoo-sample")) - .setProperty("sonar.newKey", "true"); - // should not fail - orchestrator.executeBuilds(withDeprecatedKey, withNewKey); - - String adminUser = userRule.createAdminUser(); - Navigation.create(orchestrator).openHome().logIn().submitCredentials(adminUser).openSettings(null) - .assertMenuContains("General") - .assertSettingDisplayed("sonar.newKey") - .assertSettingNotDisplayed("sonar.deprecatedKey"); - } - - private void startOrchestrator() { - orchestrator.start(); - userRule = UserRule.from(orchestrator); - } - -} diff --git a/it/it-tests/src/test/java/it/sourceCode/EncodingTest.java b/it/it-tests/src/test/java/it/sourceCode/EncodingTest.java deleted file mode 100644 index 90fa0c45cf7..00000000000 --- a/it/it-tests/src/test/java/it/sourceCode/EncodingTest.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.sourceCode; - -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; - -import static util.ItUtils.runProjectAnalysis; -import static util.selenium.Selenese.runSelenese; - -public class EncodingTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Before - public void deleteData() { - orchestrator.resetData(); - } - - @Test - public void support_japanese_charset() { - runProjectAnalysis(orchestrator, "sourceCode/japanese-charset", "sonar.sourceEncoding", "Shift_JIS"); - - runSelenese(orchestrator, "/sourceCode/EncodingTest/japanese_sources.html"); - } -} diff --git a/it/it-tests/src/test/java/it/sourceCode/HighlightingTest.java b/it/it-tests/src/test/java/it/sourceCode/HighlightingTest.java deleted file mode 100644 index 842782de649..00000000000 --- a/it/it-tests/src/test/java/it/sourceCode/HighlightingTest.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.sourceCode; - -import com.sonar.orchestrator.Orchestrator; -import it.Category1Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; - -import static util.ItUtils.runProjectAnalysis; -import static util.selenium.Selenese.runSelenese; - -public class HighlightingTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Before - public void deleteData() { - orchestrator.resetData(); - } - - @Test - public void highlight_source_code_and_symbols_usage() throws Exception { - runProjectAnalysis(orchestrator, "highlighting/xoo-sample-with-highlighting-v2"); - - runSelenese(orchestrator, - // SONAR-3893 & SONAR-4247 - "/sourceCode/HighlightingTest/syntax-highlighting.html", - // SONAR-4249 & SONAR-4250 - "/sourceCode/HighlightingTest/symbol-usages-highlighting.html"); - } - - // Check that E/S index is updated when file content is unchanged but plugin generates different syntax/symbol highlighting - @Test - public void update_highlighting_even_when_code_unchanged() throws Exception { - runProjectAnalysis(orchestrator, "highlighting/xoo-sample-with-highlighting-v1"); - - runSelenese(orchestrator, "/sourceCode/HighlightingTest/syntax-highlighting-v1.html"); - - runProjectAnalysis(orchestrator, "highlighting/xoo-sample-with-highlighting-v2"); - - runSelenese(orchestrator, - "/sourceCode/HighlightingTest/syntax-highlighting-v2.html", - "/sourceCode/HighlightingTest/symbol-usages-highlighting.html"); - } -} diff --git a/it/it-tests/src/test/java/it/sourceCode/ProjectCodeTest.java b/it/it-tests/src/test/java/it/sourceCode/ProjectCodeTest.java deleted file mode 100644 index 3306824c417..00000000000 --- a/it/it-tests/src/test/java/it/sourceCode/ProjectCodeTest.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.sourceCode; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category1Suite; -import org.junit.ClassRule; -import org.junit.Test; - -import static util.ItUtils.projectDir; -import static util.selenium.Selenese.runSelenese; - -public class ProjectCodeTest { - - @ClassRule - public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; - - @Test - public void test_project_code_page() throws Exception { - executeBuild("shared/xoo-sample", "project-for-code", "Project For Code"); - - runSelenese(orchestrator, - "/sourceCode/ProjectCodeTest/test_project_code_page.html", - "/sourceCode/ProjectCodeTest/search.html", - "/sourceCode/ProjectCodeTest/permalink.html"); - } - - @Test - public void code_page_should_expand_root_dir() throws Exception { - executeBuild("shared/xoo-sample-with-root-dir", "project-for-code-root-dir", "Project For Code"); - - runSelenese(orchestrator, "/sourceCode/ProjectCodeTest/code_page_should_expand_root_dir.html"); - } - - private void executeBuild(String projectLocation, String projectKey, String projectName) { - orchestrator.executeBuild( - SonarScanner.create(projectDir(projectLocation)) - .setProjectKey(projectKey) - .setProjectName(projectName) - ); - } - -} diff --git a/it/it-tests/src/test/java/it/test/CoverageTest.java b/it/it-tests/src/test/java/it/test/CoverageTest.java deleted file mode 100644 index 1dac8a4661a..00000000000 --- a/it/it-tests/src/test/java/it/test/CoverageTest.java +++ /dev/null @@ -1,222 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.test; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category2Suite; -import java.io.File; -import java.util.Map; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.commons.io.filefilter.TrueFileFilter; -import org.apache.commons.lang.StringUtils; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.skyscreamer.jsonassert.JSONAssert; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; -import static util.ItUtils.projectDir; - -public class CoverageTest { - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - private static final String[] ALL_COVERAGE_METRICS = new String[] { - "line_coverage", "lines_to_cover", "uncovered_lines", "branch_coverage", "conditions_to_cover", "uncovered_conditions", "coverage", - "it_line_coverage", "it_lines_to_cover", "it_uncovered_lines", "it_branch_coverage", "it_conditions_to_cover", "it_uncovered_conditions", "it_coverage", - "overall_line_coverage", "overall_lines_to_cover", "overall_uncovered_lines", "overall_branch_coverage", "overall_conditions_to_cover", "overall_uncovered_conditions", - "overall_coverage" - }; - - @Before - public void delete_data() { - orchestrator.resetData(); - } - - @Test - public void coverage() throws Exception { - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-sample-ut-coverage"))); - - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, "sample-ut-coverage", ALL_COVERAGE_METRICS); - assertThat(measures.get("line_coverage")).isEqualTo(50.0); - assertThat(measures.get("lines_to_cover")).isEqualTo(4d); - assertThat(measures.get("uncovered_lines")).isEqualTo(2d); - assertThat(measures.get("branch_coverage")).isEqualTo(50.0); - assertThat(measures.get("conditions_to_cover")).isEqualTo(2d); - assertThat(measures.get("uncovered_conditions")).isEqualTo(1d); - assertThat(measures.get("coverage")).isEqualTo(50.0); - - assertThat(measures.get("it_coverage")).isNull(); - - assertThat(measures.get("overall_coverage")).isNull(); - - String coverage = cleanupScmAndDuplication(orchestrator.getServer().adminWsClient().get("api/sources/lines", "key", "sample-ut-coverage:src/main/xoo/sample/Sample.xoo")); - // Use strict checking to be sure IT coverage is not present - JSONAssert.assertEquals(IOUtils.toString(this.getClass().getResourceAsStream("/test/CoverageTest/unit_test_coverage-expected.json"), "UTF-8"), coverage, true); - - verifyComputeEngineTempDirIsEmpty(); - } - - private String cleanupScmAndDuplication(String coverage) { - coverage = StringUtils.remove(coverage, ",\"scmAuthor\":\"\""); - coverage = StringUtils.remove(coverage, ",\"scmRevision\":\"\""); - coverage = StringUtils.remove(coverage, ",\"duplicated\":false"); - return coverage; - } - - @Test - public void coverage_no_condition() throws Exception { - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-sample-ut-coverage-no-condition"))); - - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, "sample-ut-coverage", ALL_COVERAGE_METRICS); - assertThat(measures.get("line_coverage")).isEqualTo(50.0); - assertThat(measures.get("lines_to_cover")).isEqualTo(4d); - assertThat(measures.get("uncovered_lines")).isEqualTo(2d); - assertThat(measures.get("branch_coverage")).isNull(); - assertThat(measures.get("conditions_to_cover")).isNull(); - assertThat(measures.get("uncovered_conditions")).isNull(); - assertThat(measures.get("coverage")).isEqualTo(50.0); - - assertThat(measures.get("it_coverage")).isNull(); - - assertThat(measures.get("overall_coverage")).isNull(); - - String coverage = cleanupScmAndDuplication(orchestrator.getServer().adminWsClient().get("api/sources/lines", "key", "sample-ut-coverage:src/main/xoo/sample/Sample.xoo")); - // Use strict checking to be sure IT coverage is not present - JSONAssert.assertEquals(IOUtils.toString(this.getClass().getResourceAsStream("/test/CoverageTest/unit_test_coverage_no_condition-expected.json"), "UTF-8"), coverage, - true); - - verifyComputeEngineTempDirIsEmpty(); - } - - @Test - public void it_coverage_imported_as_coverage() throws Exception { - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-sample-it-coverage"))); - - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, "sample-it-coverage", ALL_COVERAGE_METRICS); - - // Since SQ 6.2 all coverage reports are merged as coverage - - assertThat(measures.get("line_coverage")).isEqualTo(50.0); - assertThat(measures.get("lines_to_cover")).isEqualTo(4d); - assertThat(measures.get("uncovered_lines")).isEqualTo(2d); - assertThat(measures.get("branch_coverage")).isEqualTo(50.0); - assertThat(measures.get("conditions_to_cover")).isEqualTo(2d); - assertThat(measures.get("uncovered_conditions")).isEqualTo(1d); - assertThat(measures.get("coverage")).isEqualTo(50.0); - - assertThat(measures.get("it_coverage")).isNull(); - - assertThat(measures.get("overall_coverage")).isNull(); - - String coverage = cleanupScmAndDuplication(orchestrator.getServer().adminWsClient().get("api/sources/lines", "key", "sample-it-coverage:src/main/xoo/sample/Sample.xoo")); - // Use strict checking to be sure UT coverage is not present - JSONAssert.assertEquals(IOUtils.toString(this.getClass().getResourceAsStream("/test/CoverageTest/it_coverage-expected.json"), "UTF-8"), coverage, true); - - verifyComputeEngineTempDirIsEmpty(); - } - - @Test - public void ut_and_it_coverage_merged_in_coverage() throws Exception { - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-sample-overall-coverage"))); - - // Since SQ 6.2 all coverage reports are merged as coverage - - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, "sample-overall-coverage", ALL_COVERAGE_METRICS); - assertThat(measures.get("line_coverage")).isEqualTo(75.0); - assertThat(measures.get("lines_to_cover")).isEqualTo(4); - assertThat(measures.get("uncovered_lines")).isEqualTo(1); - assertThat(measures.get("branch_coverage")).isEqualTo(50.0); - assertThat(measures.get("conditions_to_cover")).isEqualTo(4); - assertThat(measures.get("uncovered_conditions")).isEqualTo(2); - assertThat(measures.get("coverage")).isEqualTo(62.5); - - assertThat(measures.get("it_coverage")).isNull(); - - assertThat(measures.get("overall_coverage")).isNull(); - - String coverage = cleanupScmAndDuplication(orchestrator.getServer().adminWsClient().get("api/sources/lines", "key", "sample-overall-coverage:src/main/xoo/sample/Sample.xoo")); - // Use strict checking to be sure no extra coverage is present - JSONAssert.assertEquals(IOUtils.toString(this.getClass().getResourceAsStream("/test/CoverageTest/ut_and_it_coverage-expected.json"), "UTF-8"), coverage, true); - - verifyComputeEngineTempDirIsEmpty(); - } - - /** - * SONAR-766 - */ - @Test - public void should_compute_coverage_on_project() { - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-half-covered"))); - - assertThat(getMeasuresAsDoubleByMetricKey(orchestrator, "xoo-half-covered", ALL_COVERAGE_METRICS).get("coverage")).isEqualTo(50.0); - - verifyComputeEngineTempDirIsEmpty(); - } - - /** - * SONAR-766 - */ - @Test - public void should_ignore_coverage_on_full_path() { - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-half-covered")) - .setProperty("sonar.coverage.exclusions", "src/main/xoo/org/sonar/tests/halfcovered/UnCovered.xoo")); - - assertThat(getMeasuresAsDoubleByMetricKey(orchestrator, "xoo-half-covered", ALL_COVERAGE_METRICS).get("coverage")).isEqualTo(100.0); - - verifyComputeEngineTempDirIsEmpty(); - } - - /** - * SONAR-766 - */ - @Test - public void should_ignore_coverage_on_pattern() { - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-half-covered")) - .setProperty("sonar.coverage.exclusions", "**/UnCovered*")); - - assertThat(getMeasuresAsDoubleByMetricKey(orchestrator, "xoo-half-covered", ALL_COVERAGE_METRICS).get("coverage")).isEqualTo(100.0); - - verifyComputeEngineTempDirIsEmpty(); - } - - /** - * SONAR-766 - */ - @Test - public void should_not_have_coverage_at_all() { - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-half-covered")) - .setProperty("sonar.coverage.exclusions", "**/*")); - - assertThat(getMeasuresAsDoubleByMetricKey(orchestrator, "xoo-half-covered", ALL_COVERAGE_METRICS).get("coverage")).isNull(); - - verifyComputeEngineTempDirIsEmpty(); - } - - private void verifyComputeEngineTempDirIsEmpty() { - File ceTempDirectory = new File(new File(orchestrator.getServer().getHome(), "temp"), "ce"); - assertThat(FileUtils.listFiles(ceTempDirectory, TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE)).isEmpty(); - } - -} diff --git a/it/it-tests/src/test/java/it/test/CoverageTrackingTest.java b/it/it-tests/src/test/java/it/test/CoverageTrackingTest.java deleted file mode 100644 index f21cb852582..00000000000 --- a/it/it-tests/src/test/java/it/test/CoverageTrackingTest.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.test; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category2Suite; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import org.apache.commons.io.IOUtils; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.skyscreamer.jsonassert.JSONAssert; - -import static util.ItUtils.projectDir; - -public class CoverageTrackingTest { - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - @Before - public void delete_data() { - orchestrator.resetData(); - } - - @Test - public void test_coverage_per_test() throws Exception { - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-sample-with-coverage-per-test"))); - - String tests = orchestrator.getServer().adminWsClient().get("api/tests/list", "testFileKey", "sample-with-tests:src/test/xoo/sample/SampleTest.xoo"); - JSONAssert.assertEquals(IOUtils.toString(this.getClass().getResourceAsStream("/test/CoverageTrackingTest/tests-expected.json"), "UTF-8"), tests, false); - - String covered_files = orchestrator.getServer().adminWsClient() - .get("api/tests/covered_files", "testId", extractSuccessfulTestId(tests)); - JSONAssert - .assertEquals(IOUtils.toString(this.getClass().getResourceAsStream("/test/CoverageTrackingTest/covered_files-expected.json"), "UTF-8"), covered_files, false); - } - - private String extractSuccessfulTestId(String json) { - Matcher jsonObjectMatcher = Pattern.compile(".*\\{((.*?)success(.*?))\\}.*", Pattern.MULTILINE).matcher(json); - jsonObjectMatcher.find(); - - Matcher idMatcher = Pattern.compile(".*\"id\"\\s*?:\\s*?\"(\\S*?)\".*", Pattern.MULTILINE).matcher(jsonObjectMatcher.group(1)); - return idMatcher.find() ? idMatcher.group(1) : ""; - } -} diff --git a/it/it-tests/src/test/java/it/test/NewCoverageTest.java b/it/it-tests/src/test/java/it/test/NewCoverageTest.java deleted file mode 100644 index 827e2b3927f..00000000000 --- a/it/it-tests/src/test/java/it/test/NewCoverageTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.test; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category2Suite; -import java.util.Map; -import org.assertj.core.data.Offset; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.WsMeasures; - -import static java.lang.Double.parseDouble; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasuresWithVariationsByMetricKey; -import static util.ItUtils.projectDir; - -public class NewCoverageTest { - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - private static final String PROJECT_KEY = "sample-new-coverage"; - - private static final Offset<Double> DEFAULT_OFFSET = Offset.offset(0.1d); - - private static final String[] ALL_NEW_COVERAGE_METRICS = new String[] { - "new_coverage", "new_line_coverage", "new_branch_coverage" - }; - - @BeforeClass - public static void analyze_project() { - orchestrator.resetData(); - - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-sample-new-coverage-v1")) - .setProperty("sonar.projectDate", "2015-02-01") - .setProperty("sonar.scm.disabled", "false")); - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-sample-new-coverage-v2")) - .setProperty("sonar.scm.disabled", "false")); - } - - @Test - public void new_coverage() throws Exception { - Map<String, WsMeasures.Measure> measures = getMeasuresWithVariationsByMetricKey(orchestrator, PROJECT_KEY, ALL_NEW_COVERAGE_METRICS); - assertThat(parseDouble(measures.get("new_coverage").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(66.6d, DEFAULT_OFFSET); - assertThat(parseDouble(measures.get("new_line_coverage").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(100d, DEFAULT_OFFSET); - assertThat(parseDouble(measures.get("new_branch_coverage").getPeriods().getPeriodsValue(0).getValue())).isEqualTo(42.8, DEFAULT_OFFSET); - } - -} diff --git a/it/it-tests/src/test/java/it/test/TestExecutionTest.java b/it/it-tests/src/test/java/it/test/TestExecutionTest.java deleted file mode 100644 index ec2e3a387d6..00000000000 --- a/it/it-tests/src/test/java/it/test/TestExecutionTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.test; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category2Suite; -import java.util.Map; -import org.apache.commons.io.IOUtils; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.skyscreamer.jsonassert.JSONAssert; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.getMeasuresAsDoubleByMetricKey; -import static util.ItUtils.projectDir; - -public class TestExecutionTest { - - @ClassRule - public static Orchestrator orchestrator = Category2Suite.ORCHESTRATOR; - - @Before - public void delete_data() { - orchestrator.resetData(); - } - - @Test - public void test_execution_details() throws Exception { - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-sample-with-tests-execution-details"))); - - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, "sample-with-tests", - "test_success_density", "test_failures", "test_errors", "tests", "skipped_tests", "test_execution_time"); - assertThat(measures.get("test_success_density")).isEqualTo(33.3); - assertThat(measures.get("test_failures")).isEqualTo(1); - assertThat(measures.get("test_errors")).isEqualTo(1); - assertThat(measures.get("tests")).isEqualTo(3); - assertThat(measures.get("skipped_tests")).isEqualTo(1); - assertThat(measures.get("test_execution_time")).isEqualTo(8); - - String json = orchestrator.getServer().adminWsClient().get("api/tests/list", "testFileKey", "sample-with-tests:src/test/xoo/sample/SampleTest.xoo"); - JSONAssert.assertEquals(IOUtils.toString(this.getClass().getResourceAsStream("/test/TestExecutionTest/expected.json"), "UTF-8"), json, false); - } - - @Test - public void test_execution_measures() throws Exception { - orchestrator.executeBuilds(SonarScanner.create(projectDir("testing/xoo-sample-with-tests-execution-measures"))); - - Map<String, Double> measures = getMeasuresAsDoubleByMetricKey(orchestrator, "sample-with-tests", - "test_success_density", "test_failures", "test_errors", "tests", "skipped_tests", "test_execution_time"); - assertThat(measures.get("test_success_density")).isEqualTo(33.3); - assertThat(measures.get("test_failures")).isEqualTo(1); - assertThat(measures.get("test_errors")).isEqualTo(1); - assertThat(measures.get("tests")).isEqualTo(3); - assertThat(measures.get("skipped_tests")).isEqualTo(1); - assertThat(measures.get("test_execution_time")).isEqualTo(8); - } -} diff --git a/it/it-tests/src/test/java/it/ui/SourceViewerTest.java b/it/it-tests/src/test/java/it/ui/SourceViewerTest.java deleted file mode 100644 index 70f02288fff..00000000000 --- a/it/it-tests/src/test/java/it/ui/SourceViewerTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.ui; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import pageobjects.Navigation; - -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Selenide.$; -import static util.ItUtils.projectDir; - -public class SourceViewerTest { - - @ClassRule - public static final Orchestrator ORCHESTRATOR = Category4Suite.ORCHESTRATOR; - - private Navigation nav = Navigation.create(ORCHESTRATOR); - - @BeforeClass - public static void beforeClass() { - ORCHESTRATOR.resetData(); - analyzeSampleProject(); - } - - @Test - public void line_permalink() { - nav.open("/component?id=sample%3Asrc%2Fmain%2Fxoo%2Fsample%2FSample.xoo&line=6"); - $(".source-line").should(exist); - $(".source-line-highlighted[data-line-number=\"6\"]").should(exist); - } - - private static void analyzeSampleProject() { - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - } -} diff --git a/it/it-tests/src/test/java/it/ui/UiTest.java b/it/it-tests/src/test/java/it/ui/UiTest.java deleted file mode 100644 index c345140c517..00000000000 --- a/it/it-tests/src/test/java/it/ui/UiTest.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.ui; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import java.util.Map; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsResponse; -import pageobjects.Navigation; -import util.ItUtils; - -import static com.codeborne.selenide.Condition.hasText; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.WebDriverRunner.url; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.projectDir; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; - -public class UiTest { - - @ClassRule - public static final Orchestrator ORCHESTRATOR = Category4Suite.ORCHESTRATOR; - - private Navigation nav = Navigation.create(ORCHESTRATOR); - - @Before - @After - public void resetData() throws Exception { - resetSettings(ORCHESTRATOR, null, "sonar.forceAuthentication"); - } - - @Test - public void footer_contains_information() { - nav.getFooter() - .should(hasText("Documentation")) - .should(hasText("SonarSource SA")); - } - - @Test - public void footer_contains_version() { - WsResponse status = ItUtils.newAdminWsClient(ORCHESTRATOR).wsConnector().call(new GetRequest("api/navigation/global")); - Map<String, Object> statusMap = ItUtils.jsonToMap(status.content()); - - nav.getFooter().should(hasText((String) statusMap.get("version"))); - } - - @Test - public void footer_doesnt_contains_version_on_login_page() { - WsResponse status = ItUtils.newAdminWsClient(ORCHESTRATOR).wsConnector().call(new GetRequest("api/navigation/global")); - Map<String, Object> statusMap = ItUtils.jsonToMap(status.content()); - - nav.openLogin(); - nav.getFooter().shouldNot(hasText((String) statusMap.get("version"))); - } - - @Test - public void footer_doesnt_contains_about_when_not_logged_in() { - setServerProperty(ORCHESTRATOR, "sonar.forceAuthentication", "true"); - nav.openLogin(); - nav.getFooter() - .shouldNot(hasText("About")) - .shouldNot(hasText("Web API")); - } - - @Test - public void many_page_transitions() { - analyzeSampleProject(); - - nav.open("/about"); - - // on about page - $(".about-page-projects-link") - .shouldBe(visible) - .shouldHave(text("1")) - .click(); - - // on projects page - assertThat(url()).contains("/projects"); - $(".project-card-name") - .shouldBe(visible) - .shouldHave(text("Sample")) - .find("a") - .click(); - - // on project dashboard - assertThat(url()).contains("/dashboard?id=sample"); - $(".overview-quality-gate") - .shouldBe(visible) - .shouldHave(text("Passed")); - $("a[href=\"/project/issues?id=sample&resolved=false&types=CODE_SMELL\"]") - .shouldBe(visible) - .shouldHave(text("0")) - .click(); - - // on project issues page - assertThat(url()).contains("/project/issues?id=sample&resolved=false&types=CODE_SMELL"); - $("[data-property=\"resolutions\"] .facet.active").shouldBe(visible); - - $("#global-navigation").find("a[href=\"/profiles\"]").click(); - - // on quality profiles page - assertThat(url()).contains("/profiles"); - $("table[data-language=xoo]").find("tr[data-name=Basic]").find(".quality-profiles-table-name") - .shouldBe(visible) - .shouldHave(text("Basic")) - .find("a") - .click(); - - // on profile page - assertThat(url()).contains("/profiles/show"); - $(".quality-profile-inheritance") - .shouldBe(visible) - .shouldHave(text("active rules")); - } - - @Test - public void markdown_help() { - String tags[] = {"strong", "a", "ul", "ol", "h1", "code", "pre", "blockquote"}; - - nav.open("/markdown/help"); - for (String tag : tags) { - $(tag).shouldBe(visible); - } - } - - private static void analyzeSampleProject() { - ORCHESTRATOR.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - } -} diff --git a/it/it-tests/src/test/java/it/uiExtension/OrganizationUiExtensionsTest.java b/it/it-tests/src/test/java/it/uiExtension/OrganizationUiExtensionsTest.java deleted file mode 100644 index 0dad2a29535..00000000000 --- a/it/it-tests/src/test/java/it/uiExtension/OrganizationUiExtensionsTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.uiExtension; - -import com.codeborne.selenide.Condition; -import com.sonar.orchestrator.Orchestrator; -import it.Category6Suite; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.openqa.selenium.By; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; - -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.WebDriverRunner.url; -import static org.assertj.core.api.Assertions.assertThat; - -public class OrganizationUiExtensionsTest { - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - @Test - public void organization_page() { - Organization organization = tester.organizations().generate(); - tester.openBrowser().open("/organizations/" + organization.getKey() + "/projects"); - - $("#organization-navigation-more").click(); - $(By.linkText("Organization Page")).shouldBe(Condition.visible).click(); - - assertThat(url()).contains("uiextensionsplugin/organization_page"); - $("body").shouldHave(text("uiextensionsplugin/organization_page")); - } - - @Test - public void organization_admin_page() { - Organization organization = tester.organizations().generate(); - User administrator = tester.users().generateAdministrator(organization); - tester.openBrowser() - .logIn().submitCredentials(administrator.getLogin()) - .open("/organizations/" + organization.getKey() + "/projects"); - - $("#context-navigation a.navbar-admin-link").click(); - $(By.linkText("Organization Admin Page")).shouldBe(Condition.visible).click(); - - assertThat(url()).contains("uiextensionsplugin/organization_admin_page"); - $("body").shouldHave(text("uiextensionsplugin/organization_admin_page")); - } -} diff --git a/it/it-tests/src/test/java/it/uiExtension/UiExtensionsTest.java b/it/it-tests/src/test/java/it/uiExtension/UiExtensionsTest.java deleted file mode 100644 index bd85a932725..00000000000 --- a/it/it-tests/src/test/java/it/uiExtension/UiExtensionsTest.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.uiExtension; - -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.openqa.selenium.By; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.WsProjects; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.project.CreateRequest; -import util.ItUtils; - -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.WebDriverRunner.url; -import static org.assertj.core.api.Assertions.assertThat; - -public class UiExtensionsTest { - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator).disableOrganizations(); - - @Test - public void test_static_files() { - tester.runHtmlTests("/uiExtension/UiExtensionsTest/static-files.html"); - } - - @Test - public void test_global_page() { - tester.openBrowser().open("/about"); - - // on about page - $("#global-navigation-more").click(); - $(By.linkText("Global Page")).click(); - - assertThat(url()).contains("/uiextensionsplugin/global_page"); - $("body").shouldHave(text("uiextensionsplugin/global_page")); - } - - @Test - public void test_global_administration_page() { - User administrator = tester.users().generateAdministrator(); - tester.openBrowser() - .logIn().submitCredentials(administrator.getLogin()) - .open("/about"); - - $(".navbar-admin-link").click(); - $("#settings-navigation-configuration").click(); - $(By.linkText("Global Admin Page")).click(); - - assertThat(url()).contains("uiextensionsplugin/global_admin_page"); - $("body").shouldHave(text("uiextensionsplugin/global_admin_page")); - } - - @Test - public void test_project_page() { - WsProjects.CreateWsResponse.Project project = createSampleProject(); - - tester.openBrowser().open("/dashboard?id=" + project.getKey()); - - $("#component-navigation-more").click(); - $(By.linkText("Project Page")).click(); - - assertThat(url()).contains("uiextensionsplugin/project_page"); - $("body").shouldHave(text("uiextensionsplugin/project_page")); - } - - @Test - public void test_project_administration_page() { - WsProjects.CreateWsResponse.Project project = createSampleProject(); - User administrator = tester.users().generateAdministrator(); - - tester.openBrowser() - .logIn().submitCredentials(administrator.getLogin()) - .open("/dashboard?id=" + project.getKey()); - - $("#component-navigation-admin").click(); - $(By.linkText("Project Admin Page")).click(); - - assertThat(url()).contains("uiextensionsplugin/project_admin_page"); - $("body").shouldHave(text("uiextensionsplugin/project_admin_page")); - } - - private WsProjects.CreateWsResponse.Project createSampleProject() { - String projectKey = ItUtils.newProjectKey(); - return tester.wsClient().projects().create(CreateRequest.builder() - .setKey(projectKey) - .setName("Name of " + projectKey) - .build()).getProject(); - } -} diff --git a/it/it-tests/src/test/java/it/updateCenter/UpdateCenterTest.java b/it/it-tests/src/test/java/it/updateCenter/UpdateCenterTest.java deleted file mode 100644 index f815034495f..00000000000 --- a/it/it-tests/src/test/java/it/updateCenter/UpdateCenterTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.updateCenter; - -import com.sonar.orchestrator.Orchestrator; -import org.junit.After; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import util.user.UserRule; - -import static util.ItUtils.pluginArtifact; -import static util.selenium.Selenese.runSelenese; - -/** - * This class start its own orchestrator - */ -public class UpdateCenterTest { - - @ClassRule - public static final Orchestrator orchestrator = Orchestrator.builderEnv() - .setServerProperty("sonar.updatecenter.url", UpdateCenterTest.class.getResource("/updateCenter/UpdateCenterTest/update-center.properties").toString()) - .addPlugin(pluginArtifact("sonar-fake-plugin")) - .build(); - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - @After - public void tearDown() throws Exception { - userRule.resetUsers(); - } - - @Test - public void test_console() { - runSelenese(orchestrator, "/updateCenter/installed-plugins.html"); - } - -} diff --git a/it/it-tests/src/test/java/it/user/BaseIdentityProviderTest.java b/it/it-tests/src/test/java/it/user/BaseIdentityProviderTest.java deleted file mode 100644 index 391b2d892e5..00000000000 --- a/it/it-tests/src/test/java/it/user/BaseIdentityProviderTest.java +++ /dev/null @@ -1,324 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.user; - -import com.google.common.base.Joiner; -import com.google.common.base.Optional; -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import java.io.File; -import org.apache.commons.io.FileUtils; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.user.CreateRequest; -import pageobjects.Navigation; -import util.user.UserRule; -import util.user.Users; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.guava.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; -import static util.selenium.Selenese.runSelenese; - -/** - * TODO : Add missing ITs - * - display multiple identity provider plugins (probably in another class) - */ -public class BaseIdentityProviderTest { - - @ClassRule - public static Orchestrator ORCHESTRATOR = Category4Suite.ORCHESTRATOR; - - @ClassRule - public static UserRule userRule = UserRule.from(ORCHESTRATOR); - - static String FAKE_PROVIDER_KEY = "fake-base-id-provider"; - - static String USER_LOGIN = "john"; - static String USER_PROVIDER_ID = "fake-john"; - static String USER_NAME = "John"; - static String USER_EMAIL = "john@email.com"; - - static String USER_NAME_UPDATED = "John Doe"; - static String USER_EMAIL_UPDATED = "john.doe@email.com"; - - static String GROUP1 = "group1"; - static String GROUP2 = "group2"; - static String GROUP3 = "group3"; - - static WsClient adminWsClient; - - @BeforeClass - public static void setUp() { - ORCHESTRATOR.resetData(); - adminWsClient = newAdminWsClient(ORCHESTRATOR); - } - - @Before - @After - public void resetData() throws Exception { - userRule.resetUsers(); - userRule.removeGroups(GROUP1, GROUP2, GROUP3); - resetSettings(ORCHESTRATOR, null, - "sonar.auth.fake-base-id-provider.enabled", - "sonar.auth.fake-base-id-provider.user", - "sonar.auth.fake-base-id-provider.throwUnauthorizedMessage", - "sonar.auth.fake-base-id-provider.enabledGroupsSync", - "sonar.auth.fake-base-id-provider.groups", - "sonar.auth.fake-base-id-provider.allowsUsersToSignUp"); - } - - @Test - public void create_new_user_when_authenticate() throws Exception { - enablePlugin(); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - - userRule.verifyUserDoesNotExist(USER_LOGIN); - - // First connection, user is created - authenticateWithFakeAuthProvider(); - - userRule.verifyUserExists(USER_LOGIN, USER_NAME, USER_EMAIL, false); - } - - @Test - public void authenticate_user_through_ui() throws Exception { - enablePlugin(); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - - Navigation.create(ORCHESTRATOR).openLogin().useOAuth2().shouldBeLoggedIn(); - - userRule.verifyUserExists(USER_LOGIN, USER_NAME, USER_EMAIL); - } - - @Test - public void display_unauthorized_page_when_authentication_failed() throws Exception { - enablePlugin(); - // As this property is null, the plugin will throw an exception - setServerProperty(ORCHESTRATOR, "sonar.auth.fake-base-id-provider.user", null); - - runSelenese(ORCHESTRATOR, "/user/BaseIdentityProviderTest/display_unauthorized_page_when_authentication_failed.html"); - - userRule.verifyUserDoesNotExist(USER_LOGIN); - } - - @Test - public void fail_when_email_already_exists() throws Exception { - enablePlugin(); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - userRule.createUser("another", "Another", USER_EMAIL, "another"); - - runSelenese(ORCHESTRATOR, "/user/BaseIdentityProviderTest/fail_when_email_already_exists.html"); - - File logFile = ORCHESTRATOR.getServer().getWebLogs(); - assertThat(FileUtils.readFileToString(logFile)) - .doesNotContain("You can't sign up because email 'john@email.com' is already used by an existing user. This means that you probably already registered with another account"); - } - - @Test - public void fail_to_authenticate_when_not_allowed_to_sign_up() throws Exception { - enablePlugin(); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - setServerProperty(ORCHESTRATOR, "sonar.auth.fake-base-id-provider.allowsUsersToSignUp", "false"); - - runSelenese(ORCHESTRATOR, "/user/BaseIdentityProviderTest/fail_to_authenticate_when_not_allowed_to_sign_up.html"); - - userRule.verifyUserDoesNotExist(USER_LOGIN); - } - - @Test - public void update_existing_user_when_authenticate() throws Exception { - enablePlugin(); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - - // First connection, user is created - authenticateWithFakeAuthProvider(); - - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME_UPDATED, USER_EMAIL_UPDATED); - - // Second connection, user should be updated - authenticateWithFakeAuthProvider(); - - userRule.verifyUserExists(USER_LOGIN, USER_NAME_UPDATED, USER_EMAIL_UPDATED); - } - - @Test - public void reactivate_disabled_user() throws Exception { - enablePlugin(); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - - userRule.verifyUserDoesNotExist(USER_LOGIN); - - // First connection, user is created - authenticateWithFakeAuthProvider(); - - Optional<Users.User> user = userRule.getUserByLogin(USER_LOGIN); - assertThat(user).isPresent(); - - // Disable user - userRule.deactivateUsers(USER_LOGIN); - - // Second connection, user is reactivated - authenticateWithFakeAuthProvider(); - userRule.verifyUserExists(USER_LOGIN, USER_NAME, USER_EMAIL); - } - - @Test - public void not_authenticate_when_plugin_is_disabled() throws Exception { - setServerProperty(ORCHESTRATOR, "sonar.auth.fake-base-id-provider.enabled", "false"); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - - authenticateWithFakeAuthProvider(); - - // User is not created as nothing plugin is disabled - userRule.verifyUserDoesNotExist(USER_LOGIN); - - // TODO Add Selenium test to check login form - } - - @Test - public void display_message_in_ui_but_not_in_log_when_unauthorized_exception() throws Exception { - enablePlugin(); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - setServerProperty(ORCHESTRATOR, "sonar.auth.fake-base-id-provider.throwUnauthorizedMessage", "true"); - - runSelenese(ORCHESTRATOR, - "/user/BaseIdentityProviderTest/display_message_in_ui_but_not_in_log_when_unauthorized_exception.html"); - - File logFile = ORCHESTRATOR.getServer().getWebLogs(); - assertThat(FileUtils.readFileToString(logFile)).doesNotContain("A functional error has happened"); - assertThat(FileUtils.readFileToString(logFile)).doesNotContain("UnauthorizedException"); - - userRule.verifyUserDoesNotExist(USER_LOGIN); - } - - @Test - public void synchronize_groups_for_new_user() throws Exception { - enablePlugin(); - userRule.createGroup(GROUP1); - userRule.createGroup(GROUP2); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - // Group3 doesn't exist in DB, user won't belong to this group - setGroupsReturnedByAuthPlugin(GROUP1, GROUP2, GROUP3); - - authenticateWithFakeAuthProvider(); - - userRule.verifyUserGroupMembership(USER_LOGIN, GROUP1, GROUP2, "sonar-users"); - } - - @Test - public void synchronize_groups_for_existing_user() throws Exception { - enablePlugin(); - userRule.createGroup(GROUP1); - userRule.createGroup(GROUP2); - userRule.createGroup(GROUP3); - userRule.createUser(USER_LOGIN, "password"); - userRule.associateGroupsToUser(USER_LOGIN, GROUP1, GROUP2); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - // Group1 is not returned by the plugin, user won't belong anymore to this group - setGroupsReturnedByAuthPlugin(GROUP2, GROUP3); - - authenticateWithFakeAuthProvider(); - - userRule.verifyUserGroupMembership(USER_LOGIN, GROUP2, GROUP3, "sonar-users"); - } - - @Test - public void remove_user_groups_when_groups_provided_by_plugin_are_empty() throws Exception { - enablePlugin(); - userRule.createGroup(GROUP1); - userRule.createUser(USER_LOGIN, "password"); - userRule.associateGroupsToUser(USER_LOGIN, GROUP1); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - // No group is returned by the plugin - setGroupsReturnedByAuthPlugin(); - - authenticateWithFakeAuthProvider(); - - // User is not member to any group - userRule.verifyUserGroupMembership(USER_LOGIN, "sonar-users"); - } - - @Test - public void allow_user_login_with_2_characters() throws Exception { - enablePlugin(); - String login = "jo"; - setUserCreatedByAuthPlugin(login, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - userRule.verifyUserDoesNotExist(login); - - // First connection, user is created - authenticateWithFakeAuthProvider(); - - userRule.verifyUserExists(login, USER_NAME, USER_EMAIL, false); - } - - @Test - public void provision_user_before_authentication() { - enablePlugin(); - setUserCreatedByAuthPlugin(USER_LOGIN, USER_PROVIDER_ID, USER_NAME, USER_EMAIL); - - // Provision none local user in database - newAdminWsClient(ORCHESTRATOR).users().create(CreateRequest.builder() - .setLogin(USER_LOGIN) - .setName(USER_NAME) - .setEmail(USER_EMAIL) - .setLocal(false) - .build()); - assertThat(userRule.getUserByLogin(USER_LOGIN).get()) - .extracting(Users.User::isLocal, Users.User::getExternalIdentity, Users.User::getExternalProvider) - .containsOnly(false, USER_LOGIN, "sonarqube"); - - // Authenticate with external system -> It will update external provider info - authenticateWithFakeAuthProvider(); - - assertThat(userRule.getUserByLogin(USER_LOGIN).get()) - .extracting(Users.User::isLocal, Users.User::getExternalIdentity, Users.User::getExternalProvider) - .containsOnly(false, USER_PROVIDER_ID, FAKE_PROVIDER_KEY); - } - - private static void enablePlugin() { - setServerProperty(ORCHESTRATOR, "sonar.auth.fake-base-id-provider.enabled", "true"); - } - - private static void setUserCreatedByAuthPlugin(String login, String providerId, String name, String email) { - setServerProperty(ORCHESTRATOR, "sonar.auth.fake-base-id-provider.user", login + "," + providerId + "," + name + "," + email); - } - - private static void setGroupsReturnedByAuthPlugin(String... groups) { - setServerProperty(ORCHESTRATOR, "sonar.auth.fake-base-id-provider.enabledGroupsSync", "true"); - if (groups.length > 0) { - setServerProperty(ORCHESTRATOR, "sonar.auth.fake-base-id-provider.groups", Joiner.on(",").join(groups)); - } - } - - private static void authenticateWithFakeAuthProvider() { - adminWsClient.wsConnector().call( - new GetRequest("/sessions/init/" + FAKE_PROVIDER_KEY)) - .failIfNotSuccessful(); - } - -} diff --git a/it/it-tests/src/test/java/it/user/FavoritesWsTest.java b/it/it-tests/src/test/java/it/user/FavoritesWsTest.java deleted file mode 100644 index f161e53372d..00000000000 --- a/it/it-tests/src/test/java/it/user/FavoritesWsTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.user; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import java.util.List; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.Favorites.Favorite; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.favorite.SearchRequest; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.projectDir; - -/** - * TODO This test should not require an analysis, only provisioning the project should be enough - */ -public class FavoritesWsTest { - - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - private static WsClient adminClient; - - @Before - public void inspectProject() { - orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample"))); - adminClient = newAdminWsClient(orchestrator); - } - - @Test - public void favorites_web_service() { - // GET (nothing) - List<Favorite> favorites = adminClient.favorites().search(new SearchRequest()).getFavoritesList(); - assertThat(favorites).isEmpty(); - - // POST (create favorites) - adminClient.favorites().add("sample"); - adminClient.favorites().add("sample:src/main/xoo/sample/Sample.xoo"); - - // GET (created favorites) - favorites = adminClient.favorites().search(new SearchRequest()).getFavoritesList(); - assertThat(favorites.stream().map(Favorite::getKey)).containsOnly("sample", "sample:src/main/xoo/sample/Sample.xoo"); - - // DELETE (a favorite) - adminClient.favorites().remove("sample"); - favorites = adminClient.favorites().search(new SearchRequest()).getFavoritesList(); - assertThat(favorites.stream().map(Favorite::getKey)).containsOnly("sample:src/main/xoo/sample/Sample.xoo"); - } - -} diff --git a/it/it-tests/src/test/java/it/user/ForceAuthenticationTest.java b/it/it-tests/src/test/java/it/user/ForceAuthenticationTest.java deleted file mode 100644 index a67756b43f1..00000000000 --- a/it/it-tests/src/test/java/it/user/ForceAuthenticationTest.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.user; - -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsConnector; -import org.sonarqube.ws.client.WsRequest; -import org.sonarqube.ws.client.WsResponse; -import pageobjects.Navigation; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.sonarqube.ws.client.WsRequest.Method.GET; -import static org.sonarqube.ws.client.WsRequest.Method.POST; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; - -public class ForceAuthenticationTest { - - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator).disableOrganizations(); - private User user; - - @Before - public void setUp() { - setServerProperty(orchestrator, "sonar.forceAuthentication", "true"); - user = tester.users().generate(); - } - - @After - public void tearDown() { - resetSettings(orchestrator, null, "sonar.forceAuthentication"); - } - - @Test - public void batch_ws_does_not_require_authentication() { - WsConnector anonymousConnector = tester.asAnonymous().wsClient().wsConnector(); - WsResponse batchIndex = anonymousConnector.call(new GetRequest("/batch/index")).failIfNotSuccessful(); - String batchIndexContent = batchIndex.content(); - - assertThat(batchIndexContent).isNotEmpty(); - String jar = batchIndexContent.split("\\|")[0]; - - assertThat(anonymousConnector.call( - new GetRequest("/batch/file").setParam("name", jar)).failIfNotSuccessful().contentStream()).isNotNull(); - - // As sonar-runner is still using deprecated /batch/key, we have to also verify it - assertThat(anonymousConnector.call(new GetRequest("/batch/" + jar)).failIfNotSuccessful().contentStream()).isNotNull(); - } - - @Test - public void authentication_ws_does_not_require_authentication() { - WsConnector anonymousConnector = tester.asAnonymous().wsClient().wsConnector(); - assertThat(anonymousConnector.call(new PostRequest("/api/authentication/login") - .setParam("login", user.getLogin()) - .setParam("password", user.getLogin())).isSuccessful()).isTrue(); - verifyPathDoesNotRequiresAuthentication("/api/authentication/logout", POST); - } - - @Test - public void check_ws_not_requiring_authentication() { - verifyPathDoesNotRequiresAuthentication("/api/system/db_migration_status", GET); - verifyPathDoesNotRequiresAuthentication("/api/system/status", GET); - verifyPathDoesNotRequiresAuthentication("/api/system/migrate_db", POST); - verifyPathDoesNotRequiresAuthentication("/api/users/identity_providers", GET); - verifyPathDoesNotRequiresAuthentication("/api/l10n/index", GET); - } - - @Test - public void check_ws_requiring_authentication() { - verifyPathRequiresAuthentication("/api/issues/search", GET); - verifyPathRequiresAuthentication("/api/rules/search", GET); - } - - @Test - public void redirect_to_login_page() { - User administrator = tester.users().generateAdministrator(); - Navigation page = tester.openBrowser().openHome(); - page.shouldBeRedirectedToLogin(); - page.openLogin().submitCredentials(administrator.getLogin()).shouldBeLoggedIn(); - page.logOut().shouldBeRedirectedToLogin(); - } - - private void verifyPathRequiresAuthentication(String path, WsRequest.Method method) { - assertThat(call(tester.asAnonymous().wsClient(), path, method).code()).isEqualTo(401); - WsResponse wsResponse = call(tester.wsClient(), path, method); - assertThat(wsResponse.isSuccessful()).as("code is %s on path %s", wsResponse.code(), path).isTrue(); - } - - private void verifyPathDoesNotRequiresAuthentication(String path, WsRequest.Method method) { - WsResponse wsResponse = call(tester.asAnonymous().wsClient(), path, method); - assertThat(wsResponse.isSuccessful()).as("code is %s on path %s", wsResponse.code(), path).isTrue(); - wsResponse = call(tester.wsClient(), path, method); - assertThat(wsResponse.isSuccessful()).as("code is %s on path %s", wsResponse.code(), path).isTrue(); - } - - private WsResponse call(WsClient client, String path, WsRequest.Method method) { - WsRequest request = method.equals(GET) ? new GetRequest(path) : new PostRequest(path); - return client.wsConnector().call(request); - } - -} diff --git a/it/it-tests/src/test/java/it/user/LocalAuthenticationTest.java b/it/it-tests/src/test/java/it/user/LocalAuthenticationTest.java deleted file mode 100644 index dc6d2b0298e..00000000000 --- a/it/it-tests/src/test/java/it/user/LocalAuthenticationTest.java +++ /dev/null @@ -1,234 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.user; - -import com.codeborne.selenide.Condition; -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import java.util.UUID; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.WsUserTokens; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.HttpConnector; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsClientFactories; -import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.ws.client.permission.AddUserWsRequest; -import org.sonarqube.ws.client.usertoken.GenerateWsRequest; -import org.sonarqube.ws.client.usertoken.RevokeWsRequest; -import org.sonarqube.ws.client.usertoken.SearchWsRequest; -import org.sonarqube.ws.client.usertoken.UserTokensService; -import pageobjects.LoginPage; -import pageobjects.Navigation; - -import static java.lang.String.format; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; -import static util.selenium.Selenese.runSelenese; - -public class LocalAuthenticationTest { - - private static final String ADMIN_USER_LOGIN = "admin-user"; - - private static final String LOGIN = "george.orwell"; - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator).disableOrganizations(); - - @Before - public void setUp() { - tester.users().generate(u -> u.setLogin(LOGIN).setPassword("123456")); - addUserPermission(LOGIN, "admin"); - - tester.users().generate(u -> u.setLogin("simple-user").setPassword("password")); - tester.users().generateAdministrator(u -> u.setLogin(ADMIN_USER_LOGIN).setPassword(ADMIN_USER_LOGIN)); - } - - @After - public void resetProperties() throws Exception { - resetSettings(orchestrator, null, "sonar.forceAuthentication"); - } - - @Test - public void log_in_with_correct_credentials_then_log_out() { - Navigation nav = tester.openBrowser(); - nav.shouldNotBeLoggedIn(); - nav.logIn().submitCredentials(LOGIN, "123456").shouldBeLoggedIn(); - nav.logOut().shouldNotBeLoggedIn(); - } - - @Test - public void log_in_with_wrong_credentials() { - Navigation nav = tester.openBrowser(); - LoginPage page = nav - .logIn() - .submitWrongCredentials(LOGIN, "wrong"); - page.getErrorMessage().shouldHave(Condition.text("Authentication failed")); - - nav.openHome(); - nav.shouldNotBeLoggedIn(); - } - - @Test - public void basic_authentication_based_on_login_and_password() { - String userId = UUID.randomUUID().toString(); - String login = format("login-%s", userId); - String name = format("name-%s", userId); - String password = "!ascii-only:-)@"; - tester.users().generate(u -> u.setLogin(login).setName(name).setPassword(password)); - - // authenticate - WsClient wsClient = tester.as(login, password).wsClient(); - WsResponse response = wsClient.wsConnector().call(new GetRequest("api/authentication/validate")); - assertThat(response.content()).isEqualTo("{\"valid\":true}"); - } - - @Test - public void basic_authentication_based_on_token() { - String tokenName = "Validate token based authentication"; - UserTokensService tokensService = tester.wsClient().userTokens(); - WsUserTokens.GenerateWsResponse generateWsResponse = tokensService.generate(new GenerateWsRequest() - .setLogin(LOGIN) - .setName(tokenName)); - WsClient wsClient = WsClientFactories.getDefault().newClient(HttpConnector.newBuilder() - .url(orchestrator.getServer().getUrl()) - .token(generateWsResponse.getToken()).build()); - - WsResponse response = wsClient.wsConnector().call(new GetRequest("api/authentication/validate")); - - assertThat(response.content()).isEqualTo("{\"valid\":true}"); - - WsUserTokens.SearchWsResponse searchResponse = tokensService.search(new SearchWsRequest().setLogin(LOGIN)); - assertThat(searchResponse.getUserTokensCount()).isEqualTo(1); - tokensService.revoke(new RevokeWsRequest().setLogin(LOGIN).setName(tokenName)); - searchResponse = tokensService.search(new SearchWsRequest().setLogin(LOGIN)); - assertThat(searchResponse.getUserTokensCount()).isEqualTo(0); - } - - @Test - @Ignore - public void web_login_form_should_support_utf8_passwords() { - // TODO selenium - } - - @Test - public void basic_authentication_does_not_support_utf8_passwords() { - String login = "user_with_utf8_password"; - // see http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt - String password = "κόσμε"; - - // create user with a UTF-8 password - tester.users().generate(u -> u.setLogin(login).setPassword(password)); - - // authenticate - assertThat(checkAuthenticationWithAuthenticateWebService(login, password)).isFalse(); - } - - @Test - public void allow_user_login_with_2_characters() throws Exception { - tester.users().generate(u -> u.setLogin("jo").setPassword("password")); - - assertThat(checkAuthenticationWithAuthenticateWebService("jo", "password")).isTrue(); - } - - @Test - public void authentication_through_ui() { - runSelenese(orchestrator, - "/user/LocalAuthenticationTest/login_successful.html", - "/user/LocalAuthenticationTest/login_wrong_password.html", - "/user/LocalAuthenticationTest/should_not_be_unlogged_when_going_to_login_page.html", - "/user/LocalAuthenticationTest/redirect_to_login_when_not_enough_privilege.html", - // SONAR-2132 - "/user/LocalAuthenticationTest/redirect_to_original_url_after_direct_login.html", - "/user/LocalAuthenticationTest/redirect_to_original_url_with_parameters_after_direct_login.html", - // SONAR-2009 - "/user/LocalAuthenticationTest/redirect_to_original_url_after_indirect_login.html"); - - setServerProperty(orchestrator, "sonar.forceAuthentication", "true"); - - runSelenese(orchestrator, - // SONAR-3473 - "/user/LocalAuthenticationTest/force-authentication.html"); - } - - @Test - public void authentication_with_authentication_ws() { - assertThat(checkAuthenticationWithAuthenticateWebService("admin", "admin")).isTrue(); - assertThat(checkAuthenticationWithAuthenticateWebService("wrong", "admin")).isFalse(); - assertThat(checkAuthenticationWithAuthenticateWebService("admin", "wrong")).isFalse(); - assertThat(checkAuthenticationWithAuthenticateWebService(null, null)).isTrue(); - - setServerProperty(orchestrator, "sonar.forceAuthentication", "true"); - - assertThat(checkAuthenticationWithAuthenticateWebService("admin", "admin")).isTrue(); - assertThat(checkAuthenticationWithAuthenticateWebService("wrong", "admin")).isFalse(); - assertThat(checkAuthenticationWithAuthenticateWebService("admin", "wrong")).isFalse(); - assertThat(checkAuthenticationWithAuthenticateWebService(null, null)).isFalse(); - } - - /** - * SONAR-7640 - */ - @Test - public void authentication_with_any_ws() throws Exception { - assertThat(checkAuthenticationWithAnyWS("admin", "admin").code()).isEqualTo(200); - assertThat(checkAuthenticationWithAnyWS("wrong", "admin").code()).isEqualTo(401); - assertThat(checkAuthenticationWithAnyWS("admin", "wrong").code()).isEqualTo(401); - assertThat(checkAuthenticationWithAnyWS("admin", null).code()).isEqualTo(401); - assertThat(checkAuthenticationWithAnyWS(null, null).code()).isEqualTo(200); - - setServerProperty(orchestrator, "sonar.forceAuthentication", "true"); - - assertThat(checkAuthenticationWithAnyWS("admin", "admin").code()).isEqualTo(200); - assertThat(checkAuthenticationWithAnyWS("wrong", "admin").code()).isEqualTo(401); - assertThat(checkAuthenticationWithAnyWS("admin", "wrong").code()).isEqualTo(401); - assertThat(checkAuthenticationWithAnyWS("admin", null).code()).isEqualTo(401); - assertThat(checkAuthenticationWithAnyWS(null, null).code()).isEqualTo(401); - } - - private boolean checkAuthenticationWithAuthenticateWebService(String login, String password) { - String result = tester.as(login, password).wsClient().wsConnector().call(new PostRequest("/api/authentication/validate")).content(); - return result.contains("{\"valid\":true}"); - } - - private WsResponse checkAuthenticationWithAnyWS(String login, String password) { - WsClient wsClient = WsClientFactories.getDefault().newClient(HttpConnector.newBuilder().url(orchestrator.getServer().getUrl()).credentials(login, password).build()); - // Call any WS - return wsClient.wsConnector().call(new GetRequest("api/rules/search")); - } - - private void addUserPermission(String login, String permission) { - tester.wsClient().permissions().addUser(new AddUserWsRequest() - .setLogin(login) - .setPermission(permission)); - } - -} diff --git a/it/it-tests/src/test/java/it/user/MyAccountPageTest.java b/it/it-tests/src/test/java/it/user/MyAccountPageTest.java deleted file mode 100644 index 6d8b8105686..00000000000 --- a/it/it-tests/src/test/java/it/user/MyAccountPageTest.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.user; - -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarScanner; -import it.Category4Suite; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.PostRequest; -import pageobjects.Navigation; - -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static util.ItUtils.projectDir; -import static util.selenium.Selenese.runSelenese; - -public class MyAccountPageTest { - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator).disableOrganizations(); - - private User administrator; - - @Before - public void initUser() { - administrator = tester.users().generateAdministrator(); - createUser("account-user", "User With Account", "user@example.com"); - } - - @Test - public void should_display_user_details() throws Exception { - Navigation nav = tester.openBrowser(); - nav.openLogin().submitCredentials("account-user", "password").shouldBeLoggedIn(); - nav.open("/account"); - $("#name").shouldHave(text("User With Account")); - $("#login").shouldHave(text("account-user")); - $("#email").shouldHave(text("user@example.com")); - $("#groups").shouldHave(text("sonar-users")); - $("#scm-accounts").shouldHave(text("user@example.com")); - $("#avatar").shouldBe(visible); - } - - @Test - public void should_change_password() throws Exception { - Navigation nav = tester.openBrowser(); - nav.openLogin().submitCredentials("account-user", "password").shouldBeLoggedIn(); - nav.open("/account/security"); - $("#old_password").val("password"); - $("#password").val("new_password"); - $("#password_confirmation").val("new_password"); - $("#change-password").click(); - $(".alert-success").shouldBe(visible); - nav.logOut().logIn().submitCredentials("account-user", "new_password").shouldBeLoggedIn(); - } - - @Test - public void should_display_projects() throws Exception { - // first, try on empty instance - runSelenese(orchestrator, "/user/MyAccountPageTest/should_display_no_projects.html"); - - // then, analyze a project - analyzeProject("sample"); - grantAdminPermission("account-user", "sample"); - - runSelenese(orchestrator, "/user/MyAccountPageTest/should_display_projects.html"); - } - - @Test - public void notifications() { - Navigation nav = tester.openBrowser(); - nav.logIn().submitCredentials(administrator.getLogin()).openNotifications() - .addGlobalNotification("ChangesOnMyIssue") - .addGlobalNotification("NewIssues") - .removeGlobalNotification("ChangesOnMyIssue"); - - nav.openNotifications() - .shouldHaveGlobalNotification("NewIssues") - .shouldNotHaveGlobalNotification("ChangesOnMyIssue"); - } - - private void createUser(String login, String name, String email) { - tester.wsClient().wsConnector().call( - new PostRequest("api/users/create") - .setParam("login", login) - .setParam("name", name) - .setParam("email", email) - .setParam("password", "password")); - } - - private static void analyzeProject(String projectKey) { - SonarScanner build = SonarScanner.create(projectDir("qualitygate/xoo-sample")) - .setProjectKey(projectKey) - .setProperty("sonar.projectDescription", "Description of a project") - .setProperty("sonar.links.homepage", "http://example.com"); - orchestrator.executeBuild(build); - } - - private void grantAdminPermission(String login, String projectKey) { - tester.wsClient().wsConnector().call( - new PostRequest("api/permissions/add_user") - .setParam("login", login) - .setParam("projectKey", projectKey) - .setParam("permission", "admin")); - } -} diff --git a/it/it-tests/src/test/java/it/user/OAuth2IdentityProviderTest.java b/it/it-tests/src/test/java/it/user/OAuth2IdentityProviderTest.java deleted file mode 100644 index 91a58eefe5b..00000000000 --- a/it/it-tests/src/test/java/it/user/OAuth2IdentityProviderTest.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.user; - -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import java.io.File; -import java.net.HttpURLConnection; -import okhttp3.mockwebserver.MockResponse; -import okhttp3.mockwebserver.MockWebServer; -import org.apache.commons.io.FileUtils; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.WsUsers.SearchWsResponse.User; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.ws.client.user.CreateRequest; -import pageobjects.Navigation; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; -import static util.selenium.Selenese.runSelenese; - -/** - * There's only tests specific to OAuth2 in this class - */ -public class OAuth2IdentityProviderTest { - - @ClassRule - public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - private static String FAKE_PROVIDER_KEY = "fake-oauth2-id-provider"; - - private static String USER_LOGIN = "john"; - private static String USER_PROVIDER_ID = "fake-john"; - private static String USER_NAME = "John"; - private static String USER_EMAIL = "john@email.com"; - - @Rule - public Tester tester = new Tester(orchestrator).disableOrganizations(); - - private MockWebServer fakeServerAuthProvider; - private String fakeServerAuthProviderUrl; - - @Before - public void setUp() throws Exception { - fakeServerAuthProvider = new MockWebServer(); - fakeServerAuthProvider.start(); - fakeServerAuthProviderUrl = fakeServerAuthProvider.url("").url().toString(); - resetData(); - } - - @After - public void tearDown() throws Exception { - resetData(); - fakeServerAuthProvider.shutdown(); - } - - private void resetData() { - resetSettings(orchestrator, null, - "sonar.auth.fake-oauth2-id-provider.enabled", - "sonar.auth.fake-oauth2-id-provider.url", - "sonar.auth.fake-oauth2-id-provider.user", - "sonar.auth.fake-oauth2-id-provider.throwUnauthorizedMessage", - "sonar.auth.fake-oauth2-id-provider.allowsUsersToSignUp"); - } - - @Test - public void create_user_when_authenticating_for_the_first_time() { - simulateRedirectionToCallback(); - enablePlugin(); - - authenticateWithFakeAuthProvider(); - - verifyUser(USER_LOGIN, USER_NAME, USER_EMAIL); - } - - private void verifyUser(String login, String name, String email) { - User user = tester.users().getByLogin(login).orElseThrow(IllegalStateException::new); - assertThat(user.getLogin()).isEqualTo(login); - assertThat(user.getName()).isEqualTo(name); - assertThat(user.getEmail()).isEqualTo(email); - assertThat(user.getActive()).isTrue(); - } - - @Test - public void authenticate_user_through_ui() throws Exception { - simulateRedirectionToCallback(); - enablePlugin(); - - Navigation nav = tester.openBrowser(); - nav.openLogin().useOAuth2().shouldBeLoggedIn(); - - verifyUser(USER_LOGIN, USER_NAME, USER_EMAIL); - } - - @Test - public void display_unauthorized_page_when_authentication_failed_in_callback() throws Exception { - simulateRedirectionToCallback(); - enablePlugin(); - - // As this property is null, the plugin will throw an exception - setServerProperty(orchestrator, "sonar.auth.fake-oauth2-id-provider.user", null); - - runSelenese(orchestrator, "/user/OAuth2IdentityProviderTest/display_unauthorized_page_when_authentication_failed.html"); - - assertThatUserDoesNotExist(USER_LOGIN); - } - - @Test - public void fail_to_authenticate_when_not_allowed_to_sign_up() throws Exception { - simulateRedirectionToCallback(); - enablePlugin(); - setServerProperty(orchestrator, "sonar.auth.fake-oauth2-id-provider.allowsUsersToSignUp", "false"); - - runSelenese(orchestrator, "/user/OAuth2IdentityProviderTest/fail_to_authenticate_when_not_allowed_to_sign_up.html"); - - assertThatUserDoesNotExist(USER_LOGIN); - } - - @Test - public void display_message_in_ui_but_not_in_log_when_unauthorized_exception_in_callback() throws Exception { - simulateRedirectionToCallback(); - enablePlugin(); - setServerProperty(orchestrator, "sonar.auth.fake-oauth2-id-provider.throwUnauthorizedMessage", "true"); - - tester.runHtmlTests("/user/OAuth2IdentityProviderTest/display_message_in_ui_but_not_in_log_when_unauthorized_exception.html"); - - File logFile = orchestrator.getServer().getWebLogs(); - assertThat(FileUtils.readFileToString(logFile)).doesNotContain("A functional error has happened"); - assertThat(FileUtils.readFileToString(logFile)).doesNotContain("UnauthorizedException"); - - assertThatUserDoesNotExist(USER_LOGIN); - } - - @Test - public void fail_when_email_already_exists() throws Exception { - simulateRedirectionToCallback(); - enablePlugin(); - tester.users().generate(u -> u.setLogin("another").setName("Another").setEmail(USER_EMAIL).setPassword("another")); - - tester.runHtmlTests("/user/OAuth2IdentityProviderTest/fail_when_email_already_exists.html"); - - File logFile = orchestrator.getServer().getWebLogs(); - assertThat(FileUtils.readFileToString(logFile)) - .doesNotContain("You can't sign up because email 'john@email.com' is already used by an existing user. This means that you probably already registered with another account"); - } - - @Test - public void provision_user_before_authentication() { - simulateRedirectionToCallback(); - enablePlugin(); - - // Provision none local user in database - tester.wsClient().users().create(CreateRequest.builder() - .setLogin(USER_LOGIN) - .setName(USER_NAME) - .setEmail(USER_EMAIL) - .setLocal(false) - .build()); - User user = tester.users().getByLogin(USER_LOGIN).get(); - assertThat(user.getLocal()).isFalse(); - assertThat(user.getExternalIdentity()).isEqualTo(USER_LOGIN); - assertThat(user.getExternalProvider()).isEqualTo("sonarqube"); - - // Authenticate with external system -> It will update external provider info - authenticateWithFakeAuthProvider(); - - user = tester.users().getByLogin(USER_LOGIN).get(); - assertThat(user.getLocal()).isFalse(); - assertThat(user.getExternalIdentity()).isEqualTo(USER_PROVIDER_ID); - assertThat(user.getExternalProvider()).isEqualTo(FAKE_PROVIDER_KEY); - } - - private void authenticateWithFakeAuthProvider() { - WsResponse response = tester.wsClient().wsConnector().call( - new GetRequest(("/sessions/init/" + FAKE_PROVIDER_KEY))); - assertThat(response.code()).isEqualTo(200); - } - - private void simulateRedirectionToCallback() { - fakeServerAuthProvider.enqueue(new MockResponse() - .setResponseCode(HttpURLConnection.HTTP_MOVED_TEMP) - .addHeader("Location: " + orchestrator.getServer().getUrl() + "/oauth2/callback/" + FAKE_PROVIDER_KEY) - .setBody("Redirect to SonarQube")); - } - - private void enablePlugin() { - setServerProperty(orchestrator, "sonar.auth.fake-oauth2-id-provider.enabled", "true"); - setServerProperty(orchestrator, "sonar.auth.fake-oauth2-id-provider.url", fakeServerAuthProviderUrl); - setServerProperty(orchestrator, "sonar.auth.fake-oauth2-id-provider.user", USER_LOGIN + "," + USER_PROVIDER_ID + "," + USER_NAME + "," + USER_EMAIL); - } - - private void assertThatUserDoesNotExist(String login) { - assertThat(tester.users().getByLogin(login)).isEmpty(); - } - -} diff --git a/it/it-tests/src/test/java/it/user/OnboardingTest.java b/it/it-tests/src/test/java/it/user/OnboardingTest.java deleted file mode 100644 index e0a277a812a..00000000000 --- a/it/it-tests/src/test/java/it/user/OnboardingTest.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.user; - -import com.sonar.orchestrator.Orchestrator; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.WsClient; -import util.ItUtils; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; - -public class OnboardingTest { - - private static final String ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS = "sonar.onboardingTutorial.showToNewUsers"; - - @ClassRule - public static final Orchestrator orchestrator = Orchestrator.builderEnv().build(); - - @Rule - public Tester tester = new Tester(orchestrator).disableOrganizations(); - - @Before - public void setUp() { - resetSettings(orchestrator, null, ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS); - } - - @After - public void reset() { - resetSettings(orchestrator, null, ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS); - } - - @Test - public void by_default_new_user_does_not_see_onboarding_tutorial() { - User user = tester.users().generate(); - - verifyTutorial(user, false); - } - - @Test - public void new_user_see_onboarding_tutorial_when_show_onboarding_setting_is_enabled() { - setShownOnboardingSetting(true); - User user = tester.users().generate(); - - verifyTutorial(user, true); - } - - @Test - public void new_user_does_not_see_onboarding_tutorial_when_show_onboarding_setting_is_disabled() { - setShownOnboardingSetting(false); - User user = tester.users().generate(); - - verifyTutorial(user, false); - } - - @Test - public void new_user_does_not_see_onboarding_tutorial_when_show_onboarding_setting_is_enabled_after_user_creation() { - setShownOnboardingSetting(false); - // User is created when show onboading is disabled - User user = tester.users().generate(); - setShownOnboardingSetting(true); - - // The user doesn't see the tutorial as he was created when the show onboading setting was disabled - verifyTutorial(user, false); - } - - @Test - public void skip_onboarding_tutorial() { - setShownOnboardingSetting(true); - User user = tester.users().generate(); - - tester.as(user.getLogin()).wsClient().users().skipOnboardingTutorial(); - - verifyTutorial(user, false); - } - - @Test - public void skip_onboarding_tutorial_when_show_onboarding_setting_is_disabled() { - setShownOnboardingSetting(true); - User user = tester.users().generate(); - - tester.as(user.getLogin()).wsClient().users().skipOnboardingTutorial(); - - verifyTutorial(user, false); - } - - @Test - public void anonymous_user_does_not_see_onboarding_tutorial() { - setShownOnboardingSetting(true); - - // anonymous should not see the onboarding tutorial - verifyTutorialForAnonymous(false); - - // anonymous should not be able to skip the tutorial - ItUtils.expectHttpError(401, () -> tester.asAnonymous().wsClient().users().skipOnboardingTutorial()); - } - - @Test - public void admin_user_see_onboarding_tutorial() { - - assertThat(tester.wsClient().users().current().getShowOnboardingTutorial()).isEqualTo(true); - - // Onboarding setting has no effect as admin is created at startup - setShownOnboardingSetting(false); - assertThat(tester.wsClient().users().current().getShowOnboardingTutorial()).isEqualTo(true); - - setShownOnboardingSetting(true); - assertThat(tester.wsClient().users().current().getShowOnboardingTutorial()).isEqualTo(true); - } - - @Test - public void reactivated_user_should_see_the_onboarding_tutorial() { - setShownOnboardingSetting(true); - User user = tester.users().generate(); - tester.as(user.getLogin()).wsClient().users().skipOnboardingTutorial(); - verifyTutorial(user, false); - - tester.wsClient().users().deactivate(user.getLogin()); - User reactivatedUser = tester.users().generate(u -> u.setLogin(user.getLogin()).setName(user.getName()).setPassword(user.getLogin())); - - verifyTutorial(reactivatedUser, true); - } - - private static void setShownOnboardingSetting(boolean showTutorial) { - setServerProperty(orchestrator, ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS, String.valueOf(showTutorial)); - } - - private void verifyTutorial(User user, boolean expectedTutorial) { - WsClient wsClient = tester.as(user.getLogin()).wsClient(); - assertThat(wsClient.users().current().getShowOnboardingTutorial()).isEqualTo(expectedTutorial); - } - - private void verifyTutorialForAnonymous(boolean expectedTutorial) { - WsClient wsClient = tester.asAnonymous().wsClient(); - assertThat(wsClient.users().current().getShowOnboardingTutorial()).isEqualTo(expectedTutorial); - } -} diff --git a/it/it-tests/src/test/java/it/user/OrganizationIdentityProviderTest.java b/it/it-tests/src/test/java/it/user/OrganizationIdentityProviderTest.java deleted file mode 100644 index d59f5651477..00000000000 --- a/it/it-tests/src/test/java/it/user/OrganizationIdentityProviderTest.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.user; - -import com.google.common.base.Joiner; -import com.sonar.orchestrator.Orchestrator; -import it.Category6Suite; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.WsUserGroups.Group; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.GetRequest; - -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; - -public class OrganizationIdentityProviderTest { - - @ClassRule - public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; - - @Rule - public Tester tester = new Tester(orchestrator); - - - @Before - public void setUp() { - // enable the fake authentication plugin - setServerProperty(orchestrator, "sonar.auth.fake-base-id-provider.enabled", "true"); - } - - @After - public void tearDown() { - resetSettings(orchestrator, null, "sonar.auth.fake-base-id-provider.enabled", "sonar.auth.fake-base-id-provider.user", - "sonar.auth.fake-base-id-provider.throwUnauthorizedMessage", "sonar.auth.fake-base-id-provider.enabledGroupsSync", "sonar.auth.fake-base-id-provider.groups", - "sonar.auth.fake-base-id-provider.allowsUsersToSignUp"); - } - - @Test - public void default_group_is_not_added_for_new_user_when_organizations_are_enabled() { - Group group = tester.groups().generate(null); - enableUserCreationByAuthPlugin("aLogin"); - setGroupsReturnedByAuthPlugin(group.getName()); - - authenticateWithFakeAuthProvider(); - - // No default group membership - tester.groups().assertThatUserIsOnlyMemberOf(null, "aLogin", group.getName()); - } - - @Test - public void default_group_is_not_sync_for_existing_user_when_organizations_are_enabled() { - Group group = tester.groups().generate(null); - User user = tester.users().generate(); - enableUserCreationByAuthPlugin(user.getLogin()); - setGroupsReturnedByAuthPlugin(group.getName()); - - authenticateWithFakeAuthProvider(); - - // No default group membership - tester.groups().assertThatUserIsOnlyMemberOf(null, user.getLogin(), group.getName()); - } - - @Test - public void remove_default_group_when_organizations_are_enabled() { - Group group = tester.groups().generate(null); - User user = tester.users().generate(); - // Add user as member of default organization - tester.wsClient().organizations().addMember("default-organization", user.getLogin()); - tester.groups().assertThatUserIsMemberOf(null, user.getLogin(), "Members"); - enableUserCreationByAuthPlugin(user.getLogin()); - // No group is returned by the plugin - setGroupsReturnedByAuthPlugin(); - - authenticateWithFakeAuthProvider(); - - // No default group membership - tester.groups().assertThatUserIsOnlyMemberOf(null, user.getLogin()); - } - - private static void enableUserCreationByAuthPlugin(String login) { - setServerProperty(orchestrator, "sonar.auth.fake-base-id-provider.user", login + ",fake-john,John,john@email.com"); - } - - private static void setGroupsReturnedByAuthPlugin(String... groups) { - setServerProperty(orchestrator, "sonar.auth.fake-base-id-provider.enabledGroupsSync", "true"); - if (groups.length > 0) { - setServerProperty(orchestrator, "sonar.auth.fake-base-id-provider.groups", Joiner.on(",").join(groups)); - } - } - - private void authenticateWithFakeAuthProvider() { - tester.wsClient().wsConnector().call( - new GetRequest("/sessions/init/fake-base-id-provider")) - .failIfNotSuccessful(); - } - -} diff --git a/it/it-tests/src/test/java/it/user/RealmAuthenticationTest.java b/it/it-tests/src/test/java/it/user/RealmAuthenticationTest.java deleted file mode 100644 index bb8fb26b857..00000000000 --- a/it/it-tests/src/test/java/it/user/RealmAuthenticationTest.java +++ /dev/null @@ -1,389 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.user; - -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; -import com.sonar.orchestrator.Orchestrator; -import java.util.Map; -import javax.annotation.CheckForNull; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonar.wsclient.Host; -import org.sonar.wsclient.Sonar; -import org.sonar.wsclient.base.HttpException; -import org.sonar.wsclient.connectors.HttpClient4Connector; -import org.sonar.wsclient.services.AuthenticationQuery; -import org.sonar.wsclient.user.UserParameters; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.ws.client.user.CreateRequest; -import util.user.UserRule; -import util.user.Users; - -import static java.net.HttpURLConnection.HTTP_OK; -import static java.net.HttpURLConnection.HTTP_UNAUTHORIZED; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; -import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.newUserWsClient; -import static util.ItUtils.pluginArtifact; -import static util.ItUtils.resetSettings; -import static util.ItUtils.setServerProperty; -import static util.selenium.Selenese.runSelenese; - -/** - * Test REALM authentication. - * - * It starts its own server as it's using a different authentication system - */ -public class RealmAuthenticationTest { - - private static final String TECH_USER = "techUser"; - private static final String USER_LOGIN = "tester"; - private static final String ADMIN_USER_LOGIN = "admin-user"; - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - /** - * Property from security-plugin for user management. - */ - private static final String USERS_PROPERTY = "sonar.fakeauthenticator.users"; - - @ClassRule - public static final Orchestrator orchestrator = Orchestrator.builderEnv() - .addPlugin(pluginArtifact("security-plugin")) - .setServerProperty("sonar.security.realm", "FakeRealm") - .build(); - - @Rule - public UserRule userRule = UserRule.from(orchestrator); - - @Before - @After - public void resetData() throws Exception { - resetSettings(orchestrator, null, USERS_PROPERTY, "sonar.security.updateUserAttributes"); - } - - @Before - public void initAdminUser() throws Exception { - userRule.createAdminUser(ADMIN_USER_LOGIN, ADMIN_USER_LOGIN); - } - - @After - public void deleteAdminUser() { - userRule.resetUsers(); - } - - /** - * SONAR-3137, SONAR-2292 - * Restriction on password length (minimum 4 characters) should be disabled, when external system enabled. - */ - @Test - public void shouldSynchronizeDetailsAndGroups() { - // Given clean Sonar installation and no users in external system - String username = USER_LOGIN; - String password = "123"; - Map<String, String> users = Maps.newHashMap(); - - // When user created in external system - users.put(username + ".password", password); - users.put(username + ".name", "Tester Testerovich"); - users.put(username + ".email", "tester@example.org"); - users.put(username + ".groups", "sonar-user"); - updateUsersInExtAuth(users); - // Then - verifyAuthenticationIsOk(username, password); - - // with external details and groups - runSelenese(orchestrator, "/user/ExternalAuthenticationTest/external-user-details.html"); - - // SONAR-4462 - runSelenese(orchestrator, "/user/ExternalAuthenticationTest/system-info.html"); - } - - /** - * SONAR-4034 - */ - @Test - public void shouldUpdateDetailsByDefault() { - // Given clean Sonar installation and no users in external system - String username = USER_LOGIN; - String password = "123"; - Map<String, String> users = Maps.newHashMap(); - - // When user created in external system - users.put(username + ".password", password); - users.put(username + ".name", "Tester Testerovich"); - users.put(username + ".email", "tester@example.org"); - users.put(username + ".groups", "sonar-user"); - updateUsersInExtAuth(users); - // Then - verifyAuthenticationIsOk(username, password); - - // with external details and groups - // TODO replace by WS ? Or with new Selenese utils - runSelenese(orchestrator, "/user/ExternalAuthenticationTest/external-user-details.html"); - - // Now update user details - users.put(username + ".name", "Tester2 Testerovich"); - users.put(username + ".email", "tester2@example.org"); - updateUsersInExtAuth(users); - // Then - verifyAuthenticationIsOk(username, password); - - // with external details and groups updated - runSelenese(orchestrator, "/user/ExternalAuthenticationTest/external-user-details2.html"); - } - - /** - * SONAR-3138 - */ - @Test - public void shouldNotFallback() { - // Given clean Sonar installation and no users in external system - String login = USER_LOGIN; - String password = "1234567"; - Map<String, String> users = Maps.newHashMap(); - - // When user created in external system - users.put(login + ".password", password); - updateUsersInExtAuth(users); - // Then - verifyAuthenticationIsOk(login, password); - - // When external system does not work - users.remove(login + ".password"); - updateUsersInExtAuth(users); - // Then - verifyAuthenticationIsNotOk(login, password); - } - - /** - * SONAR-4543 - */ - @Test - public void adminIsLocalAccountByDefault() { - // Given clean Sonar installation and no users in external system - String login = "admin"; - String localPassword = "admin"; - String remotePassword = "nimda"; - Map<String, String> users = Maps.newHashMap(); - - // When admin created in external system with a different password - users.put(login + ".password", remotePassword); - updateUsersInExtAuth(users); - - // Then this is local DB that should be used - verifyAuthenticationIsNotOk(login, remotePassword); - verifyAuthenticationIsOk(login, localPassword); - } - - /** - * SONAR-1334, SONAR-3185 (createUsers=true is default) - */ - @Test - public void shouldCreateNewUsers() { - // Given clean Sonar installation and no users in external system - String username = USER_LOGIN; - String password = "1234567"; - Map<String, String> users = Maps.newHashMap(); - - // When user not exists in external system - // Then - verifyAuthenticationIsNotOk(username, password); - - // When user created in external system - users.put(username + ".password", password); - updateUsersInExtAuth(users); - // Then - verifyAuthenticationIsOk(username, password); - verifyAuthenticationIsNotOk(username, "wrong"); - } - - // SONAR-3258 - @Test - public void shouldAutomaticallyReactivateDeletedUser() throws Exception { - // Given clean Sonar installation and no users in external system - - // Let's create and delete the user "tester" in Sonar DB - runSelenese(orchestrator, "/user/ExternalAuthenticationTest/create-and-delete-user.html"); - - // And now update the security with the user that was deleted - String login = USER_LOGIN; - String password = "1234567"; - Map<String, String> users = Maps.newHashMap(); - users.put(login + ".password", password); - updateUsersInExtAuth(users); - // check that the deleted/deactivated user "tester" has been reactivated and can now log in - verifyAuthenticationIsOk(login, password); - } - - /** - * SONAR-7036 - */ - @Test - public void update_password_of_technical_user() throws Exception { - // Create user in external authentication - updateUsersInExtAuth(ImmutableMap.of(USER_LOGIN + ".password", USER_LOGIN)); - verifyAuthenticationIsOk(USER_LOGIN, USER_LOGIN); - - // Create technical user in db - createUserInDb(TECH_USER, "old_password"); - assertThat(checkAuthenticationThroughWebService(TECH_USER, "old_password")).isTrue(); - - // Updating password of technical user is allowed - updateUserPasswordInDb(TECH_USER, "new_password"); - assertThat(checkAuthenticationThroughWebService(TECH_USER, "new_password")).isTrue(); - - // But updating password of none local user is not allowed - try { - updateUserPasswordInDb(USER_LOGIN, "new_password"); - fail(); - } catch (HttpException e) { - verifyHttpException(e, 400); - } - } - - /** - * SONAR-7640 - */ - @Test - public void authentication_with_ws() throws Exception { - // Given clean Sonar installation and no users in external system - String login = USER_LOGIN; - String password = "1234567"; - Map<String, String> users = Maps.newHashMap(); - - // When user created in external system - users.put(login + ".password", password); - updateUsersInExtAuth(users); - - verifyAuthenticationIsOk(login, password); - verifyAuthenticationIsNotOk("wrong", password); - verifyAuthenticationIsNotOk(login, "wrong"); - verifyAuthenticationIsNotOk(login, null); - verifyAuthenticationIsOk(null, null); - - setServerProperty(orchestrator, "sonar.forceAuthentication", "true"); - - verifyAuthenticationIsOk(login, password); - verifyAuthenticationIsNotOk("wrong", password); - verifyAuthenticationIsNotOk(login, "wrong"); - verifyAuthenticationIsNotOk(login, null); - verifyAuthenticationIsNotOk(null, null); - } - - @Test - public void allow_user_login_with_2_characters() { - String username = "jo"; - String password = "1234567"; - updateUsersInExtAuth(ImmutableMap.of(username + ".password", password)); - - verifyAuthenticationIsOk(username, password); - } - - @Test - public void provision_user_before_authentication() { - newAdminWsClient(orchestrator).users().create(CreateRequest.builder() - .setLogin(USER_LOGIN) - .setName("Tester Testerovich") - .setEmail("tester@example.org") - .setLocal(false) - .build()); - // The user is created in SonarQube but doesn't exist yet in external authentication system - verifyAuthenticationIsNotOk(USER_LOGIN, "123"); - - updateUsersInExtAuth(ImmutableMap.of( - USER_LOGIN + ".password", "123", - USER_LOGIN + ".name", "Tester Testerovich", - USER_LOGIN + ".email", "tester@example.org")); - - verifyAuthenticationIsOk(USER_LOGIN, "123"); - assertThat(userRule.getUserByLogin(USER_LOGIN).get()) - .extracting(Users.User::isLocal, Users.User::getExternalIdentity, Users.User::getExternalProvider) - .containsOnly(false, USER_LOGIN, "sonarqube"); - } - - private void verifyHttpException(Exception e, int expectedCode) { - assertThat(e).isInstanceOf(HttpException.class); - HttpException exception = (HttpException) e; - assertThat(exception.status()).isEqualTo(expectedCode); - } - - private boolean checkAuthenticationThroughWebService(String login, String password) { - return createWsClient(login, password).find(new AuthenticationQuery()).isValid(); - } - - /** - * Updates information about users in security-plugin. - */ - private static void updateUsersInExtAuth(Map<String, String> users) { - setServerProperty(orchestrator, USERS_PROPERTY, format(users)); - } - - private void createUserInDb(String login, String password) { - orchestrator.getServer().adminWsClient().userClient().create(UserParameters.create().login(login).name(login) - .password(password).passwordConfirmation(password)); - } - - private void updateUserPasswordInDb(String login, String newPassword) { - orchestrator.getServer().adminWsClient().post("/api/users/change_password", "login", login, "password", newPassword); - } - - /** - * Utility method to create {@link Sonar} with specified {@code username} and {@code password}. - * Orchestrator does not provide such method. - */ - private Sonar createWsClient(String username, String password) { - return new Sonar(new HttpClient4Connector(new Host(orchestrator.getServer().getUrl(), username, password))); - } - - @CheckForNull - private static String format(Map<String, String> map) { - if (map.isEmpty()) { - return null; - } - StringBuilder sb = new StringBuilder(); - for (Map.Entry<String, String> entry : map.entrySet()) { - sb.append(entry.getKey()).append('=').append(entry.getValue()).append('\n'); - } - return sb.toString(); - } - - private void verifyAuthenticationIsOk(String login, String password) { - assertThat(checkAuthenticationWithWebService(login, password).code()).isEqualTo(HTTP_OK); - } - - private void verifyAuthenticationIsNotOk(String login, String password) { - assertThat(checkAuthenticationWithWebService(login, password).code()).isEqualTo(HTTP_UNAUTHORIZED); - } - - private WsResponse checkAuthenticationWithWebService(String login, String password) { - // Call any WS - return newUserWsClient(orchestrator, login, password).wsConnector().call(new GetRequest("api/rules/search")); - } - -} diff --git a/it/it-tests/src/test/java/it/user/SsoAuthenticationTest.java b/it/it-tests/src/test/java/it/user/SsoAuthenticationTest.java deleted file mode 100644 index fdd127d56df..00000000000 --- a/it/it-tests/src/test/java/it/user/SsoAuthenticationTest.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.user; - -import com.sonar.orchestrator.Orchestrator; -import java.net.URLEncoder; -import java.util.List; -import javax.annotation.Nullable; -import okhttp3.Response; -import org.apache.commons.io.FileUtils; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import util.user.UserRule; - -import static java.nio.charset.StandardCharsets.UTF_8; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.call; - -/** - * Test SSO authentication (using HTTP headers). - * <p> - * It starts its own server as it's using a different authentication system - */ -public class SsoAuthenticationTest { - - private static final String LOGIN_HEADER = "H-Login"; - private static final String NAME_HEADER = "H-Name"; - private static final String EMAIL_HEADER = "H-Email"; - private static final String GROUPS_HEADER = "H-Groups"; - - static final String USER_LOGIN = "tester"; - static final String USER_NAME = "Tester"; - static final String USER_EMAIL = "tester@email.com"; - - static final String GROUP_1 = "group-1"; - static final String GROUP_2 = "group-2"; - static final String GROUP_3 = "group-3"; - - @ClassRule - public static final Orchestrator orchestrator = Orchestrator.builderEnv() - .setServerProperty("sonar.web.sso.enable", "true") - .setServerProperty("sonar.web.sso.loginHeader", LOGIN_HEADER) - .setServerProperty("sonar.web.sso.nameHeader", NAME_HEADER) - .setServerProperty("sonar.web.sso.emailHeader", EMAIL_HEADER) - .setServerProperty("sonar.web.sso.groupsHeader", GROUPS_HEADER) - .build(); - - @ClassRule - public static UserRule USER_RULE = UserRule.from(orchestrator); - - @Before - public void resetData() throws Exception { - USER_RULE.resetUsers(); - } - - @Test - public void authenticate() { - doCall(USER_LOGIN, USER_NAME, USER_EMAIL, null); - - USER_RULE.verifyUserExists(USER_LOGIN, USER_NAME, USER_EMAIL); - } - - @Test - public void authenticate_with_only_login() throws Exception { - doCall(USER_LOGIN, null, null, null); - - USER_RULE.verifyUserExists(USER_LOGIN, USER_LOGIN, null); - } - - @Test - public void update_user_when_headers_are_updated() { - doCall(USER_LOGIN, USER_NAME, USER_EMAIL, null); - USER_RULE.verifyUserExists(USER_LOGIN, USER_NAME, USER_EMAIL); - - // As we don't keep the JWT token is the test, the user is updated - doCall(USER_LOGIN, "new name", "new email", null); - USER_RULE.verifyUserExists(USER_LOGIN, "new name", "new email"); - } - - @Test - public void authenticate_with_groups() { - doCall(USER_LOGIN, null, null, GROUP_1); - - USER_RULE.verifyUserGroupMembership(USER_LOGIN, GROUP_1, "sonar-users"); - } - - @Test - public void synchronize_groups_when_authenticating_existing_user() throws Exception { - USER_RULE.createGroup(GROUP_1); - USER_RULE.createGroup(GROUP_2); - USER_RULE.createGroup(GROUP_3); - USER_RULE.createUser(USER_LOGIN, "password"); - USER_RULE.associateGroupsToUser(USER_LOGIN, GROUP_1, GROUP_2); - - doCall(USER_LOGIN, null, null, GROUP_2 + "," + GROUP_3); - - USER_RULE.verifyUserGroupMembership(USER_LOGIN, GROUP_2, GROUP_3, "sonar-users"); - } - - @Test - public void authentication_with_local_user_is_possible_when_no_header() throws Exception { - USER_RULE.createUser(USER_LOGIN, "password"); - - checkLocalAuthentication(USER_LOGIN, "password"); - } - - @Test - public void display_message_in_ui_but_not_in_log_when_unauthorized_exception() throws Exception { - Response response = doCall("invalid login $", null, null, null); - - assertThat(response.code()).isEqualTo(200); - assertThat(response.request().url().toString()).contains("sessions/unauthorized"); - - List<String> logsLines = FileUtils.readLines(orchestrator.getServer().getWebLogs(), UTF_8); - assertThat(logsLines).doesNotContain("org.sonar.server.exceptions.BadRequestException: Use only letters, numbers, and .-_@ please."); - USER_RULE.verifyUserDoesNotExist(USER_LOGIN); - } - - @Test - public void fail_when_email_already_exists() throws Exception { - USER_RULE.createUser("another", "Another", USER_EMAIL, "another"); - - Response response = doCall(USER_LOGIN, USER_NAME, USER_EMAIL, null); - - String expectedError = "You can't sign up because email 'tester@email.com' is already used by an existing user. This means that you probably already registered with another account"; - assertThat(response.code()).isEqualTo(200); - assertThat(response.request().url().toString()).contains(URLEncoder.encode(expectedError, UTF_8.name())); - assertThat(FileUtils.readLines(orchestrator.getServer().getWebLogs(), UTF_8)).doesNotContain(expectedError); - } - - private static Response doCall(String login, @Nullable String name, @Nullable String email, @Nullable String groups) { - return call(orchestrator.getServer().getUrl(), - LOGIN_HEADER, login, - NAME_HEADER, name, - EMAIL_HEADER, email, - GROUPS_HEADER, groups); - } - - private boolean checkLocalAuthentication(String login, String password) { - String result = orchestrator.getServer().wsClient(login, password).get("/api/authentication/validate"); - return result.contains("{\"valid\":true}"); - } - -} diff --git a/it/it-tests/src/test/java/it/webhook/ExternalServer.java b/it/it-tests/src/test/java/it/webhook/ExternalServer.java deleted file mode 100644 index 60485e25e25..00000000000 --- a/it/it-tests/src/test/java/it/webhook/ExternalServer.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.webhook; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.eclipse.jetty.server.Request; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.handler.AbstractHandler; -import org.junit.rules.ExternalResource; - -/** - * This web server listens to requests sent by webhooks - */ -class ExternalServer extends ExternalResource { - private final Server jetty; - private final List<PayloadRequest> payloads = new ArrayList<>(); - - ExternalServer() { - jetty = new Server(0); - jetty.setHandler(new AbstractHandler() { - @Override - public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) - throws IOException, ServletException { - - if ("POST".equalsIgnoreCase(request.getMethod())) { - String json = request.getReader().lines().collect(Collectors.joining(System.lineSeparator())); - Map<String, String> httpHeaders = new HashMap<>(); - Enumeration<String> headerNames = request.getHeaderNames(); - while (headerNames.hasMoreElements()) { - String key = headerNames.nextElement(); - httpHeaders.put(key, request.getHeader(key)); - } - payloads.add(new PayloadRequest(target, httpHeaders, json)); - } - - response.setStatus(target.equals("/fail") ? 500 : 200); - baseRequest.setHandled(true); - } - }); - } - - @Override - protected void before() throws Throwable { - jetty.start(); - } - - @Override - protected void after() { - try { - jetty.stop(); - } catch (Exception e) { - throw new IllegalStateException("Cannot stop Jetty"); - } - } - - List<PayloadRequest> getPayloadRequests() { - return payloads; - } - - List<PayloadRequest> getPayloadRequestsOnPath(String path) { - return payloads.stream().filter(p -> p.getPath().equals(path)).collect(Collectors.toList()); - } - - String urlFor(String path) { - return jetty.getURI().resolve(path).toString(); - } - - void clear() { - payloads.clear(); - } -} diff --git a/it/it-tests/src/test/java/it/webhook/PayloadRequest.java b/it/it-tests/src/test/java/it/webhook/PayloadRequest.java deleted file mode 100644 index 857a76fa4fe..00000000000 --- a/it/it-tests/src/test/java/it/webhook/PayloadRequest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.webhook; - -import java.util.Map; - -import static java.util.Objects.requireNonNull; - -/** - * Request received by {@link ExternalServer} - */ -class PayloadRequest { - private final String path; - private final Map<String, String> httpHeaders; - private final String json; - - PayloadRequest(String path, Map<String, String> httpHeaders, String json) { - this.path = requireNonNull(path); - this.httpHeaders = requireNonNull(httpHeaders); - this.json = requireNonNull(json); - } - - Map<String, String> getHttpHeaders() { - return httpHeaders; - } - - String getJson() { - return json; - } - - String getPath() { - return path; - } -} diff --git a/it/it-tests/src/test/java/it/webhook/WebhooksTest.java b/it/it-tests/src/test/java/it/webhook/WebhooksTest.java deleted file mode 100644 index d1b5390bcf2..00000000000 --- a/it/it-tests/src/test/java/it/webhook/WebhooksTest.java +++ /dev/null @@ -1,290 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.webhook; - -import com.sonar.orchestrator.Orchestrator; -import it.Category3Suite; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import javax.annotation.Nullable; -import org.apache.commons.lang3.StringUtils; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.Webhooks; -import org.sonarqube.ws.client.HttpException; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.project.DeleteRequest; -import org.sonarqube.ws.client.setting.ResetRequest; -import org.sonarqube.ws.client.setting.SetRequest; -import org.sonarqube.ws.client.webhook.DeliveriesRequest; -import util.ItUtils; - -import static java.util.Objects.requireNonNull; -import static java.util.stream.IntStream.range; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.jsonToMap; -import static util.ItUtils.runProjectAnalysis; - -public class WebhooksTest { - - private static final String PROJECT_KEY = "my-project"; - private static final String PROJECT_NAME = "My Project"; - private static final String GLOBAL_WEBHOOK_PROPERTY = "sonar.webhooks.global"; - private static final String PROJECT_WEBHOOK_PROPERTY = "sonar.webhooks.project"; - - @ClassRule - public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR; - - @ClassRule - public static ExternalServer externalServer = new ExternalServer(); - - private WsClient adminWs = ItUtils.newAdminWsClient(orchestrator); - - @Before - public void setUp() throws Exception { - externalServer.clear(); - } - - @Before - @After - public void reset() throws Exception { - disableGlobalWebhooks(); - try { - // delete project and related properties/webhook deliveries - adminWs.projects().delete(DeleteRequest.builder().setKey(PROJECT_KEY).build()); - } catch (HttpException e) { - // ignore because project may not exist - } - } - - @Test - public void call_multiple_global_and_project_webhooks_when_analysis_is_done() { - orchestrator.getServer().provisionProject(PROJECT_KEY, PROJECT_NAME); - enableGlobalWebhooks( - new Webhook("Jenkins", externalServer.urlFor("/jenkins")), - new Webhook("HipChat", externalServer.urlFor("/hipchat"))); - enableProjectWebhooks(PROJECT_KEY, - new Webhook("Burgr", externalServer.urlFor("/burgr"))); - - analyseProject(); - - // the same payload has been sent to three servers - assertThat(externalServer.getPayloadRequests()).hasSize(3); - PayloadRequest request = externalServer.getPayloadRequests().get(0); - for (int i = 1; i < 3; i++) { - PayloadRequest r = externalServer.getPayloadRequests().get(i); - assertThat(request.getJson()).isEqualTo(r.getJson()); - } - - // verify HTTP headers - assertThat(request.getHttpHeaders().get("X-SonarQube-Project")).isEqualTo(PROJECT_KEY); - - // verify content of payload - Map<String, Object> payload = jsonToMap(request.getJson()); - assertThat(payload.get("status")).isEqualTo("SUCCESS"); - assertThat(payload.get("analysedAt")).isNotNull(); - Map<String, String> project = (Map<String, String>) payload.get("project"); - assertThat(project.get("key")).isEqualTo(PROJECT_KEY); - assertThat(project.get("name")).isEqualTo(PROJECT_NAME); - Map<String, Object> gate = (Map<String, Object>) payload.get("qualityGate"); - assertThat(gate.get("name")).isEqualTo("SonarQube way"); - assertThat(gate.get("status")).isEqualTo("OK"); - assertThat(gate.get("conditions")).isNotNull(); - - // verify list of persisted deliveries (api/webhooks/deliveries) - List<Webhooks.Delivery> deliveries = getPersistedDeliveries(); - assertThat(deliveries).hasSize(3); - for (Webhooks.Delivery delivery : deliveries) { - assertThatPersistedDeliveryIsValid(delivery); - assertThat(delivery.getSuccess()).isTrue(); - assertThat(delivery.getHttpStatus()).isEqualTo(200); - assertThat(delivery.getName()).isIn("Jenkins", "HipChat", "Burgr"); - assertThat(delivery.hasErrorStacktrace()).isFalse(); - // payload is available only in api/webhooks/delivery to avoid loading multiple DB CLOBs - assertThat(delivery.hasPayload()).isFalse(); - } - - // verify detail of persisted delivery (api/webhooks/delivery) - Webhooks.Delivery detail = getDetailOfPersistedDelivery(deliveries.get(0)); - assertThatPersistedDeliveryIsValid(detail); - assertThat(detail.getPayload()).isEqualTo(request.getJson()); - } - - @Test - public void persist_delivery_as_failed_if_external_server_returns_an_error_code() { - enableGlobalWebhooks( - new Webhook("Fail", externalServer.urlFor("/fail")), - new Webhook("HipChat", externalServer.urlFor("/hipchat"))); - - analyseProject(); - - // all webhooks are called, even if one returns an error code - assertThat(externalServer.getPayloadRequests()).hasSize(2); - - // verify persisted deliveries - Webhooks.Delivery failedDelivery = getPersistedDeliveryByName("Fail"); - assertThatPersistedDeliveryIsValid(failedDelivery); - assertThat(failedDelivery.getSuccess()).isFalse(); - assertThat(failedDelivery.getHttpStatus()).isEqualTo(500); - - Webhooks.Delivery successfulDelivery = getPersistedDeliveryByName("HipChat"); - assertThatPersistedDeliveryIsValid(successfulDelivery); - assertThat(successfulDelivery.getSuccess()).isTrue(); - assertThat(successfulDelivery.getHttpStatus()).isEqualTo(200); - } - - /** - * Restrict calls to ten webhooks per type (global or project) - */ - @Test - public void do_not_become_a_denial_of_service_attacker() { - orchestrator.getServer().provisionProject(PROJECT_KEY, PROJECT_NAME); - - List<Webhook> globalWebhooks = range(0, 15).mapToObj(i -> new Webhook("G" + i, externalServer.urlFor("/global"))).collect(Collectors.toList()); - enableGlobalWebhooks(globalWebhooks.toArray(new Webhook[globalWebhooks.size()])); - List<Webhook> projectWebhooks = range(0, 15).mapToObj(i -> new Webhook("P" + i, externalServer.urlFor("/project"))).collect(Collectors.toList()); - enableProjectWebhooks(PROJECT_KEY, projectWebhooks.toArray(new Webhook[projectWebhooks.size()])); - - analyseProject(); - - // only the first ten global webhooks and ten project webhooks are called - assertThat(externalServer.getPayloadRequests()).hasSize(10 + 10); - assertThat(externalServer.getPayloadRequestsOnPath("/global")).hasSize(10); - assertThat(externalServer.getPayloadRequestsOnPath("/project")).hasSize(10); - - // verify persisted deliveries - assertThat(getPersistedDeliveries()).hasSize(10 + 10); - } - - @Test - public void persist_delivery_as_failed_if_webhook_url_is_malformed() { - enableGlobalWebhooks(new Webhook("Jenkins", "this_is_not_an_url")); - - analyseProject(); - - assertThat(externalServer.getPayloadRequests()).isEmpty(); - - // verify persisted deliveries - Webhooks.Delivery delivery = getPersistedDeliveryByName("Jenkins"); - Webhooks.Delivery detail = getDetailOfPersistedDelivery(delivery); - - assertThat(detail.getSuccess()).isFalse(); - assertThat(detail.hasHttpStatus()).isFalse(); - assertThat(detail.hasDurationMs()).isFalse(); - assertThat(detail.getPayload()).isNotEmpty(); - assertThat(detail.getErrorStacktrace()) - .contains("java.lang.IllegalArgumentException") - .contains("unexpected url") - .contains("this_is_not_an_url"); - } - - @Test - public void ignore_webhook_if_url_is_missing() { - // property sets, as used to define webhooks, do - // not allow to validate values yet - enableGlobalWebhooks(new Webhook("Jenkins", null)); - - analyseProject(); - - assertThat(externalServer.getPayloadRequests()).isEmpty(); - assertThat(getPersistedDeliveries()).isEmpty(); - } - - private void analyseProject() { - runProjectAnalysis(orchestrator, "shared/xoo-sample", - "sonar.projectKey", PROJECT_KEY, - "sonar.projectName", PROJECT_NAME); - } - - private List<Webhooks.Delivery> getPersistedDeliveries() { - DeliveriesRequest deliveriesReq = DeliveriesRequest.builder().setComponentKey(PROJECT_KEY).build(); - return adminWs.webhooks().deliveries(deliveriesReq).getDeliveriesList(); - } - - private Webhooks.Delivery getPersistedDeliveryByName(String webhookName) { - List<Webhooks.Delivery> deliveries = getPersistedDeliveries(); - return deliveries.stream().filter(d -> d.getName().equals(webhookName)).findFirst().get(); - } - - private Webhooks.Delivery getDetailOfPersistedDelivery(Webhooks.Delivery delivery) { - Webhooks.Delivery detail = adminWs.webhooks().delivery(delivery.getId()).getDelivery(); - return requireNonNull(detail); - } - - private void assertThatPersistedDeliveryIsValid(Webhooks.Delivery delivery) { - assertThat(delivery.getId()).isNotEmpty(); - assertThat(delivery.getName()).isNotEmpty(); - assertThat(delivery.hasSuccess()).isTrue(); - assertThat(delivery.getHttpStatus()).isGreaterThanOrEqualTo(200); - assertThat(delivery.getDurationMs()).isGreaterThanOrEqualTo(0); - assertThat(delivery.getAt()).isNotEmpty(); - assertThat(delivery.getComponentKey()).isEqualTo(PROJECT_KEY); - assertThat(delivery.getUrl()).startsWith(externalServer.urlFor("/")); - } - - private void enableGlobalWebhooks(Webhook... webhooks) { - enableWebhooks(null, GLOBAL_WEBHOOK_PROPERTY, webhooks); - } - - private void enableProjectWebhooks(String projectKey, Webhook... webhooks) { - enableWebhooks(projectKey, PROJECT_WEBHOOK_PROPERTY, webhooks); - } - - private void enableWebhooks(@Nullable String projectKey, String property, Webhook... webhooks) { - List<String> webhookIds = new ArrayList<>(); - for (int i = 0; i < webhooks.length; i++) { - Webhook webhook = webhooks[i]; - String id = String.valueOf(i + 1); - webhookIds.add(id); - setProperty(projectKey, property + "." + id + ".name", webhook.name); - setProperty(projectKey, property + "." + id + ".url", webhook.url); - } - setProperty(projectKey, property, StringUtils.join(webhookIds, ",")); - } - - private void disableGlobalWebhooks() { - setProperty(null, GLOBAL_WEBHOOK_PROPERTY, null); - } - - private void setProperty(@Nullable String componentKey, String key, @Nullable String value) { - if (value == null) { - ResetRequest req = ResetRequest.builder().setKeys(key).setComponent(componentKey).build(); - adminWs.settings().reset(req); - } else { - SetRequest req = SetRequest.builder().setKey(key).setValue(value).setComponent(componentKey).build(); - adminWs.settings().set(req); - } - } - - private static class Webhook { - private final String name; - private final String url; - - Webhook(@Nullable String name, @Nullable String url) { - this.name = name; - this.url = url; - } - } - -} diff --git a/it/it-tests/src/test/java/it/ws/RoutesTest.java b/it/it-tests/src/test/java/it/ws/RoutesTest.java deleted file mode 100644 index 36c393f3b9c..00000000000 --- a/it/it-tests/src/test/java/it/ws/RoutesTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.ws; - -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsResponse; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newWsClient; - -public class RoutesTest { - - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Test - public void redirect_profiles_export_to_api_qualityprofiles_export() { - WsResponse response = newWsClient(orchestrator).wsConnector().call(new GetRequest("profiles/export?language=xoo&format=XooFakeExporter")); - assertThat(response.isSuccessful()).isTrue(); - assertThat(response.requestUrl()).endsWith("/api/qualityprofiles/export?language=xoo&format=XooFakeExporter"); - assertThat(response.content()).isEqualTo("xoo -> Basic -> 1"); - - // Check 'name' parameter is taken into account - assertThat(newWsClient(orchestrator).wsConnector().call(new GetRequest("profiles/export?language=xoo&name=empty&format=XooFakeExporter")).content()).isEqualTo("xoo -> empty -> 0"); - } - -} diff --git a/it/it-tests/src/test/java/it/ws/WsLocalCallTest.java b/it/it-tests/src/test/java/it/ws/WsLocalCallTest.java deleted file mode 100644 index 8f4a54af78b..00000000000 --- a/it/it-tests/src/test/java/it/ws/WsLocalCallTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.ws; - -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.HttpConnector; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsClientFactories; -import org.sonarqube.ws.client.WsResponse; - -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newWsClient; - -/** - * Tests the ability for a web service to call another web services. - */ -public class WsLocalCallTest { - - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Test - public void gets_protobuf() { - WsResponse response = newWsClient(orchestrator).wsConnector().call(new GetRequest("local_ws_call/protobuf_data")); - assertThat(response.isSuccessful()).isTrue(); - } - - @Test - public void gets_json() { - WsResponse response = newWsClient(orchestrator).wsConnector().call(new GetRequest("local_ws_call/json_data")); - assertThat(response.isSuccessful()).isTrue(); - } - - @Test - public void propagates_authorization_rights() { - WsClient wsClient = WsClientFactories.getDefault().newClient(HttpConnector.newBuilder() - .url(orchestrator.getServer().getUrl()) - .credentials("admin", "admin") - .build()); - WsResponse response = wsClient.wsConnector().call(new GetRequest("local_ws_call/require_permission")); - assertThat(response.isSuccessful()).isTrue(); - } - - @Test - public void fails_if_requires_permissions() { - WsResponse response = newWsClient(orchestrator).wsConnector().call(new GetRequest("local_ws_call/require_permission")); - - // this is not the unauthorized code as plugin forces it to 500 - assertThat(response.code()).isEqualTo(500); - } - -} diff --git a/it/it-tests/src/test/java/it/ws/WsTest.java b/it/it-tests/src/test/java/it/ws/WsTest.java deleted file mode 100644 index cdfc7ac84cb..00000000000 --- a/it/it-tests/src/test/java/it/ws/WsTest.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package it.ws; - -import com.sonar.orchestrator.Orchestrator; -import it.Category4Suite; -import org.junit.ClassRule; -import org.junit.Test; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.WsResponse; - -import static java.net.HttpURLConnection.HTTP_BAD_REQUEST; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newWsClient; - -public class WsTest { - - @ClassRule - public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR; - - @Test - public void gets_protobuf() { - WsResponse response = newWsClient(orchestrator).wsConnector().call(new GetRequest("api/issues/search.protobuf")); - assertThat(response.isSuccessful()).isTrue(); - assertThat(response.contentType()).contains("application/x-protobuf"); - } - - @Test - public void gets_json() { - WsResponse response = newWsClient(orchestrator).wsConnector().call(new GetRequest("api/issues/search.json")); - assertThat(response.isSuccessful()).isTrue(); - assertThat(response.contentType()).contains("application/json"); - } - - /** - * SONAR-7484 - */ - @Test - public void fail_on_unknown_extension() { - WsResponse response = newWsClient(orchestrator).wsConnector().call(new GetRequest("api/issues/search.unknown")); - assertThat(response.isSuccessful()).isFalse(); - assertThat(response.code()).isEqualTo(HTTP_BAD_REQUEST); - } - -} diff --git a/it/it-tests/src/test/java/org/sonarqube/test/GroupTester.java b/it/it-tests/src/test/java/org/sonarqube/test/GroupTester.java deleted file mode 100644 index 5b2242ee9c4..00000000000 --- a/it/it-tests/src/test/java/org/sonarqube/test/GroupTester.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.test; - -import java.util.List; -import java.util.Set; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Consumer; -import java.util.stream.Collectors; -import javax.annotation.Nullable; -import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUserGroups; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.WsUsers.GroupsWsResponse.Group; -import org.sonarqube.ws.client.user.GroupsRequest; -import org.sonarqube.ws.client.usergroup.AddUserWsRequest; -import org.sonarqube.ws.client.usergroup.CreateWsRequest; - -import static java.util.Arrays.stream; -import static org.assertj.core.api.Assertions.assertThat; - -public class GroupTester { - - private static final AtomicInteger ID_GENERATOR = new AtomicInteger(); - - private final Session session; - - GroupTester(Session session) { - this.session = session; - } - - @SafeVarargs - public final WsUserGroups.Group generate(@Nullable Organizations.Organization organization, Consumer<CreateWsRequest.Builder>... populators) { - int id = ID_GENERATOR.getAndIncrement(); - CreateWsRequest.Builder request = CreateWsRequest.builder() - .setName("Group" + id) - .setDescription("Description " + id) - .setOrganization(organization != null ? organization.getKey() : null); - stream(populators).forEach(p -> p.accept(request)); - return session.wsClient().userGroups().create(request.build()).getGroup(); - } - - public List<Group> getGroupsOfUser(@Nullable Organizations.Organization organization, String userLogin) { - GroupsRequest request = GroupsRequest.builder() - .setOrganization(organization != null ? organization.getKey() : null) - .setLogin(userLogin) - .build(); - WsUsers.GroupsWsResponse response = session.users().service().groups(request); - return response.getGroupsList(); - } - - public GroupTester addMemberToGroups(Organizations.Organization organization, String userLogin, String... groups) { - for (String group : groups) { - AddUserWsRequest request = AddUserWsRequest.builder() - .setLogin(userLogin) - .setOrganization(organization.getKey()) - .setName(group) - .build(); - session.wsClient().userGroups().addUser(request); - } - return this; - } - - public GroupTester assertThatUserIsMemberOf(@Nullable Organizations.Organization organization, String userLogin, String expectedGroup, String... otherExpectedGroups) { - List<String> groups = getGroupsOfUser(organization, userLogin) - .stream() - .map(Group::getName) - .collect(Collectors.toList()); - - assertThat(groups).contains(expectedGroup); - if (otherExpectedGroups.length > 0) { - assertThat(groups).contains(otherExpectedGroups); - } - return this; - } - - public GroupTester assertThatUserIsOnlyMemberOf(@Nullable Organizations.Organization organization, String userLogin, String... expectedGroups) { - Set<String> groups = getGroupsOfUser(organization, userLogin) - .stream() - .map(Group::getName) - .collect(Collectors.toSet()); - assertThat(groups).containsExactlyInAnyOrder(expectedGroups); - return this; - } -} diff --git a/it/it-tests/src/test/java/org/sonarqube/test/OrganizationTester.java b/it/it-tests/src/test/java/org/sonarqube/test/OrganizationTester.java deleted file mode 100644 index 8925813d8fa..00000000000 --- a/it/it-tests/src/test/java/org/sonarqube/test/OrganizationTester.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.test; - -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Consumer; -import javax.annotation.Nullable; -import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.client.HttpException; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.organization.CreateWsRequest; -import org.sonarqube.ws.client.organization.OrganizationService; -import org.sonarqube.ws.client.organization.SearchMembersWsRequest; -import org.sonarqube.ws.client.organization.SearchWsRequest; -import org.sonarqube.ws.client.user.GroupsRequest; - -import static java.util.Arrays.stream; -import static org.assertj.core.api.Assertions.assertThat; - -public class OrganizationTester { - - private static final AtomicInteger ID_GENERATOR = new AtomicInteger(); - - private final Session session; - - OrganizationTester(Session session) { - this.session = session; - } - - void enableSupport() { - session.wsClient().wsConnector().call(new PostRequest("api/organizations/enable_support")); - } - - void deleteNonGuardedOrganizations() { - service().search(SearchWsRequest.builder().build()).getOrganizationsList() - .stream() - .filter(o -> !o.getKey().equals("default-organization")) - .forEach(organization -> service().delete(organization.getKey())); - } - - @SafeVarargs - public final Organizations.Organization generate(Consumer<CreateWsRequest.Builder>... populators) { - int id = ID_GENERATOR.getAndIncrement(); - CreateWsRequest.Builder request = new CreateWsRequest.Builder() - .setKey("org" + id) - .setName("Org " + id) - .setDescription("Description " + id) - .setUrl("http://test" + id); - stream(populators).forEach(p -> p.accept(request)); - return service().create(request.build()).getOrganization(); - } - - public OrganizationTester addMember(Organizations.Organization organization, WsUsers.CreateWsResponse.User user) { - service().addMember(organization.getKey(), user.getLogin()); - return this; - } - - public OrganizationTester assertThatOrganizationDoesNotExist(String organizationKey) { - SearchWsRequest request = new SearchWsRequest.Builder().setOrganizations(organizationKey).build(); - Organizations.SearchWsResponse searchWsResponse = service().search(request); - assertThat(searchWsResponse.getOrganizationsList()).isEmpty(); - return this; - } - - public OrganizationTester assertThatMemberOf(Organizations.Organization organization, WsUsers.CreateWsResponse.User user) { - return assertThatMemberOf(organization, user.getLogin()); - } - - public OrganizationTester assertThatMemberOf(Organizations.Organization organization, String userLogin) { - verifyOrganizationMembership(organization, userLogin, true); - verifyMembersGroupMembership(userLogin, organization, true); - return this; - } - - public OrganizationTester assertThatNotMemberOf(Organizations.Organization organization, WsUsers.CreateWsResponse.User user) { - return assertThatNotMemberOf(organization, user.getLogin()); - } - - public OrganizationTester assertThatNotMemberOf(Organizations.Organization organization, String userLogin) { - verifyOrganizationMembership(organization, userLogin, false); - try { - verifyMembersGroupMembership(userLogin, organization, false); - } catch (HttpException e) { - // do not fail if user does not exist - if (e.code() != 404) { - throw e; - } - } - return this; - } - - private void verifyOrganizationMembership(@Nullable Organizations.Organization organization, String userLogin, boolean isMember) { - List<Organizations.User> users = service().searchMembers(new SearchMembersWsRequest() - .setQuery(userLogin) - .setSelected("selected") - .setOrganization(organization != null ? organization.getKey() : null)) - .getUsersList(); - assertThat(users).hasSize(isMember ? 1 : 0); - } - - private void verifyMembersGroupMembership(String userLogin, @Nullable Organizations.Organization organization, boolean isMember) { - List<WsUsers.GroupsWsResponse.Group> groups = session.wsClient().users().groups(GroupsRequest.builder() - .setLogin(userLogin) - .setOrganization(organization != null ? organization.getKey() : null) - .setQuery("Members") - .setSelected("selected") - .build()) - .getGroupsList(); - assertThat(groups).hasSize(isMember ? 1 : 0); - } - - public OrganizationService service() { - return session.wsClient().organizations(); - } -} diff --git a/it/it-tests/src/test/java/org/sonarqube/test/QProfileTester.java b/it/it-tests/src/test/java/org/sonarqube/test/QProfileTester.java deleted file mode 100644 index fc14a92b4a0..00000000000 --- a/it/it-tests/src/test/java/org/sonarqube/test/QProfileTester.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.test; - -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Consumer; -import org.sonarqube.ws.Common; -import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.ws.QualityProfiles.CreateWsResponse.QualityProfile; -import org.sonarqube.ws.Rules; -import org.sonarqube.ws.client.HttpException; -import org.sonarqube.ws.client.qualityprofile.ActivateRuleWsRequest; -import org.sonarqube.ws.client.qualityprofile.CreateRequest; -import org.sonarqube.ws.client.qualityprofile.QualityProfilesService; -import org.sonarqube.ws.client.rule.SearchWsRequest; - -import static java.util.Arrays.asList; -import static java.util.Arrays.stream; -import static java.util.Collections.singletonList; -import static org.assertj.core.api.Assertions.assertThat; - -public class QProfileTester { - private static final AtomicInteger ID_GENERATOR = new AtomicInteger(); - - private final Session session; - - QProfileTester(Session session) { - this.session = session; - } - - public QualityProfilesService service() { - return session.wsClient().qualityProfiles(); - } - - @SafeVarargs - public final QualityProfile createXooProfile(Organization organization, Consumer<CreateRequest.Builder>... populators) { - int id = ID_GENERATOR.getAndIncrement(); - CreateRequest.Builder request = CreateRequest.builder() - .setOrganizationKey(organization.getKey()) - .setLanguage("xoo") - .setProfileName("Profile" + id); - stream(populators).forEach(p -> p.accept(request)); - return service().create(request.build()).getProfile(); - } - - public QProfileTester activateRule(QualityProfile profile, String ruleKey) { - return activateRule(profile.getKey(), ruleKey); - } - - public QProfileTester activateRule(String profileKey, String ruleKey) { - ActivateRuleWsRequest request = ActivateRuleWsRequest.builder() - .setProfileKey(profileKey) - .setRuleKey(ruleKey) - .build(); - service().activateRule(request); - return this; - } - - public QProfileTester deactivateRule(QualityProfile profile, String ruleKey) { - service().deactivateRule(profile.getKey(), ruleKey); - return this; - } - - public QProfileTester assertThatNumberOfActiveRulesEqualsTo(QualityProfile profile, int expectedActiveRules) { - return assertThatNumberOfActiveRulesEqualsTo(profile.getKey(), expectedActiveRules); - } - - public QProfileTester assertThatNumberOfActiveRulesEqualsTo(String profileKey, int expectedActiveRules) { - try { - List<String> facetIds = asList("active_severities", "repositories", "languages", "severities", "statuses", "types"); - SearchWsRequest request = new SearchWsRequest() - .setQProfile(profileKey) - .setActivation(true) - .setFacets(facetIds) - .setFields(singletonList("actives")); - Rules.SearchResponse response = session.wsClient().rules().search(request); - - // assume that expectedActiveRules fits in first page of results - assertThat(response.getRulesCount()).isEqualTo(expectedActiveRules); - assertThat(response.getTotal()).isEqualTo(expectedActiveRules); - assertThat(response.getActives().getActives()).as(response.toString()).hasSize(expectedActiveRules); - - // verify facets - assertThat(response.getFacets().getFacetsCount()).isEqualTo(facetIds.size()); - response.getFacets().getFacetsList().forEach(facet -> { - long total = facet.getValuesList().stream() - .mapToLong(Common.FacetValue::getCount) - .sum(); - assertThat(total).as("Facet " + facet.getProperty()).isEqualTo((long) expectedActiveRules); - }); - } catch (HttpException e) { - if (expectedActiveRules == 0 && e.code() == 404) { - // profile does not exist, do nothing - return this; - } - throw e; - } - return this; - } -} diff --git a/it/it-tests/src/test/java/org/sonarqube/test/Session.java b/it/it-tests/src/test/java/org/sonarqube/test/Session.java deleted file mode 100644 index f99764468fc..00000000000 --- a/it/it-tests/src/test/java/org/sonarqube/test/Session.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.test; - -import org.sonarqube.ws.client.WsClient; - -public interface Session { - - WsClient wsClient(); - - GroupTester groups(); - - OrganizationTester organizations(); - - QProfileTester qProfiles(); - - UserTester users(); - -} diff --git a/it/it-tests/src/test/java/org/sonarqube/test/Tester.java b/it/it-tests/src/test/java/org/sonarqube/test/Tester.java deleted file mode 100644 index 9373e82abd9..00000000000 --- a/it/it-tests/src/test/java/org/sonarqube/test/Tester.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.test; - -import com.sonar.orchestrator.Orchestrator; -import javax.annotation.Nullable; -import org.junit.rules.ExternalResource; -import org.sonarqube.ws.client.WsClient; -import pageobjects.Navigation; -import util.selenium.Selenese; - -import static util.ItUtils.newUserWsClient; - -/** - * This JUnit rule wraps an {@link Orchestrator} instance and provides : - * <ul> - * <li>enabling the organization feature by default</li> - * <li>clean-up of organizations between tests</li> - * <li>clean-up of users between tests</li> - * <li>clean-up of session when opening a browser (cookies, local storage)</li> - * <li>quick access to {@link WsClient} instances</li> - * <li>helpers to generate organizations and users</li> - * </ul> - * - * Recommendation is to define a {@code @Rule} instance. If not possible, then - * {@code @ClassRule} must be used through a {@link org.junit.rules.RuleChain} - * around {@link Orchestrator}. - */ -public class Tester extends ExternalResource implements Session { - - private final Orchestrator orchestrator; - - // configuration before startup - private boolean disableOrganizations = false; - - // initialized in #before() - private boolean beforeCalled = false; - private Session rootSession; - - public Tester(Orchestrator orchestrator) { - this.orchestrator = orchestrator; - } - - public Tester disableOrganizations() { - verifyNotStarted(); - disableOrganizations = true; - return this; - } - - @Override - protected void before() { - verifyNotStarted(); - rootSession = new SessionImpl(orchestrator, "admin", "admin"); - - if (!disableOrganizations) { - organizations().enableSupport(); - } - - beforeCalled = true; - } - - @Override - protected void after() { - if (!disableOrganizations) { - organizations().deleteNonGuardedOrganizations(); - } - users().deleteAll(); - } - - public Session asAnonymous() { - return as(null, null); - } - - public Session as(String login) { - return as(login, login); - } - - public Session as(String login, String password) { - verifyStarted(); - return new SessionImpl(orchestrator, login, password); - } - - /** - * Open a new browser session. Cookies are deleted. - */ - public Navigation openBrowser() { - verifyStarted(); - return Navigation.create(orchestrator); - } - - /** - * @deprecated use Selenide tests with {@link #openBrowser()} - */ - @Deprecated - public Tester runHtmlTests(String... htmlTests) { - Selenese.runSelenese(orchestrator, htmlTests); - return this; - } - - private void verifyNotStarted() { - if (beforeCalled) { - throw new IllegalStateException("Orchestrator should not be already started"); - } - } - - private void verifyStarted() { - if (!beforeCalled) { - throw new IllegalStateException("Orchestrator is not started yet"); - } - } - - /** - * Web service client configured with root access - */ - @Override - public WsClient wsClient() { - verifyStarted(); - return rootSession.wsClient(); - } - - @Override - public GroupTester groups() { - return rootSession.groups(); - } - - @Override - public OrganizationTester organizations() { - return rootSession.organizations(); - } - - @Override - public QProfileTester qProfiles() { - return rootSession.qProfiles(); - } - - @Override - public UserTester users() { - return rootSession.users(); - } - - private static class SessionImpl implements Session { - private final WsClient client; - - private SessionImpl(Orchestrator orchestrator, @Nullable String login, @Nullable String password) { - this.client = newUserWsClient(orchestrator, login, password); - } - - @Override - public WsClient wsClient() { - return client; - } - - @Override - public GroupTester groups() { - return new GroupTester(this); - } - - @Override - public OrganizationTester organizations() { - return new OrganizationTester(this); - } - - @Override - public QProfileTester qProfiles() { - return new QProfileTester(this); - } - - @Override - public UserTester users() { - return new UserTester(this); - } - } -} diff --git a/it/it-tests/src/test/java/org/sonarqube/test/UserTester.java b/it/it-tests/src/test/java/org/sonarqube/test/UserTester.java deleted file mode 100644 index baa2ed31b0b..00000000000 --- a/it/it-tests/src/test/java/org/sonarqube/test/UserTester.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.test; - -import java.util.List; -import java.util.Optional; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Consumer; -import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.WsUsers.CreateWsResponse.User; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.user.CreateRequest; -import org.sonarqube.ws.client.user.SearchRequest; -import org.sonarqube.ws.client.user.UsersService; -import org.sonarqube.ws.client.usergroup.AddUserWsRequest; - -import static java.util.Arrays.stream; - -public class UserTester { - - private static final AtomicInteger ID_GENERATOR = new AtomicInteger(); - - private final Session session; - - UserTester(Session session) { - this.session = session; - } - - void deleteAll() { - session.wsClient().users().search(SearchRequest.builder().build()).getUsersList() - .stream() - .filter(u -> !"admin".equals(u.getLogin())) - .forEach(u -> { - PostRequest request = new PostRequest("api/users/deactivate").setParam("login", u.getLogin()); - session.wsClient().wsConnector().call(request); - }); - } - - @SafeVarargs - public final User generate(Consumer<CreateRequest.Builder>... populators) { - int id = ID_GENERATOR.getAndIncrement(); - String login = "login" + id; - CreateRequest.Builder request = CreateRequest.builder() - .setLogin(login) - .setPassword(login) - .setName("name" + id) - .setEmail(id + "@test.com"); - stream(populators).forEach(p -> p.accept(request)); - return service().create(request.build()).getUser(); - } - - @SafeVarargs - public final User generateAdministrator(Consumer<CreateRequest.Builder>... populators) { - User user = generate(populators); - session.wsClient().permissions().addUser(new org.sonarqube.ws.client.permission.AddUserWsRequest().setLogin(user.getLogin()).setPermission("admin")); - session.wsClient().userGroups().addUser(org.sonarqube.ws.client.usergroup.AddUserWsRequest.builder().setLogin(user.getLogin()).setName("sonar-administrators").build()); - return user; - } - - @SafeVarargs - public final User generateAdministrator(Organizations.Organization organization, Consumer<CreateRequest.Builder>... populators) { - User user = generate(populators); - session.wsClient().organizations().addMember(organization.getKey(), user.getLogin()); - session.wsClient().userGroups().addUser(AddUserWsRequest.builder() - .setOrganization(organization.getKey()) - .setLogin(user.getLogin()) - .setName("Owners") - .build()); - return user; - } - - public UsersService service() { - return session.wsClient().users(); - } - - public Optional<WsUsers.SearchWsResponse.User> getByLogin(String login) { - List<WsUsers.SearchWsResponse.User> users = session.wsClient().users().search(SearchRequest.builder().setQuery(login).build()).getUsersList(); - if (users.size() == 1) { - return Optional.of(users.get(0)); - } - return Optional.empty(); - } -} diff --git a/it/it-tests/src/test/java/pageobjects/BackgroundTaskItem.java b/it/it-tests/src/test/java/pageobjects/BackgroundTaskItem.java deleted file mode 100644 index 3cdd14c16b7..00000000000 --- a/it/it-tests/src/test/java/pageobjects/BackgroundTaskItem.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.hasText; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - -public class BackgroundTaskItem { - - private final SelenideElement elt; - - public BackgroundTaskItem(SelenideElement elt) { - this.elt = elt; - } - - public SelenideElement getComponent() { - return elt.$("td:nth-child(2)"); - } - - public BackgroundTaskItem openActions() { - elt.$(".js-task-action > .dropdown-toggle").click(); - elt.$(".js-task-action > .dropdown-menu").shouldBe(visible); - return this; - } - - public BackgroundTaskItem openScannerContext () { - elt.$(".js-task-show-scanner-context").click(); - $(".js-task-scanner-context").shouldBe(visible); - return this; - } - - public BackgroundTaskItem assertScannerContextContains(String text) { - $(".js-task-scanner-context").should(hasText(text)); - return this; - } - - public BackgroundTaskItem openErrorStacktrace () { - elt.$(".js-task-show-stacktrace").click(); - $(".js-task-stacktrace").shouldBe(visible); - return this; - } - - public BackgroundTaskItem assertErrorStacktraceContains(String text) { - $(".js-task-stacktrace").should(hasText(text)); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/BackgroundTasksPage.java b/it/it-tests/src/test/java/pageobjects/BackgroundTasksPage.java deleted file mode 100644 index 8093bcc8a5c..00000000000 --- a/it/it-tests/src/test/java/pageobjects/BackgroundTasksPage.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.ElementsCollection; -import java.util.List; -import java.util.stream.Collectors; -import org.openqa.selenium.By; - -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - -public class BackgroundTasksPage { - - public BackgroundTasksPage() { - $(By.cssSelector(".background-tasks")).should(exist); - } - - public ElementsCollection getTasks() { - return $$(".background-tasks > tbody > tr"); - } - - public List<BackgroundTaskItem> getTasksAsItems() { - return getTasks() - .stream() - .map(BackgroundTaskItem::new) - .collect(Collectors.toList()); - } -} diff --git a/it/it-tests/src/test/java/pageobjects/EncryptionPage.java b/it/it-tests/src/test/java/pageobjects/EncryptionPage.java deleted file mode 100644 index d601dbac1e0..00000000000 --- a/it/it-tests/src/test/java/pageobjects/EncryptionPage.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - -public class EncryptionPage extends Navigation { - - public EncryptionPage() { - $("#encryption-page").should(exist); - } - - public SelenideElement generationForm() { - return $("#generate-secret-key-form"); - } - - public SelenideElement newSecretKey() { - return $("#secret-key"); - } - - public String encryptValue(String value) { - $("#encryption-form-value").val(value); - $("#encryption-form").submit(); - return $("#encrypted-value").shouldBe(visible).val(); - } - - public EncryptionPage generateNewKey() { - $("#encryption-new-key-form").submit(); - $("#generate-secret-key-form").shouldBe(visible); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/LoginPage.java b/it/it-tests/src/test/java/pageobjects/LoginPage.java deleted file mode 100644 index 88585279333..00000000000 --- a/it/it-tests/src/test/java/pageobjects/LoginPage.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.SelenideElement; -import org.openqa.selenium.By; - -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.page; - -public class LoginPage { - - public LoginPage() { - $("#login_form").should(Condition.exist); - } - - public Navigation submitCredentials(String login) { - return submitCredentials(login, login, Navigation.class); - } - - public Navigation submitCredentials(String login, String password) { - return submitCredentials(login, password, Navigation.class); - } - - public Navigation useOAuth2() { - $(".oauth-providers a").click(); - return page(Navigation.class); - } - - public LoginPage submitWrongCredentials(String login, String password) { - $("#login").val(login); - $("#password").val(password); - $(By.name("commit")).click(); - return page(LoginPage.class); - } - - public SelenideElement getErrorMessage() { - return $(".process-spinner-failed"); - } - - private <T> T submitCredentials(String login, String password, Class<T> expectedResultPage) { - $("#login").val(login); - $("#password").val(password); - $(By.name("commit")).click(); - $("#login").should(Condition.disappear); - return page(expectedResultPage); - } -} diff --git a/it/it-tests/src/test/java/pageobjects/Navigation.java b/it/it-tests/src/test/java/pageobjects/Navigation.java deleted file mode 100644 index c772b79a1c2..00000000000 --- a/it/it-tests/src/test/java/pageobjects/Navigation.java +++ /dev/null @@ -1,234 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.Selenide; -import com.codeborne.selenide.SelenideElement; -import com.codeborne.selenide.WebDriverRunner; -import com.sonar.orchestrator.Orchestrator; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.util.function.Consumer; -import javax.annotation.Nullable; -import org.openqa.selenium.By; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.html5.WebStorage; -import org.sonarqube.test.Tester; -import pageobjects.issues.IssuesPage; -import pageobjects.licenses.LicensesPage; -import pageobjects.organization.MembersPage; -import pageobjects.projects.ProjectsPage; -import pageobjects.settings.SettingsPage; - -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.clearBrowserLocalStorage; -import static com.codeborne.selenide.Selenide.page; - -public class Navigation { - - public Navigation() { - $("#content").shouldBe(Condition.exist); - } - - /** - * @deprecated use {@link Tester#openBrowser()} - */ - @Deprecated - public static Navigation create(Orchestrator orchestrator) { - WebDriver driver = SelenideConfig.configure(orchestrator); - driver.manage().deleteAllCookies(); - clearStorage(d -> d.getLocalStorage().clear()); - clearStorage(d -> d.getSessionStorage().clear()); - clearStorage(d -> clearBrowserLocalStorage()); - return Selenide.open("/", Navigation.class); - } - - private static void clearStorage(Consumer<WebStorage> cleaner) { - try { - cleaner.accept((WebStorage) WebDriverRunner.getWebDriver()); - } catch (Exception e) { - // ignore, it may occur when the first test opens browser. No pages are loaded - // and local/session storages are not available yet. - // Example with Chrome: "Failed to read the 'localStorage' property from 'Window': Storage is disabled inside 'data:' URLs." - } - } - - public Navigation openHome() { - return open("/", Navigation.class); - } - - public ProjectsPage openProjects() { - return open("/projects", ProjectsPage.class); - } - - public ProjectsPage openProjects(String organization) { - return open("/organizations/" + organization + "/projects", ProjectsPage.class); - } - - public IssuesPage openIssues() { - return open("/issues", IssuesPage.class); - } - - public IssuesPage openComponentIssues(String component) { - return open("/component_issues?id=" + component, IssuesPage.class); - } - - public ProjectDashboardPage openProjectDashboard(String projectKey) { - // TODO encode projectKey - String url = "/dashboard?id=" + projectKey; - return open(url, ProjectDashboardPage.class); - } - - public ProjectLinksPage openProjectLinks(String projectKey) { - // TODO encode projectKey - String url = "/project/links?id=" + projectKey; - return open(url, ProjectLinksPage.class); - } - - public ProjectQualityGatePage openProjectQualityGate(String projectKey) { - // TODO encode projectKey - String url = "/project/quality_gate?id=" + projectKey; - return open(url, ProjectQualityGatePage.class); - } - - public ProjectKeyPage openProjectKey(String projectKey) { - // TODO encode projectKey - String url = "/project/key?id=" + projectKey; - return open(url, ProjectKeyPage.class); - } - - public ProjectActivityPage openProjectActivity(String projectKey) { - // TODO encode projectKey - String url = "/project/activity?id=" + projectKey; - return open(url, ProjectActivityPage.class); - } - - public MembersPage openOrganizationMembers(String orgKey) { - String url = "/organizations/" + orgKey + "/members"; - return open(url, MembersPage.class); - } - - public BackgroundTasksPage openBackgroundTasksPage() { - return open("/background_tasks", BackgroundTasksPage.class); - } - - public SettingsPage openSettings(@Nullable String projectKey) throws UnsupportedEncodingException { - String url = projectKey != null ? "/project/settings?id=" + URLEncoder.encode(projectKey, "UTF-8") : "/settings"; - return open(url, SettingsPage.class); - } - - public LicensesPage openLicenses() { - return open("/settings/licenses", LicensesPage.class); - } - - public EncryptionPage openEncryption() { - return open("/settings/encryption", EncryptionPage.class); - } - - public ServerIdPage openServerId() { - return open("/settings/server_id", ServerIdPage.class); - } - - public NotificationsPage openNotifications() { - return open("/account/notifications", NotificationsPage.class); - } - - public ProjectPermissionsPage openProjectPermissions(String projectKey) { - String url = "/project_roles?id=" + projectKey; - return open(url, ProjectPermissionsPage.class); - } - - public ProjectsManagementPage openProjectsManagement() { - return open("/projects_admin", ProjectsManagementPage.class); - } - - public LoginPage openLogin() { - return open("/sessions/login", LoginPage.class); - } - - public void open(String relativeUrl) { - Selenide.open(relativeUrl); - } - - public <P> P open(String relativeUrl, Class<P> pageObjectClassClass) { - return Selenide.open(relativeUrl, pageObjectClassClass); - } - - public Navigation shouldBeLoggedIn() { - loggedInDropdown().should(Condition.visible); - return this; - } - - public Navigation shouldNotBeLoggedIn() { - logInLink().should(Condition.visible); - return this; - } - - public LoginPage logIn() { - logInLink().click(); - return Selenide.page(LoginPage.class); - } - - public Navigation logOut() { - SelenideElement dropdown = loggedInDropdown(); - // click must be on the <a> but not on the dropdown <li> - // for compatibility with phantomjs - dropdown.find(".dropdown-toggle").click(); - dropdown.find(By.linkText("Log out")).click(); - return this; - } - - public RulesPage clickOnRules() { - $(By.linkText("Rules")).click(); - return page(RulesPage.class); - } - - public SelenideElement clickOnQualityProfiles() { - return $(By.linkText("Quality Profiles")); - } - - public SelenideElement getRightBar() { - return $("#global-navigation .navbar-right"); - } - - public SelenideElement getFooter() { - return $("#footer"); - } - - public SelenideElement getErrorMessage() { - return $("#error"); - } - - private SelenideElement logInLink() { - return $(By.linkText("Log in")); - } - - private SelenideElement loggedInDropdown() { - return $(".js-user-authenticated"); - } - - public Navigation shouldBeRedirectedToLogin() { - $("#login_form").should(visible); - return this; - } - -} diff --git a/it/it-tests/src/test/java/pageobjects/NotificationsPage.java b/it/it-tests/src/test/java/pageobjects/NotificationsPage.java deleted file mode 100644 index 61704e7a88f..00000000000 --- a/it/it-tests/src/test/java/pageobjects/NotificationsPage.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import static com.codeborne.selenide.Condition.cssClass; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - -public class NotificationsPage extends Navigation { - - private final String EMAIL = "EmailNotificationChannel"; - - public NotificationsPage() { - $("#account-page").shouldHave(text("Overall notifications")); - } - - public NotificationsPage shouldHaveGlobalNotification(String type) { - return shouldHaveGlobalNotification(type, EMAIL); - } - - public NotificationsPage shouldHaveGlobalNotification(String type, String channel) { - return shouldBeChecked(globalCheckboxSelector(type, channel)); - } - - public NotificationsPage shouldNotHaveGlobalNotification(String type) { - return shouldNotHaveGlobalNotification(type, EMAIL); - } - - public NotificationsPage shouldNotHaveGlobalNotification(String type, String channel) { - return shouldNotBeChecked(globalCheckboxSelector(type, channel)); - } - - public NotificationsPage shouldHaveProjectNotification(String project, String type, String channel) { - return shouldBeChecked(projectCheckboxSelector(project, type, channel)); - } - - public NotificationsPage shouldNotHaveProjectNotification(String project, String type, String channel) { - return shouldNotBeChecked(projectCheckboxSelector(project, type, channel)); - } - - public NotificationsPage addGlobalNotification(String type) { - return addGlobalNotification(type, EMAIL); - } - - public NotificationsPage addGlobalNotification(String type, String channel) { - shouldNotHaveGlobalNotification(type, channel); - toggleCheckbox(globalCheckboxSelector(type, channel)); - shouldHaveGlobalNotification(type, channel); - return this; - } - - public NotificationsPage removeGlobalNotification(String type) { - return removeGlobalNotification(type, EMAIL); - } - - public NotificationsPage removeGlobalNotification(String type, String channel) { - shouldHaveGlobalNotification(type, channel); - toggleCheckbox(globalCheckboxSelector(type, channel)); - shouldNotHaveGlobalNotification(type, channel); - return this; - } - - public NotificationsPage addProjectNotification(String project, String type, String channel) { - shouldNotHaveProjectNotification(project, type, channel); - toggleCheckbox(projectCheckboxSelector(project, type, channel)); - shouldHaveProjectNotification(project, type, channel); - return this; - } - - public NotificationsPage removeProjectNotification(String project, String type, String channel) { - shouldHaveProjectNotification(project, type, channel); - toggleCheckbox(projectCheckboxSelector(project, type, channel)); - shouldNotHaveProjectNotification(project, type, channel); - return this; - } - - private String globalCheckboxSelector(String type, String channel) { - return "#global-notification-" + type + "-" + channel; - } - - private String projectCheckboxSelector(String project, String type, String channel) { - return "#project-notification-" + project + "-" + type + "-" + channel; - } - - private NotificationsPage shouldBeChecked(String selector) { - $(selector) - .shouldBe(visible) - .shouldHave(cssClass("icon-checkbox-checked")); - return this; - } - - private NotificationsPage shouldNotBeChecked(String selector) { - $(selector) - .shouldBe(visible) - .shouldNotHave(cssClass("icon-checkbox-checked")); - return this; - } - - private void toggleCheckbox(String selector) { - $(selector).click(); - } -} diff --git a/it/it-tests/src/test/java/pageobjects/ProjectActivityPage.java b/it/it-tests/src/test/java/pageobjects/ProjectActivityPage.java deleted file mode 100644 index edf6692ff8a..00000000000 --- a/it/it-tests/src/test/java/pageobjects/ProjectActivityPage.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.ElementsCollection; -import java.util.List; -import java.util.stream.Collectors; - -import static com.codeborne.selenide.Condition.hasText; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - -public class ProjectActivityPage { - - public ProjectActivityPage() { - $("#project-activity").should(Condition.exist); - } - - public ElementsCollection getAnalyses() { - return $$(".project-activity-analysis"); - } - - public List<ProjectAnalysisItem> getAnalysesAsItems() { - return getAnalyses() - .stream() - .map(ProjectAnalysisItem::new) - .collect(Collectors.toList()); - } - - public ProjectAnalysisItem getLastAnalysis() { - return new ProjectAnalysisItem($(".project-activity-analysis")); - } - - public ProjectAnalysisItem getFirstAnalysis() { - return new ProjectAnalysisItem($$(".project-activity-analysis").last()); - } - - public ProjectActivityPage assertFirstAnalysisOfTheDayHasText(String day, String text) { - $("#project-activity") - .find(".project-activity-day[data-day=\"" + day + "\"]") - .find(".project-activity-analysis") - .should(hasText(text)); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/ProjectAnalysisItem.java b/it/it-tests/src/test/java/pageobjects/ProjectAnalysisItem.java deleted file mode 100644 index e4e4de006ec..00000000000 --- a/it/it-tests/src/test/java/pageobjects/ProjectAnalysisItem.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - -public class ProjectAnalysisItem { - - private final SelenideElement elt; - - public ProjectAnalysisItem(SelenideElement elt) { - this.elt = elt; - } - - public ProjectAnalysisItem shouldHaveEventWithText(String text) { - elt.find(".project-activity-events").shouldHave(Condition.text(text)); - return this; - } - - public ProjectAnalysisItem shouldHaveDeleteButton() { - elt.find(".js-delete-analysis").shouldBe(visible); - return this; - } - - public ProjectAnalysisItem shouldNotHaveDeleteButton() { - elt.find(".js-delete-analysis").shouldNotBe(visible); - return this; - } - - public void delete() { - elt.find(".js-delete-analysis").click(); - - SelenideElement modal = $(".modal"); - modal.shouldBe(visible); - modal.find("button[type=\"submit\"]").click(); - - elt.shouldNotBe(visible); - } - - public ProjectAnalysisItem addCustomEvent(String name) { - elt.find(".js-create").click(); - elt.find(".js-add-event").click(); - - SelenideElement modal = $(".modal"); - modal.shouldBe(visible); - modal.find("input").setValue(name); - modal.find("button[type=\"submit\"]").click(); - - elt.find(".project-activity-event:last-child").shouldHave(text(name)); - - return this; - } - - public ProjectAnalysisItem changeLastEvent(String newName) { - SelenideElement lastEvent = elt.find(".project-activity-event:last-child"); - lastEvent.find(".js-change-event").click(); - - SelenideElement modal = $(".modal"); - modal.shouldBe(visible); - modal.find("input").setValue(newName); - modal.find("button[type=\"submit\"]").click(); - - lastEvent.shouldHave(text(newName)); - - return this; - } - - public ProjectAnalysisItem deleteLastEvent() { - int eventsCount = elt.findAll(".project-activity-event").size(); - - SelenideElement lastEvent = elt.find(".project-activity-event:last-child"); - lastEvent.find(".js-delete-event").click(); - - SelenideElement modal = $(".modal"); - modal.shouldBe(visible); - modal.find("button[type=\"submit\"]").click(); - - elt.findAll(".project-activity-event").shouldHaveSize(eventsCount - 1); - - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/ProjectDashboardPage.java b/it/it-tests/src/test/java/pageobjects/ProjectDashboardPage.java deleted file mode 100644 index 0bb44703f64..00000000000 --- a/it/it-tests/src/test/java/pageobjects/ProjectDashboardPage.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.SelenideElement; -import java.util.Arrays; -import java.util.List; - -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.hasText; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - -public class ProjectDashboardPage { - - public ProjectDashboardPage() { - $(".overview").shouldBe(visible); - } - - public SelenideElement getLinesOfCode() { - SelenideElement element = $("#overview-ncloc"); - element.shouldBe(visible); - return element; - } - - public SelenideElement getLanguageDistribution() { - SelenideElement element = $("#overview-language-distribution"); - element.shouldBe(visible); - return element; - } - - private SelenideElement getTagsMeta() { - SelenideElement element = $(".overview-meta-tags"); - element.shouldBe(visible); - return element; - } - - public ProjectDashboardPage shouldHaveTags(String... tags) { - String tagsList = String.join(", ", Arrays.asList(tags)); - this.getTagsMeta().$(".tags-list > span").should(hasText(tagsList)); - return this; - } - - public ProjectDashboardPage shouldNotBeEditable() { - SelenideElement tagsElem = this.getTagsMeta(); - tagsElem.$("button").shouldNot(exist); - tagsElem.$("div.multi-select").shouldNot(exist); - return this; - } - - public ProjectDashboardPage shouldBeEditable() { - SelenideElement tagsElem = this.getTagsMeta(); - tagsElem.$("button").shouldBe(visible); - return this; - } - - public ProjectDashboardPage openTagEditor() { - SelenideElement tagsElem = this.getTagsMeta(); - tagsElem.$("button").shouldBe(visible).click(); - tagsElem.$("div.multi-select").shouldBe(visible); - return this; - } - - public SelenideElement getTagAtIdx(Integer idx) { - SelenideElement tagsElem = this.getTagsMeta(); - tagsElem.$("div.multi-select").shouldBe(visible); - return tagsElem.$$("ul.menu a").get(idx); - } - - public ProjectDashboardPage sendKeysToTagsInput(CharSequence... charSequences) { - SelenideElement tagsInput = this.getTagsMeta().find("input"); - tagsInput.sendKeys(charSequences); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/ProjectKeyPage.java b/it/it-tests/src/test/java/pageobjects/ProjectKeyPage.java deleted file mode 100644 index fa5c9b03097..00000000000 --- a/it/it-tests/src/test/java/pageobjects/ProjectKeyPage.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.hasText; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - -public class ProjectKeyPage { - - public ProjectKeyPage() { - $("#project-key").should(exist); - } - - public ProjectKeyPage assertSimpleUpdate() { - $("#update-key-new-key").shouldBe(visible); - $("#update-key-submit").shouldBe(visible); - return this; - } - - public ProjectKeyPage trySimpleUpdate(String newKey) { - $("#update-key-new-key").val(newKey); - $("#update-key-submit").click(); - $("#update-key-confirm").click(); - return this; - } - - public ProjectKeyPage openFineGrainedUpdate() { - $("#update-key-tab-fine").click(); - $("#project-key-fine-grained-update").shouldBe(visible); - return this; - } - - public ProjectKeyPage tryFineGrainedUpdate(String key, String newKey) { - SelenideElement form = $(".js-fine-grained-update[data-key=\"" + key + "\"]"); - form.shouldBe(visible); - - form.$("input").val(newKey); - form.$("button").click(); - - $("#update-key-confirm").click(); - return this; - } - - public ProjectKeyPage assertBulkChange() { - $("#bulk-update-replace").shouldBe(visible); - $("#bulk-update-by").shouldBe(visible); - $("#bulk-update-see-results").shouldBe(visible); - return this; - } - - public ProjectKeyPage simulateBulkChange(String replace, String by) { - $("#bulk-update-replace").val(replace); - $("#bulk-update-by").val(by); - $("#bulk-update-see-results").click(); - - $("#bulk-update-simulation").shouldBe(visible); - return this; - } - - public ProjectKeyPage assertBulkChangeSimulationResult(String oldKey, String newKey) { - SelenideElement row = $("#bulk-update-results").$("[data-key=\"" + oldKey + "\"]"); - row.$(".js-old-key").should(hasText(oldKey)); - row.$(".js-new-key").should(hasText(newKey)); - return this; - } - - public ProjectKeyPage assertDuplicated(String oldKey) { - SelenideElement row = $("#bulk-update-results").$("[data-key=\"" + oldKey + "\"]"); - row.$(".js-new-key").$(".badge-danger").shouldBe(visible); - return this; - } - - public ProjectKeyPage confirmBulkUpdate() { - $("#bulk-update-confirm").click(); - return this; - } - - public ProjectKeyPage assertSuccessfulBulkUpdate() { - $("#project-key-bulk-update").$(".alert.alert-success").shouldBe(visible); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/ProjectLinkItem.java b/it/it-tests/src/test/java/pageobjects/ProjectLinkItem.java deleted file mode 100644 index 119b2c1872b..00000000000 --- a/it/it-tests/src/test/java/pageobjects/ProjectLinkItem.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.SelenideElement; -import org.openqa.selenium.NoSuchElementException; - -public class ProjectLinkItem { - - private final SelenideElement elt; - - public ProjectLinkItem(SelenideElement elt) { - this.elt = elt; - } - - public SelenideElement getName() { - return elt.$(".js-name"); - } - - public SelenideElement getType() { - try { - return elt.$(".js-type"); - } catch (NoSuchElementException e) { - return null; - } - } - - public SelenideElement getUrl() { - return elt.$(".js-url"); - } - - public SelenideElement getDeleteButton() { - return elt.$(".js-delete-button"); - } -} diff --git a/it/it-tests/src/test/java/pageobjects/ProjectLinksPage.java b/it/it-tests/src/test/java/pageobjects/ProjectLinksPage.java deleted file mode 100644 index 2b0642cc121..00000000000 --- a/it/it-tests/src/test/java/pageobjects/ProjectLinksPage.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.ElementsCollection; - -import java.util.List; -import java.util.stream.Collectors; - -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - -public class ProjectLinksPage { - - public ProjectLinksPage() { - $("#project-links").should(Condition.exist); - } - - public ElementsCollection getLinks() { - return $$("#project-links tr[data-name]"); - } - - public List<ProjectLinkItem> getLinksAsItems() { - return getLinks() - .stream() - .map(ProjectLinkItem::new) - .collect(Collectors.toList()); - } -} diff --git a/it/it-tests/src/test/java/pageobjects/ProjectPermissionsPage.java b/it/it-tests/src/test/java/pageobjects/ProjectPermissionsPage.java deleted file mode 100644 index 2bb8a07ba89..00000000000 --- a/it/it-tests/src/test/java/pageobjects/ProjectPermissionsPage.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import static com.codeborne.selenide.Condition.cssClass; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - -public class ProjectPermissionsPage { - - public ProjectPermissionsPage() { - $("#project-permissions-page").should(exist); - } - - public ProjectPermissionsPage shouldBePublic() { - $("#visibility-public .icon-radio.is-checked").shouldBe(visible); - return this; - } - - public ProjectPermissionsPage shouldBePrivate() { - $("#visibility-private .icon-radio.is-checked").shouldBe(visible); - return this; - } - - public ProjectPermissionsPage turnToPublic() { - $("#visibility-public").click(); - $("#confirm-turn-to-public").click(); - shouldBePublic(); - return this; - } - - public ProjectPermissionsPage turnToPrivate() { - $("#visibility-private").click(); - shouldBePrivate(); - return this; - } - - public ProjectPermissionsPage shouldNotAllowPrivate() { - $("#visibility-private").shouldHave(cssClass("text-muted")); - $(".upgrade-organization-box").shouldBe(visible); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/ProjectQualityGatePage.java b/it/it-tests/src/test/java/pageobjects/ProjectQualityGatePage.java deleted file mode 100644 index e582a70b4d3..00000000000 --- a/it/it-tests/src/test/java/pageobjects/ProjectQualityGatePage.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Selenide.$; - -public class ProjectQualityGatePage { - - public ProjectQualityGatePage() { - $("#project-quality-gate").should(exist); - } - - public SelenideElement getSelectedQualityGate() { - return $(".Select-value-label"); - } - - public void assertNotSelected() { - $(".Select-placeholder").should(exist); - $(".Select-value-label").shouldNot(exist); - } - - public void setQualityGate(String name) { - $(".Select-input input").val(name).pressEnter(); - } -} diff --git a/it/it-tests/src/test/java/pageobjects/ProjectsManagementPage.java b/it/it-tests/src/test/java/pageobjects/ProjectsManagementPage.java deleted file mode 100644 index 2a937338dfa..00000000000 --- a/it/it-tests/src/test/java/pageobjects/ProjectsManagementPage.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - -public class ProjectsManagementPage { - - public ProjectsManagementPage() { - $("#projects-management-page").should(exist); - } - - public ProjectsManagementPage shouldHaveProjectsCount(int count) { - $$("#projects-management-page-projects tr").shouldHaveSize(count); - return this; - } - - public ProjectsManagementPage shouldHaveProject(String key) { - $("#projects-management-page-projects").shouldHave(text(key)); - return this; - } - - public ProjectsManagementPage createProject(String key, String name, String visibility) { - $("#create-project").click(); - $("#create-project-name").val(key); - $("#create-project-key").val(name); - $("#visibility-" + visibility).click(); - $("#create-project-submit").submit(); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/RuleItem.java b/it/it-tests/src/test/java/pageobjects/RuleItem.java deleted file mode 100644 index 9fe179d829e..00000000000 --- a/it/it-tests/src/test/java/pageobjects/RuleItem.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.SelenideElement; - -public class RuleItem { - - private final SelenideElement elt; - - public RuleItem(SelenideElement elt) { - this.elt = elt; - } - - public SelenideElement getTitle() { - return elt.$(".coding-rule-title"); - } - - public SelenideElement getMetadata() { - return elt.$(".coding-rule-meta"); - } - - -} diff --git a/it/it-tests/src/test/java/pageobjects/RulesPage.java b/it/it-tests/src/test/java/pageobjects/RulesPage.java deleted file mode 100644 index ee90dd59849..00000000000 --- a/it/it-tests/src/test/java/pageobjects/RulesPage.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.ElementsCollection; -import java.util.List; -import java.util.stream.Collectors; -import org.openqa.selenium.By; - -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - -public class RulesPage extends Navigation { - - public RulesPage() { - $(By.cssSelector(".coding-rules")).should(Condition.exist); - } - - public ElementsCollection getRules() { - return $$(".coding-rules .coding-rule"); - } - - public List<RuleItem> getRulesAsItems() { - return getRules() - .stream() - .map(elt -> new RuleItem(elt)) - .collect(Collectors.toList()); - } - - public int getTotal() { - // warning - number is localized - return Integer.parseInt($("#coding-rules-total").text()); - } -} diff --git a/it/it-tests/src/test/java/pageobjects/SelenideConfig.java b/it/it-tests/src/test/java/pageobjects/SelenideConfig.java deleted file mode 100644 index e03561fc867..00000000000 --- a/it/it-tests/src/test/java/pageobjects/SelenideConfig.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.Configuration; -import com.codeborne.selenide.WebDriverRunner; -import com.sonar.orchestrator.Orchestrator; -import java.util.stream.Collectors; -import org.openqa.selenium.WebDriver; - -import static java.util.Arrays.stream; - -public class SelenideConfig { - - private enum Browser { - firefox("(v46 and lower)"), - marionette("(recent Firefox, require Geckodriver)"), - chrome("(require Chromedriver)"); - - private final String label; - - Browser(String label) { - this.label = label; - } - - static Browser of(String s) { - try { - return Browser.valueOf(s); - } catch (Exception e) { - throw new IllegalArgumentException("Invalid browser: " + s + ". Supported values are " + - stream(values()).map(b -> b.name() + " " + b.label).collect(Collectors.joining(", "))); - } - } - } - - public static WebDriver configure(Orchestrator orchestrator) { - String browserKey = orchestrator.getConfiguration().getString("orchestrator.browser", Browser.firefox.name()); - Browser browser = Browser.of(browserKey); - Configuration.browser = browser.name(); - Configuration.baseUrl = orchestrator.getServer().getUrl(); - Configuration.timeout = 8_000; - Configuration.reportsFolder = "target/screenshots"; - Configuration.screenshots = true; - Configuration.captureJavascriptErrors = true; - Configuration.savePageSource = true; - Configuration.browserSize = "1280x1024"; - return getWebDriver(); - } - - static WebDriver getWebDriver() { - return WebDriverRunner.getWebDriver(); - } -} diff --git a/it/it-tests/src/test/java/pageobjects/ServerIdPage.java b/it/it-tests/src/test/java/pageobjects/ServerIdPage.java deleted file mode 100644 index d556181b67b..00000000000 --- a/it/it-tests/src/test/java/pageobjects/ServerIdPage.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects; - -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - -public class ServerIdPage { - - public ServerIdPage() { - $("#server-id-page").shouldBe(visible); - } - - public SelenideElement serverIdInput() { - return $("#server-id-result").shouldBe(visible); - } - - private SelenideElement organizationInput() { - return $("#server-id-organization").shouldBe(visible); - } - - private SelenideElement ipAddressInput() { - return $("#server-id-ip").shouldBe(visible); - } - - public ServerIdPage assertError() { - $(".process-spinner-failed").shouldBe(visible); - return this; - } - - public ServerIdPage setOrganization(String organization) { - organizationInput().val(organization); - return this; - } - - public ServerIdPage setIpAddress(String ipAddress) { - ipAddressInput().val(ipAddress); - return this; - } - - public ServerIdPage submitForm() { - $("#server-id-form").submit(); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/issues/Issue.java b/it/it-tests/src/test/java/pageobjects/issues/Issue.java deleted file mode 100644 index 0781ae0c021..00000000000 --- a/it/it-tests/src/test/java/pageobjects/issues/Issue.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects.issues; - -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - -public class Issue { - - private final SelenideElement elt; - - public Issue(SelenideElement elt) { - this.elt = elt; - } - - public Issue shouldAllowAssign() { - elt.find(".js-issue-assign").shouldBe(visible); - return this; - } - - public Issue shouldAllowChangeType() { - elt.find(".js-issue-set-type").shouldBe(visible); - return this; - } - - public Issue shouldNotAllowAssign() { - elt.find(".js-issue-assign").shouldNotBe(visible); - return this; - } - - public Issue shouldNotAllowChangeType() { - elt.find(".js-issue-set-type").shouldNotBe(visible); - return this; - } - - public Issue assigneeSearchResultCount(String query, Integer count) { - SelenideElement assignLink = elt.find(".js-issue-assign"); - assignLink.click(); - SelenideElement popupMenu = $(".bubble-popup ul.menu").shouldBe(visible); - $(".bubble-popup input.search-box-input").shouldBe(visible).val("").sendKeys(query); - popupMenu.$("li a[data-text='Not assigned']").shouldNot(exist); - popupMenu.$$("li").shouldHaveSize(count); - assignLink.click(); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/issues/IssuesPage.java b/it/it-tests/src/test/java/pageobjects/issues/IssuesPage.java deleted file mode 100644 index 33972cc2823..00000000000 --- a/it/it-tests/src/test/java/pageobjects/issues/IssuesPage.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects.issues; - -import com.codeborne.selenide.ElementsCollection; -import java.util.List; -import java.util.stream.Collectors; - -import static com.codeborne.selenide.CollectionCondition.sizeGreaterThan; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - -public class IssuesPage { - - public IssuesPage() { - $(".issues").should(exist); - } - - private ElementsCollection getIssuesElements() { - return $$(".issues .issue"); - } - - public List<Issue> getIssues() { - return getIssuesElements() - .stream() - .map(Issue::new) - .collect(Collectors.toList()); - } - - public Issue getFirstIssue() { - getIssuesElements().shouldHave(sizeGreaterThan(0)); - return new Issue(getIssuesElements().first()); - } - - public IssuesPage bulkChangeOpen() { - $("#issues-bulk-change").shouldBe(visible).click(); - $("#bulk-change-form").shouldBe(visible); - return this; - } - - public IssuesPage bulkChangeAssigneeSearchCount(String query, Integer count) { - $("#issues-bulk-change-assignee .Select-input input").val(query); - $$("#issues-bulk-change-assignee .Select-option").shouldHaveSize(count); - $("#issues-bulk-change-assignee .Select-input input").pressEscape(); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/licenses/LicenseItem.java b/it/it-tests/src/test/java/pageobjects/licenses/LicenseItem.java deleted file mode 100644 index aaa390ac238..00000000000 --- a/it/it-tests/src/test/java/pageobjects/licenses/LicenseItem.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects.licenses; - -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - -public class LicenseItem { - - private final SelenideElement elt; - - public LicenseItem(SelenideElement elt) { - this.elt = elt; - } - - public SelenideElement getName() { - return elt.find(".js-product"); - } - - public LicenseItem setLicense(String value) { - elt.find(".js-change").click(); - $("#license-input").shouldBe(visible).val(value); - $(".js-modal-submit").click(); - $("#license-input").shouldNotBe(visible); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/licenses/LicensesPage.java b/it/it-tests/src/test/java/pageobjects/licenses/LicensesPage.java deleted file mode 100644 index 393347b4d65..00000000000 --- a/it/it-tests/src/test/java/pageobjects/licenses/LicensesPage.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects.licenses; - -import com.codeborne.selenide.ElementsCollection; -import com.codeborne.selenide.SelenideElement; -import java.util.List; -import java.util.stream.Collectors; - -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - -public class LicensesPage { - - public LicensesPage() { - $("#licenses-page").shouldBe(visible); - } - - public ElementsCollection getLicenses() { - return $$(".js-license"); - } - - public List<LicenseItem> getLicensesAsItems() { - return getLicenses() - .stream() - .map(LicenseItem::new) - .collect(Collectors.toList()); - } - - public LicenseItem getLicenseByKey(String key) { - SelenideElement element = $(".js-license[data-license-key=\"" + key + "\"]"); - return new LicenseItem(element); - } -} diff --git a/it/it-tests/src/test/java/pageobjects/organization/MemberItem.java b/it/it-tests/src/test/java/pageobjects/organization/MemberItem.java deleted file mode 100644 index 436637d489f..00000000000 --- a/it/it-tests/src/test/java/pageobjects/organization/MemberItem.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package pageobjects.organization; - -import com.codeborne.selenide.CollectionCondition; -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.ElementsCollection; -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Selenide.$; - -public class MemberItem { - private final SelenideElement elt; - - public MemberItem(SelenideElement elt) { - this.elt = elt; - } - - public MemberItem shouldBeNamed(String login, String name) { - ElementsCollection tds = this.elt.$$("td"); - tds.get(1).$("strong").shouldHave(Condition.text(name)); - tds.get(1).$("span").shouldHave(Condition.text(login)); - return this; - } - - public MemberItem shouldHaveGroups(Integer groups) { - ElementsCollection tds = this.elt.$$("td"); - tds.get(2).should(Condition.exist); - tds.get(2).shouldHave(Condition.text(groups.toString())); - return this; - } - - public MemberItem shouldNotHaveActions() { - this.elt.$$("td").shouldHave(CollectionCondition.sizeLessThan(3)); - return this; - } - - public MemberItem removeMembership() { - ElementsCollection tds = this.elt.$$("td"); - tds.shouldHave(CollectionCondition.sizeGreaterThan(3)); - SelenideElement actionTd = tds.get(3); - actionTd.$("button").should(Condition.exist).click(); - actionTd.$$(".dropdown-menu > li").get(2).shouldBe(Condition.visible).click(); - SelenideElement modal = getModal("Remove user"); - modal.$("button.button-red").shouldBe(Condition.visible).click(); - return this; - } - - public MemberItem manageGroupsOpen() { - ElementsCollection tds = this.elt.$$("td"); - tds.shouldHave(CollectionCondition.sizeGreaterThan(3)); - SelenideElement actionTd = tds.get(3); - actionTd.$("button").should(Condition.exist).click(); - actionTd.$$(".dropdown-menu > li").get(0).shouldBe(Condition.visible).click(); - getModal("Manage groups"); - return this; - } - - public MemberItem manageGroupsSelect(String group) { - SelenideElement modal = getModal("Manage groups"); - modal.$$("li").find(Condition.text(group)).shouldBe(Condition.visible).click(); - return this; - } - - public MemberItem manageGroupsSave() { - SelenideElement modal = getModal("Manage groups"); - modal.$("button[type='submit']").shouldBe(Condition.visible).click(); - return this; - } - - private SelenideElement getModal(String title) { - $(".modal-head").should(Condition.exist).shouldHave(Condition.text(title)); - SelenideElement form = $(".ReactModalPortal form"); - form.should(Condition.exist); - return form; - } -}
\ No newline at end of file diff --git a/it/it-tests/src/test/java/pageobjects/organization/MembersPage.java b/it/it-tests/src/test/java/pageobjects/organization/MembersPage.java deleted file mode 100644 index 56030c62133..00000000000 --- a/it/it-tests/src/test/java/pageobjects/organization/MembersPage.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -package pageobjects.organization; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.ElementsCollection; -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - -public class MembersPage { - - public MembersPage() { - $(".nav-tabs a.active").shouldBe(visible).shouldHave(Condition.text("Members")); - } - - public ElementsCollection getMembers() { - return $$("table.data tr"); - } - - public MemberItem getMembersByIdx(Integer idx) { - return new MemberItem(getMembers().get(idx)); - } - - public MembersPage shouldHaveTotal(int total) { - $(".panel-vertical > span > strong").shouldHave(text(String.valueOf(total))); - return this; - } - - public MembersPage searchForMember(String query) { - $("input.search-box-input").shouldBe(Condition.visible).val("").sendKeys(query); - return this; - } - - public MembersPage canAddMember() { - $(".page-actions").shouldBe(Condition.visible); - return this; - } - - public MembersPage canNotAddMember() { - $(".page-actions").shouldNot(Condition.exist); - return this; - } - - public MembersPage addMember(String login) { - this.canAddMember(); - $(".page-actions button").click(); - - SelenideElement modal = this.getModal("Add user"); - SelenideElement input = modal.$(".Select-input input"); - input.val(login); - modal.$("div.Select-option.is-focused").should(Condition.exist); - input.pressEnter(); - modal.$("button[type='submit']").click(); - return this; - } - - private SelenideElement getModal(String title) { - $(".modal-head").should(Condition.exist).shouldHave(Condition.text(title)); - SelenideElement form = $(".ReactModalPortal form"); - form.should(Condition.exist); - return form; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/projects/FacetItem.java b/it/it-tests/src/test/java/pageobjects/projects/FacetItem.java deleted file mode 100644 index 52f0f5bb70f..00000000000 --- a/it/it-tests/src/test/java/pageobjects/projects/FacetItem.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects.projects; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.ElementsCollection; -import com.codeborne.selenide.SelenideElement; -import org.openqa.selenium.WebElement; - -public class FacetItem { - - private final SelenideElement elt; - - public FacetItem(SelenideElement elt) { - this.elt = elt; - } - - public FacetItem shouldHaveValue(String key, String value) { - this.elt.$(".facet[data-key=\"" + key + "\"] .facet-stat").shouldHave(Condition.text(value)); - return this; - } - - public void selectValue(String key) { - this.elt.$(".facet[data-key=\"" + key + "\"]").click(); - } - - public FacetItem selectOptionItem(String value) { - SelenideElement selectInput = this.elt.$(".Select-input input"); - selectInput.val(value); - this.elt.$("div.Select-option.is-focused").should(Condition.exist); - selectInput.pressEnter(); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/projects/ProjectItem.java b/it/it-tests/src/test/java/pageobjects/projects/ProjectItem.java deleted file mode 100644 index fc6cb1fb0dd..00000000000 --- a/it/it-tests/src/test/java/pageobjects/projects/ProjectItem.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects.projects; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.SelenideElement; - -public class ProjectItem { - - private final SelenideElement elt; - - public ProjectItem(SelenideElement elt) { - this.elt = elt; - } - - public ProjectItem shouldHaveMeasure(String metricKey, String value) { - this.elt.$(".project-card-measure[data-key=\"" + metricKey + "\"]").shouldHave(Condition.text(value)); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/projects/ProjectsPage.java b/it/it-tests/src/test/java/pageobjects/projects/ProjectsPage.java deleted file mode 100644 index 66bc7e5fda4..00000000000 --- a/it/it-tests/src/test/java/pageobjects/projects/ProjectsPage.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects.projects; - -import com.codeborne.selenide.Condition; -import com.codeborne.selenide.ElementsCollection; -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; -import static com.codeborne.selenide.WebDriverRunner.url; -import static org.assertj.core.api.Assertions.assertThat; - -public class ProjectsPage { - - public ProjectsPage() { - $("#projects-page").shouldBe(visible); - } - - public ElementsCollection getProjects() { - return $$(".projects-list > .boxed-group"); - } - - public ElementsCollection getFacets() { - return $$(".search-navigator-facet-box"); - } - - public ProjectItem getProjectByKey(String projectKey) { - SelenideElement element = getProjects().find(Condition.attribute("data-key", projectKey)); - return new ProjectItem(element); - } - - public ProjectItem getProjectByIdx(Integer idx) { - return new ProjectItem(getProjects().get(idx)); - } - - public FacetItem getFacetByProperty(String facetProperty) { - SelenideElement element = getFacets().find(Condition.attribute("data-key", facetProperty)); - return new FacetItem(element); - } - - public ProjectsPage shouldHaveTotal(int total) { - // warning - number is localized - $("#projects-total").shouldHave(text(String.valueOf(total))); - return this; - } - - public ProjectsPage shouldDisplayAllProjects() { - assertThat(url()).endsWith("/projects"); - return this; - } - - public ProjectsPage shouldDisplayAllProjectsWidthSort(String sort) { - assertThat(url()).endsWith("/projects?sort=" + sort); - return this; - } - - public ProjectsPage shouldDisplayFavoriteProjects() { - assertThat(url()).endsWith("/projects/favorite"); - return this; - } - - public ProjectsPage selectAllProjects() { - $("#all-projects").click(); - return shouldDisplayAllProjects(); - } - - public ProjectsPage selectFavoriteProjects() { - $("#favorite-projects").click(); - return shouldDisplayFavoriteProjects(); - } - - public ProjectsPage searchProject(String search) { - SelenideElement searchInput = $(".projects-topbar-item-search input"); - searchInput.setValue("").sendKeys(search); - return this; - } - - public ProjectsPage changePerspective(String perspective) { - SelenideElement sortSelect = getOpenTopBar().$(".js-projects-perspective-select"); - sortSelect.$(".Select-value").should(Condition.exist).click(); - sortSelect.$(".Select-option[title='" + perspective + "']").should(Condition.exist).click(); - return this; - } - - public ProjectsPage sortProjects(String sort) { - SelenideElement sortSelect = getOpenTopBar().$(".js-projects-sorting-select"); - sortSelect.$(".Select-value").should(Condition.exist).click(); - sortSelect.$(".Select-option[title='" + sort + "']").should(Condition.exist).click(); - return this; - } - - public ProjectsPage invertSorting() { - getOpenTopBar().$(".js-projects-sorting-select a.button-icon").should(Condition.exist).click(); - return this; - } - - private SelenideElement getOpenTopBar() { - return $(".projects-topbar-items").should(Condition.exist); - } -} diff --git a/it/it-tests/src/test/java/pageobjects/settings/PropertySetInput.java b/it/it-tests/src/test/java/pageobjects/settings/PropertySetInput.java deleted file mode 100644 index fde30b15c38..00000000000 --- a/it/it-tests/src/test/java/pageobjects/settings/PropertySetInput.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects.settings; - -import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.exist; - -public class PropertySetInput { - - private final SelenideElement elt; - - public PropertySetInput(SelenideElement elt) { - this.elt = elt; - } - - public PropertySetInput setFieldValue(int index, String fieldKey, String value) { - elt.findAll("input[name$=\"[" + fieldKey + "]\"]").get(index).val(value); - return this; - } - - public PropertySetInput setFieldValue(String fieldKey, String value) { - return setFieldValue(0, fieldKey, value); - } - - public PropertySetInput save() { - elt.find(".js-save-changes").click(); - elt.find(".js-save-changes").shouldNot(exist); - return this; - } -} diff --git a/it/it-tests/src/test/java/pageobjects/settings/SettingsPage.java b/it/it-tests/src/test/java/pageobjects/settings/SettingsPage.java deleted file mode 100644 index 704ba3054ae..00000000000 --- a/it/it-tests/src/test/java/pageobjects/settings/SettingsPage.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package pageobjects.settings; - -import com.codeborne.selenide.SelenideElement; -import org.openqa.selenium.By; - -import static com.codeborne.selenide.Condition.cssClass; -import static com.codeborne.selenide.Condition.exactValue; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - -public class SettingsPage { - - public SettingsPage() { - $("#settings-page").shouldBe(visible); - } - - public SettingsPage assertMenuContains(String categoryName) { - $(".side-tabs-menu").$(By.linkText(categoryName)).shouldBe(visible); - return this; - } - - public SettingsPage assertSettingDisplayed(String settingKey) { - $(".settings-definition[data-key='" + settingKey + "']").shouldBe(visible); - return this; - } - - public SettingsPage assertSettingNotDisplayed(String settingKey) { - $(".settings-definition[data-key='" + settingKey + "']").shouldNotBe(visible); - return this; - } - - public SettingsPage openCategory(String categoryName) { - $(".side-tabs-menu").$(By.linkText(categoryName)).click(); - return this; - } - - public SettingsPage assertStringSettingValue(String settingKey, String value) { - $("input[name=\"settings[" + settingKey + "]\"]").shouldHave(exactValue(value)); - return this; - } - - public SettingsPage assertBooleanSettingValue(String settingKey, boolean value) { - SelenideElement toggle = $("button[name=\"settings[" + settingKey + "]\"]"); - if (value) { - toggle.shouldHave(cssClass("boolean-toggle-on")); - } else { - toggle.shouldNotHave(cssClass("boolean-toggle-on")); - } - return this; - } - - public SettingsPage setStringValue(String settingKey, String value) { - SelenideElement setting = $(".settings-definition[data-key=\"" + settingKey + "\"]"); - setting.find("input").val(value); - setting.find(".js-save-changes").click(); - setting.find(".js-save-changes").shouldNot(exist); - return this; - } - - public PropertySetInput getPropertySetInput(String settingKey) { - SelenideElement setting = $(".settings-definition[data-key=\"" + settingKey + "\"]"); - return new PropertySetInput(setting); - } -} diff --git a/it/it-tests/src/test/java/util/ItUtils.java b/it/it-tests/src/test/java/util/ItUtils.java deleted file mode 100644 index a8e5ee495e0..00000000000 --- a/it/it-tests/src/test/java/util/ItUtils.java +++ /dev/null @@ -1,534 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util; - -import com.google.common.base.Splitter; -import com.google.common.base.Throwables; -import com.google.common.collect.ImmutableMap; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.BuildResult; -import com.sonar.orchestrator.build.SonarRunner; -import com.sonar.orchestrator.container.Server; -import com.sonar.orchestrator.locator.FileLocation; -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Type; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import java.util.function.Function; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; -import javax.annotation.CheckForNull; -import javax.annotation.Nullable; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; -import org.apache.commons.io.FileUtils; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.json.simple.JSONValue; -import org.junit.Assert; -import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueClient; -import org.sonar.wsclient.issue.IssueQuery; -import org.sonarqube.test.Tester; -import org.sonarqube.ws.WsComponents.Component; -import org.sonarqube.ws.WsMeasures; -import org.sonarqube.ws.WsMeasures.Measure; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.HttpConnector; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsClientFactories; -import org.sonarqube.ws.client.component.ShowWsRequest; -import org.sonarqube.ws.client.measure.ComponentWsRequest; -import org.sonarqube.ws.client.qualityprofile.RestoreWsRequest; -import org.sonarqube.ws.client.setting.ResetRequest; -import org.sonarqube.ws.client.setting.SetRequest; - -import static com.google.common.base.Preconditions.checkState; -import static com.sonar.orchestrator.container.Server.ADMIN_LOGIN; -import static com.sonar.orchestrator.container.Server.ADMIN_PASSWORD; -import static java.lang.Double.parseDouble; -import static java.util.Arrays.asList; -import static java.util.Collections.singletonList; -import static java.util.Locale.ENGLISH; -import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.fail; - -public class ItUtils { - public static final Splitter LINE_SPLITTER = Splitter.on(System.getProperty("line.separator")); - - private ItUtils() { - } - - public static FileLocation xooPlugin() { - return FileLocation.byWildcardMavenFilename(new File("../../plugins/sonar-xoo-plugin/target"), "sonar-xoo-plugin-*.jar"); - } - - public static List<Issue> getAllServerIssues(Orchestrator orchestrator) { - IssueClient issueClient = orchestrator.getServer().wsClient().issueClient(); - return issueClient.find(IssueQuery.create()).list(); - } - - /** - * @deprecated replaced by {@link Tester#wsClient()} - */ - @Deprecated - public static WsClient newAdminWsClient(Orchestrator orchestrator) { - return newUserWsClient(orchestrator, ADMIN_LOGIN, ADMIN_PASSWORD); - } - - /** - * @deprecated replaced by {@link Tester#wsClient()} - */ - @Deprecated - public static WsClient newWsClient(Orchestrator orchestrator) { - return newUserWsClient(orchestrator, null, null); - } - - /** - * @deprecated replaced by {@link Tester#wsClient()} - */ - @Deprecated - public static WsClient newUserWsClient(Orchestrator orchestrator, @Nullable String login, @Nullable String password) { - Server server = orchestrator.getServer(); - return WsClientFactories.getDefault().newClient(HttpConnector.newBuilder() - .url(server.getUrl()) - .credentials(login, password) - .build()); - } - - /** - * Locate the directory of sample project - * - * @param relativePath path related to the directory it/it-projects, for example "qualitygate/xoo-sample" - */ - public static File projectDir(String relativePath) { - File dir = new File("../it-projects/" + relativePath); - if (!dir.exists() || !dir.isDirectory()) { - throw new IllegalStateException("Directory does not exist: " + dir.getAbsolutePath()); - } - return dir; - } - - /** - * Locate the artifact of a fake plugin stored in it/it-plugins. - * - * @param dirName the directory of it/it-plugins, for example "sonar-fake-plugin". - * It assumes that version is 1.0-SNAPSHOT - */ - public static FileLocation pluginArtifact(String dirName) { - return FileLocation.byWildcardMavenFilename(new File("../it-plugins/" + dirName + "/target"), dirName + "-*.jar"); - } - - /** - * Locate the pom file of a sample project - * - * @param projectName project path related to the directory it/it-projects, for example "qualitygate/xoo-sample" - */ - public static File projectPom(String projectName) { - File pom = new File(projectDir(projectName), "pom.xml"); - if (!pom.exists() || !pom.isFile()) { - throw new IllegalStateException("pom file does not exist: " + pom.getAbsolutePath()); - } - return pom; - } - - public static String sanitizeTimezones(String s) { - return s.replaceAll("[\\+\\-]\\d\\d\\d\\d", "+0000"); - } - - public static JSONObject getJSONReport(BuildResult result) { - Pattern pattern = Pattern.compile("Export issues to (.*?).json"); - Matcher m = pattern.matcher(result.getLogs()); - if (m.find()) { - String s = m.group(1); - File path = new File(s + ".json"); - assertThat(path).exists(); - try { - return (JSONObject) JSONValue.parse(FileUtils.readFileToString(path)); - } catch (IOException e) { - throw new RuntimeException("Unable to read JSON report", e); - } - } - fail("Unable to locate json report"); - return null; - } - - public static int countIssuesInJsonReport(BuildResult result, boolean onlyNews) { - JSONObject obj = getJSONReport(result); - JSONArray issues = (JSONArray) obj.get("issues"); - int count = 0; - for (Object issue : issues) { - JSONObject jsonIssue = (JSONObject) issue; - if (!onlyNews || (Boolean) jsonIssue.get("isNew")) { - count++; - } - } - return count; - } - - public static void assertIssuesInJsonReport(BuildResult result, int newIssues, int resolvedIssues, int existingIssues) { - JSONObject obj = getJSONReport(result); - JSONArray issues = (JSONArray) obj.get("issues"); - int countNew = 0; - int countResolved = 0; - int countExisting = 0; - - for (Object issue : issues) { - JSONObject jsonIssue = (JSONObject) issue; - - if ((Boolean) jsonIssue.get("isNew")) { - countNew++; - } else if (jsonIssue.get("resolution") != null) { - countResolved++; - } else { - countExisting++; - } - } - assertThat(countNew).isEqualTo(newIssues); - assertThat(countResolved).isEqualTo(resolvedIssues); - assertThat(countExisting).isEqualTo(existingIssues); - } - - public static SonarRunner runVerboseProjectAnalysis(Orchestrator orchestrator, String projectRelativePath, String... properties) { - return runProjectAnalysis(orchestrator, projectRelativePath, true, properties); - } - - public static SonarRunner runProjectAnalysis(Orchestrator orchestrator, String projectRelativePath, String... properties) { - return runProjectAnalysis(orchestrator, projectRelativePath, false, properties); - } - - private static SonarRunner runProjectAnalysis(Orchestrator orchestrator, String projectRelativePath, boolean enableDebugLogs, String... properties) { - SonarRunner sonarRunner = SonarRunner.create(projectDir(projectRelativePath)); - ImmutableMap.Builder<String, String> builder = ImmutableMap.builder(); - for (int i = 0; i < properties.length; i += 2) { - builder.put(properties[i], properties[i + 1]); - } - SonarRunner scan = sonarRunner.setDebugLogs(enableDebugLogs).setProperties(builder.build()); - orchestrator.executeBuild(scan); - return scan; - } - - public static void setServerProperty(Orchestrator orchestrator, String key, @Nullable String value) { - setServerProperty(orchestrator, null, key, value); - } - - public static void setServerProperty(Orchestrator orchestrator, @Nullable String componentKey, String key, @Nullable String value) { - if (value == null) { - newAdminWsClient(orchestrator).settings().reset(ResetRequest.builder().setKeys(key).setComponent(componentKey).build()); - } else { - newAdminWsClient(orchestrator).settings().set(SetRequest.builder().setKey(key).setValue(value).setComponent(componentKey).build()); - } - } - - public static void setServerProperties(Orchestrator orchestrator, @Nullable String componentKey, String... properties) { - for (int i = 0; i < properties.length; i += 2) { - setServerProperty(orchestrator, componentKey, properties[i], properties[i + 1]); - } - } - - public static void resetSettings(Orchestrator orchestrator, @Nullable String componentKey, String... keys) { - if (keys.length > 0) { - newAdminWsClient(orchestrator).settings().reset(ResetRequest.builder().setKeys(keys).setComponent(componentKey).build()); - } - } - - public static void resetEmailSettings(Orchestrator orchestrator) { - resetSettings(orchestrator, null, "email.smtp_host.secured", "email.smtp_port.secured", "email.smtp_secure_connection.secured", "email.smtp_username.secured", - "email.smtp_password.secured", "email.from", "email.prefix"); - } - - public static void resetPeriod(Orchestrator orchestrator) { - resetSettings(orchestrator, null, "sonar.leak.period"); - } - - @CheckForNull - public static Measure getMeasure(Orchestrator orchestrator, String componentKey, String metricKey) { - return getMeasuresByMetricKey(orchestrator, componentKey, metricKey).get(metricKey); - } - - @CheckForNull - public static Double getMeasureAsDouble(Orchestrator orchestrator, String componentKey, String metricKey) { - Measure measure = getMeasure(orchestrator, componentKey, metricKey); - return (measure == null) ? null : Double.parseDouble(measure.getValue()); - } - - public static Map<String, Measure> getMeasuresByMetricKey(Orchestrator orchestrator, String componentKey, String... metricKeys) { - return getStreamMeasures(orchestrator, componentKey, metricKeys) - .filter(Measure::hasValue) - .collect(Collectors.toMap(Measure::getMetric, Function.identity())); - } - - public static Map<String, Double> getMeasuresAsDoubleByMetricKey(Orchestrator orchestrator, String componentKey, String... metricKeys) { - return getStreamMeasures(orchestrator, componentKey, metricKeys) - .filter(Measure::hasValue) - .collect(Collectors.toMap(Measure::getMetric, measure -> parseDouble(measure.getValue()))); - } - - private static Stream<Measure> getStreamMeasures(Orchestrator orchestrator, String componentKey, String... metricKeys) { - return newWsClient(orchestrator).measures().component(new ComponentWsRequest() - .setComponentKey(componentKey) - .setMetricKeys(asList(metricKeys))) - .getComponent().getMeasuresList() - .stream(); - } - - @CheckForNull - public static Measure getMeasureWithVariation(Orchestrator orchestrator, String componentKey, String metricKey) { - WsMeasures.ComponentWsResponse response = newWsClient(orchestrator).measures().component(new ComponentWsRequest() - .setComponentKey(componentKey) - .setMetricKeys(singletonList(metricKey)) - .setAdditionalFields(singletonList("periods"))); - List<Measure> measures = response.getComponent().getMeasuresList(); - return measures.size() == 1 ? measures.get(0) : null; - } - - @CheckForNull - public static Map<String, Measure> getMeasuresWithVariationsByMetricKey(Orchestrator orchestrator, String componentKey, String... metricKeys) { - return newWsClient(orchestrator).measures().component(new ComponentWsRequest() - .setComponentKey(componentKey) - .setMetricKeys(asList(metricKeys)) - .setAdditionalFields(singletonList("periods"))).getComponent().getMeasuresList() - .stream() - .collect(Collectors.toMap(Measure::getMetric, Function.identity())); - } - - /** - * Return leak period value - */ - @CheckForNull - public static Double getLeakPeriodValue(Orchestrator orchestrator, String componentKey, String metricKey) { - List<WsMeasures.PeriodValue> periodsValueList = getMeasureWithVariation(orchestrator, componentKey, metricKey).getPeriods().getPeriodsValueList(); - return periodsValueList.size() > 0 ? Double.parseDouble(periodsValueList.get(0).getValue()) : null; - } - - @CheckForNull - public static Component getComponent(Orchestrator orchestrator, String componentKey) { - try { - return newWsClient(orchestrator).components().show(new ShowWsRequest().setKey((componentKey))).getComponent(); - } catch (org.sonarqube.ws.client.HttpException e) { - if (e.code() == 404) { - return null; - } - throw new IllegalStateException(e); - } - } - - @CheckForNull - public static ComponentNavigation getComponentNavigation(Orchestrator orchestrator, String componentKey) { - // Waiting for SONAR-7745 to have version in api/components/show, we use internal api/navigation/component WS to get the component - // version - String content = newWsClient(orchestrator).wsConnector().call(new GetRequest("api/navigation/component").setParam("componentKey", componentKey)).failIfNotSuccessful() - .content(); - return ComponentNavigation.parse(content); - } - - public static void restoreProfile(Orchestrator orchestrator, URL resource) { - restoreProfile(orchestrator, resource, null); - } - - public static void restoreProfile(Orchestrator orchestrator, URL resource, String organization) { - URI uri; - try { - uri = resource.toURI(); - } catch (URISyntaxException e) { - throw new IllegalArgumentException("Cannot find quality profile xml file '" + resource + "' in classpath"); - } - newAdminWsClient(orchestrator) - .qualityProfiles() - .restoreProfile( - RestoreWsRequest.builder() - .setBackup(new File(uri)) - .setOrganization(organization) - .build()); - } - - public static String newOrganizationKey() { - return randomAlphabetic(32).toLowerCase(ENGLISH); - } - - public static String newProjectKey() { - return "key-" + randomAlphabetic(100); - } - - public static class ComponentNavigation { - private String version; - private String analysisDate; - - public String getVersion() { - return version; - } - - public Date getDate() { - return toDatetime(analysisDate); - } - - public static ComponentNavigation parse(String json) { - Gson gson = new Gson(); - return gson.fromJson(json, ComponentNavigation.class); - } - } - - /** - * Concatenates a vararg to a String array. - * - * Useful when using {@link #runVerboseProjectAnalysis(Orchestrator, String, String...)}, eg.: - * <pre> - * ItUtils.runProjectAnalysis(orchestrator, "project_name", - * ItUtils.concat(properties, "sonar.scm.disabled", "false") - * ); - * </pre> - */ - public static String[] concat(String[] properties, String... str) { - if (properties == null || properties.length == 0) { - return str; - } - return Stream.concat(Arrays.stream(properties), Arrays.stream(str)) - .toArray(String[]::new); - } - - public static Date toDate(String sDate) { - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - return sdf.parse(sDate); - } catch (ParseException e) { - throw new RuntimeException(e); - } - } - - public static Date toDatetime(String sDate) { - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); - return sdf.parse(sDate); - } catch (ParseException e) { - throw new RuntimeException(e); - } - } - - public static String formatDate(Date d) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - return sdf.format(d); - } - - public static String extractCeTaskId(BuildResult buildResult) { - List<String> taskIds = extractCeTaskIds(buildResult); - checkState(taskIds.size() == 1, "More than one task id retrieved from logs"); - return taskIds.iterator().next(); - } - - private static List<String> extractCeTaskIds(BuildResult buildResult) { - String logs = buildResult.getLogs(); - return StreamSupport.stream(LINE_SPLITTER.split(logs).spliterator(), false) - .filter(s -> s.contains("More about the report processing at")) - .map(s -> s.substring(s.length() - 20, s.length())) - .collect(Collectors.toList()); - } - - public static Map<String, Object> jsonToMap(String json) { - Gson gson = new Gson(); - Type type = new TypeToken<Map<String, Object>>() { - }.getType(); - return gson.fromJson(json, type); - } - - /** - * @deprecated replaced by {@code orchestrator.getServer().newHttpCall()} - */ - @Deprecated - public static Response call(String url, String... headers) { - Request.Builder requestBuilder = new Request.Builder().get().url(url); - for (int i = 0; i < headers.length; i += 2) { - String headerName = headers[i]; - String headerValue = headers[i + 1]; - if (headerValue != null) { - requestBuilder.addHeader(headerName, headerValue); - } - } - try { - return new OkHttpClient.Builder() - .connectTimeout(30, TimeUnit.SECONDS) - .readTimeout(30, TimeUnit.SECONDS) - .build() - .newCall(requestBuilder.build()) - .execute(); - } catch (IOException e) { - throw Throwables.propagate(e); - } - } - - public static void expectBadRequestError(Runnable runnable) { - expectHttpError(400, runnable); - } - - public static void expectMissingError(Runnable runnable) { - expectHttpError(404, runnable); - } - /** - * Missing permissions - */ - public static void expectForbiddenError(Runnable runnable) { - expectHttpError(403, runnable); - } - - /** - * Not authenticated - */ - public static void expectUnauthorizedError(Runnable runnable) { - expectHttpError(401, runnable); - } - - public static void expectNotFoundError(Runnable runnable) { - expectHttpError(404, runnable); - } - - public static void expectHttpError(int expectedCode, Runnable runnable) { - try { - runnable.run(); - Assert.fail("Ws call should have failed"); - } catch (org.sonarqube.ws.client.HttpException e) { - assertThat(e.code()).isEqualTo(expectedCode); - } - } - - public static void expectHttpError(int expectedCode, String expectedMessage, Runnable runnable) { - try { - runnable.run(); - Assert.fail("Ws call should have failed"); - } catch (org.sonarqube.ws.client.HttpException e) { - assertThat(e.code()).isEqualTo(expectedCode); - assertThat(e.getMessage()).contains(expectedMessage); - } - } -} diff --git a/it/it-tests/src/test/java/util/LoadedProfiles.java b/it/it-tests/src/test/java/util/LoadedProfiles.java deleted file mode 100644 index 71c76803901..00000000000 --- a/it/it-tests/src/test/java/util/LoadedProfiles.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util; - -import java.io.IOException; -import java.net.URISyntaxException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; - -import static com.google.common.base.Preconditions.checkArgument; - -final class LoadedProfiles { - private final Map<String, Profile> profileStatesPerProfileKey = new HashMap<>(); - - public LoadedProfiles() { - init(); - } - - public String loadProfile(String relativePathToProfile) { - try { - URL resource = getClass().getResource(relativePathToProfile); - Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(resource.openStream()); - - String profileKey = null; - String languageKey = null; - - Element documentElement = document.getDocumentElement(); - checkArgument("profile".equals(documentElement.getNodeName()), "%s is not a quality profile file. Root node is not %s", resource.toURI().toString()); - NodeList childNodes = documentElement.getChildNodes(); - for (int i = 0; i < childNodes.getLength(); i++) { - Node childNode = childNodes.item(i); - if ("name".equals(childNode.getNodeName())) { - profileKey = childNode.getChildNodes().item(0).getNodeValue(); - } else if ("language".equals(childNode.getNodeName())) { - languageKey = childNode.getChildNodes().item(0).getNodeValue(); - } - } - checkArgument(profileKey != null, "Quality profile file %s is missing profile key", resource.toURI().toString()); - checkArgument(languageKey != null, "Quality profile file %s is missing language key", resource.toURI().toString()); - this.profileStatesPerProfileKey.put(profileKey, new Profile(profileKey, languageKey, relativePathToProfile)); - - return profileKey; - } catch (URISyntaxException | SAXException | IOException | ParserConfigurationException e) { - throw new RuntimeException("Can not load quality profile " + relativePathToProfile, e); - } - } - - public Profile getState(String qualityProfileKey) { - Profile profile = this.profileStatesPerProfileKey.get(qualityProfileKey); - checkArgument(profile != null, "Quality Profile with key %s is unknown to %s", qualityProfileKey, ProjectAnalysisRule.class.getSimpleName()); - return profile; - } - - public void reset() { - this.profileStatesPerProfileKey.clear(); - init(); - } - - private void init() { - this.profileStatesPerProfileKey.put(Profile.XOO_EMPTY_PROFILE.getProfileKey(), Profile.XOO_EMPTY_PROFILE); - } -} diff --git a/it/it-tests/src/test/java/util/LoadedProjects.java b/it/it-tests/src/test/java/util/LoadedProjects.java deleted file mode 100644 index eb3565f5f84..00000000000 --- a/it/it-tests/src/test/java/util/LoadedProjects.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util; - -import com.google.common.base.Throwables; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Properties; -import java.util.Set; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkState; - -final class LoadedProjects { - - static final String SONAR_PROJECT_PROPERTIES_FILE_NAME = "sonar-project.properties"; - - private final Map<String, ProjectState> projectStatePerProjectKey = new HashMap<>(); - private final Set<String> knownProjects = new HashSet<>(); - - public void reset() { - this.projectStatePerProjectKey.clear(); - this.knownProjects.clear(); - } - - public String load(String projectRelativePath) { - checkState(!knownProjects.contains(projectRelativePath), "Project at location %s already loaded", projectRelativePath); - - File projectDir = ItUtils.projectDir(projectRelativePath); - Properties sonarProjectProperties = loadProjectProperties(projectDir); - ProjectState projectState = new ProjectState(projectDir, sonarProjectProperties); - - register(projectRelativePath, projectState); - - return projectState.getProjectKey(); - } - - public ProjectState getProjectState(String projectKey) { - ProjectState projectState = this.projectStatePerProjectKey.get(projectKey); - checkArgument(projectState != null, "Project with key %s is unknown to %s", projectKey, ProjectAnalysisRule.class.getSimpleName()); - return projectState; - } - - private void register(String projectRelativePath, ProjectState projectState) { - this.projectStatePerProjectKey.put(projectState.getProjectKey(), projectState); - this.knownProjects.add(projectRelativePath); - } - - private static Properties loadProjectProperties(File projectDir) { - File sonarPropertiesFile = new File(projectDir, SONAR_PROJECT_PROPERTIES_FILE_NAME); - checkArgument(sonarPropertiesFile.exists(), "Can not locate %s in project %s", SONAR_PROJECT_PROPERTIES_FILE_NAME, projectDir.getAbsolutePath()); - - Properties properties = new Properties(); - try { - properties.load(new FileReader(sonarPropertiesFile)); - } catch (IOException e) { - Throwables.propagate(e); - } - return properties; - } -} diff --git a/it/it-tests/src/test/java/util/Profile.java b/it/it-tests/src/test/java/util/Profile.java deleted file mode 100644 index f9f6a78c52a..00000000000 --- a/it/it-tests/src/test/java/util/Profile.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util; - -import javax.annotation.concurrent.Immutable; - -@Immutable -final class Profile { - static final Profile XOO_EMPTY_PROFILE = new Profile("empty", "xoo", "n/a"); - - private final String profileKey; - private final String languageKey; - private final String relativePath; - - Profile(String profileKey, String languageKey, String relativePath) { - this.profileKey = profileKey; - this.languageKey = languageKey; - this.relativePath = relativePath; - } - - public String getProfileKey() { - return profileKey; - } - - public String getLanguageKey() { - return languageKey; - } - - public String getRelativePath() { - return relativePath; - } -} diff --git a/it/it-tests/src/test/java/util/ProjectAnalysis.java b/it/it-tests/src/test/java/util/ProjectAnalysis.java deleted file mode 100644 index e60f4c37704..00000000000 --- a/it/it-tests/src/test/java/util/ProjectAnalysis.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util; - -public interface ProjectAnalysis { - /** - * Creates a new ProjectAnalysis which will use the specified quality profile. - * - * @throws IllegalArgumentException if the quality profile with the specified key has not been loaded into the Rule - * @see {@link ProjectAnalysisRule#registerProfile(String)} - */ - ProjectAnalysis withQualityProfile(String qualityProfileKey); - - /** - * Creates a new ProjectAnalysis which will use the built-in Xoo empty profile. - */ - ProjectAnalysis withXooEmptyProfile(); - - /** - * Creates a new ProjectAnalysis which will have debug logs enabled (or not). - */ - ProjectAnalysis withDebugLogs(boolean enabled); - - /** - * Creates a new ProjectAnalysis which will have the specified properties. - */ - ProjectAnalysis withProperties(String... properties); - - /** - * Execute the current ProjectAnalysis. - * This method can be called any number of time and will run the same analysis again and again. - */ - void run(); -} diff --git a/it/it-tests/src/test/java/util/ProjectAnalysisRule.java b/it/it-tests/src/test/java/util/ProjectAnalysisRule.java deleted file mode 100644 index 9483bb79ed8..00000000000 --- a/it/it-tests/src/test/java/util/ProjectAnalysisRule.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util; - -import com.google.common.base.MoreObjects; -import com.google.common.collect.ImmutableMap; -import com.sonar.orchestrator.Orchestrator; -import com.sonar.orchestrator.build.SonarRunner; -import java.util.HashSet; -import java.util.Set; -import javax.annotation.CheckForNull; -import javax.annotation.Nullable; -import javax.annotation.concurrent.Immutable; -import org.junit.rules.ExternalResource; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static java.util.Objects.requireNonNull; -import static util.ItUtils.resetSettings; - -/** - * Rule wrapping around an {@link Orchestrator} instance which handle: - * <ul> - * <li>automatic reset of Orchestrator data after each method when used as a {@link org.junit.Rule}, - * after each class when used as a {@link org.junit.ClassRule}</li> - * <li>automatic reset of server properties after each method when used as a {@link org.junit.Rule}, - * after each class when used as a {@link org.junit.ClassRule}</li> - * <li>associating project with a specific Quality Profile before running an analysis</li> - * <li>provisioning a project before its first analysis so that a Quality Profile can be associated to it</li> - * <li>"restoring" a Quality Profile before an analysis with a specific Quality Profile</li> - * </ul> - * - * This Rule has preparatory methods ({@link #registerProfile(String)} and {@link #registerProject(String)}) which - * will allow consequent calls to the rule methods to be based solely on Quality Profile and Project keys. In addition, - * these methods returns the Quality Profile and Project key to avoid information duplication (the only magic string - * the IT developer has to know is the relative path of the Project or the Quality Profile). - * - * To run an analysis, use method {@link #newProjectAnalysis(String)} to create a {@link ProjectAnalysis} - * object. This object has a {@link ProjectAnalysis#run()} method which will start the analysis. - * {@link ProjectAnalysis} can safely be reused to run the same analysis multiple times. In addition, these objects are - * immutable. Any call to one of their method which would modify their state will create a new instance which can also - * be reused at will. - */ -public class ProjectAnalysisRule extends ExternalResource { - - private final Orchestrator orchestrator; - private final LoadedProfiles loadedProfiles = new LoadedProfiles(); - private final LoadedProjects loadedProjects = new LoadedProjects(); - private final Set<String> serverProperties = new HashSet<>(); - - private ProjectAnalysisRule(Orchestrator orchestrator) { - this.orchestrator = orchestrator; - } - - public static ProjectAnalysisRule from(Orchestrator orchestrator) { - return new ProjectAnalysisRule(requireNonNull(orchestrator, "Orchestrator instance can not be null")); - } - - /** - * @param relativePathToProfile eg.: "/issue/suite/IssueFilterExtensionTest/xoo-with-many-rules.xml" - * - * @return the quality profile key - */ - public String registerProfile(String relativePathToProfile) { - return this.loadedProfiles.loadProfile(relativePathToProfile); - } - - /** - * @param projectRelativePath path relative to it/it-projects, eg. "shared/xoo-multi-modules-sample" - * - * @return the project key - */ - public String registerProject(String projectRelativePath) { - return this.loadedProjects.load(projectRelativePath); - } - - public ProjectAnalysis newProjectAnalysis(String projectKey) { - ProjectState projectState = this.loadedProjects.getProjectState(projectKey); - - return new ProjectAnalysisImpl(projectState, null, false); - } - - @Override - protected void before() throws Throwable { - orchestrator.resetData(); - } - - @Override - protected void after() { - resetServerProperties(); - resetRuleState(); - } - - private void resetServerProperties() { - resetSettings(orchestrator, null, serverProperties.toArray(new String[] {})); - } - - public void setServerPropertyImpl(String key, @Nullable String value) { - ItUtils.setServerProperty(orchestrator, key, value); - } - - public ProjectAnalysisRule setServerProperty(String key, String value) { - setServerPropertyImpl(key, value); - this.serverProperties.add(key); - return this; - } - - @Immutable - private final class ProjectAnalysisImpl implements ProjectAnalysis { - private final ProjectState projectState; - @CheckForNull - private final Profile qualityProfile; - private final boolean debugLogs; - @CheckForNull - private final String[] properties; - - private ProjectAnalysisImpl(ProjectState projectState, @Nullable Profile qualityProfile, boolean debugLogs, String... properties) { - this.projectState = projectState; - this.qualityProfile = qualityProfile; - this.debugLogs = debugLogs; - this.properties = properties; - } - - @Override - public ProjectAnalysis withQualityProfile(String qualityProfileKey) { - checkNotNull(qualityProfileKey, "Specified Quality Profile Key can not be null"); - if (this.qualityProfile != null && this.qualityProfile.getProfileKey().equals(qualityProfileKey)) { - return this; - } - - return new ProjectAnalysisImpl(this.projectState, loadedProfiles.getState(qualityProfileKey), this.debugLogs, this.properties); - } - - @Override - public ProjectAnalysis withXooEmptyProfile() { - if (this.qualityProfile == Profile.XOO_EMPTY_PROFILE) { - return this; - } - return new ProjectAnalysisImpl(this.projectState, Profile.XOO_EMPTY_PROFILE, this.debugLogs, this.properties); - } - - @Override - public ProjectAnalysis withDebugLogs(boolean enabled) { - if (this.debugLogs == enabled) { - return this; - } - return new ProjectAnalysisImpl(this.projectState, this.qualityProfile, enabled, this.properties); - } - - @Override - public ProjectAnalysis withProperties(String... properties) { - checkArgument( - properties == null || properties.length % 2 == 0, - "there must be an even number of String parameters (got %s): key/value pairs must be complete", properties == null ? 0 : properties.length); - return new ProjectAnalysisImpl(this.projectState, this.qualityProfile, this.debugLogs, properties); - } - - @Override - public void run() { - provisionIfNecessary(); - setQualityProfileIfNecessary(); - runAnalysis(); - } - - private void setQualityProfileIfNecessary() { - if (this.qualityProfile != null) { - if (this.qualityProfile != Profile.XOO_EMPTY_PROFILE) { - ItUtils.restoreProfile(orchestrator, getClass().getResource(this.qualityProfile.getRelativePath())); - } - orchestrator.getServer().associateProjectToQualityProfile( - this.projectState.getProjectKey(), - this.qualityProfile.getLanguageKey(), - this.qualityProfile.getProfileKey()); - } - } - - private void provisionIfNecessary() { - if (this.qualityProfile != null && !projectState.isProvisioned()) { - String projectKey = projectState.getProjectKey(); - orchestrator.getServer().provisionProject(projectKey, MoreObjects.firstNonNull(projectState.getProjectName(), projectKey)); - projectState.setProvisioned(true); - } - } - - private SonarRunner runAnalysis() { - SonarRunner sonarRunner = SonarRunner.create(projectState.getProjectDir()); - ImmutableMap.Builder<String, String> builder = ImmutableMap.builder(); - for (int i = 0; i < this.properties.length; i += 2) { - builder.put(this.properties[i], this.properties[i + 1]); - } - SonarRunner scan = sonarRunner.setDebugLogs(this.debugLogs).setProperties(builder.build()); - orchestrator.executeBuild(scan); - return scan; - } - } - - private void resetRuleState() { - this.loadedProjects.reset(); - this.loadedProfiles.reset(); - this.serverProperties.clear(); - } - -} diff --git a/it/it-tests/src/test/java/util/ProjectState.java b/it/it-tests/src/test/java/util/ProjectState.java deleted file mode 100644 index cfa310326b4..00000000000 --- a/it/it-tests/src/test/java/util/ProjectState.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util; - -import java.io.File; -import java.util.Properties; - -import static com.google.common.base.Preconditions.checkState; -import static util.LoadedProjects.SONAR_PROJECT_PROPERTIES_FILE_NAME; - -final class ProjectState { - private static final String SONAR_PROJECT_KEY_PROPERTY_NAME = "sonar.projectKey"; - private static final String SONAR_PROJECT_NAME_PROPERTY_NAME = "sonar.projectName"; - - private final File projectDir; - private final Properties properties; - private boolean provisioned = false; - - ProjectState(File projectDir, Properties properties) { - this.projectDir = projectDir; - this.properties = properties; - } - - public File getProjectDir() { - return projectDir; - } - - public Properties getProperties() { - return properties; - } - - public String getProjectKey() { - return getProperty(SONAR_PROJECT_KEY_PROPERTY_NAME); - } - - public String getProjectName() { - return getProperty(SONAR_PROJECT_NAME_PROPERTY_NAME); - } - - private String getProperty(String propertyName) { - String value = this.properties.getProperty(propertyName); - checkState(value != null, "Property %s is missing in %s file in project directory %s", - propertyName, SONAR_PROJECT_PROPERTIES_FILE_NAME, projectDir.getAbsolutePath()); - return value; - } - - public boolean isProvisioned() { - return provisioned; - } - - public void setProvisioned(boolean provisioned) { - this.provisioned = provisioned; - } -} diff --git a/it/it-tests/src/test/java/util/issue/IssueRule.java b/it/it-tests/src/test/java/util/issue/IssueRule.java deleted file mode 100644 index 7857d3cabdc..00000000000 --- a/it/it-tests/src/test/java/util/issue/IssueRule.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.issue; - -import com.sonar.orchestrator.Orchestrator; -import java.util.List; -import org.junit.rules.ExternalResource; -import org.sonarqube.ws.Issues.Issue; -import org.sonarqube.ws.Issues.SearchWsResponse; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.issue.SearchWsRequest; - -import static java.util.Arrays.asList; -import static java.util.Collections.singletonList; -import static java.util.Objects.requireNonNull; -import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; - -public class IssueRule extends ExternalResource { - - private final Orchestrator orchestrator; - - private WsClient adminWsClient; - - private IssueRule(Orchestrator orchestrator) { - this.orchestrator = orchestrator; - } - - public static IssueRule from(Orchestrator orchestrator) { - return new IssueRule(requireNonNull(orchestrator, "Orchestrator instance can not be null")); - } - - public SearchWsResponse search(SearchWsRequest request) { - return adminWsClient().issues().search(request); - } - - public Issue getRandomIssue() { - List<Issue> issues = search(new SearchWsRequest()).getIssuesList(); - assertThat(issues).isNotEmpty(); - return issues.get(0); - } - - public Issue getByKey(String issueKey) { - List<Issue> issues = search(new SearchWsRequest().setIssues(singletonList(issueKey)).setAdditionalFields(singletonList("_all"))).getIssuesList(); - assertThat(issues).hasSize(1); - return issues.iterator().next(); - } - - public List<Issue> getByKeys(String... issueKeys) { - List<Issue> issues = search(new SearchWsRequest().setIssues(asList(issueKeys)).setAdditionalFields(singletonList("_all"))).getIssuesList(); - assertThat(issues).hasSize(issueKeys.length); - return issues; - } - - private WsClient adminWsClient() { - if (adminWsClient == null) { - adminWsClient = newAdminWsClient(orchestrator); - } - return adminWsClient; - } - -} diff --git a/it/it-tests/src/test/java/util/selenium/ByCssSelectorOrByNameOrById.java b/it/it-tests/src/test/java/util/selenium/ByCssSelectorOrByNameOrById.java deleted file mode 100644 index 364ba779d6e..00000000000 --- a/it/it-tests/src/test/java/util/selenium/ByCssSelectorOrByNameOrById.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -import java.io.Serializable; -import java.util.Collections; -import java.util.List; -import org.openqa.selenium.By; -import org.openqa.selenium.SearchContext; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.internal.FindsByCssSelector; -import org.openqa.selenium.internal.FindsById; -import org.openqa.selenium.internal.FindsByName; - -public class ByCssSelectorOrByNameOrById extends By implements Serializable { - private static final long serialVersionUID = -3910258723099459239L; - - private final String selector; - - public ByCssSelectorOrByNameOrById(String selector) { - this.selector = selector; - } - - @Override - public WebElement findElement(SearchContext context) { - WebElement element; - - if (validCssSelector(selector)) { - element = ((FindsByCssSelector) context).findElementByCssSelector(quoteCss(selector)); - if (element != null) { - return element; - } - } - - element = ((FindsByName) context).findElementByName(selector); - if (element != null) { - return element; - } - - element = ((FindsById) context).findElementById(selector); - if (element != null) { - return element; - } - - return null; - } - - @Override - public List<WebElement> findElements(SearchContext context) { - List<WebElement> elements; - - if (validCssSelector(selector)) { - elements = ((FindsByCssSelector) context).findElementsByCssSelector(quoteCss(selector)); - if ((elements != null) && (!elements.isEmpty())) { - return elements; - } - } - - elements = ((FindsByName) context).findElementsByName(selector); - if ((elements != null) && (!elements.isEmpty())) { - return elements; - } - - elements = ((FindsById) context).findElementsById(selector); - if ((elements != null) && (!elements.isEmpty())) { - return elements; - } - - return Collections.emptyList(); - } - - protected boolean validCssSelector(String selector) { - return !selector.endsWith("[]"); - } - - protected String quoteCss(String selector) { - if (selector.startsWith(".")) { - return selector; - } - if (selector.startsWith("#")) { - return selector.replaceAll("(\\w)[.]", "$1\\\\."); - } - return selector; - } - - @Override - public String toString() { - return selector; - } -} diff --git a/it/it-tests/src/test/java/util/selenium/Consumer.java b/it/it-tests/src/test/java/util/selenium/Consumer.java deleted file mode 100644 index 69009893a97..00000000000 --- a/it/it-tests/src/test/java/util/selenium/Consumer.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -public interface Consumer<T> { - void accept(T t); -} diff --git a/it/it-tests/src/test/java/util/selenium/ElementFilter.java b/it/it-tests/src/test/java/util/selenium/ElementFilter.java deleted file mode 100644 index 86b42cfa826..00000000000 --- a/it/it-tests/src/test/java/util/selenium/ElementFilter.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -import com.google.common.base.Function; -import java.util.Collection; -import org.openqa.selenium.WebElement; - -class ElementFilter { - private static final ElementFilter ANY = new ElementFilter("", new Function<Collection<WebElement>, Collection<WebElement>>() { - @Override - public Collection<WebElement> apply(Collection<WebElement> input) { - return input; - } - }); - - private final String description; - private final Function<Collection<WebElement>, Collection<WebElement>> filter; - - ElementFilter(String description, Function<Collection<WebElement>, Collection<WebElement>> filter) { - this.description = description; - this.filter = filter; - } - - public String getDescription() { - return description; - } - - public Function<Collection<WebElement>, Collection<WebElement>> getFilter() { - return filter; - } - - public static ElementFilter any() { - return ANY; - } - - public ElementFilter and(final ElementFilter second) { - if (ANY == this) { - return second; - } - if (ANY == second) { - return this; - } - return new ElementFilter(description + ',' + second.description, new Function<Collection<WebElement>, Collection<WebElement>>() { - @Override - public Collection<WebElement> apply(Collection<WebElement> stream) { - return second.filter.apply(filter.apply(stream)); - } - }); - } -} diff --git a/it/it-tests/src/test/java/util/selenium/Failure.java b/it/it-tests/src/test/java/util/selenium/Failure.java deleted file mode 100644 index 8ba36543820..00000000000 --- a/it/it-tests/src/test/java/util/selenium/Failure.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -import java.util.ArrayList; -import java.util.List; - -class Failure { - private static final String PREFIX = Failure.class.getPackage().getName() + "."; - - private Failure() { - // Static class - } - - public static AssertionError create(String message) { - AssertionError error = new AssertionError(message); - removeSimpleleniumFromStackTrace(error); - return error; - } - - private static void removeSimpleleniumFromStackTrace(Throwable throwable) { - List<StackTraceElement> filtered = new ArrayList<>(); - - for (StackTraceElement element : throwable.getStackTrace()) { - if (!element.getClassName().contains(PREFIX)) { - filtered.add(element); - } - } - - throwable.setStackTrace(filtered.toArray(new StackTraceElement[filtered.size()])); - } -} diff --git a/it/it-tests/src/test/java/util/selenium/LazyDomElement.java b/it/it-tests/src/test/java/util/selenium/LazyDomElement.java deleted file mode 100644 index 27c5199f820..00000000000 --- a/it/it-tests/src/test/java/util/selenium/LazyDomElement.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -import com.google.common.base.Function; -import com.google.common.base.Predicate; -import com.google.common.base.Supplier; -import com.google.common.collect.FluentIterable; -import java.util.Collection; -import java.util.List; -import java.util.NoSuchElementException; -import javax.annotation.Nullable; -import org.openqa.selenium.By; -import org.openqa.selenium.Keys; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.interactions.Actions; -import org.openqa.selenium.support.ui.Select; - -class LazyDomElement { - private final WebDriver driver; - private final By selector; - private final ElementFilter filter; - private final Retry retry; - - LazyDomElement(WebDriver driver, By selector) { - this(driver, selector, Retry._30_SECONDS); - } - - LazyDomElement(WebDriver driver, By selector, Retry retry) { - this(driver, selector, ElementFilter.any(), retry); - } - - private LazyDomElement(WebDriver driver, By selector, ElementFilter filter, Retry retry) { - this.driver = driver; - this.selector = selector; - this.filter = filter; - this.retry = retry; - } - - public LazyDomElement withText(final String text) { - String fullDescription = " with text [" + text + "]"; - - return with(new ElementFilter(fullDescription, new Function<Collection<WebElement>, Collection<WebElement>>() { - @Override - public Collection<WebElement> apply(Collection<WebElement> stream) { - return FluentIterable.from(stream).filter(new Predicate<WebElement>() { - @Override - public boolean apply(@Nullable WebElement element) { -// return Objects.equals(element.getText(), text); - return element.getText().contains(text); - } - }).toList(); - } - })); - } - - public LazyShould should() { - return new LazyShould(this, Retry._30_SECONDS, true); - } - - public void fill(final CharSequence text) { - execute("fill(" + text + ")", new Consumer<WebElement>() { - @Override - public void accept(WebElement element) { - element.clear(); - element.sendKeys(text); - } - }); - } - - public void pressEnter() { - execute("pressEnter", new Consumer<WebElement>() { - @Override - public void accept(WebElement element) { - element.sendKeys(Keys.ENTER); - } - }); - } - - public void select(final String text) { - executeSelect("select(" + text + ")", new Consumer<Select>() { - @Override - public void accept(Select select) { - select.selectByVisibleText(text); - } - }); - } - - public void executeSelect(String description, final Consumer<Select> selectOnElement) { - execute(description, new Consumer<WebElement>() { - @Override - public void accept(WebElement element) { - selectOnElement.accept(new Select(element)); - } - }); - } - - public void click() { - execute("click", new Consumer<WebElement>() { - @Override - public void accept(WebElement element) { - new Actions(driver).moveToElement(element); - element.click(); - } - }); - } - - public void check() { - execute("check", new Consumer<WebElement>() { - @Override - public void accept(WebElement element) { - if (!element.isSelected()) { - element.click(); - } - } - }); - } - - public void execute(Consumer<WebElement> action) { - execute("execute(" + action + ")", action); - } - - private LazyDomElement with(ElementFilter filter) { - return new LazyDomElement(driver, selector, this.filter.and(filter), retry); - } - - private void execute(String message, Consumer<WebElement> action) { - System.out.println(" - " + Text.toString(selector) + filter.getDescription() + "." + message); - - Supplier<Optional<WebElement>> findOne = new Supplier<Optional<WebElement>>() { - @Override - public Optional<WebElement> get() { - List<WebElement> elements = stream(); - if (elements.isEmpty()) { - return Optional.empty(); - } - return Optional.of(elements.get(0)); - } - }; - - try { - retry.execute(findOne, action); - } catch (NoSuchElementException e) { - throw new AssertionError("Element not found: " + Text.toString(selector)); - } - } - - List<WebElement> stream() { - return FluentIterable.from(filter.getFilter().apply(driver.findElements(selector))).toList(); - } - - @Override - public String toString() { - return Text.toString(selector) + filter.getDescription(); - } -} diff --git a/it/it-tests/src/test/java/util/selenium/LazyShould.java b/it/it-tests/src/test/java/util/selenium/LazyShould.java deleted file mode 100644 index c880a7d944b..00000000000 --- a/it/it-tests/src/test/java/util/selenium/LazyShould.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -import com.google.common.base.Function; -import com.google.common.base.Joiner; -import com.google.common.base.Predicate; -import com.google.common.base.Predicates; -import com.google.common.base.Supplier; -import com.google.common.collect.FluentIterable; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.regex.Pattern; -import javax.annotation.Nullable; -import org.openqa.selenium.WebElement; - -class LazyShould { - private final LazyDomElement element; - private final Retry retry; - private final boolean ok; - - LazyShould(LazyDomElement element, Retry retry, boolean ok) { - this.element = element; - this.retry = retry; - this.ok = ok; - } - - public LazyShould beDisplayed() { - return verify( - isOrNot("displayed"), - new Predicate<List<WebElement>>() { - @Override - public boolean apply(List<WebElement> elements) { - return !elements.isEmpty() && FluentIterable.from(elements).allMatch(new Predicate<WebElement>() { - @Override - public boolean apply(WebElement element) { - return element.isDisplayed(); - } - }); - } - }, - new Function<List<WebElement>, String>() { - @Override - public String apply(List<WebElement> elements) { - return "It is " + statuses(elements, new Function<WebElement, String>() { - @Override - public String apply(WebElement element) { - return displayedStatus(element); - } - }); - } - }); - } - - public LazyShould match(final Pattern regexp) { - return verify( - doesOrNot("match") + " (" + regexp.pattern() + ")", - new Predicate<List<WebElement>>() { - @Override - public boolean apply(List<WebElement> elements) { - return !elements.isEmpty() && FluentIterable.from(elements).anyMatch(new Predicate<WebElement>() { - @Override - public boolean apply(WebElement element) { - return regexp.matcher(WebElementHelper.text(element)).matches(); - } - }); - } - }, - new Function<List<WebElement>, String>() { - @Override - public String apply(List<WebElement> elements) { - return "It contains " + statuses(elements, new Function<WebElement, String>() { - @Nullable - @Override - public String apply(@Nullable WebElement element) { - return WebElementHelper.text(element); - } - }); - } - }); - } - - public LazyShould contain(final String text) { - return verify( - doesOrNot("contain") + "(" + text + ")", - new Predicate<List<WebElement>>() { - @Override - public boolean apply(List<WebElement> elements) { - return FluentIterable.from(elements).anyMatch(new Predicate<WebElement>() { - @Override - public boolean apply(@Nullable WebElement element) { - if (text.startsWith("exact:")) { - return WebElementHelper.text(element).equals(text.substring(6)); - } - return WebElementHelper.text(element).contains(text); - } - }); - } - }, - new Function<List<WebElement>, String>() { - @Override - public String apply(List<WebElement> elements) { - return "It contains " + statuses(elements, new Function<WebElement, String>() { - @Override - public String apply(WebElement element) { - return WebElementHelper.text(element); - } - }); - } - }); - } - - public LazyShould exist() { - return verify( - doesOrNot("exist"), - new Predicate<List<WebElement>>() { - @Override - public boolean apply(List<WebElement> elements) { - return !elements.isEmpty(); - } - }, - new Function<List<WebElement>, String>() { - @Override - public String apply(List<WebElement> elements) { - return "It contains " + Text.plural(elements.size(), "element"); - } - }); - } - - private static String displayedStatus(WebElement element) { - return element.isDisplayed() ? "displayed" : "not displayed"; - } - - private LazyShould verify(String message, Predicate<List<WebElement>> predicate, Function<List<WebElement>, String> toErrorMessage) { - String verification = "verify that " + element + " " + message; - System.out.println(" -> " + verification); - - try { - if (!retry.verify(new Supplier<List<WebElement>>() { - @Override - public List<WebElement> get() { - return LazyShould.this.findElements(); - } - }, ok ? predicate : Predicates.not(predicate))) { - throw Failure.create("Failed to " + verification + ". " + toErrorMessage.apply(findElements())); - } - } catch (NoSuchElementException e) { - throw Failure.create("Element not found. Failed to " + verification); - } - - return ok ? this : not(); - } - - private List<WebElement> findElements() { - return element.stream(); - } - - private static String statuses(List<WebElement> elements, Function<WebElement, String> toStatus) { - return "(" + FluentIterable.from(elements).transform(toStatus).join(Joiner.on(";")) + ")"; - } - - public LazyShould not() { - return new LazyShould(element, retry, !ok); - } - - private String doesOrNot(String verb) { - return Text.doesOrNot(!ok, verb); - } - - private String isOrNot(String state) { - return Text.isOrNot(!ok, state); - } -} diff --git a/it/it-tests/src/test/java/util/selenium/Optional.java b/it/it-tests/src/test/java/util/selenium/Optional.java deleted file mode 100644 index 918d488a85f..00000000000 --- a/it/it-tests/src/test/java/util/selenium/Optional.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -import java.util.NoSuchElementException; - -public final class Optional<T> { - private static final Optional<?> EMPTY = new Optional<>(); - - private final T value; - - private Optional() { - this.value = null; - } - - public static <T> Optional<T> empty() { - @SuppressWarnings("unchecked") - Optional<T> t = (Optional<T>) EMPTY; - return t; - } - - private Optional(T value) { - this.value = value; - } - - public static <T> Optional<T> of(T value) { - return new Optional<>(value); - } - - public T get() { - if (value == null) { - throw new NoSuchElementException("No value present"); - } - return value; - } - - public boolean isPresent() { - return value != null; - } -} diff --git a/it/it-tests/src/test/java/util/selenium/Retry.java b/it/it-tests/src/test/java/util/selenium/Retry.java deleted file mode 100644 index 7cc8a20897c..00000000000 --- a/it/it-tests/src/test/java/util/selenium/Retry.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -import com.google.common.base.Predicate; -import com.google.common.base.Supplier; -import java.util.NoSuchElementException; -import java.util.concurrent.TimeUnit; -import org.openqa.selenium.InvalidElementStateException; -import org.openqa.selenium.NotFoundException; -import org.openqa.selenium.StaleElementReferenceException; -import org.openqa.selenium.WebDriverException; - -import static java.util.concurrent.TimeUnit.SECONDS; - -class Retry { - public static final Retry _30_SECONDS = new Retry(30, SECONDS); - - private final long timeoutInMs; - - Retry(long duration, TimeUnit timeUnit) { - this.timeoutInMs = timeUnit.toMillis(duration); - } - - <T> void execute(Supplier<Optional<T>> target, Consumer<T> action) { - WebDriverException lastError = null; - - boolean retried = false; - - long start = System.currentTimeMillis(); - while ((System.currentTimeMillis() - start) < timeoutInMs) { - try { - Optional<T> targetElement = target.get(); - if (targetElement.isPresent()) { - action.accept(targetElement.get()); - if (retried) { - System.out.println(); - } - return; - } - } catch (StaleElementReferenceException e) { - // ignore - } catch (WebDriverException e) { - lastError = e; - } - - retried = true; - System.out.print("."); - } - - if (retried) { - System.out.println(); - } - - if (lastError != null) { - throw lastError; - } - throw new NoSuchElementException("Not found"); - } - - <T> void execute(Runnable action) { - WebDriverException lastError = null; - - boolean retried = false; - - long start = System.currentTimeMillis(); - while ((System.currentTimeMillis() - start) < timeoutInMs) { - try { - action.run(); - if (retried) { - System.out.println(); - } - return; - } catch (StaleElementReferenceException e) { - // ignore - } catch (WebDriverException e) { - lastError = e; - } - - retried = true; - System.out.print("."); - } - - if (retried) { - System.out.println(); - } - - if (lastError != null) { - throw lastError; - } - throw new NoSuchElementException("Not found"); - } - - <T> boolean verify(Supplier<T> targetSupplier, Predicate<T> predicate) throws NoSuchElementException { - Error error = Error.KO; - - boolean retried = false; - - long start = System.currentTimeMillis(); - while ((System.currentTimeMillis() - start) < timeoutInMs) { - try { - if (predicate.apply(targetSupplier.get())) { - if (retried) { - System.out.println(); - } - return true; - } - - error = Error.KO; - } catch (InvalidElementStateException e) { - error = Error.KO; - } catch (NotFoundException e) { - error = Error.NOT_FOUND; - } catch (StaleElementReferenceException e) { - // ignore - } - - retried = true; - System.out.print("."); - } - - if (retried) { - System.out.println(); - } - - if (error == Error.NOT_FOUND) { - throw new NoSuchElementException("Not found"); - } - return false; - } - - enum Error { - NOT_FOUND, KO - } -} diff --git a/it/it-tests/src/test/java/util/selenium/Selenese.java b/it/it-tests/src/test/java/util/selenium/Selenese.java deleted file mode 100644 index 4e01674e59b..00000000000 --- a/it/it-tests/src/test/java/util/selenium/Selenese.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -import com.sonar.orchestrator.Orchestrator; -import java.io.File; -import javax.annotation.Nullable; -import org.apache.commons.io.FileUtils; -import org.sonarqube.test.Tester; - -/** - * Selenium HTML tests, generally written with Selenium IDE - * @deprecated replaced by {@link Tester} - */ -@Deprecated -public final class Selenese { - - private File[] htmlTests; - - public Selenese(Builder builder) { - this.htmlTests = builder.htmlTests; - } - - public File[] getHtmlTests() { - return htmlTests; - } - - /** - * @deprecated replaced by {@link Tester#runHtmlTests(String...)} - */ - @Deprecated - public static void runSelenese(Orchestrator orchestrator, String... htmlFiles) { - Selenese selenese = new Builder() - .setHtmlTests(htmlFiles) - .build(); - new SeleneseRunner().runOn(selenese, orchestrator); - } - - private static final class Builder { - private File[] htmlTests; - - private Builder() { - } - - public Builder setHtmlTests(File... htmlTests) { - this.htmlTests = htmlTests; - return this; - } - - public Builder setHtmlTests(String... htmlTestPaths) { - this.htmlTests = new File[htmlTestPaths.length]; - for (int index = 0; index < htmlTestPaths.length; index++) { - htmlTests[index] = FileUtils.toFile(getClass().getResource(htmlTestPaths[index])); - } - return this; - } - - public Selenese build() { - if (htmlTests == null || htmlTests.length == 0) { - throw new IllegalArgumentException("HTML suite or tests are missing"); - } - for (File htmlTest : htmlTests) { - checkPresence(htmlTest); - } - return new Selenese(this); - } - - private static void checkPresence(@Nullable File file) { - if (file == null || !file.isFile() || !file.exists()) { - throw new IllegalArgumentException("HTML file does not exist: " + file); - } - } - } -} diff --git a/it/it-tests/src/test/java/util/selenium/SeleneseRunner.java b/it/it-tests/src/test/java/util/selenium/SeleneseRunner.java deleted file mode 100644 index cefc5c6ef09..00000000000 --- a/it/it-tests/src/test/java/util/selenium/SeleneseRunner.java +++ /dev/null @@ -1,440 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -import com.sonar.orchestrator.Orchestrator; -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.regex.Pattern; -import org.assertj.core.util.Strings; -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.jsoup.nodes.Element; -import org.openqa.selenium.By; -import org.openqa.selenium.JavascriptExecutor; -import org.openqa.selenium.NotFoundException; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.logging.LogEntries; -import org.openqa.selenium.logging.LogEntry; -import org.openqa.selenium.logging.LogType; -import pageobjects.SelenideConfig; - -import static java.nio.charset.StandardCharsets.UTF_8; -import static java.util.Objects.requireNonNull; -import static java.util.regex.Pattern.DOTALL; -import static org.assertj.core.api.Assertions.assertThat; -import static util.selenium.Retry._30_SECONDS; - -class SeleneseRunner { - - private Map<String, String> variables; - private String baseUrl; - private WebDriver driver; - - void runOn(Selenese selenese, Orchestrator orchestrator) { - this.variables = new HashMap<>(); - this.baseUrl = orchestrator.getServer().getUrl(); - this.driver = SelenideConfig.configure(orchestrator); - - driver.manage().deleteAllCookies(); - - for (File file : selenese.getHtmlTests()) { - System.out.println(); - System.out.println("============ " + file.getName() + " ============"); - Document doc = parse(file); - for (Element table : doc.getElementsByTag("table")) { - for (Element tbody : table.getElementsByTag("tbody")) { - for (Element tr : tbody.getElementsByTag("tr")) { - String action = tr.child(0).text(); - String param1 = tr.child(1).text(); - String param2 = tr.child(2).text(); - - try { - action(action, param1, param2); - } catch (AssertionError e) { - analyzeLog(driver); - throw e; - } - } - } - } - } - } - - private static void analyzeLog(WebDriver driver) { - LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER); - for (LogEntry entry : logEntries) { - System.out.println(new Date(entry.getTimestamp()) + " " + entry.getLevel() + " " + entry.getMessage()); - } - } - - private static Document parse(File file) { - try { - return Jsoup.parse(file, UTF_8.name()); - } catch (IOException e) { - throw new RuntimeException("Unable to parse file: " + file, e); - } - } - - public SeleneseRunner action(String action, String param1, String param2) { - switch (action) { - case "open": - open(param1); - return this; - case "type": - type(param1, param2); - return this; - case "keyPressAndWait": - keyPressAndWait(param1, param2); - return this; - case "select": - select(param1, param2); - return this; - case "clickAndWait": - case "click": - click(param1); - return this; - case "check": - check(param1); - return this; - case "selectFrame": - selectFrame(param1); - return this; - case "assertElementPresent": - assertElementPresent(param1); - return this; - case "assertElementNotPresent": - assertElementNotPresent(param1); - return this; - case "storeText": - storeText(param1, param2); - return this; - case "storeEval": - storeEval(param1, param2); - return this; - case "store": - store(param1, param2); - return this; - case "assertText": - case "waitForText": - assertText(param1, param2); - return this; - case "assertNotText": - case "waitForNotText": - assertNotText(param1, param2); - return this; - case "assertTextPresent": - assertTextPresent(param1); - return this; - case "assertTextNotPresent": - assertTextNotPresent(param1); - return this; - case "assertLocation": - assertLocation(param1); - return this; - case "verifyHtmlSource": - verifyHtmlSource(param1); - return this; - case "waitForElementPresent": - waitForElementPresent(param1, param2); - return this; - case "waitForElementNotPresent": - waitForElementNotPresent(param1, param2); - return this; - case "waitForVisible": - waitForVisible(param1); - return this; - case "waitForXpathCount": - waitForXpathCount(param1, Integer.parseInt(param2)); - return this; - case "assertValue": - case "waitForValue": - case "verifyValue": - assertInputValue(param1, param2); - return this; - case "assertConfirmation": - confirm(param1); - return this; - case "setTimeout": - case "pause": - // Ignore - return this; - } - - throw new IllegalArgumentException("Unsupported action: " + action); - } - - private void open(String url) { - if (url.startsWith("/sonar/")) { - goTo(url.substring(6)); - } else { - goTo(url); - } - } - - private void goTo(String url) { - requireNonNull(url, "The url cannot be null"); - - url = replacePlaceholders(url); - - URI uri = URI.create(url.replace(" ", "%20").replace("|", "%7C")); - if (!uri.isAbsolute()) { - url = baseUrl + url; - } - - System.out.println("goTo " + url); - driver.get(url); - System.out.println(" - current url " + driver.getCurrentUrl()); - } - - private LazyDomElement find(String selector) { - selector = replacePlaceholders(selector); - - if (selector.startsWith("link=") || selector.startsWith("Link=")) { - return find("a").withText(selector.substring(5)); - } - - By by; - if (selector.startsWith("//")) { - by = new By.ByXPath(selector); - } else if (selector.startsWith("xpath=")) { - by = new By.ByXPath(selector.substring(6)); - } else if (selector.startsWith("id=")) { - by = new By.ById(selector.substring(3)); - } else if (selector.startsWith("name=")) { - by = new By.ByName(selector.substring(5)); - } else if (selector.startsWith("css=")) { - by = new By.ByCssSelector(selector.substring(4)); - } else if (selector.startsWith("class=")) { - by = new By.ByCssSelector("." + selector.substring(6)); - } else { - by = new ByCssSelectorOrByNameOrById(selector); - } - - return new LazyDomElement(driver, by); - } - - private void click(String selector) { - find(selector).click(); - } - - private void check(String selector) { - find(selector).check(); - } - - private void selectFrame(final String id) { - if ("relative=parent".equals(id)) { - return; - } - - System.out.println(" - selectFrame(" + id + ")"); - _30_SECONDS.execute(new Runnable() { - @Override - public void run() { - driver.switchTo().frame(id); - } - }); - } - - private void type(String selector, String text) { - find(selector).fill(replacePlaceholders(text)); - } - - private void keyPressAndWait(String selector, String key) { - if (!key.equals("\\13")) { - throw new IllegalArgumentException("Invalid key: " + key); - } - find(selector).pressEnter(); - } - - private void select(String selector, String text) { - if (text.startsWith("label=")) { - find(selector).select(text.substring(6)); - } else { - find(selector).select(text); - } - } - - private void assertElementPresent(String selector) { - find(selector).should().beDisplayed(); - } - - private void assertElementNotPresent(String selector) { - find(selector).should().not().beDisplayed(); - } - - private void storeText(String selector, String name) { - find(selector).execute(new ExtractVariable(name)); - } - - private void storeEval(final String expression, final String name) { - // Retry until it's not null and doesn't fail - _30_SECONDS.execute(new Runnable() { - @Override - public void run() { - Object result = ((JavascriptExecutor) driver).executeScript("return " + expression); - if (result == null) { - throw new NotFoundException(expression); - } - String value = result.toString(); - variables.put(name, value); - } - }); - } - - private void store(String expression, String name) { - if (expression.startsWith("javascript{") && expression.endsWith("}")) { - storeEval(expression.substring(11, expression.length() - 1), name); - } else { - throw new IllegalArgumentException("Invalid store expression: " + expression); - } - } - - private class ExtractVariable implements Consumer<WebElement> { - private final String name; - - ExtractVariable(String name) { - this.name = name; - } - - @Override - public void accept(WebElement webElement) { - variables.put(name, webElement.getText()); - } - - public String toString() { - return "read value into " + name; - } - } - - private void assertText(String selector, String pattern) { - pattern = replacePlaceholders(pattern); - - if (pattern.startsWith("exact:")) { - String expectedText = pattern.substring(6); - find(selector).withText(expectedText).should().exist(); - return; - } - - if (pattern.startsWith("regexp:")) { - find(selector).should().match(regex(pattern)); - return; - } - - find(selector).should().match(glob(pattern)); - } - - private void assertNotText(String selector, String pattern) { - pattern = replacePlaceholders(pattern); - - if (pattern.startsWith("exact:")) { - String expectedText = pattern.substring(6); - find(selector).withText(expectedText).should().not().exist(); - return; - } - - if (pattern.startsWith("regexp:")) { - find(selector).should().not().match(regex(pattern)); - return; - } - - find(selector).should().not().match(glob(pattern)); - } - - private static Pattern glob(String pattern) { - String regexp = pattern.replaceFirst("glob:", ""); - regexp = regexp.replaceAll("([\\]\\[\\\\{\\}$\\(\\)\\|\\^\\+.])", "\\\\$1"); - regexp = regexp.replaceAll("\\*", ".*"); - regexp = regexp.replaceAll("\\?", "."); - return Pattern.compile(regexp, DOTALL | Pattern.CASE_INSENSITIVE); - } - - private static Pattern regex(String pattern) { - String regexp = pattern.replaceFirst("regexp:", ".*") + ".*"; - return Pattern.compile(regexp, DOTALL | Pattern.CASE_INSENSITIVE); - } - - private void assertTextPresent(String text) { - find("body").should().contain(text); - } - - private void assertTextNotPresent(String text) { - find("body").should().not().contain(text); - } - - private void waitForElementPresent(String selector, String text) { - if (Strings.isNullOrEmpty(text)) { - find(selector).should().exist(); - } else { - find(selector).withText(text).should().exist(); - } - } - - private void waitForElementNotPresent(String selector, String text) { - if (Strings.isNullOrEmpty(text)) { - find(selector).should().not().exist(); - } else { - find(selector).withText(text).should().not().exist(); - } - } - - private void waitForVisible(String selector) { - find(selector).should().beDisplayed(); - } - - private void assertInputValue(String selector, String text) { - find(selector).should().contain(text); - } - - private void waitForXpathCount(String selector, int expectedCount) { - assertThat(find(selector).stream().size()).isEqualTo(expectedCount); - } - - private void confirm(final String message) { - System.out.println(" - confirm(" + message + ")"); - - _30_SECONDS.execute(new Runnable() { - @Override - public void run() { - driver.switchTo().alert().accept(); - } - }); - } - - private void assertLocation(String urlPattern) { - assertThat(driver.getCurrentUrl()).matches(glob(urlPattern)); - } - - private void verifyHtmlSource(String expect) { - assertThat(driver.getPageSource()).matches(glob(expect)); - } - - private String replacePlaceholders(String text) { - for (Map.Entry<String, String> entry : variables.entrySet()) { - text = text.replace("${" + entry.getKey() + "}", entry.getValue()); - } - return text; - } -} diff --git a/it/it-tests/src/test/java/util/selenium/Text.java b/it/it-tests/src/test/java/util/selenium/Text.java deleted file mode 100644 index 5f3b8d259ce..00000000000 --- a/it/it-tests/src/test/java/util/selenium/Text.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -import com.google.common.base.Joiner; -import org.openqa.selenium.By; - -public abstract class Text { - private Text() { - // Static utility class - } - - public static String doesOrNot(boolean not, String verb) { - if (!verb.contains(" ")) { - if (not) { - return "doesn't " + verb; - } else if (verb.endsWith("h")) { - return verb + "es"; - } else { - return verb + "s"; - } - } - - String[] verbs = verb.split(" "); - verbs[0] = doesOrNot(not, verbs[0]); - - return Joiner.on(" ").join(verbs); - } - - public static String isOrNot(boolean not, String state) { - return (not ? "is not " : "is ") + state; - } - - public static String plural(int n, String word) { - return (n + " " + word) + (n <= 1 ? "" : "s"); - } - - public static String toString(By selector) { - return selector.toString().replace("By.selector: ", "").replace("By.cssSelector: ", ""); - } -} diff --git a/it/it-tests/src/test/java/util/selenium/WebElementHelper.java b/it/it-tests/src/test/java/util/selenium/WebElementHelper.java deleted file mode 100644 index edb9d9dccb5..00000000000 --- a/it/it-tests/src/test/java/util/selenium/WebElementHelper.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.selenium; - -import org.openqa.selenium.WebElement; - -class WebElementHelper { - WebElementHelper() { - // Static class - } - - public static String text(WebElement element) { - String text = element.getText(); - if (!"".equals(text)) { - return nullToEmpty(text); - } - - return nullToEmpty(element.getAttribute("value")); - } - - private static String nullToEmpty(String text) { - return (text == null) ? "" : text; - } -} diff --git a/it/it-tests/src/test/java/util/user/GroupManagement.java b/it/it-tests/src/test/java/util/user/GroupManagement.java deleted file mode 100644 index 17d526456f2..00000000000 --- a/it/it-tests/src/test/java/util/user/GroupManagement.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.user; - -import java.util.List; -import java.util.Optional; -import javax.annotation.Nullable; - -/** - * @deprecated replaced by {@link org.sonarqube.test.Tester} - */ -@Deprecated -public interface GroupManagement { - void createGroup(String name); - - void createGroup(String name, @Nullable String description); - - void removeGroups(List<String> groupNames); - - void removeGroups(String... groupNames); - - Optional<Groups.Group> getGroupByName(String name); - - Groups getGroups(); - - void verifyUserGroupMembership(String userLogin, String... groups); - - Groups getUserGroups(String userLogin); - - void associateGroupsToUser(String userLogin, String... groups); -} diff --git a/it/it-tests/src/test/java/util/user/Groups.java b/it/it-tests/src/test/java/util/user/Groups.java deleted file mode 100644 index 5856352a447..00000000000 --- a/it/it-tests/src/test/java/util/user/Groups.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.user; - -import com.google.gson.Gson; -import java.util.List; - -/** - * @deprecated replaced by {@link org.sonarqube.test.Tester} - */ -@Deprecated - -public class Groups { - - private List<Group> groups; - - private Groups(List<Group> groups) { - this.groups = groups; - } - - public List<Group> getGroups() { - return groups; - } - - public static Groups parse(String json) { - Gson gson = new Gson(); - return gson.fromJson(json, Groups.class); - } - - public static class Group { - private final String name; - - private Group(String name) { - this.name = name; - } - - public String getName() { - return name; - } - } -} diff --git a/it/it-tests/src/test/java/util/user/UserRule.java b/it/it-tests/src/test/java/util/user/UserRule.java deleted file mode 100644 index 96f67c4a879..00000000000 --- a/it/it-tests/src/test/java/util/user/UserRule.java +++ /dev/null @@ -1,395 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.user; - -import com.google.common.base.Optional; -import com.google.common.base.Predicate; -import com.google.common.collect.FluentIterable; -import com.sonar.orchestrator.Orchestrator; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.stream.Collectors; -import javax.annotation.CheckForNull; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import org.junit.rules.ExternalResource; -import org.sonarqube.ws.Organizations; -import org.sonarqube.ws.WsUsers; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.ws.client.permission.AddUserWsRequest; -import org.sonarqube.ws.client.user.CreateRequest; -import org.sonarqube.ws.client.user.SearchRequest; -import org.sonarqube.ws.client.user.UsersService; -import util.selenium.Consumer; - -import static java.util.Arrays.asList; -import static java.util.Arrays.stream; -import static java.util.Objects.requireNonNull; -import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.guava.api.Assertions.assertThat; -import static util.ItUtils.newAdminWsClient; - -/** - * @deprecated replaced by {@link org.sonarqube.test.Tester} - */ -@Deprecated -public class UserRule extends ExternalResource implements GroupManagement { - - public static final String ADMIN_LOGIN = "admin"; - private static final AtomicInteger ID_GENERATOR = new AtomicInteger(); - private final Orchestrator orchestrator; - - private WsClient adminWsClient; - private final GroupManagement defaultOrganizationGroupManagement; - - public UserRule(Orchestrator orchestrator) { - this.orchestrator = orchestrator; - this.defaultOrganizationGroupManagement = new GroupManagementImpl(null); - } - - public static UserRule from(Orchestrator orchestrator) { - return new UserRule(requireNonNull(orchestrator, "Orchestrator instance cannot be null")); - } - - @Override - protected void after() { - deactivateAllUsers(); - // TODO delete groups - } - - // ***************** - // Users - // ***************** - - public void resetUsers() { - for (Users.User user : getUsers().getUsers()) { - String userLogin = user.getLogin(); - if (!userLogin.equals(ADMIN_LOGIN)) { - deactivateUsers(userLogin); - } - } - } - - public Users.User verifyUserExists(String login, String name, @Nullable String email) { - Optional<Users.User> user = getUserByLogin(login); - assertThat(user).as("User with login '%s' hasn't been found", login).isPresent(); - assertThat(user.get().getLogin()).isEqualTo(login); - assertThat(user.get().getName()).isEqualTo(name); - assertThat(user.get().getEmail()).isEqualTo(email); - return user.get(); - } - - public void verifyUserExists(String login, String name, @Nullable String email, boolean local) { - Users.User user = verifyUserExists(login, name, email); - assertThat(user.isLocal()).isEqualTo(local); - } - - public void verifyUserDoesNotExist(String login) { - assertThat(getUserByLogin(login)).as("Unexpected user with login '%s' has been found", login).isAbsent(); - } - - public WsUsers.CreateWsResponse.User createUser(String login, String name, @Nullable String email, String password) { - CreateRequest.Builder request = CreateRequest.builder() - .setLogin(login) - .setName(name) - .setEmail(email) - .setPassword(password); - return adminWsClient().users().create(request.build()).getUser(); - } - - /** - * Create user with randomly generated values. By default password is the login. - */ - @SafeVarargs - public final WsUsers.CreateWsResponse.User generate(Consumer<CreateRequest.Builder>... populators) { - int id = ID_GENERATOR.getAndIncrement(); - String login = "login" + id; - CreateRequest.Builder request = CreateRequest.builder() - .setLogin(login) - .setName("name" + id) - .setEmail(id + "@test.com") - .setPassword(login); - stream(populators).forEach(p -> p.accept(request)); - return adminWsClient().users().create(request.build()).getUser(); - } - - public void createUser(String login, String password) { - createUser(login, login, null, password); - } - - public WsUsers.CreateWsResponse.User createAdministrator(Organizations.Organization organization, String password) { - WsUsers.CreateWsResponse.User user = generate(p -> p.setPassword(password)); - adminWsClient.organizations().addMember(organization.getKey(), user.getLogin()); - forOrganization(organization.getKey()).associateGroupsToUser(user.getLogin(), "Owners"); - return user; - } - - /** - * Create a new admin user with random login, having password same as login - */ - public String createAdminUser() { - String login = randomAlphabetic(10).toLowerCase(); - return createAdminUser(login, login); - } - - public String createAdminUser(String login, String password) { - createUser(login, password); - adminWsClient.permissions().addUser(new AddUserWsRequest().setLogin(login).setPermission("admin")); - adminWsClient.userGroups().addUser(org.sonarqube.ws.client.usergroup.AddUserWsRequest.builder().setLogin(login).setName("sonar-administrators").build()); - return login; - } - - /** - * Create a new root user with random login, having password same as login - */ - public String createRootUser() { - String login = randomAlphabetic(10).toLowerCase(); - return createRootUser(login, login); - } - - public String createRootUser(String login, String password) { - createUser(login, password); - setRoot(login); - return login; - } - - public void setRoot(String login) { - adminWsClient().roots().setRoot(login); - } - - public void unsetRoot(String login) { - adminWsClient().roots().unsetRoot(login); - } - - public Optional<Users.User> getUserByLogin(String login) { - return FluentIterable.from(getUsers().getUsers()).firstMatch(new MatchUserLogin(login)); - } - - public Users getUsers() { - WsResponse response = adminWsClient().wsConnector().call( - new GetRequest("api/users/search")) - .failIfNotSuccessful(); - return Users.parse(response.content()); - } - - public void deactivateUsers(List<String> userLogins) { - for (String userLogin : userLogins) { - if (getUserByLogin(userLogin).isPresent()) { - adminWsClient().wsConnector().call(new PostRequest("api/users/deactivate").setParam("login", userLogin)).failIfNotSuccessful(); - } - } - } - - public void deactivateUsers(String... userLogins) { - deactivateUsers(asList(userLogins)); - } - - public void deactivateAllUsers() { - UsersService service = newAdminWsClient(orchestrator).users(); - List<String> logins = service.search(SearchRequest.builder().build()).getUsersList() - .stream() - .filter(u -> !u.getLogin().equals("admin")) - .map(u -> u.getLogin()) - .collect(Collectors.toList()); - deactivateUsers(logins); - } - - // ***************** - // User groups - // ***************** - - public GroupManagement forOrganization(String organizationKey) { - return new GroupManagementImpl(organizationKey); - } - - private final class GroupManagementImpl implements GroupManagement { - @CheckForNull - private final String organizationKey; - - private GroupManagementImpl(@Nullable String organizationKey) { - this.organizationKey = organizationKey; - } - - @Override - public void createGroup(String name) { - createGroup(name, null); - } - - @Override - public void createGroup(String name, @Nullable String description) { - PostRequest request = new PostRequest("api/user_groups/create") - .setParam("name", name) - .setParam("description", description); - addOrganizationParam(request); - adminWsClient().wsConnector().call(request).failIfNotSuccessful(); - } - - private void addOrganizationParam(PostRequest request) { - request.setParam("organization", organizationKey); - } - - private void addOrganizationParam(GetRequest request) { - request.setParam("organization", organizationKey); - } - - @Override - public void removeGroups(List<String> groupNames) { - for (String groupName : groupNames) { - if (getGroupByName(groupName).isPresent()) { - PostRequest request = new PostRequest("api/user_groups/delete") - .setParam("name", groupName); - addOrganizationParam(request); - adminWsClient().wsConnector().call(request).failIfNotSuccessful(); - } - } - } - - @Override - public void removeGroups(String... groupNames) { - removeGroups(asList(groupNames)); - } - - @Override - public java.util.Optional<Groups.Group> getGroupByName(String name) { - return getGroups().getGroups().stream().filter(new MatchGroupName(name)::apply).findFirst(); - } - - @Override - public Groups getGroups() { - GetRequest request = new GetRequest("api/user_groups/search"); - addOrganizationParam(request); - WsResponse response = adminWsClient().wsConnector().call(request).failIfNotSuccessful(); - return Groups.parse(response.content()); - } - - @Override - public void verifyUserGroupMembership(String userLogin, String... expectedGroups) { - Groups userGroup = getUserGroups(userLogin); - List<String> userGroupName = userGroup.getGroups().stream().map(Groups.Group::getName).collect(Collectors.toList()); - assertThat(userGroupName).containsOnly(expectedGroups); - } - - @Override - public Groups getUserGroups(String userLogin) { - GetRequest request = new GetRequest("api/users/groups") - .setParam("login", userLogin) - .setParam("selected", "selected"); - addOrganizationParam(request); - WsResponse response = adminWsClient().wsConnector().call(request).failIfNotSuccessful(); - return Groups.parse(response.content()); - } - - @Override - public void associateGroupsToUser(String userLogin, String... groups) { - for (String group : groups) { - PostRequest request = new PostRequest("api/user_groups/add_user") - .setParam("login", userLogin) - .setParam("name", group); - addOrganizationParam(request); - adminWsClient().wsConnector().call(request).failIfNotSuccessful(); - } - } - } - - @Override - public void createGroup(String name) { - defaultOrganizationGroupManagement.createGroup(name); - } - - @Override - public void createGroup(String name, @Nullable String description) { - defaultOrganizationGroupManagement.createGroup(name, description); - } - - @Override - public void removeGroups(List<String> groupNames) { - defaultOrganizationGroupManagement.removeGroups(groupNames); - } - - @Override - public void removeGroups(String... groupNames) { - defaultOrganizationGroupManagement.removeGroups(groupNames); - } - - @Override - public java.util.Optional<Groups.Group> getGroupByName(String name) { - return defaultOrganizationGroupManagement.getGroupByName(name); - } - - @Override - public Groups getGroups() { - return defaultOrganizationGroupManagement.getGroups(); - } - - @Override - public void verifyUserGroupMembership(String userLogin, String... groups) { - defaultOrganizationGroupManagement.verifyUserGroupMembership(userLogin, groups); - } - - @Override - public Groups getUserGroups(String userLogin) { - return defaultOrganizationGroupManagement.getUserGroups(userLogin); - } - - @Override - public void associateGroupsToUser(String userLogin, String... groups) { - defaultOrganizationGroupManagement.associateGroupsToUser(userLogin, groups); - } - - private WsClient adminWsClient() { - if (adminWsClient == null) { - adminWsClient = newAdminWsClient(orchestrator); - } - return adminWsClient; - } - - private class MatchUserLogin implements Predicate<Users.User> { - private final String login; - - private MatchUserLogin(String login) { - this.login = login; - } - - @Override - public boolean apply(@Nonnull Users.User user) { - String login = user.getLogin(); - return login != null && login.equals(this.login) && user.isActive(); - } - } - - private class MatchGroupName implements Predicate<Groups.Group> { - private final String groupName; - - private MatchGroupName(String groupName) { - this.groupName = groupName; - } - - @Override - public boolean apply(@Nonnull Groups.Group group) { - String groupName = group.getName(); - return groupName != null && groupName.equals(this.groupName); - } - } - -} diff --git a/it/it-tests/src/test/java/util/user/Users.java b/it/it-tests/src/test/java/util/user/Users.java deleted file mode 100644 index 2f0a252e6c7..00000000000 --- a/it/it-tests/src/test/java/util/user/Users.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2017 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package util.user; - -import com.google.gson.Gson; -import java.util.List; - -public class Users { - - private List<User> users; - - private Users(List<User> users) { - this.users = users; - } - - public List<User> getUsers() { - return users; - } - - public static Users parse(String json) { - Gson gson = new Gson(); - return gson.fromJson(json, Users.class); - } - - public static class User { - private final String login; - private final String name; - private final String email; - private final String externalIdentity; - private final String externalProvider; - private final List<String> groups; - private final List<String> scmAccounts; - private final boolean active; - private final boolean local; - private int tokensCount; - - private User(String login, String name, String email, String externalIdentity, String externalProvider, List<String> groups, List<String> scmAccounts, - boolean active, boolean local, int tokensCount) { - this.login = login; - this.name = name; - this.externalIdentity = externalIdentity; - this.externalProvider = externalProvider; - this.email = email; - this.groups = groups; - this.scmAccounts = scmAccounts; - this.active = active; - this.tokensCount = tokensCount; - this.local = local; - } - - public String getLogin() { - return login; - } - - public String getName() { - return name; - } - - public String getEmail() { - return email; - } - - public List<String> getGroups() { - return groups; - } - - public List<String> getScmAccounts() { - return scmAccounts; - } - - public boolean isActive() { - return active; - } - - public boolean isLocal() { - return local; - } - - public int getTokensCount() { - return tokensCount; - } - - public String getExternalIdentity() { - return externalIdentity; - } - - public String getExternalProvider() { - return externalProvider; - } - } -} diff --git a/it/it-tests/src/test/resources/ItUtils.txt b/it/it-tests/src/test/resources/ItUtils.txt deleted file mode 100644 index e95e310afe6..00000000000 --- a/it/it-tests/src/test/resources/ItUtils.txt +++ /dev/null @@ -1 +0,0 @@ -Used by ItUtils to locate root directory of sources diff --git a/it/it-tests/src/test/resources/actionPlan/one-issue-per-line-profile.xml b/it/it-tests/src/test/resources/actionPlan/one-issue-per-line-profile.xml deleted file mode 100644 index 28cebcc2380..00000000000 --- a/it/it-tests/src/test/resources/actionPlan/one-issue-per-line-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-line-profile</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/administration/UsersPageTest/admin_should_change_its_own_password.html b/it/it-tests/src/test/resources/administration/UsersPageTest/admin_should_change_its_own_password.html deleted file mode 100644 index 06e806cf259..00000000000 --- a/it/it-tests/src/test/resources/administration/UsersPageTest/admin_should_change_its_own_password.html +++ /dev/null @@ -1,95 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>admin_should_change_its_own_password</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">admin_should_change_its_own_password</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/users</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=[data-login=admin-user]</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=[data-login=admin-user] .js-user-change-password</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.modal</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>id=change-user-password-old-password</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>id=change-user-password-password</td> - <td>new-admin-user</td> -</tr> -<tr> - <td>type</td> - <td>id=change-user-password-password-confirmation</td> - <td>new-admin-user</td> -</tr> -<tr> - <td>click</td> - <td>id=change-user-password-submit</td> - <td></td> -</tr> -<tr> - <td>assertElementNotPresent</td> - <td>css=.modal</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/administration/UsersPageTest/generate_and_revoke_user_token.html b/it/it-tests/src/test/resources/administration/UsersPageTest/generate_and_revoke_user_token.html deleted file mode 100644 index c81949c4d10..00000000000 --- a/it/it-tests/src/test/resources/administration/UsersPageTest/generate_and_revoke_user_token.html +++ /dev/null @@ -1,115 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>generate_and_revoke_user_token</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">generate_and_revoke_user_token</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/users</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-tokens</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.js-user-tokens</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.modal</td> - <td>*No tokens*</td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-generate-token-form input</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>css=.js-generate-token-form input</td> - <td>test-token</td> -</tr> -<tr> - <td>click</td> - <td>css=.js-generate-token-form button</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.modal code</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.modal</td> - <td>*test-token*</td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-revoke-token-form</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.js-revoke-token-form button</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.js-revoke-token-form button</td> - <td></td> -</tr> -<tr> - <td>assertElementNotPresent</td> - <td>css=.js-revoke-token-form</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/analysis/BatchTest/one-issue-per-line.xml b/it/it-tests/src/test/resources/analysis/BatchTest/one-issue-per-line.xml deleted file mode 100644 index 7bb4ed5593a..00000000000 --- a/it/it-tests/src/test/resources/analysis/BatchTest/one-issue-per-line.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MAJOR</priority> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/multiline.xml b/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/multiline.xml deleted file mode 100644 index 778866e91c2..00000000000 --- a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/multiline.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><!-- Generated by Sonar --> -<profile> - <name>multiline</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>MultilineIssue</key> - <priority>MAJOR</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/no-server-analysis.json b/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/no-server-analysis.json deleted file mode 100644 index 4e1b18df6ee..00000000000 --- a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/no-server-analysis.json +++ /dev/null @@ -1,212 +0,0 @@ -{ - "components": [ - { - "key": "sample" - }, - { - "key": "sample:src/main/xoo/sample/Sample.xoo", - "moduleKey": "sample", - "path": "src/main/xoo/sample/Sample.xoo", - "status": "ADDED" - }, - { - "key": "sample:src/main/xoo/sample", - "moduleKey": "sample", - "path": "src/main/xoo/sample" - } - ], - "issues": [ - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 2, - "endOffset": 0, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 2, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 6, - "endOffset": 14, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 6, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 1, - "endOffset": 15, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 1, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 5, - "endOffset": 23, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 5, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 8, - "endOffset": 1, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 8, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 9, - "endOffset": 28, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 9, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 7, - "endOffset": 2, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 7, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 4, - "endOffset": 1, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 4, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 11, - "endOffset": 2, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 11, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 3, - "endOffset": 21, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 3, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 13, - "endOffset": 0, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 13, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 12, - "endOffset": 1, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 12, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 10, - "endOffset": 17, - "isNew": true, - "key": "<ISSUE_KEY>", - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 10, - "startOffset": 0, - "status": "OPEN" - } - ], - "rules": [ - { - "key": "xoo:OneIssuePerLine", - "name": "One Issue Per Line", - "repository": "xoo", - "rule": "OneIssuePerLine" - } - ], - "users": [], - "version": "<SONAR_VERSION>" -} diff --git a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/one-issue-per-line.xml b/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/one-issue-per-line.xml deleted file mode 100644 index 7bb4ed5593a..00000000000 --- a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/one-issue-per-line.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MAJOR</priority> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-root-module.json b/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-root-module.json deleted file mode 100644 index ad3c0218cdb..00000000000 --- a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-root-module.json +++ /dev/null @@ -1,880 +0,0 @@ -{ - "components": [ - { - "key": "com.sonarsource.it.samples:multi-modules-sample" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_a", - "path": "module_a" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1", - "path": "module_a1" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2", - "path": "module_a2" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_b", - "path": "module_b" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1", - "path": "module_b1" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2", - "path": "module_b2" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "moduleKey": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1", - "path": "src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "status": "SAME" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "moduleKey": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2", - "path": "src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "status": "SAME" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "moduleKey": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1", - "path": "src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "status": "SAME" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "moduleKey": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2", - "path": "src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "status": "SAME" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1", - "moduleKey": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1", - "path": "src/main/xoo/com/sonar/it/samples/modules/a1" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2", - "moduleKey": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2", - "path": "src/main/xoo/com/sonar/it/samples/modules/a2" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1", - "moduleKey": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1", - "path": "src/main/xoo/com/sonar/it/samples/modules/b1" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2", - "moduleKey": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2", - "path": "src/main/xoo/com/sonar/it/samples/modules/b2" - } - ], - "issues": [ - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 9, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 9, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 9, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 10, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 10, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 10, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 11, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 11, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 11, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 12, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 12, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 12, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 13, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 13, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 13, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 14, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 14, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 14, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 15, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 15, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 15, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 16, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 16, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 16, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 1, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 1, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 1, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 2, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 2, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 2, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 3, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 3, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 3, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 4, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 4, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 4, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 5, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 5, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 5, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 7, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 7, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 7, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 6, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 6, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 6, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 8, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 8, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 8, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 1, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 1, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 1, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 2, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 2, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 2, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 3, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 3, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 3, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 4, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 4, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 4, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 5, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 5, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 5, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 6, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 6, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 6, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 7, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 7, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 7, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 8, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 8, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 8, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 9, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 9, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 9, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 10, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 10, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 10, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 11, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 11, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 11, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 12, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 12, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 12, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 13, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 13, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 13, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 14, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 14, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 14, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 15, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 15, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 15, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 16, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 16, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 16, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 17, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 17, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 17, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 18, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 18, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 18, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 19, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 19, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 19, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 20, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 20, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 20, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a2:src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 21, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 21, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 21, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 1, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 1, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 1, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 2, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 2, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 2, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 3, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 3, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 3, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 4, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 4, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 4, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 5, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 5, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 5, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 6, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 6, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 6, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 7, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 7, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 7, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 8, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 8, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 8, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 9, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 9, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 9, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 10, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 10, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 10, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 11, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 11, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 11, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b1:src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 12, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 12, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 12, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 1, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 1, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 1, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 2, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 2, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 2, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 3, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 3, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 3, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 4, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 4, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 4, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 5, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 5, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 5, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 6, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 6, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 6, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 7, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 7, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 7, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 8, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 8, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 8, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 9, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 9, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 9, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 10, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 10, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 10, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 12, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 12, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 12, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_b:module_b2:src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 11, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 11, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 11, - "status": "OPEN" - } - ], - "rules": [ - { - "key": "xoo:OneIssuePerLine", - "name": "One Issue Per Line", - "repository": "xoo", - "rule": "OneIssuePerLine" - } - ], - "users": [], - "version": "<SONAR_VERSION>" -} diff --git a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-single-module-branch.json b/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-single-module-branch.json deleted file mode 100644 index aa066bbbf2f..00000000000 --- a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-single-module-branch.json +++ /dev/null @@ -1,255 +0,0 @@ -{ - "components": [ - { - "key": "sample:mybranch" - }, - { - "key": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "moduleKey": "sample:mybranch", - "path": "src/main/xoo/sample/Sample.xoo", - "status": "CHANGED" - }, - { - "key": "sample:mybranch:src/main/xoo/sample", - "moduleKey": "sample:mybranch", - "path": "src/main/xoo/sample" - } - ], - "issues": [ - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 1, - "endOffset": 15, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 1, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 1, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 2, - "endOffset": 0, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 2, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 2, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 3, - "endOffset": 21, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 3, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 3, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 4, - "endOffset": 1, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 4, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 4, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 5, - "endOffset": 23, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 5, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 5, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 6, - "endOffset": 14, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 6, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 6, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 8, - "endOffset": 2, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 8, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 8, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 9, - "endOffset": 1, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 9, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 9, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 10, - "endOffset": 28, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 10, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 10, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 12, - "endOffset": 17, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 12, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 12, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 13, - "endOffset": 2, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 13, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 13, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 14, - "endOffset": 1, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 14, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 14, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 15, - "endOffset": 0, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 15, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 15, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 11, - "endOffset": 28, - "isNew": true, - "key": "<ISSUE_KEY>", - "line": 11, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 11, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:mybranch:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 7, - "endOffset": 28, - "isNew": true, - "key": "<ISSUE_KEY>", - "line": 7, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 7, - "startOffset": 0, - "status": "OPEN" - } - ], - "rules": [ - { - "key": "xoo:OneIssuePerLine", - "name": "One Issue Per Line", - "repository": "xoo", - "rule": "OneIssuePerLine" - } - ], - "users": [], - "version": "<SONAR_VERSION>" -} diff --git a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-single-module.json b/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-single-module.json deleted file mode 100644 index 6c3aab91f02..00000000000 --- a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-single-module.json +++ /dev/null @@ -1,255 +0,0 @@ -{ - "components": [ - { - "key": "sample" - }, - { - "key": "sample:src/main/xoo/sample/Sample.xoo", - "moduleKey": "sample", - "path": "src/main/xoo/sample/Sample.xoo", - "status": "CHANGED" - }, - { - "key": "sample:src/main/xoo/sample", - "moduleKey": "sample", - "path": "src/main/xoo/sample" - } - ], - "issues": [ - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 11, - "endOffset": 28, - "isNew": true, - "key": "<ISSUE_KEY>", - "line": 11, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 11, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-02T00:00:00+0200", - "endLine": 7, - "endOffset": 28, - "isNew": true, - "key": "<ISSUE_KEY>", - "line": 7, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 7, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 1, - "endOffset": 15, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 1, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 1, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 2, - "endOffset": 0, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 2, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 2, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 3, - "endOffset": 21, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 3, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 3, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 4, - "endOffset": 1, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 4, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 4, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 5, - "endOffset": 23, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 5, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 5, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 6, - "endOffset": 14, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 6, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 6, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 8, - "endOffset": 2, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 8, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 8, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 9, - "endOffset": 1, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 9, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 9, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 10, - "endOffset": 28, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 10, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 10, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 12, - "endOffset": 17, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 12, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 12, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 13, - "endOffset": 2, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 13, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 13, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 14, - "endOffset": 1, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 14, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 14, - "startOffset": 0, - "status": "OPEN" - }, - { - "component": "sample:src/main/xoo/sample/Sample.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 15, - "endOffset": 0, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 15, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 15, - "startOffset": 0, - "status": "OPEN" - } - ], - "rules": [ - { - "key": "xoo:OneIssuePerLine", - "name": "One Issue Per Line", - "repository": "xoo", - "rule": "OneIssuePerLine" - } - ], - "users": [], - "version": "<SONAR_VERSION>" -} diff --git a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-sub-module.json b/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-sub-module.json deleted file mode 100644 index 84a68c4d5a4..00000000000 --- a/it/it-tests/src/test/resources/analysis/IssueJsonReportTest/report-on-sub-module.json +++ /dev/null @@ -1,238 +0,0 @@ -{ - "components": [ - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "moduleKey": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1", - "path": "src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "status": "SAME" - }, - { - "key": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1", - "moduleKey": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1", - "path": "src/main/xoo/com/sonar/it/samples/modules/a1" - } - ], - "issues": [ - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 1, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 1, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 1, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 2, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 2, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 2, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 3, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 3, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 3, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 4, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 4, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 4, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 5, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 5, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 5, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 6, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 6, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 6, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 7, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 7, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 7, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 8, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 8, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 8, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 9, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 9, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 9, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 10, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 10, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 10, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 11, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 11, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 11, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 12, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 12, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 12, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 13, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 13, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 13, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 14, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 14, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 14, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 15, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 15, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 15, - "status": "OPEN" - }, - { - "component": "com.sonarsource.it.samples:multi-modules-sample:module_a:module_a1:src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo", - "creationDate": "2013-05-01T00:00:00+0200", - "endLine": 16, - "isNew": false, - "key": "<ISSUE_KEY>", - "line": 16, - "message": "This issue is generated on each line", - "rule": "xoo:OneIssuePerLine", - "severity": "MAJOR", - "startLine": 16, - "status": "OPEN" - } - ], - "rules": [ - { - "key": "xoo:OneIssuePerLine", - "name": "One Issue Per Line", - "repository": "xoo", - "rule": "OneIssuePerLine" - } - ], - "users": [], - "version": "<SONAR_VERSION>" -} diff --git a/it/it-tests/src/test/resources/analysis/IssuesModeTest/empty.xml b/it/it-tests/src/test/resources/analysis/IssuesModeTest/empty.xml deleted file mode 100644 index 8bab61d6c85..00000000000 --- a/it/it-tests/src/test/resources/analysis/IssuesModeTest/empty.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><!-- Generated by Sonar --> -<profile> - <name>empty</name> - <language>xoo</language> - <rules> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/analysis/IssuesModeTest/one-issue-per-line-empty.xml b/it/it-tests/src/test/resources/analysis/IssuesModeTest/one-issue-per-line-empty.xml deleted file mode 100644 index 0ba34f10dbd..00000000000 --- a/it/it-tests/src/test/resources/analysis/IssuesModeTest/one-issue-per-line-empty.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/analysis/IssuesModeTest/one-issue-per-line.xml b/it/it-tests/src/test/resources/analysis/IssuesModeTest/one-issue-per-line.xml deleted file mode 100644 index 7bb4ed5593a..00000000000 --- a/it/it-tests/src/test/resources/analysis/IssuesModeTest/one-issue-per-line.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MAJOR</priority> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/analysis/IssuesModeTest/with-many-rules.xml b/it/it-tests/src/test/resources/analysis/IssuesModeTest/with-many-rules.xml deleted file mode 100644 index f3d0baf0616..00000000000 --- a/it/it-tests/src/test/resources/analysis/IssuesModeTest/with-many-rules.xml +++ /dev/null @@ -1,32 +0,0 @@ -<profile> - <name>with-many-rules</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>xoo</value> - </parameter> - </parameters> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/analysis/MultiLanguageTest/one-issue-per-line-xoo2.xml b/it/it-tests/src/test/resources/analysis/MultiLanguageTest/one-issue-per-line-xoo2.xml deleted file mode 100644 index 67215f91a52..00000000000 --- a/it/it-tests/src/test/resources/analysis/MultiLanguageTest/one-issue-per-line-xoo2.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-line-xoo2</name> - <language>xoo2</language> - <rules> - <rule> - <repositoryKey>xoo2</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MAJOR</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/analysis/MultiLanguageTest/one-issue-per-line.xml b/it/it-tests/src/test/resources/analysis/MultiLanguageTest/one-issue-per-line.xml deleted file mode 100644 index 7bb4ed5593a..00000000000 --- a/it/it-tests/src/test/resources/analysis/MultiLanguageTest/one-issue-per-line.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MAJOR</priority> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/analysis/SSLTest/README b/it/it-tests/src/test/resources/analysis/SSLTest/README deleted file mode 100644 index fb535a907c6..00000000000 --- a/it/it-tests/src/test/resources/analysis/SSLTest/README +++ /dev/null @@ -1,184 +0,0 @@ -$ openssl req -config ./openssl.cnf -newkey rsa:2048 -nodes -keyform PEM -keyout ca.key -x509 -days 3650 -extensions certauth -outform PEM -out ca.cer -Generating a 2048 bit RSA private key -..............................................+++ -........................................................................................................+++ -writing new private key to 'ca.key' ------ -You are about to be asked to enter information that will be incorporated -into your certificate request. -What you are about to enter is what is called a Distinguished Name or a DN. -There are quite a few fields but you can leave some blank -For some fields there will be a default value, -If you enter '.', the field will be left blank. ------ -Country [FR]: -Locality [Poitiers]: -Organization [SonarSource]: -Common Name []:CA for SonarQube ITs - -$ openssl genrsa -out server.key 2048 -Generating RSA private key, 2048 bit long modulus -........................+++ -............................+++ -e is 65537 (0x10001) - -$ openssl req -config ./openssl.cnf -new -key server.key -out server.req -You are about to be asked to enter information that will be incorporated -into your certificate request. -What you are about to enter is what is called a Distinguished Name or a DN. -There are quite a few fields but you can leave some blank -For some fields there will be a default value, -If you enter '.', the field will be left blank. ------ -Country [FR]: -Locality [Poitiers]: -Organization [SonarSource]: -Common Name []:localhost - -$ openssl x509 -req -in server.req -CA ca.cer -CAkey ca.key -set_serial 100 -extfile openssl.cnf -extensions server -days 3650 -outform PEM -out server.cer -Signature ok -subject=/C=FR/L=Poitiers/O=SonarSource/CN=localhost -Getting CA Private Key - -$ openssl genrsa -out client.key 2048 -Generating RSA private key, 2048 bit long modulus -...................................+++ -.....................................................+++ -e is 65537 (0x10001) - -$ openssl req -config ./openssl.cnf -new -key client.key -out client.req -You are about to be asked to enter information that will be incorporated -into your certificate request. -What you are about to enter is what is called a Distinguished Name or a DN. -There are quite a few fields but you can leave some blank -For some fields there will be a default value, -If you enter '.', the field will be left blank. ------ -Country [FR]: -Locality [Poitiers]: -Organization [SonarSource]: -Common Name []:Julien Henry - -$ openssl x509 -req -in client.req -CA ca.cer -CAkey ca.key -set_serial 101 -extfile openssl.cnf -extensions client -days 3650 -outform PEM -out client.cer -Signature ok -subject=/C=FR/L=Poitiers/O=SonarSource/CN=Julien Henry -Getting CA Private Key - -$ openssl pkcs12 -export -inkey client.key -in client.cer -out client.p12 -Enter Export Password: clientp12pwd -Verifying - Enter Export Password: clientp12pwd - -$ openssl pkcs12 -inkey server.key -in server.cer -export -out server.p12 -Enter Export Password: serverp12pwd -Verifying - Enter Export Password: serverp12pwd - -$ keytool -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -destkeystore serverkeystore.jks -Entrez le mot de passe du fichier de clés de destination : serverkeystorepwd -Ressaisissez le nouveau mot de passe : serverkeystorepwd -Entrez le mot de passe du fichier de clés source : serverp12pwd -L'entrée de l'alias 1 a été importée. -Commande d'import exécutée : 1 entrées importées, échec ou annulation de 0 entrées - -$ keytool -import -file ca.cer -keystore servertruststore.jks -Entrez le mot de passe du fichier de clés : servertruststorepwd -Ressaisissez le nouveau mot de passe : servertruststorepwd -Propriétaire : CN=Test CA, O=SonarSource, L=Poitiers, C=FR -Emetteur : CN=Test CA, O=SonarSource, L=Poitiers, C=FR -Numéro de série : dabbebc7bce2fc6a -Valide du : Wed Aug 31 14:42:15 CEST 2016 au : Sat Aug 29 14:42:15 CEST 2026 -Empreintes du certificat : - MD5: 69:36:AE:65:51:CD:F4:C3:83:77:DE:45:AE:49:01:1A - SHA1 : 77:92:45:84:18:FC:34:7A:2A:B0:EC:3D:22:48:15:1A:19:71:1D:B3 - SHA256 : 99:03:89:84:6E:E3:D3:B7:12:2D:70:7E:49:88:49:41:52:1C:89:3A:9B:C0:83:D1:C5:44:D4:93:FB:42:C8:07 - Nom de l'algorithme de signature : SHA1withRSA - Version : 3 - -Extensions : - -#1: ObjectId: 2.5.29.35 Criticality=false -AuthorityKeyIdentifier [ -KeyIdentifier [ -0000: 3A 61 C1 86 AD BE FC 15 82 B3 59 FF 00 28 5E F9 :a........Y..(^. -0010: B5 5A 87 04 .Z.. -] -[CN=Test CA, O=SonarSource, L=Poitiers, C=FR] -SerialNumber: [ dabbebc7 bce2fc6a] -] - -#2: ObjectId: 2.5.29.19 Criticality=false -BasicConstraints:[ - CA:true - PathLen:2147483647 -] - -#3: ObjectId: 2.5.29.31 Criticality=false -CRLDistributionPoints [ - [DistributionPoint: - [URIName: http://testca.local/ca.crl] -]] - -#4: ObjectId: 2.5.29.14 Criticality=false -SubjectKeyIdentifier [ -KeyIdentifier [ -0000: 3A 61 C1 86 AD BE FC 15 82 B3 59 FF 00 28 5E F9 :a........Y..(^. -0010: B5 5A 87 04 .Z.. -] -] - -Faire confiance à ce certificat ? [non] : oui -Certificat ajouté au fichier de clés - -$ keytool -import -file server.cer -keystore clienttruststore.jks -Entrez le mot de passe du fichier de clés : clienttruststorepwd -Ressaisissez le nouveau mot de passe : clienttruststorepwd -Propriétaire : CN=localhost, O=SonarSource, L=Poitiers, C=FR -Emetteur : CN=Test CA, O=SonarSource, L=Poitiers, C=FR -Numéro de série : 64 -Valide du : Wed Aug 31 14:45:30 CEST 2016 au : Thu Aug 31 14:45:30 CEST 2017 -Empreintes du certificat : - MD5: 40:52:F4:5E:67:C3:68:B6:00:7D:70:C0:1E:8E:75:2E - SHA1 : 83:3F:4F:AC:4E:E6:F4:06:14:01:E6:5B:F2:63:34:94:68:12:8C:3A - SHA256 : 7C:03:9A:CA:0D:B5:57:A5:66:56:75:09:23:45:9E:D5:CC:6C:72:14:0B:4B:9B:E8:29:3F:78:4C:9F:D6:77:E2 - Nom de l'algorithme de signature : SHA256withRSA - Version : 3 - -Extensions : - -#1: ObjectId: 2.5.29.19 Criticality=false -BasicConstraints:[ - CA:false - PathLen: undefined -] - -#2: ObjectId: 2.5.29.31 Criticality=false -CRLDistributionPoints [ - [DistributionPoint: - [URIName: http://testca.local/ca.crl] -]] - -#3: ObjectId: 2.5.29.37 Criticality=false -ExtendedKeyUsages [ - serverAuth -] - -#4: ObjectId: 2.5.29.15 Criticality=false -KeyUsage [ - DigitalSignature - Key_Encipherment - Data_Encipherment -] - -#5: ObjectId: 2.16.840.1.113730.1.1 Criticality=false -NetscapeCertType [ - SSL server -] - -Faire confiance à ce certificat ? [non] : oui -Certificat ajouté au fichier de clés - -$ keytool -importkeystore -srckeystore client.p12 -srcstoretype PKCS12 -destkeystore clientkeystore.jks -Entrez le mot de passe du fichier de clés de destination : clientp12pwd -Ressaisissez le nouveau mot de passe : clientp12pwd -Entrez le mot de passe du fichier de clés source : clientp12pwd -L'entrée de l'alias 1 a été importée. -Commande d'import exécutée : 1 entrées importées, échec ou annulation de 0 entrées diff --git a/it/it-tests/src/test/resources/analysis/SSLTest/clientkeystore.jks b/it/it-tests/src/test/resources/analysis/SSLTest/clientkeystore.jks Binary files differdeleted file mode 100644 index 653f3c7f093..00000000000 --- a/it/it-tests/src/test/resources/analysis/SSLTest/clientkeystore.jks +++ /dev/null diff --git a/it/it-tests/src/test/resources/analysis/SSLTest/clienttruststore.jks b/it/it-tests/src/test/resources/analysis/SSLTest/clienttruststore.jks Binary files differdeleted file mode 100644 index 2529245e1c6..00000000000 --- a/it/it-tests/src/test/resources/analysis/SSLTest/clienttruststore.jks +++ /dev/null diff --git a/it/it-tests/src/test/resources/analysis/SSLTest/openssl.cnf b/it/it-tests/src/test/resources/analysis/SSLTest/openssl.cnf deleted file mode 100644 index 4a5148fd4d7..00000000000 --- a/it/it-tests/src/test/resources/analysis/SSLTest/openssl.cnf +++ /dev/null @@ -1,38 +0,0 @@ -[ req ] -default_md = sha1 -distinguished_name = req_distinguished_name - -[ req_distinguished_name ] -countryName = Country -countryName_default = FR -countryName_min = 2 -countryName_max = 2 -localityName = Locality -localityName_default = Poitiers -organizationName = Organization -organizationName_default = SonarSource -commonName = Common Name -commonName_max = 64 - -[ certauth ] -subjectKeyIdentifier = hash -authorityKeyIdentifier = keyid:always,issuer:always -basicConstraints = CA:true -crlDistributionPoints = @crl - -[ server ] -basicConstraints = CA:FALSE -keyUsage = digitalSignature, keyEncipherment, dataEncipherment -extendedKeyUsage = serverAuth -nsCertType = server -crlDistributionPoints = @crl - -[ client ] -basicConstraints = CA:FALSE -keyUsage = digitalSignature, keyEncipherment, dataEncipherment -extendedKeyUsage = clientAuth -nsCertType = client -crlDistributionPoints = @crl - -[ crl ] -URI=http://testca.local/ca.crl
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/analysis/SSLTest/serverkeystore.jks b/it/it-tests/src/test/resources/analysis/SSLTest/serverkeystore.jks Binary files differdeleted file mode 100644 index 319c899278a..00000000000 --- a/it/it-tests/src/test/resources/analysis/SSLTest/serverkeystore.jks +++ /dev/null diff --git a/it/it-tests/src/test/resources/analysis/SSLTest/servertruststore.jks b/it/it-tests/src/test/resources/analysis/SSLTest/servertruststore.jks Binary files differdeleted file mode 100644 index a3aee3b8a9d..00000000000 --- a/it/it-tests/src/test/resources/analysis/SSLTest/servertruststore.jks +++ /dev/null diff --git a/it/it-tests/src/test/resources/analysis/SettingsEncryptionTest/sonar-secret.txt b/it/it-tests/src/test/resources/analysis/SettingsEncryptionTest/sonar-secret.txt deleted file mode 100644 index 65b98c522da..00000000000 --- a/it/it-tests/src/test/resources/analysis/SettingsEncryptionTest/sonar-secret.txt +++ /dev/null @@ -1 +0,0 @@ -0PZz+G+f8mjr3sPn4+AhHg==
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/analysis/TempFolderTest/one-issue-per-line.xml b/it/it-tests/src/test/resources/analysis/TempFolderTest/one-issue-per-line.xml deleted file mode 100644 index 7bb4ed5593a..00000000000 --- a/it/it-tests/src/test/resources/analysis/TempFolderTest/one-issue-per-line.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MAJOR</priority> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_create.html b/it/it-tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_create.html deleted file mode 100644 index 0e67e0f4fab..00000000000 --- a/it/it-tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_create.html +++ /dev/null @@ -1,99 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>root-user</td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>root-user</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>name=commit</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/permission_templates</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.page-actions button</td> - <td></td> - </tr> - <tr> - <td>click</td> - <td>css=.page-actions button</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=#permission-template-name</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>css=#permission-template-name</td> - <td>Custom</td> - </tr> - <tr> - <td>type</td> - <td>css=#permission-template-description</td> - <td>Description</td> - </tr> - <tr> - <td>type</td> - <td>css=#permission-template-project-key-pattern</td> - <td>.*</td> - </tr> - <tr> - <td>click</td> - <td>css=#permission-template-submit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=tr[data-name="Custom"]</td> - <td></td> - </tr> - <tr> - <td>assertText</td> - <td>css=tr[data-name="Custom"] .js-name</td> - <td>*Custom*</td> - </tr> - <tr> - <td>assertText</td> - <td>css=tr[data-name="Custom"] .js-description</td> - <td>*Description*</td> - </tr> - <tr> - <td>assertText</td> - <td>css=tr[data-name="Custom"] .js-project-key-pattern</td> - <td>*.*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_display_page.html b/it/it-tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_display_page.html deleted file mode 100644 index 8d9640f25b6..00000000000 --- a/it/it-tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_display_page.html +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_display_page</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/permission_templates</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=tr[data-id="default_template"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=tr[data-id="default_template"] .js-name</td> - <td>*Default template*</td> -</tr> -<tr> - <td>assertText</td> - <td>css=tr[data-id="default_template"] .js-defaults</td> - <td>*Projects*</td> -</tr> -<tr> - <td>assertText</td> - <td>css=tr[data-id="default_template"] .js-description</td> - <td>*This permission template will be used*</td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=td[data-permission="user"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=td[data-permission="codeviewer"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=td[data-permission="issueadmin"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=td[data-permission="admin"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=td[data-permission="scan"]</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_manage_project_creators.html b/it/it-tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_manage_project_creators.html deleted file mode 100644 index 3d1c172a783..00000000000 --- a/it/it-tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_manage_project_creators.html +++ /dev/null @@ -1,109 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_manage_project_creators</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>name=commit</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/permission_templates</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=td[data-permission="user"]</td> - <td></td> - </tr> - <tr> - <td>click</td> - <td>css=td[data-permission="user"] .js-update-users</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=#grant-to-project-creators</td> - <td></td> - </tr> - <tr> - <td>assertElementPresent</td> - <td>css=#grant-to-project-creators:not(:checked)</td> - <td></td> - </tr> - <tr> - <td>click</td> - <td>css=#grant-to-project-creators</td> - <td></td> - </tr> - <tr> - <td>click</td> - <td>css=.js-modal-close</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=td[data-permission="user"] .js-project-creators</td> - <td></td> - </tr> - <tr> - <td>click</td> - <td>css=td[data-permission="user"] .js-update-users</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=#grant-to-project-creators</td> - <td></td> - </tr> - <tr> - <td>assertElementPresent</td> - <td>css=#grant-to-project-creators:checked</td> - <td></td> - </tr> - <tr> - <td>click</td> - <td>css=#grant-to-project-creators</td> - <td></td> - </tr> - <tr> - <td>click</td> - <td>css=.js-modal-close</td> - <td></td> - </tr> - <tr> - <td>waitForElementNotPresent</td> - <td>css=td[data-permission="user"] .js-project-creators</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/authorisation/ProvisioningPermissionTest/should-be-able-to-provision-project.html b/it/it-tests/src/test/resources/authorisation/ProvisioningPermissionTest/should-be-able-to-provision-project.html deleted file mode 100644 index c5db3b4898a..00000000000 --- a/it/it-tests/src/test/resources/authorisation/ProvisioningPermissionTest/should-be-able-to-provision-project.html +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>user-cannot-administrate-profile</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin-with-provisioning</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>password</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/projects_admin</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=#projects-type__ALL</td> - <td></td> - </tr> - <tr> - <td>assertText</td> - <td>css=.page-actions button</td> - <td>*Create Project*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/authorisation/ProvisioningPermissionTest/should-not-be-able-to-provision-project.html b/it/it-tests/src/test/resources/authorisation/ProvisioningPermissionTest/should-not-be-able-to-provision-project.html deleted file mode 100644 index 270daf67cd9..00000000000 --- a/it/it-tests/src/test/resources/authorisation/ProvisioningPermissionTest/should-not-be-able-to-provision-project.html +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>user-cannot-administrate-profile</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin-without-provisioning</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>password</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/projects_admin</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=#projects-type__ALL</td> - <td></td> - </tr> - <tr> - <td>assertNotText</td> - <td>css=.page-actions button</td> - <td>*Create Project*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/normal-user.html b/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/normal-user.html deleted file mode 100644 index b9190a27027..00000000000 --- a/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/normal-user.html +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>user-cannot-administrate-profile</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>not_profileadm</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>userpwd</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/profiles</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table-row[data-name="foo"]</td> - <td></td> - </tr> - <tr> - <td>click</td> - <td>css=.quality-profiles-table-row[data-name="foo"] .quality-profiles-table-name a</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=.quality-profile-header</td> - <td>*foo*</td> - </tr> - <tr> - <td>assertElementNotPresent</td> - <td>css=.js-change-parent</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/profile-admin.html b/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/profile-admin.html deleted file mode 100644 index 86d6b26ece8..00000000000 --- a/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/profile-admin.html +++ /dev/null @@ -1,84 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>user-can-administrate-profile</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>profileadm</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>papwd</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table-row[data-name="foo"]</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profiles-table-row[data-name="foo"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-header</td> - <td>*foo*</td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.js-change-parent</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/project/quality_profiles?id=sample</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>id=content</td> - <td>*Quality Profiles*</td> -</tr> -<tr> - <td>waitForText</td> - <td>id=content</td> - <td>*Xoo*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/authorisation/one-issue-per-line-profile.xml b/it/it-tests/src/test/resources/authorisation/one-issue-per-line-profile.xml deleted file mode 100644 index 521adc7e06f..00000000000 --- a/it/it-tests/src/test/resources/authorisation/one-issue-per-line-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/dbCleaner/one-issue-per-line-profile.xml b/it/it-tests/src/test/resources/dbCleaner/one-issue-per-line-profile.xml deleted file mode 100644 index 2006b6fb365..00000000000 --- a/it/it-tests/src/test/resources/dbCleaner/one-issue-per-line-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-line-profile</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MAJOR</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsOnRemoveFileTest/duplications-with-deleted-project.html b/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsOnRemoveFileTest/duplications-with-deleted-project.html deleted file mode 100644 index 37a48368f83..00000000000 --- a/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsOnRemoveFileTest/duplications-with-deleted-project.html +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>duplications-with-deleted-project</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">duplications-with-deleted-project</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/component/index?id=duplicate-project%3Asrc%2Fmain%2Fxoo%2Fsample%2FFile1.xoo</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=.source-viewer</td> - <td>*src/main/xoo/sample/File1.xoo*</td> - </tr> - <tr> - <td>waitForText</td> - <td>css=.source-table</td> - <td>*File1*</td> - </tr> - <tr> - <td>click</td> - <td>css=.source-line-duplicated</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.bubble-popup</td> - <td></td> - </tr> - <tr> - <td>assertElementPresent</td> - <td>css=.bubble-popup .alert</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsOnRemoveFileTest/duplications_on_removed_file-expected.json b/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsOnRemoveFileTest/duplications_on_removed_file-expected.json deleted file mode 100644 index 37f0e402120..00000000000 --- a/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsOnRemoveFileTest/duplications_on_removed_file-expected.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "duplications": [ - { - "blocks": [ - { - "from": 9, - "size": 27 - }, - { - "from": 9, - "size": 27, - "_ref": "1" - } - ] - } - ], - "files": { - "1": { - "key": "duplicate-project:src/main/xoo/sample/File1.xoo", - "name": "src/main/xoo/sample/File1.xoo", - "project": "duplicate-project", - "projectName": "duplicate-project" - } - } -} diff --git a/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsTest/cross-project-duplications-viewer.html b/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsTest/cross-project-duplications-viewer.html deleted file mode 100644 index 689594fdbb1..00000000000 --- a/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsTest/cross-project-duplications-viewer.html +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>cross-project-duplications-viewer</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">cross-project-duplications-viewer</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/component/index?id=duplicate-project%3Asrc%2Fmain%2Fxoo%2Fsample%2FFile1.xoo</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.source-line</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=.source-viewer-header</td> - <td>*75.0%*</td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.source-line-duplicated</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=[data-line-number='3']</td> - <td>*File1*</td> - </tr> - <tr> - <td>click</td> - <td>css=.source-line-duplicated</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.bubble-popup</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=.bubble-popup</td> - <td>glob:*origin-project*File1.xoo*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsTest/duplications_show-expected.json b/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsTest/duplications_show-expected.json deleted file mode 100644 index a9b0c623f53..00000000000 --- a/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsTest/duplications_show-expected.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "duplications": [ - { - "blocks": [ - { - "from": 9, - "size": 27, - "_ref": "1" - }, - { - "from": 9, - "size": 27, - "_ref": "2" - } - ] - } - ], - "files": { - "2": { - "key": "origin-project:src/main/xoo/sample/File1.xoo", - "name": "src/main/xoo/sample/File1.xoo", - "project": "origin-project", - "projectName": "origin-project" - }, - "1": { - "key": "duplicate-project:src/main/xoo/sample/File1.xoo", - "name": "src/main/xoo/sample/File1.xoo", - "project": "duplicate-project", - "projectName": "duplicate-project" - } - } -} diff --git a/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsTest/sources_lines_duplication-expected.json b/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsTest/sources_lines_duplication-expected.json deleted file mode 100644 index 0ce4c68a243..00000000000 --- a/it/it-tests/src/test/resources/duplication/CrossProjectDuplicationsTest/sources_lines_duplication-expected.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "sources": [ - { - "line": 1, - "code": "package sample;", - "duplicated": false - }, - { - "line": 2, - "code": "", - "duplicated": false - }, - { - "line": 3, - "code": "public class File1 {", - "duplicated": false - }, - { - "line": 4, - "code": "", - "duplicated": false - }, - { - "line": 5, - "code": " public File1() {", - "duplicated": false - }, - { - "line": 6, - "code": " }", - "duplicated": false - }, - { - "line": 7, - "code": "", - "duplicated": false - }, - { - "line": 8, - "code": " public void test() {", - "duplicated": false - }, - { - "line": 9, - "code": " char[] charList = new char[30];", - "duplicated": true - }, - { - "line": 10, - "code": " for (int i = 0; i < 10; i++) {", - "duplicated": true - }, - { - "line": 11, - "code": " charList[i] = 'a';", - "duplicated": true - }, - { - "line": 12, - "code": " }", - "duplicated": true - }, - { - "line": 13, - "code": " for (int i = 0; i < 10; i++) {", - "duplicated": true - }, - { - "line": 14, - "code": " charList[i] = 'a';", - "duplicated": true - }, - { - "line": 15, - "code": " }", - "duplicated": true - }, - { - "line": 16, - "code": " int intergerToBeIncremented = 0;", - "duplicated": true - }, - { - "line": 17, - "code": " while (intergerToBeIncremented < 100) {", - "duplicated": true - }, - { - "line": 18, - "code": " intergerToBeIncremented++;", - "duplicated": true - }, - { - "line": 19, - "code": " }", - "duplicated": true - }, - { - "line": 20, - "code": " int intergerToBeIncremented2 = 0;", - "duplicated": true - }, - { - "line": 21, - "code": " while (intergerToBeIncremented2 < 100) {", - "duplicated": true - }, - { - "line": 22, - "code": " intergerToBeIncremented2++;", - "duplicated": true - }, - { - "line": 23, - "code": " }", - "duplicated": true - }, - { - "line": 24, - "code": " String temp = \"\";", - "duplicated": true - }, - { - "line": 25, - "code": " for (int i=0; i<10; i++){", - "duplicated": true - }, - { - "line": 26, - "code": " temp += \"say something\"+i;", - "duplicated": true - }, - { - "line": 27, - "code": " }", - "duplicated": true - }, - { - "line": 28, - "code": " for (int i=0; i<20; i++){", - "duplicated": true - }, - { - "line": 29, - "code": " temp += \"say nothing\"+i;", - "duplicated": true - }, - { - "line": 30, - "code": " }", - "duplicated": true - }, - { - "line": 31, - "code": " for (int i=0; i<30; i++){", - "duplicated": true - }, - { - "line": 32, - "code": " temp += \"always say nothing\"+i;", - "duplicated": true - }, - { - "line": 33, - "code": " }", - "duplicated": true - }, - { - "line": 34, - "code": " }", - "duplicated": true - }, - { - "line": 35, - "code": "}", - "duplicated": true - }, - { - "line": 36, - "code": "", - "duplicated": false - } - ] -} diff --git a/it/it-tests/src/test/resources/duplication/DuplicationsTest/duplications_show-expected.json b/it/it-tests/src/test/resources/duplication/DuplicationsTest/duplications_show-expected.json deleted file mode 100644 index 83b69f2be1d..00000000000 --- a/it/it-tests/src/test/resources/duplication/DuplicationsTest/duplications_show-expected.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "duplications": [ - { - "blocks": [ - { - "from": 9, - "size": 29, - "_ref": "1" - }, - { - "from": 40, - "size": 31, - "_ref": "1" - } - ] - } - ], - "files": { - "1": { - "key": "file-duplications:src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo", - "name": "src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo", - "project": "file-duplications", - "projectName": "file-duplications" - } - } -} diff --git a/it/it-tests/src/test/resources/duplication/DuplicationsTest/sources_lines_duplication-expected.json b/it/it-tests/src/test/resources/duplication/DuplicationsTest/sources_lines_duplication-expected.json deleted file mode 100644 index f6ccc926f29..00000000000 --- a/it/it-tests/src/test/resources/duplication/DuplicationsTest/sources_lines_duplication-expected.json +++ /dev/null @@ -1,359 +0,0 @@ -{ - "sources": [ - { - "line": 1, - "code": "package duplicated_lines_within_same_file;", - "duplicated": false - }, - { - "line": 2, - "code": "", - "duplicated": false - }, - { - "line": 3, - "code": "public class DuplicatedLinesInSameFile {", - "duplicated": false - }, - { - "line": 4, - "code": "", - "duplicated": false - }, - { - "line": 5, - "code": " public DuplicatedLinesInSameFile() {", - "duplicated": false - }, - { - "line": 6, - "code": " }", - "duplicated": false - }, - { - "line": 7, - "code": "", - "duplicated": false - }, - { - "line": 8, - "code": " public void duplicatedMethodInSameFile1() {", - "duplicated": false - }, - { - "line": 9, - "code": " String temp = \"\";", - "duplicated": true - }, - { - "line": 10, - "code": " for (int i=0; i<10; i++){", - "duplicated": true - }, - { - "line": 11, - "code": " temp += \"say something\"+i;", - "duplicated": true - }, - { - "line": 12, - "code": " }", - "duplicated": true - }, - { - "line": 13, - "code": " for (int i=0; i<20; i++){", - "duplicated": true - }, - { - "line": 14, - "code": " temp += \"say nothing\"+i;", - "duplicated": true - }, - { - "line": 15, - "code": " }", - "duplicated": true - }, - { - "line": 16, - "code": " for (int i=0; i<30; i++){", - "duplicated": true - }, - { - "line": 17, - "code": " temp += \"always say nothing\"+i;", - "duplicated": true - }, - { - "line": 18, - "code": " }", - "duplicated": true - }, - { - "line": 19, - "code": " for (int i=0; i<40; i++){", - "duplicated": true - }, - { - "line": 20, - "code": " temp += \"really nothing to say \"+i;", - "duplicated": true - }, - { - "line": 21, - "code": " }", - "duplicated": true - }, - { - "line": 22, - "code": " for (int i=0; i<50; i++){", - "duplicated": true - }, - { - "line": 23, - "code": " temp += \"really really nothing to say \"+i;", - "duplicated": true - }, - { - "line": 24, - "code": " }", - "duplicated": true - }, - { - "line": 25, - "code": " for (int i=0; i<60; i++){", - "duplicated": true - }, - { - "line": 26, - "code": " temp += \".. \"+i;", - "duplicated": true - }, - { - "line": 27, - "code": " }", - "duplicated": true - }, - { - "line": 28, - "code": " for (int i=0; i<70; i++){", - "duplicated": true - }, - { - "line": 29, - "code": " temp += \"you say something? \"+i;", - "duplicated": true - }, - { - "line": 30, - "code": " }", - "duplicated": true - }, - { - "line": 31, - "code": " for (int i=0; i<80; i++){", - "duplicated": true - }, - { - "line": 32, - "code": " temp += \"ah no...\"+i;", - "duplicated": true - }, - { - "line": 33, - "code": " }", - "duplicated": true - }, - { - "line": 34, - "code": " for (int i=0; i<90; i++){", - "duplicated": true - }, - { - "line": 35, - "code": " temp += \"bye\"+i;", - "duplicated": true - }, - { - "line": 36, - "code": " }", - "duplicated": true - }, - { - "line": 37, - "code": " }", - "duplicated": true - }, - { - "line": 38, - "code": "", - "duplicated": false - }, - { - "line": 39, - "code": " public void duplicatedMethodInSameFile2() {", - "duplicated": false - }, - { - "line": 40, - "code": " String temp = \"\";", - "duplicated": true - }, - { - "line": 41, - "code": " for (int i=0; i<10; i++){", - "duplicated": true - }, - { - "line": 42, - "code": " temp += \"say something\"+i;", - "duplicated": true - }, - { - "line": 43, - "code": " }", - "duplicated": true - }, - { - "line": 44, - "code": " for (int i=0; i<20; i++){", - "duplicated": true - }, - { - "line": 45, - "code": " temp += \"say nothing\"+i;", - "duplicated": true - }, - { - "line": 46, - "code": " }", - "duplicated": true - }, - { - "line": 47, - "code": " for (int i=0; i<30; i++){", - "duplicated": true - }, - { - "line": 48, - "code": " temp += \"always say nothing\"+i;", - "duplicated": true - }, - { - "line": 49, - "code": " }", - "duplicated": true - }, - { - "line": 50, - "code": " for (int i=0; i<40; i++){", - "duplicated": true - }, - { - "line": 51, - "code": " temp += \"really nothing to say \"+i;", - "duplicated": true - }, - { - "line": 52, - "code": " }", - "duplicated": true - }, - { - "line": 53, - "code": " for (int i=0; i<50; i++){", - "duplicated": true - }, - { - "line": 54, - "code": " temp += \"really really nothing to say \"+i;", - "duplicated": true - }, - { - "line": 55, - "code": " }", - "duplicated": true - }, - { - "line": 56, - "code": " for (int i=0; i<60; i++){", - "duplicated": true - }, - { - "line": 57, - "code": " temp += \".. \"+i;", - "duplicated": true - }, - { - "line": 58, - "code": " }", - "duplicated": true - }, - { - "line": 59, - "code": " for (int i=0; i<70; i++){", - "duplicated": true - }, - { - "line": 60, - "code": " temp += \"you say something? \"+i;", - "duplicated": true - }, - { - "line": 61, - "code": " }", - "duplicated": true - }, - { - "line": 62, - "code": " for (int i=0; i<80; i++){", - "duplicated": true - }, - { - "line": 63, - "code": " temp += \"ah no...\"+i;", - "duplicated": true - }, - { - "line": 64, - "code": " }", - "duplicated": true - }, - { - "line": 65, - "code": " for (int i=0; i<90; i++){", - "duplicated": true - }, - { - "line": 66, - "code": " temp += \"bye\"+i;", - "duplicated": true - }, - { - "line": 67, - "code": " }", - "duplicated": true - }, - { - "line": 68, - "code": " }", - "duplicated": true - }, - { - "line": 69, - "code": "", - "duplicated": true - }, - { - "line": 70, - "code": "}", - "duplicated": true - }, - { - "line": 71, - "code": "", - "duplicated": false - } - ] -} diff --git a/it/it-tests/src/test/resources/duplication/xoo-duplication-profile.xml b/it/it-tests/src/test/resources/duplication/xoo-duplication-profile.xml deleted file mode 100644 index 999b64a8251..00000000000 --- a/it/it-tests/src/test/resources/duplication/xoo-duplication-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0"?><!-- Generated by Sonar --> -<profile> - <name>xoo-duplication-profile</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>DuplicatedBlocks</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/exclusions/IssueExclusionsTest/with-many-rules.xml b/it/it-tests/src/test/resources/exclusions/IssueExclusionsTest/with-many-rules.xml deleted file mode 100644 index f3d0baf0616..00000000000 --- a/it/it-tests/src/test/resources/exclusions/IssueExclusionsTest/with-many-rules.xml +++ /dev/null @@ -1,32 +0,0 @@ -<profile> - <name>with-many-rules</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>xoo</value> - </parameter> - </parameters> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/i18n/default-locale-is-english.html b/it/it-tests/src/test/resources/i18n/default-locale-is-english.html deleted file mode 100644 index 978ceaa382e..00000000000 --- a/it/it-tests/src/test/resources/i18n/default-locale-is-english.html +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>default_locale_is_english</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">default_locale_is_english</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/dashboard/index?id=sample&name=Dashboard&locale=foo</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=#content</td> - <td>regexp:.*Jan.*|.*Feb.*|.*Mar.*|.*Apr.*|.*May.*|.*Jun.*|.*Jul.*|.*Aug.*|.*Sep.*|.*Oct.*|.*Nov.*|.*Dec.*</td> - </tr> - <tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*0.0%*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/i18n/french-locale.html b/it/it-tests/src/test/resources/i18n/french-locale.html deleted file mode 100644 index 389f9e04ec4..00000000000 --- a/it/it-tests/src/test/resources/i18n/french-locale.html +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>french</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/dashboard/index?id=sample&name=Dashboard&locale=fr</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=#content</td> - <td>regexp:.*jan.*|.*fév.*|.*mar.*|.*avr.*|.*mai.*|.*juin.*|.*juil.*|.*août.*|.*sept.*|.*oct.*|.*nov.*|.*déc.*</td> - </tr> - <tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*0,0%*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/i18n/french-pack.html b/it/it-tests/src/test/resources/i18n/french-pack.html deleted file mode 100644 index 3f801c9a6ec..00000000000 --- a/it/it-tests/src/test/resources/i18n/french-pack.html +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>french-pack</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french-pack</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/?locale=fr</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=.navbar</td> - <td>glob:*Se connecter*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/i18n/locale-with-france-country.html b/it/it-tests/src/test/resources/i18n/locale-with-france-country.html deleted file mode 100644 index e84051475eb..00000000000 --- a/it/it-tests/src/test/resources/i18n/locale-with-france-country.html +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>french-france</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french-france</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/dashboard/index?id=sample&name=Dashboard&locale=fr-FR</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=#content</td> - <td>regexp:.*jan.*|.*fév.*|.*mar.*|.*avr.*|.*mai.*|.*juin.*|.*juil.*|.*août.*|.*sept.*|.*oct.*|.*nov.*|.*déc.*</td> - </tr> - <tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*0,0%*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/i18n/locale-with-swiss-country.html b/it/it-tests/src/test/resources/i18n/locale-with-swiss-country.html deleted file mode 100644 index be1453e002f..00000000000 --- a/it/it-tests/src/test/resources/i18n/locale-with-swiss-country.html +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>french-switzerland</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french-switzerland</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/dashboard/index?id=sample&name=Dashboard&locale=fr-CH</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=#content</td> - <td>regexp:.*jan.*|.*fév.*|.*mar.*|.*avr.*|.*mai.*|.*juin.*|.*juil.*|.*août.*|.*sept.*|.*oct.*|.*nov.*|.*déc.*</td> - </tr> - <tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*0.0%*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/issue/CommonRulesTest/xoo-common-rules-profile.xml b/it/it-tests/src/test/resources/issue/CommonRulesTest/xoo-common-rules-profile.xml deleted file mode 100644 index 9803527b94f..00000000000 --- a/it/it-tests/src/test/resources/issue/CommonRulesTest/xoo-common-rules-profile.xml +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0"?><!-- Generated by Sonar --> -<profile> - <name>xoo-common-rules</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>DuplicatedBlocks</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>InsufficientBranchCoverage</key> - <priority>CRITICAL</priority> - <parameters> - <parameter> - <key>minimumBranchCoverageRatio</key> - <value>90</value> - </parameter> - </parameters> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>InsufficientCommentDensity</key> - <priority>CRITICAL</priority> - <parameters> - <parameter> - <key>minimumCommentDensity</key> - <value>90.0</value> - </parameter> - </parameters> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>InsufficientLineCoverage</key> - <priority>CRITICAL</priority> - <parameters> - <parameter> - <key>minimumLineCoverageRatio</key> - <value>90</value> - </parameter> - </parameters> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>FailedUnitTests</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>SkippedUnitTests</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/CustomRulesTest/custom.xml b/it/it-tests/src/test/resources/issue/CustomRulesTest/custom.xml deleted file mode 100644 index b04d126115d..00000000000 --- a/it/it-tests/src/test/resources/issue/CustomRulesTest/custom.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><!-- Generated by Sonar --> -<profile> - <name>Custom</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>MyCustomRule</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/issue/IssueActionTest/xoo-one-issue-per-line-profile.xml b/it/it-tests/src/test/resources/issue/IssueActionTest/xoo-one-issue-per-line-profile.xml deleted file mode 100644 index 608f80cae96..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueActionTest/xoo-one-issue-per-line-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0"?><!-- Generated by Sonar --> -<profile> - <name>xoo-one-issue-per-line-profile</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/IssueBulkChangeTest/one-issue-per-line-profile.xml b/it/it-tests/src/test/resources/issue/IssueBulkChangeTest/one-issue-per-line-profile.xml deleted file mode 100644 index 365aa896a73..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueBulkChangeTest/one-issue-per-line-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/IssueChangelogTest/one-issue-per-line-profile.xml b/it/it-tests/src/test/resources/issue/IssueChangelogTest/one-issue-per-line-profile.xml deleted file mode 100644 index 365aa896a73..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueChangelogTest/one-issue-per-line-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/IssueCreationDateTest/no-rules.xml b/it/it-tests/src/test/resources/issue/IssueCreationDateTest/no-rules.xml deleted file mode 100644 index 62ec52d9d10..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueCreationDateTest/no-rules.xml +++ /dev/null @@ -1,6 +0,0 @@ -<profile> - <name>creation-date-quality-profile</name> - <language>xoo</language> - <rules> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/IssueCreationDateTest/one-rule.xml b/it/it-tests/src/test/resources/issue/IssueCreationDateTest/one-rule.xml deleted file mode 100644 index c1d7d44f02c..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueCreationDateTest/one-rule.xml +++ /dev/null @@ -1,11 +0,0 @@ -<profile> - <name>creation-date-quality-profile</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/IssueCreationTest/override-profile-severity.xml b/it/it-tests/src/test/resources/issue/IssueCreationTest/override-profile-severity.xml deleted file mode 100644 index d048760be60..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueCreationTest/override-profile-severity.xml +++ /dev/null @@ -1,11 +0,0 @@ -<profile> - <name>override-profile-severity</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneBlockerIssuePerFile</key> - <priority>INFO</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/IssueCreationTest/with-custom-message.xml b/it/it-tests/src/test/resources/issue/IssueCreationTest/with-custom-message.xml deleted file mode 100644 index 323e50985cd..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueCreationTest/with-custom-message.xml +++ /dev/null @@ -1,11 +0,0 @@ -<profile> - <name>with-custom-message</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>CustomMessage</key> - <priority>MAJOR</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/IssueFilterExtensionTest/xoo-with-many-rules.xml b/it/it-tests/src/test/resources/issue/IssueFilterExtensionTest/xoo-with-many-rules.xml deleted file mode 100644 index a08c9cdd246..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueFilterExtensionTest/xoo-with-many-rules.xml +++ /dev/null @@ -1,32 +0,0 @@ -<profile> - <name>with-many-rules</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>xoo</value> - </parameter> - </parameters> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/IssueFilterOnCommonRulesTest/xoo-common-rules-profile.xml b/it/it-tests/src/test/resources/issue/IssueFilterOnCommonRulesTest/xoo-common-rules-profile.xml deleted file mode 100644 index 9803527b94f..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueFilterOnCommonRulesTest/xoo-common-rules-profile.xml +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0"?><!-- Generated by Sonar --> -<profile> - <name>xoo-common-rules</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>DuplicatedBlocks</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>InsufficientBranchCoverage</key> - <priority>CRITICAL</priority> - <parameters> - <parameter> - <key>minimumBranchCoverageRatio</key> - <value>90</value> - </parameter> - </parameters> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>InsufficientCommentDensity</key> - <priority>CRITICAL</priority> - <parameters> - <parameter> - <key>minimumCommentDensity</key> - <value>90.0</value> - </parameter> - </parameters> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>InsufficientLineCoverage</key> - <priority>CRITICAL</priority> - <parameters> - <parameter> - <key>minimumLineCoverageRatio</key> - <value>90</value> - </parameter> - </parameters> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>FailedUnitTests</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>SkippedUnitTests</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/IssueFilterTest/with-many-rules.xml b/it/it-tests/src/test/resources/issue/IssueFilterTest/with-many-rules.xml deleted file mode 100644 index 366a3ab7576..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueFilterTest/with-many-rules.xml +++ /dev/null @@ -1,43 +0,0 @@ -<profile> - <name>with-many-rules</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>xoo</value> - </parameter> - </parameters> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>InsufficientLineCoverage</key> - <priority>BLOCKER</priority> - <parameters> - <parameter> - <key>minimumLineCoverageRatio</key> - <value>90</value> - </parameter> - </parameters> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/IssuePurgeTest/with-many-rules.xml b/it/it-tests/src/test/resources/issue/IssuePurgeTest/with-many-rules.xml deleted file mode 100644 index f3d0baf0616..00000000000 --- a/it/it-tests/src/test/resources/issue/IssuePurgeTest/with-many-rules.xml +++ /dev/null @@ -1,32 +0,0 @@ -<profile> - <name>with-many-rules</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>xoo</value> - </parameter> - </parameters> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/issue/IssueTrackingTest/one-issue-per-module-profile.xml b/it/it-tests/src/test/resources/issue/IssueTrackingTest/one-issue-per-module-profile.xml deleted file mode 100644 index 8b863ce9a46..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueTrackingTest/one-issue-per-module-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>one-issue-per-module</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/issue/IssueWorkflowTest/xoo-one-issue-per-line-profile.xml b/it/it-tests/src/test/resources/issue/IssueWorkflowTest/xoo-one-issue-per-line-profile.xml deleted file mode 100644 index 608f80cae96..00000000000 --- a/it/it-tests/src/test/resources/issue/IssueWorkflowTest/xoo-one-issue-per-line-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0"?><!-- Generated by Sonar --> -<profile> - <name>xoo-one-issue-per-line-profile</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/NewIssuesMeasureTest/profile1.xml b/it/it-tests/src/test/resources/issue/NewIssuesMeasureTest/profile1.xml deleted file mode 100644 index 3acc7f6a4ed..00000000000 --- a/it/it-tests/src/test/resources/issue/NewIssuesMeasureTest/profile1.xml +++ /dev/null @@ -1,27 +0,0 @@ -<profile> - <name>profile1</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>xoo</value> - </parameter> - </parameters> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/NewIssuesMeasureTest/profile2.xml b/it/it-tests/src/test/resources/issue/NewIssuesMeasureTest/profile2.xml deleted file mode 100644 index 70e0f8cd25a..00000000000 --- a/it/it-tests/src/test/resources/issue/NewIssuesMeasureTest/profile2.xml +++ /dev/null @@ -1,32 +0,0 @@ -<profile> - <name>profile2</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>xoo</value> - </parameter> - </parameters> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/issue-on-tag-foobar.xml b/it/it-tests/src/test/resources/issue/issue-on-tag-foobar.xml deleted file mode 100644 index d49b8f7c6c5..00000000000 --- a/it/it-tests/src/test/resources/issue/issue-on-tag-foobar.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>issue-on-tag-foobar</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>MAJOR</priority> - <parameters> - <parameter> - <key>tag</key> - <value>foobar</value> - </parameter> - </parameters> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/one-issue-per-file-profile.xml b/it/it-tests/src/test/resources/issue/one-issue-per-file-profile.xml deleted file mode 100644 index 141921f02e7..00000000000 --- a/it/it-tests/src/test/resources/issue/one-issue-per-file-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-file-profile</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/one-issue-per-line-profile.xml b/it/it-tests/src/test/resources/issue/one-issue-per-line-profile.xml deleted file mode 100644 index 28cebcc2380..00000000000 --- a/it/it-tests/src/test/resources/issue/one-issue-per-line-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-line-profile</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/issue/with-many-rules.xml b/it/it-tests/src/test/resources/issue/with-many-rules.xml deleted file mode 100644 index f97ef70cefd..00000000000 --- a/it/it-tests/src/test/resources/issue/with-many-rules.xml +++ /dev/null @@ -1,42 +0,0 @@ -<profile> - <name>with-many-rules</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>xoo</value> - </parameter> - </parameters> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneBugIssuePerLine</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneVulnerabilityIssuePerModule</key> - <priority>BLOCKER</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/logback-test.xml b/it/it-tests/src/test/resources/logback-test.xml deleted file mode 100644 index 599faa969f0..00000000000 --- a/it/it-tests/src/test/resources/logback-test.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<configuration debug="false"> - <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"/> - - <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> - <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> - <pattern> - %d{yyyy.MM.dd HH:mm:ss} %-5level %msg%n - </pattern> - </encoder> - </appender> - - <root> - <!-- Don't set to DEBUG or it will show the dev licenses into the console!!!! --> - <level value="INFO"/> - <appender-ref ref="CONSOLE"/> - </root> - -</configuration> diff --git a/it/it-tests/src/test/resources/measure/ProjectDashboardTest/test_project_overview_after_first_analysis.html b/it/it-tests/src/test/resources/measure/ProjectDashboardTest/test_project_overview_after_first_analysis.html deleted file mode 100644 index ac440b184aa..00000000000 --- a/it/it-tests/src/test/resources/measure/ProjectDashboardTest/test_project_overview_after_first_analysis.html +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>test_project_overview_after_first_analysis</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">test_project_overview_after_first_analysis</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/dashboard?id=project-for-overview</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>id=content</td> - <td>*Quality Gate*Passed*</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=overview-code-smells</td> - <td>*0*A*Debt*0*Code Smells*</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=content</td> - <td>*0.0%*Duplications*0*Duplicated Blocks*</td> - </tr> - <tr> - <td>assertNotText</td> - <td>id=content</td> - <td>*Coverage*</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=content</td> - <td>*Quality Gate*SonarQube way*</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=content</td> - <td>*Quality Profiles*Xoo*Basic*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/measure/ProjectMeasuresPageTest/should_display_measures_page.html b/it/it-tests/src/test/resources/measure/ProjectMeasuresPageTest/should_display_measures_page.html deleted file mode 100644 index 4c5a77a9545..00000000000 --- a/it/it-tests/src/test/resources/measure/ProjectMeasuresPageTest/should_display_measures_page.html +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_display_measure_drilldown</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/component_measures?id=project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=measure-code_smells</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>id=measure-code_smells-value</td> - <td>*0*</td> -</tr> -<tr> - <td>assertText</td> - <td>id=measure-new_code_smells-leak</td> - <td>*0*</td> -</tr> -<tr> - <td>click</td> - <td>css=#measure-code_smells > a</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*Code Smells*0*</td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*src/main/xoo/sample*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_list_view.html b/it/it-tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_list_view.html deleted file mode 100644 index e68d8b87dfb..00000000000 --- a/it/it-tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_list_view.html +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_drilldown_on_list_view</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/component_measures/metric/ncloc/list?id=project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td>*src/main/xoo/sample/Sample.xoo*</td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-measure-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo-ncloc</td> - <td>*13*</td> -</tr> -<tr> - <td>click</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.source-line-code</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.component-measures-breadcrumbs</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-breadcrumb-project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.component-measures-breadcrumbs</td> - <td>*Sample.xoo*13*</td> -</tr> -<tr> - <td>click</td> - <td>id=component-measures-breadcrumb-project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_tree_view.html b/it/it-tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_tree_view.html deleted file mode 100644 index 489c9d93afc..00000000000 --- a/it/it-tests/src/test/resources/measure/ProjectMeasuresPageTest/should_drilldown_on_tree_view.html +++ /dev/null @@ -1,84 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_drilldown_on_tree_view</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/component_measures/metric/ncloc/tree?id=project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample</td> - <td>*src/main/xoo/sample*</td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-measure-project-measures-page-test-project:src/main/xoo/sample-ncloc</td> - <td>*13*</td> -</tr> -<tr> - <td>click</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td>*src/main/xoo/sample/Sample.xoo*</td> -</tr> -<tr> - <td>assertText</td> - <td>id=component-measures-component-measure-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo-ncloc</td> - <td>*13*</td> -</tr> -<tr> - <td>assertText</td> - <td>css=.component-measures-breadcrumbs</td> - <td>*ProjectMeasuresPageTest Project*src/main/xoo/sample*13*</td> -</tr> -<tr> - <td>click</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample/Sample.xoo</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.source-line-code</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.component-measures-breadcrumbs</td> - <td>*ProjectMeasuresPageTest Project*src/main/xoo/sample*13*Sample.xoo*13*</td> -</tr> -<tr> - <td>click</td> - <td>id=component-measures-breadcrumb-project-measures-page-test-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=component-measures-component-link-project-measures-page-test-project:src/main/xoo/sample</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/measure/one-issue-per-file.xml b/it/it-tests/src/test/resources/measure/one-issue-per-file.xml deleted file mode 100644 index 7193ebfd779..00000000000 --- a/it/it-tests/src/test/resources/measure/one-issue-per-file.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>one-issue-per-file</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MINOR</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/measure/one-issue-per-line.xml b/it/it-tests/src/test/resources/measure/one-issue-per-line.xml deleted file mode 100644 index 365aa896a73..00000000000 --- a/it/it-tests/src/test/resources/measure/one-issue-per-line.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/measureHistory/one-issue-per-line-profile.xml b/it/it-tests/src/test/resources/measureHistory/one-issue-per-line-profile.xml deleted file mode 100644 index 521adc7e06f..00000000000 --- a/it/it-tests/src/test/resources/measureHistory/one-issue-per-line-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/organization/IssueAssignTest/one-issue-per-file-profile.xml b/it/it-tests/src/test/resources/organization/IssueAssignTest/one-issue-per-file-profile.xml deleted file mode 100644 index 141921f02e7..00000000000 --- a/it/it-tests/src/test/resources/organization/IssueAssignTest/one-issue-per-file-profile.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0"?><!-- Generated by Sonar --> -<profile> - <name>one-issue-per-file-profile</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_compare.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_compare.html deleted file mode 100644 index b8ea98d1690..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_compare.html +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_changelog</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_changelog</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table-name a[href^="/organizations/test-org/quality_profiles/show?key=xoo-sample"]</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profiles-table-name a[href^="/organizations/test-org/quality_profiles/show?key=xoo-sample"]</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profile-compare</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-profile-comparison .Select</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.js-profile-comparison .Select-control</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_copy.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_copy.html deleted file mode 100644 index 1ed2b8a9018..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_copy.html +++ /dev/null @@ -1,105 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_create</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin2</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin2</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profile-copy</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>css=#copy-profile-name</td> - <td>copied</td> -</tr> -<tr> - <td>click</td> - <td>css=#copy-profile-submit</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-header</td> - <td>*copied*</td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-rules</td> - <td>*1*Bugs*0*Vulnerabilities*0*Code Smells*1*</td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="copied"]</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_create.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_create.html deleted file mode 100644 index a6716b8c06a..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_create.html +++ /dev/null @@ -1,105 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_create</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin2</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin2</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#quality-profiles-create</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profiles-create</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#create-profile-name</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=#create-profile-form-backup-XooProfileImporter</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>css=#create-profile-name</td> - <td>test</td> -</tr> -<tr> - <td>click</td> - <td>css=#create-profile-submit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-header</td> - <td>*test*</td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-rules</td> - <td>*Bugs*0*Vulnerabilities*0*Code Smells*0*</td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table-row[data-name="test"]</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_delete.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_delete.html deleted file mode 100644 index 9610b0db66c..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_delete.html +++ /dev/null @@ -1,110 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_create</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin2</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin2</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profile-delete</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#delete-profile-submit</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#delete-profile-submit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"]</td> - <td></td> -</tr> -<tr> - <td>waitForElementNotPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"]</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"]</td> - <td></td> -</tr> -<tr> - <td>assertElementNotPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"]</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_changelog.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_changelog.html deleted file mode 100644 index 12536be7cbf..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_changelog.html +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_changelog</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_changelog</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=a[href^="/organizations/test-org/quality_profiles/changelog"]</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=a[href^="/organizations/test-org/quality_profiles/changelog"]</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-profile-changelog-event</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-profile-changelog-event</td> - <td>*System*Activated*Has Tag*Major*tag*xoo*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_list.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_list.html deleted file mode 100644 index 4d9242c77de..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_list.html +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_display_list</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_list</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name</td> - <td>*Basic*</td> -</tr> -<tr> - <td>assertText</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-projects</td> - <td>*Default*</td> -</tr> -<tr> - <td>assertText</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-rules</td> - <td>*1*</td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-rules a[href^="/organizations/test-org/rules#qprofile"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=table[data-language="xoo2"] tr[data-name="Basic"] .quality-profiles-table-name</td> - <td>*Basic*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_exporters.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_exporters.html deleted file mode 100644 index b26d162f2e7..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_exporters.html +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_profile_projects.html</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_profile_projects.html</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-exporters</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-exporters [data-key="XooFakeExporter"]</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-exporters a[href^="/api/qualityprofiles/export"]</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_inheritance.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_inheritance.html deleted file mode 100644 index c403fbf5196..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_inheritance.html +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_profile_inheritance.html</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_profile_inheritance.html</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-inheritance</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-inheritance-ancestor</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-inheritance-ancestor</td> - <td>*Basic*1*</td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.js-inheritance-current</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-inheritance-current</td> - <td>*sample*1*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_projects.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_projects.html deleted file mode 100644 index 062014eb239..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_projects.html +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_profile_projects.html</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_profile_projects.html</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-projects</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-profile-project</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-profile-project</td> - <td>*Sample*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_rules.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_rules.html deleted file mode 100644 index 6b497fc7b58..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_rules.html +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_profile_rules.html</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_profile_rules.html</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-rules</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-rules</td> - <td>*Active*1*Bugs*0*Vulnerabilities*0*Code Smells*1*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_filter_by_language.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_filter_by_language.html deleted file mode 100644 index a913a70a34f..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_filter_by_language.html +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_filter_by_language</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_filter_by_language</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-language-filter</td> - <td>*All*</td> -</tr> -<tr> - <td>click</td> - <td>css=.js-language-filter</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-language-filter-option[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.js-language-filter-option[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>waitForElementNotPresent</td> - <td>css=.quality-profiles-table[data-language="xoo"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-language-filter</td> - <td>*Xoo2*</td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles?language=xoo2</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>assertElementNotPresent</td> - <td>css=.quality-profiles-table[data-language="xoo"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-language-filter</td> - <td>*Xoo2*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_open_from_list.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_open_from_list.html deleted file mode 100644 index 2e753ba1cd7..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_open_from_list.html +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_open_from_list</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_open_from_list</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"]</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-rules</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-inheritance</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-projects</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_rename.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_rename.html deleted file mode 100644 index 5da4d40ca0c..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_rename.html +++ /dev/null @@ -1,105 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_create</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin2</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin2</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profile-rename</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#rename-profile-name</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>css=#rename-profile-name</td> - <td>new name</td> -</tr> -<tr> - <td>click</td> - <td>css=#rename-profile-submit</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-header</td> - <td>*new name*</td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="new name"] .quality-profiles-table-name a</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_restore.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_restore.html deleted file mode 100644 index dd2d21ba31f..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_restore.html +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_create</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin2</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin2</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-more-admin-actions</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.js-more-admin-actions</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profiles-restore</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#restore-profile-backup</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#restore-profile-submit</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_set_default.html b/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_set_default.html deleted file mode 100644 index c267bf702e3..00000000000 --- a/it/it-tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_set_default.html +++ /dev/null @@ -1,95 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_create</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin2</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin2</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profile-set-as-default</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-projects</td> - <td>*Default*</td> -</tr> -<tr> - <td>open</td> - <td>/organizations/test-org/quality_profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table-row[data-name="sample"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.quality-profiles-table-row[data-name="sample"] .quality-profiles-table-projects</td> - <td>*Default*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectAdministration/BackgroundTasksTest/should_not_display_failing_and_search_and_filter_elements_on_project_level_page.html b/it/it-tests/src/test/resources/projectAdministration/BackgroundTasksTest/should_not_display_failing_and_search_and_filter_elements_on_project_level_page.html deleted file mode 100644 index e28cdbba827..00000000000 --- a/it/it-tests/src/test/resources/projectAdministration/BackgroundTasksTest/should_not_display_failing_and_search_and_filter_elements_on_project_level_page.html +++ /dev/null @@ -1,80 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_not_display_failing_and_search_and_filter_elements_on_project_level_page</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">should_not_display_failing_and_search_and_filter_elements_on_project_level_page</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> -</tr> -<tr> - <td>click</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/project/background_tasks?id=test-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.background-tasks .badge</td> - <td></td> -</tr> -<tr> - <td>assertNotText</td> - <td>css=.background-tasks</td> - <td>*Another Test Project*</td> -</tr> -<tr> - <td>assertElementNotPresent</td> - <td>css=.js-search</td> - <td></td> -</tr> -<tr> - <td>assertNotText</td> - <td>css=#content</td> - <td>*still failing*</td> -</tr> -<tr> - <td>assertElementNotPresent</td> - <td>css=.icon-filter</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectAdministration/BulkDeletionTest/bulk-delete-filter-projects.html b/it/it-tests/src/test/resources/projectAdministration/BulkDeletionTest/bulk-delete-filter-projects.html deleted file mode 100644 index b6256e49b35..00000000000 --- a/it/it-tests/src/test/resources/projectAdministration/BulkDeletionTest/bulk-delete-filter-projects.html +++ /dev/null @@ -1,79 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>bulk-delete-filter-projects</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/projects_admin</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*Bar-Sonar-Plugin*Foo-Application*Sample-Project*</td> -</tr> -<tr> - <td>type</td> - <td>css=.search-box-input</td> - <td>s</td> -</tr> -<tr> - <td>click</td> - <td>css=.search-box-submit</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*Bar-Sonar-Plugin*Sample-Project*</td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*cameleon-3*cameleon-1*</td> -</tr> -<tr> - <td>assertTextNotPresent</td> - <td>content</td> - <td>*Foo-Application*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectAdministration/ProjectAdministrationTest/project-administration/multimodule-project-delete-version.html b/it/it-tests/src/test/resources/projectAdministration/ProjectAdministrationTest/project-administration/multimodule-project-delete-version.html deleted file mode 100644 index 496917b9e4c..00000000000 --- a/it/it-tests/src/test/resources/projectAdministration/ProjectAdministrationTest/project-administration/multimodule-project-delete-version.html +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>multimodule-project-delete-version</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">project-modify-versions</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/project/history/com.sonarsource.it.samples:multi-modules-sample</td> - <td></td> - </tr> - <tr> - <td>clickAndWait</td> - <td>link=Remove</td> - <td></td> - </tr> - <tr> - <td>assertConfirmation</td> - <td>Are you sure you want to remove 'RELEASE' from this snapshot?</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>infomsg</td> - <td>glob:*Version 'RELEASE' was removed from current project*</td> - </tr> - <tr> - <td>assertNotText</td> - <td>version_1</td> - <td>glob:*RELEASE*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectAdministration/ProjectAdministrationTest/project-administration/multimodule-project-modify-version.html b/it/it-tests/src/test/resources/projectAdministration/ProjectAdministrationTest/project-administration/multimodule-project-modify-version.html deleted file mode 100644 index f336f7e93b9..00000000000 --- a/it/it-tests/src/test/resources/projectAdministration/ProjectAdministrationTest/project-administration/multimodule-project-modify-version.html +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>multimodule-project-modify-version</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">project-modify-versions</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> - </tr> - <tr> - <td>click</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/project/history/com.sonarsource.it.samples:multi-modules-sample</td> - <td></td> - </tr> - <tr> - <td>assertElementNotPresent</td> - <td>link=Remove</td> - <td></td> - </tr> - <tr> - <td>click</td> - <td>version_1_change</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>version_name_1</td> - <td>RELEASE</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>save_version_1</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>infomsg</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>infomsg</td> - <td>Version 'RELEASE' was created for current project.</td> - </tr> - <tr> - <td>waitForText</td> - <td>version_1</td> - <td>glob:*RELEASE*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectAdministration/ProjectAdministrationTest/project-deletion/project-deletion.html b/it/it-tests/src/test/resources/projectAdministration/ProjectAdministrationTest/project-deletion/project-deletion.html deleted file mode 100644 index 9345f6e3f75..00000000000 --- a/it/it-tests/src/test/resources/projectAdministration/ProjectAdministrationTest/project-deletion/project-deletion.html +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>project-deletion</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">project-deletion</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>project-deletion-with-admin-permission-on-project</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>password</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/project/deletion?id=sample</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#delete-project</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#delete-project</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#delete-project-confirm</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#delete-project-confirm</td> - <td></td> -</tr> -<tr> - <td>waitForElementNotPresent</td> - <td>css=#delete-project-confirm</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/dashboard?id=sample</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.process-spinner-failed</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectAdministration/ProjectPermissionsTest/test_project_permissions_page_shows_only_single_project.html b/it/it-tests/src/test/resources/projectAdministration/ProjectPermissionsTest/test_project_permissions_page_shows_only_single_project.html deleted file mode 100644 index cbb6595ff20..00000000000 --- a/it/it-tests/src/test/resources/projectAdministration/ProjectPermissionsTest/test_project_permissions_page_shows_only_single_project.html +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>test_project_overview_after_first_analysis</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">test_project_overview_after_first_analysis</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/project_roles?id=project-permissions-project</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=#projects</td> - <td></td> - </tr> - <tr> - <td>assertNotText</td> - <td>css=#projects</td> - <td>*Another Test Project*</td> - </tr> - <tr> - <td>assertElementNotPresent</td> - <td>css=footer</td> - <td></td> - </tr> - <tr> - <td>assertElementNotPresent</td> - <td>css=.search-box</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-add-metrics.html b/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-add-metrics.html deleted file mode 100644 index ab7758bd71a..00000000000 --- a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-add-metrics.html +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should-add-metrics</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/comparison/index</td> - <td></td> - </tr> - <tr> - <td>assertNotText</td> - <td>comparison-page</td> - <td>*Major issues*</td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>new_metric</td> - <td></td> - </tr> - <tr> - <td>typeAndWait</td> - <td>new_metric</td> - <td>major_violations</td> - </tr> - <tr> - <td>waitForText</td> - <td>comparison-page</td> - <td>*Lines of Code*Complexity*Comments (%)*Duplicated Lines (%)*Issues*Coverage*Major Issues*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-add-projects.html b/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-add-projects.html deleted file mode 100644 index 18c882331ad..00000000000 --- a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-add-projects.html +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should-add-projects</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/comparison/index</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>new_resource</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>new_resource</td> - <td>project-comparison-test-project</td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>//option[text()='1.0-SNAPSHOT']</td> - <td></td> -</tr> -<tr> - <td>selectAndWait</td> - <td>new_version</td> - <td>1.0-SNAPSHOT</td> -</tr> -<tr> - <td>waitForText</td> - <td>id=content</td> - <td>*ProjectComparisonTest Project*1.0-SNAPSHOT*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-display-basic-set-of-metrics.html b/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-display-basic-set-of-metrics.html deleted file mode 100644 index 3a8e1256198..00000000000 --- a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-display-basic-set-of-metrics.html +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should-display-basic-set-of-metrics</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/comparison/index</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>id=content</td> - <td>*Lines of Code*Complexity*Comments (%)*Duplicated Lines (%)*Issues*Coverage*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-move-and-remove-metrics.html b/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-move-and-remove-metrics.html deleted file mode 100644 index 3b89b4af128..00000000000 --- a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-move-and-remove-metrics.html +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should-move-and-remove-metrics</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/comparison/index</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>comparison-page</td> - <td>*Lines of Code*Complexity*Comments (%)*Duplicated Lines (%)*Issues*Coverage*</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>down-0</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>comparison-page</td> - <td>*Complexity*Lines of Code*Comments (%)*Duplicated Lines (%)*Issues*Coverage*</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>up-5</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>comparison-page</td> - <td>*Complexity*Lines of Code*Comments (%)*Duplicated Lines (%)*Coverage*Issues*</td> -</tr> -<tr> - <td>waitForText</td> - <td>comparison-page</td> - <td>*%*</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>del-m-2</td> - <td></td> -</tr> -<tr> - <td>clickAndWait</td> - <td>del-m-2</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>comparison-page</td> - <td>*Complexity*Lines of Code*Coverage*Issues*</td> -</tr> -<tr> - <td>assertNotText</td> - <td>comparison-page</td> - <td>*%*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-move-and-remove-projects.html b/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-move-and-remove-projects.html deleted file mode 100644 index f7d71dbfd2f..00000000000 --- a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-move-and-remove-projects.html +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should-move-and-remove-projects</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/comparison/index</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>new_resource</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>new_resource</td> - <td>project-comparison-test-project</td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>//option[text()='1.0-SNAPSHOT']</td> - <td></td> -</tr> -<tr> - <td>selectAndWait</td> - <td>new_version</td> - <td>1.0-SNAPSHOT</td> -</tr> -<tr> - <td>waitForText</td> - <td>id=content</td> - <td>*ProjectComparisonTest Project*1.0-SNAPSHOT*</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>del-r-0</td> - <td></td> -</tr> -<tr> - <td>assertNotText</td> - <td>id=content</td> - <td>*Sample*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-not-add-differential-metrics.html b/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-not-add-differential-metrics.html deleted file mode 100644 index ff433b66005..00000000000 --- a/it/it-tests/src/test/resources/projectComparison/ProjectComparisonTest/should-not-add-differential-metrics.html +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should-not-add-differential-metrics</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/comparison/index</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>comparison-page</td> - <td>*Lines of Code*Complexity*Comments (%)*Duplicated Lines (%)*Issues*Coverage*</td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>new_metric</td> - <td></td> - </tr> - <tr> - <td>typeAndWait</td> - <td>new_metric</td> - <td>new_violations</td> - </tr> - <tr> - <td>waitForText</td> - <td>comparison-page</td> - <td>*Lines of Code*Complexity*Comments (%)*Duplicated Lines (%)*Issues*Coverage*</td> - </tr> - <tr> - <td>assertNotText</td> - <td>comparison-page</td> - <td>*New Issues*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/projectSearch/SearchProjectsTest/with-many-rules.xml b/it/it-tests/src/test/resources/projectSearch/SearchProjectsTest/with-many-rules.xml deleted file mode 100644 index 366a3ab7576..00000000000 --- a/it/it-tests/src/test/resources/projectSearch/SearchProjectsTest/with-many-rules.xml +++ /dev/null @@ -1,43 +0,0 @@ -<profile> - <name>with-many-rules</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>xoo</value> - </parameter> - </parameters> - </rule> - <rule> - <repositoryKey>common-xoo</repositoryKey> - <key>InsufficientLineCoverage</key> - <priority>BLOCKER</priority> - <parameters> - <parameter> - <key>minimumLineCoverageRatio</key> - <value>90</value> - </parameter> - </parameters> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/qualityGate/QualityGateOnRatingMeasuresTest/with-many-rules.xml b/it/it-tests/src/test/resources/qualityGate/QualityGateOnRatingMeasuresTest/with-many-rules.xml deleted file mode 100644 index 6668eff9096..00000000000 --- a/it/it-tests/src/test/resources/qualityGate/QualityGateOnRatingMeasuresTest/with-many-rules.xml +++ /dev/null @@ -1,42 +0,0 @@ -<profile> - <name>with-many-rules</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>xoo</value> - </parameter> - </parameters> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneBugIssuePerLine</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneVulnerabilityIssuePerModule</key> - <priority>BLOCKER</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/qualityGate/QualityGateUiTest/should-display-alerts-correctly-history-page.html b/it/it-tests/src/test/resources/qualityGate/QualityGateUiTest/should-display-alerts-correctly-history-page.html deleted file mode 100644 index 951ae58d38a..00000000000 --- a/it/it-tests/src/test/resources/qualityGate/QualityGateUiTest/should-display-alerts-correctly-history-page.html +++ /dev/null @@ -1,94 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ SonarQube, open source software quality management tool. - ~ Copyright (C) 2008-2016 SonarSource - ~ mailto:contact AT sonarsource DOT com - ~ - ~ SonarQube is free software; you can redistribute it and/or - ~ modify it under the terms of the GNU Lesser General Public - ~ License as published by the Free Software Foundation; either - ~ version 3 of the License, or (at your option) any later version. - ~ - ~ SonarQube is distributed in the hope that it will be useful, - ~ but WITHOUT ANY WARRANTY; without even the implied warranty of - ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - ~ Lesser General Public License for more details. - ~ - ~ You should have received a copy of the GNU Lesser General Public License - ~ along with this program; if not, write to the Free Software Foundation, - ~ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - --> - -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should-display-alerts-correctly-history-page</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">should-display-alerts-correctly-history-page</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/dashboard/index/sample</td> - <td></td> - </tr> - <tr> - <td>click</td> - <td>css=#context-navigation .navbar-admin-link</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>link=History</td> - <td></td> - </tr> - <tr> - <td>clickAndWait</td> - <td>link=History</td> - <td></td> - </tr> - <tr> - <td>assertElementPresent</td> - <td>//img[@title='Quality Gate Status: Green (was Orange). ']</td> - <td></td> - </tr> - <tr> - <td>assertElementPresent</td> - <td>//img[@title='Quality Gate Status: Orange. Lines > 5']</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityGate/QualityGateUiTest/should_display_quality_gates_page.html b/it/it-tests/src/test/resources/qualityGate/QualityGateUiTest/should_display_quality_gates_page.html deleted file mode 100644 index b0975df675d..00000000000 --- a/it/it-tests/src/test/resources/qualityGate/QualityGateUiTest/should_display_quality_gates_page.html +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ SonarQube, open source software quality management tool. - ~ Copyright (C) 2008-2016 SonarSource - ~ mailto:contact AT sonarsource DOT com - ~ - ~ SonarQube is free software; you can redistribute it and/or - ~ modify it under the terms of the GNU Lesser General Public - ~ License as published by the Free Software Foundation; either - ~ version 3 of the License, or (at your option) any later version. - ~ - ~ SonarQube is distributed in the hope that it will be useful, - ~ but WITHOUT ANY WARRANTY; without even the implied warranty of - ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - ~ Lesser General Public License for more details. - ~ - ~ You should have received a copy of the GNU Lesser General Public License - ~ along with this program; if not, write to the Free Software Foundation, - ~ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - --> - -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_display_quality_gates_page</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">should_display_quality_gates_page</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/quality_gates</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-gates-results a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-gates-results a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=quality-gate-conditions</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityGate/notifications/activate_notification_channels.html b/it/it-tests/src/test/resources/qualityGate/notifications/activate_notification_channels.html deleted file mode 100644 index 40de82c178a..00000000000 --- a/it/it-tests/src/test/resources/qualityGate/notifications/activate_notification_channels.html +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>reate_user_with_email</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">create_user_with_email</td> - </tr> - </thead> - <tbody> -<tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>tester</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>tester</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/sonar/account/notifications</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>id=global_notifs_NewAlerts_EmailNotificationChannel</td> - <td></td> -</tr> -<tr> - <td>check</td> - <td>id=global_notifs_NewAlerts_EmailNotificationChannel</td> - <td></td> -</tr> -<tr> - <td>clickAndWait</td> - <td>id=submit-notifications</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityGate/notifications/email_configuration.html b/it/it-tests/src/test/resources/qualityGate/notifications/email_configuration.html deleted file mode 100644 index 7b43cf8ee03..00000000000 --- a/it/it-tests/src/test/resources/qualityGate/notifications/email_configuration.html +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>email_configuration</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>setTimeout</td> - <td>300000</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/email_configuration</td> - <td></td> - </tr> - <tr> - <td>assertValue</td> - <td>smtp_host</td> - <td>localhost</td> - </tr> - <tr> - <td>type</td> - <td>to_address</td> - <td>test@example.org</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>submit_test</td> - <td></td> - </tr> - <tr> - <td>waitForVisible</td> - <td>info</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityModel/has-hello-tag.xml b/it/it-tests/src/test/resources/qualityModel/has-hello-tag.xml deleted file mode 100644 index 88cf4f9273e..00000000000 --- a/it/it-tests/src/test/resources/qualityModel/has-hello-tag.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>has-tag</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>hello</value> - </parameter> - </parameters> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/qualityModel/one-day-debt-per-file.xml b/it/it-tests/src/test/resources/qualityModel/one-day-debt-per-file.xml deleted file mode 100644 index cdebd7554c9..00000000000 --- a/it/it-tests/src/test/resources/qualityModel/one-day-debt-per-file.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>one-day-debt-per-file</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneDayDebtPerFile</key> - <priority>MINOR</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/qualityModel/one-issue-per-file.xml b/it/it-tests/src/test/resources/qualityModel/one-issue-per-file.xml deleted file mode 100644 index 7193ebfd779..00000000000 --- a/it/it-tests/src/test/resources/qualityModel/one-issue-per-file.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>one-issue-per-file</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MINOR</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/qualityModel/one-issue-per-line.xml b/it/it-tests/src/test/resources/qualityModel/one-issue-per-line.xml deleted file mode 100644 index 521adc7e06f..00000000000 --- a/it/it-tests/src/test/resources/qualityModel/one-issue-per-line.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<profile> - <name>one-issue-per-line</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - </rules> -</profile>
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/qualityModel/with-many-rules.xml b/it/it-tests/src/test/resources/qualityModel/with-many-rules.xml deleted file mode 100644 index 6668eff9096..00000000000 --- a/it/it-tests/src/test/resources/qualityModel/with-many-rules.xml +++ /dev/null @@ -1,42 +0,0 @@ -<profile> - <name>with-many-rules</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>HasTag</key> - <priority>INFO</priority> - <parameters> - <parameter> - <key>tag</key> - <value>xoo</value> - </parameter> - </parameters> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneBugIssuePerLine</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneVulnerabilityIssuePerModule</key> - <priority>BLOCKER</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/qualityModel/without-type-bug.xml b/it/it-tests/src/test/resources/qualityModel/without-type-bug.xml deleted file mode 100644 index 89c92cf10fa..00000000000 --- a/it/it-tests/src/test/resources/qualityModel/without-type-bug.xml +++ /dev/null @@ -1,26 +0,0 @@ -<profile> - <name>without-type-bug</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneVulnerabilityIssuePerModule</key> - <priority>BLOCKER</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/qualityModel/without-type-code-smells.xml b/it/it-tests/src/test/resources/qualityModel/without-type-code-smells.xml deleted file mode 100644 index 4bbb6f88ed7..00000000000 --- a/it/it-tests/src/test/resources/qualityModel/without-type-code-smells.xml +++ /dev/null @@ -1,16 +0,0 @@ -<profile> - <name>without-type-code-smells</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneBugIssuePerLine</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneVulnerabilityIssuePerModule</key> - <priority>BLOCKER</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/qualityModel/without-type-vulnerability.xml b/it/it-tests/src/test/resources/qualityModel/without-type-vulnerability.xml deleted file mode 100644 index c5fb823bd7c..00000000000 --- a/it/it-tests/src/test/resources/qualityModel/without-type-vulnerability.xml +++ /dev/null @@ -1,26 +0,0 @@ -<profile> - <name>without-type-vulnerability</name> - <language>xoo</language> - <rules> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerLine</key> - <priority>MINOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerFile</key> - <priority>MAJOR</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneIssuePerModule</key> - <priority>CRITICAL</priority> - </rule> - <rule> - <repositoryKey>xoo</repositoryKey> - <key>OneBugIssuePerLine</key> - <priority>CRITICAL</priority> - </rule> - </rules> -</profile> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_compare.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_compare.html deleted file mode 100644 index c2339d690f6..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_compare.html +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_changelog</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_changelog</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table-name a[href^="/profiles/show?key=xoo-sample"]</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profiles-table-name a[href^="/profiles/show?key=xoo-sample"]</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profile-compare</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-profile-comparison .Select</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.js-profile-comparison .Select-control</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_copy.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_copy.html deleted file mode 100644 index d2f0a12a8b3..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_copy.html +++ /dev/null @@ -1,105 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_create</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profile-copy</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>css=#copy-profile-name</td> - <td>copied</td> -</tr> -<tr> - <td>click</td> - <td>css=#copy-profile-submit</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-header</td> - <td>*copied*</td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-rules</td> - <td>*1*Bugs*0*Vulnerabilities*0*Code Smells*1*</td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="copied"]</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_create.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_create.html deleted file mode 100644 index 7fefabfbd4a..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_create.html +++ /dev/null @@ -1,100 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#quality-profiles-create</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profiles-create</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#create-profile-name</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=#create-profile-form-backup-XooProfileImporter</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>css=#create-profile-name</td> - <td>test</td> -</tr> -<tr> - <td>click</td> - <td>css=#create-profile-submit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-header</td> - <td>*test*</td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-rules</td> - <td>*Bugs*0*Vulnerabilities*0*Code Smells*0*</td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table-row[data-name="test"]</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_delete.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_delete.html deleted file mode 100644 index 85e85c0391c..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_delete.html +++ /dev/null @@ -1,105 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profile-delete</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#delete-profile-submit</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#delete-profile-submit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"]</td> - <td></td> -</tr> -<tr> - <td>waitForElementNotPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"]</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"]</td> - <td></td> -</tr> -<tr> - <td>assertElementNotPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"]</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_changelog.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_changelog.html deleted file mode 100644 index 8614c2fdab9..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_changelog.html +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_changelog</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_changelog</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=a[href^="/profiles/changelog"]</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=a[href^="/profiles/changelog"]</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-profile-changelog-event</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-profile-changelog-event</td> - <td>*System*Activated*Has Tag*Major*tag*xoo*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_list.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_list.html deleted file mode 100644 index 66f83c9af47..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_list.html +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_display_list</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_list</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name</td> - <td>*Basic*</td> -</tr> -<tr> - <td>assertText</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-projects</td> - <td>*Default*</td> -</tr> -<tr> - <td>assertText</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-rules</td> - <td>*1*</td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-rules a[href^="/coding_rules#qprofile"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=table[data-language="xoo2"] tr[data-name="Basic"] .quality-profiles-table-name</td> - <td>*Basic*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_exporters.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_exporters.html deleted file mode 100644 index ea8b1d321f1..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_exporters.html +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_profile_projects.html</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_profile_projects.html</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-exporters</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-exporters [data-key="XooFakeExporter"]</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-exporters a[href^="/api/qualityprofiles/export"]</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_inheritance.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_inheritance.html deleted file mode 100644 index 501ae5b5df8..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_inheritance.html +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_profile_inheritance.html</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_profile_inheritance.html</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-inheritance</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-inheritance-ancestor</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-inheritance-ancestor</td> - <td>*Basic*1*</td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.js-inheritance-current</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-inheritance-current</td> - <td>*sample*1*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_projects.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_projects.html deleted file mode 100644 index ff38495e318..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_projects.html +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_profile_projects.html</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_profile_projects.html</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-projects</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-profile-project</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-profile-project</td> - <td>*Sample*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_rules.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_rules.html deleted file mode 100644 index eb5ccf3194b..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_rules.html +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_profile_rules.html</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_display_profile_rules.html</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-rules</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-rules</td> - <td>*Active*1*Bugs*0*Vulnerabilities*0*Code Smells*1*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_filter_by_language.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_filter_by_language.html deleted file mode 100644 index cfe5321b816..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_filter_by_language.html +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_filter_by_language</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_filter_by_language</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-language-filter</td> - <td>*All*</td> -</tr> -<tr> - <td>click</td> - <td>css=.js-language-filter</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-language-filter-option[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.js-language-filter-option[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>waitForElementNotPresent</td> - <td>css=.quality-profiles-table[data-language="xoo"]</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-language-filter</td> - <td>*Xoo2*</td> -</tr> -<tr> - <td>open</td> - <td>/profiles?language=xoo2</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table .data[data-language="xoo2"]</td> - <td></td> -</tr> -<tr> - <td>assertElementNotPresent</td> - <td>css=.quality-profiles-table[data-language="xoo"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.js-language-filter</td> - <td>*Xoo2*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_open_from_list.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_open_from_list.html deleted file mode 100644 index de19c00a017..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_open_from_list.html +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>should_open_from_list</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_open_from_list</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"]</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="Basic"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-rules</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-inheritance</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-projects</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_rename.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_rename.html deleted file mode 100644 index dfa3138f8b1..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_rename.html +++ /dev/null @@ -1,105 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr> -<td rowspan="1" colspan="3">should_create</td> -</tr> -</thead> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profile-rename</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#rename-profile-name</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>css=#rename-profile-name</td> - <td>new name</td> -</tr> -<tr> - <td>click</td> - <td>css=#rename-profile-submit</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-header</td> - <td>*new name*</td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="new name"] .quality-profiles-table-name a</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_restore.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_restore.html deleted file mode 100644 index 8def7727001..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_restore.html +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-more-admin-actions</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.js-more-admin-actions</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profiles-restore</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#restore-profile-backup</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#restore-profile-submit</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_set_default.html b/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_set_default.html deleted file mode 100644 index 6306820ba6a..00000000000 --- a/it/it-tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_set_default.html +++ /dev/null @@ -1,90 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_create</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<tbody> -<tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=table[data-language="xoo"] tr[data-name="sample"] .quality-profiles-table-name a</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=.quality-profile-header .dropdown-toggle</td> - <td></td> -</tr> -<tr> - <td>click</td> - <td>css=#quality-profile-set-as-default</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.quality-profile-projects</td> - <td>*Default*</td> -</tr> -<tr> - <td>open</td> - <td>/profiles</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.quality-profiles-table-row[data-name="sample"]</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.quality-profiles-table-row[data-name="sample"] .quality-profiles-table-projects</td> - <td>*Default*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/serverSystem/HttpsTest/keystore.jks b/it/it-tests/src/test/resources/serverSystem/HttpsTest/keystore.jks Binary files differdeleted file mode 100644 index 13234b49dc2..00000000000 --- a/it/it-tests/src/test/resources/serverSystem/HttpsTest/keystore.jks +++ /dev/null diff --git a/it/it-tests/src/test/resources/serverSystem/HttpsTest/keystore.jks.txt b/it/it-tests/src/test/resources/serverSystem/HttpsTest/keystore.jks.txt deleted file mode 100644 index ce4a4adfc39..00000000000 --- a/it/it-tests/src/test/resources/serverSystem/HttpsTest/keystore.jks.txt +++ /dev/null @@ -1,3 +0,0 @@ -keytool -genkey -alias tests -keyalg RSA -keystore keystore.jks -keystore password: thepassword -key password for <tests>: thetests
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/derby-warning.html b/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/derby-warning.html deleted file mode 100644 index c2e13c56aad..00000000000 --- a/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/derby-warning.html +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>derby-warning</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">derby-warning</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/</td> - <td></td> - </tr> - <tr> - <td>assertElementPresent</td> - <td>evaluation_warning</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>footer</td> - <td>glob:*evaluation*</td> - </tr> - - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/hide-jdbc-settings.html b/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/hide-jdbc-settings.html deleted file mode 100644 index 311d000f9cd..00000000000 --- a/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/hide-jdbc-settings.html +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ SonarQube, open source software quality management tool. - ~ Copyright (C) 2008-2016 SonarSource - ~ mailto:contact AT sonarsource DOT com - ~ - ~ SonarQube is free software; you can redistribute it and/or - ~ modify it under the terms of the GNU Lesser General Public - ~ License as published by the Free Software Foundation; either - ~ version 3 of the License, or (at your option) any later version. - ~ - ~ SonarQube is distributed in the hope that it will be useful, - ~ but WITHOUT ANY WARRANTY; without even the implied warranty of - ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - ~ Lesser General Public License for more details. - ~ - ~ You should have received a copy of the GNU Lesser General Public License - ~ along with this program; if not, write to the Free Software Foundation, - ~ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - --> - -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>hide-jdbc-settings</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">hide-jdbc-settings</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/setup/index</td> - <td></td> - </tr> - <tr> - <td>assertTextNotPresent</td> - <td>jdbc:</td> - <td></td> - </tr> - - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/incompatible-plugin-1.0.jar b/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/incompatible-plugin-1.0.jar Binary files differdeleted file mode 100644 index 541131c5093..00000000000 --- a/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/incompatible-plugin-1.0.jar +++ /dev/null diff --git a/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/system_info.html b/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/system_info.html deleted file mode 100644 index e304586c59c..00000000000 --- a/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/system_info.html +++ /dev/null @@ -1,84 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>system_info</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">system_info</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/system/index</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>id=content</td> - <td>*Official Distribution*</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=content</td> - <td>*Database Version*</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=content</td> - <td>*Pool Active Connections*</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=content</td> - <td>*Start Time*</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=content</td> - <td>*Processors*</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=content</td> - <td>*java.class.path*java.specification.version*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/url_ending_by_jsp.html b/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/url_ending_by_jsp.html deleted file mode 100644 index 12056550fc2..00000000000 --- a/it/it-tests/src/test/resources/serverSystem/ServerSystemTest/url_ending_by_jsp.html +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ SonarQube, open source software quality management tool. - ~ Copyright (C) 2008-2016 SonarSource - ~ mailto:contact AT sonarsource DOT com - ~ - ~ SonarQube is free software; you can redistribute it and/or - ~ modify it under the terms of the GNU Lesser General Public - ~ License as published by the Free Software Foundation; either - ~ version 3 of the License, or (at your option) any later version. - ~ - ~ SonarQube is distributed in the hope that it will be useful, - ~ but WITHOUT ANY WARRANTY; without even the implied warranty of - ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - ~ Lesser General Public License for more details. - ~ - ~ You should have received a copy of the GNU Lesser General Public License - ~ along with this program; if not, write to the Free Software Foundation, - ~ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - --> - -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/dashboard/index/myproject.jsp</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=#content</td> - <td></td> - </tr> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/settings/SettingsTest/sonar-secret.txt b/it/it-tests/src/test/resources/settings/SettingsTest/sonar-secret.txt deleted file mode 100644 index 65b98c522da..00000000000 --- a/it/it-tests/src/test/resources/settings/SettingsTest/sonar-secret.txt +++ /dev/null @@ -1 +0,0 @@ -0PZz+G+f8mjr3sPn4+AhHg==
\ No newline at end of file diff --git a/it/it-tests/src/test/resources/sourceCode/EncodingTest/japanese_sources.html b/it/it-tests/src/test/resources/sourceCode/EncodingTest/japanese_sources.html deleted file mode 100644 index d873fba3939..00000000000 --- a/it/it-tests/src/test/resources/sourceCode/EncodingTest/japanese_sources.html +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>japanese_sources</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">japanese_sources</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/component/index?id=japanese-charset%3Asrc%2Fmain%2Fxoo%2Fcom%2Ftest%2FAppDuplication.xoo</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.source-viewer</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.source-table</td> - <td>glob:*public class AppDuplication*</td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.source-table</td> - <td>glob:*証明書パス構築ã«å¤±æ•—ã—ã¾ã—ãŸã€‚*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/sourceCode/HighlightingTest/symbol-usages-highlighting.html b/it/it-tests/src/test/resources/sourceCode/HighlightingTest/symbol-usages-highlighting.html deleted file mode 100644 index 42e1fc154f2..00000000000 --- a/it/it-tests/src/test/resources/sourceCode/HighlightingTest/symbol-usages-highlighting.html +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>highlight-symbol-usages</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">highlight-symbol-usages</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/component/index?id=sample-with-highlighting%3Asrc%2Fmain%2Fxoo%2Fsample%2FSample.xoo</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.source-line</td> - <td></td> -</tr> -<tr> - <td>waitForXpathCount</td> - <td>//span[contains(@class, 'sym')]</td> - <td>3</td> -</tr> -<tr> - <td>waitForXpathCount</td> - <td>//span[contains(@class, 'sym highlighted')]</td> - <td>0</td> -</tr> -<tr> - <td>click</td> - <td>//span[contains(@class, 'sym')][2]</td> - <td></td> -</tr> -<tr> - <td>waitForXpathCount</td> - <td>//span[contains(@class, 'sym highlighted')]</td> - <td>2</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting-v1.html b/it/it-tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting-v1.html deleted file mode 100644 index 7a1e36cf816..00000000000 --- a/it/it-tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting-v1.html +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>java-syntax-highlighting</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">highlight-syntax-v1</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/component/index?id=sample-with-highlighting%3Asrc%2Fmain%2Fxoo%2Fsample%2FSample.xoo</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.source-line</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="k">package</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="k">public</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="k">class</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <!-- Here class is wrong and will be fixed during next analysis --> - <td>glob:*<span class="s">return</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="s">"hello"</span>*</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting-v2.html b/it/it-tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting-v2.html deleted file mode 100644 index 7f473dd9e43..00000000000 --- a/it/it-tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting-v2.html +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>java-syntax-highlighting</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">highlight-syntax-v2</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/component/index?id=sample-with-highlighting%3Asrc%2Fmain%2Fxoo%2Fsample%2FSample.xoo</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.source-line</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="k">package</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="k">public</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="k">class</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="k">return</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="s">"hello"</span>*</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting.html b/it/it-tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting.html deleted file mode 100644 index 53e4602a978..00000000000 --- a/it/it-tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting.html +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>java-syntax-highlighting</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">highlight-syntax</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/component/index?id=sample-with-highlighting%3Asrc%2Fmain%2Fxoo%2Fsample%2FSample.xoo</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.source-line</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="k">package</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="k">public</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="k">class</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="k">return</span>*</td> - <td></td> - </tr> - <tr> - <td>verifyHtmlSource</td> - <td>glob:*<span class="s">"hello"</span>*</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/code_page_should_expand_root_dir.html b/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/code_page_should_expand_root_dir.html deleted file mode 100644 index c9737d5fe25..00000000000 --- a/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/code_page_should_expand_root_dir.html +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>code_page_should_expand_root_dir</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">code_page_should_expand_root_dir</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/code?id=project-for-code-root-dir</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*Hello.xoo*src/main/xoo/sample*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/permalink.html b/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/permalink.html deleted file mode 100644 index 69364a69079..00000000000 --- a/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/permalink.html +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>test_project_code_page</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">test_project_code_page</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/code?id=project-for-code&selected=project-for-code%3Asrc%2Fmain%2Fxoo%2Fsample%2FSample.xoo</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*public class Sample*</td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.code-breadcrumbs</td> - <td>*Project For Code*src/main/xoo/sample*Sample.xoo*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/search.html b/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/search.html deleted file mode 100644 index 1594ee28cd5..00000000000 --- a/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/search.html +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>test_project_code_page</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">test_project_code_page</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/code?id=project-for-code</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*Project For Code*13*0*0*0.0%*</td> -</tr> -<tr> - <td>type</td> - <td>css=.search-box-input</td> - <td>xoo</td> -</tr> -<tr> - <td>click</td> - <td>css=.search-box-submit</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*Sample.xoo*</td> -</tr> -<tr> - <td>click</td> - <td>css=.code-name-cell a</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*public class Sample*</td> -</tr> -<tr> - <td>waitForText</td> - <td>css=.code-breadcrumbs</td> - <td>*Project For Code*src/main/xoo/sample*Sample.xoo*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/test_project_code_page.html b/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/test_project_code_page.html deleted file mode 100644 index 9c6b163fa44..00000000000 --- a/it/it-tests/src/test/resources/sourceCode/ProjectCodeTest/test_project_code_page.html +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>test_project_code_page</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">test_project_code_page</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/code?id=project-for-code</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*Project For Code*13*0*0*0.0%*</td> -</tr> -<tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*src/main/xoo/sample*</td> -</tr> -<tr> - <td>click</td> - <td>css=.code-name-cell a</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>css=#content</td> - <td>*Sample.xoo*</td> -</tr> -<tr> - <td>click</td> - <td>css=.code-breadcrumbs a</td> - <td></td> -</tr> -<tr> - <td>waitForNotText</td> - <td>css=#content</td> - <td>*Sample.xoo*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/test/CoverageTest/it_coverage-expected.json b/it/it-tests/src/test/resources/test/CoverageTest/it_coverage-expected.json deleted file mode 100644 index 521b372b6ea..00000000000 --- a/it/it-tests/src/test/resources/test/CoverageTest/it_coverage-expected.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "sources": [ - { - "line": 1, - "code": "package sample;" - }, - { - "line": 2, - "code": "" - }, - { - "line": 3, - "code": "public class Sample {" - }, - { - "line": 4, - "code": "\t" - }, - { - "line": 5, - "code": "\tpublic Sample(int i) {" - }, - { - "line": 6, - "code": "\t\tint j = i++;", - "lineHits": 1, - "utLineHits": 1 - }, - { - "line": 7, - "code": "\t}" - }, - { - "line": 8, - "code": "\t" - }, - { - "line": 9, - "code": "\tprivate String myMethod() {" - }, - { - "line": 10, - "code": "\t\tif (foo == bar) {", - "lineHits": 0, - "utLineHits": 0, - "conditions": 2, - "utConditions": 2, - "coveredConditions": 1, - "utCoveredConditions": 1 - }, - { - "line": 11, - "code": "\t\t\treturn \"hello\";", - "lineHits": 1, - "utLineHits": 1 - }, - { - "line": 12, - "code": "\t\t} else {" - }, - { - "line": 13, - "code": "\t\t\tthrow new IllegalStateException();", - "lineHits": 0, - "utLineHits": 0 - }, - { - "line": 14, - "code": "\t\t}" - }, - { - "line": 15, - "code": "\t}" - }, - { - "line": 16, - "code": "}" - }, - { - "line": 17, - "code": "" - } - ] -} diff --git a/it/it-tests/src/test/resources/test/CoverageTest/unit_test_coverage-expected.json b/it/it-tests/src/test/resources/test/CoverageTest/unit_test_coverage-expected.json deleted file mode 100644 index c2f25a610a9..00000000000 --- a/it/it-tests/src/test/resources/test/CoverageTest/unit_test_coverage-expected.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "sources":[ - { - "line": 1, - "code": "package sample;", - }, - { - "line": 2, - "code": "", - }, - { - "line": 3, - "code": "public class Sample {", - }, - { - "line": 4, - "code": "\t", - }, - { - "line": 5, - "code": "\tpublic Sample(int i) {", - }, - { - "line": 6, - "code": "\t\tint j = i++;", - "lineHits": 1, - "utLineHits": 1 - }, - { - "line": 7, - "code": "\t}", - }, - { - "line": 8, - "code": "\t", - }, - { - "line": 9, - "code": "\tprivate String myMethod() {", - }, - { - "line": 10, - "code": "\t\tif (foo == bar) {", - "lineHits": 0, - "utLineHits": 0, - "conditions": 2, - "utConditions": 2, - "coveredConditions": 1, - "utCoveredConditions": 1 - }, - { - "line": 11, - "code": "\t\t\treturn \"hello\";", - "lineHits": 1, - "utLineHits": 1 - }, - { - "line": 12, - "code": "\t\t} else {", - }, - { - "line": 13, - "code": "\t\t\tthrow new IllegalStateException();", - "lineHits": 0, - "utLineHits": 0 - }, - { - "line": 14, - "code": "\t\t}", - }, - { - "line": 15, - "code": "\t}", - }, - { - "line": 16, - "code": "}", - }, - { - "line": 17, - "code": "", - } - ] -} diff --git a/it/it-tests/src/test/resources/test/CoverageTest/unit_test_coverage_no_condition-expected.json b/it/it-tests/src/test/resources/test/CoverageTest/unit_test_coverage_no_condition-expected.json deleted file mode 100644 index aabf73102ff..00000000000 --- a/it/it-tests/src/test/resources/test/CoverageTest/unit_test_coverage_no_condition-expected.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "sources": [ - { - "line": 1, - "code": "package sample;", - }, - { - "line": 2, - "code": "", - }, - { - "line": 3, - "code": "public class Sample {", - }, - { - "line": 4, - "code": "\t", - }, - { - "line": 5, - "code": "\tpublic Sample(int i) {", - }, - { - "line": 6, - "code": "\t\tint j = i++;", - "lineHits": 1, - "utLineHits": 1 - }, - { - "line": 7, - "code": "\t}", - }, - { - "line": 8, - "code": "\t", - }, - { - "line": 9, - "code": "\tprivate String myMethod() {", - }, - { - "line": 10, - "code": "\t\tif (foo == bar) {", - "lineHits": 0, - "utLineHits": 0 - }, - { - "line": 11, - "code": "\t\t\treturn \"hello\";", - "lineHits": 1, - "utLineHits": 1 - }, - { - "line": 12, - "code": "\t\t} else {", - }, - { - "line": 13, - "code": "\t\t\tthrow new IllegalStateException();", - "lineHits": 0, - "utLineHits": 0 - }, - { - "line": 14, - "code": "\t\t}", - }, - { - "line": 15, - "code": "\t}", - }, - { - "line": 16, - "code": "}", - }, - { - "line": 17, - "code": "", - } - ] -} diff --git a/it/it-tests/src/test/resources/test/CoverageTest/ut_and_it_coverage-expected.json b/it/it-tests/src/test/resources/test/CoverageTest/ut_and_it_coverage-expected.json deleted file mode 100644 index d2b26d19c61..00000000000 --- a/it/it-tests/src/test/resources/test/CoverageTest/ut_and_it_coverage-expected.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "sources": [ - { - "line": 1, - "code": "package sample;" - }, - { - "line": 2, - "code": "" - }, - { - "line": 3, - "code": "public class Sample {" - }, - { - "line": 4, - "code": "\t" - }, - { - "line": 5, - "code": "\tpublic Sample(int i) {" - }, - { - "line": 6, - "code": "\t\tint j = i++;", - "lineHits": 1, - "utLineHits": 1 - }, - { - "line": 7, - "code": "\t}" - }, - { - "line": 8, - "code": "\t" - }, - { - "line": 9, - "code": "\tprivate String myMethod() {" - }, - { - "line": 10, - "code": "\t\tif (foo == bar && biz > 1) {", - "lineHits": 0, - "utLineHits": 0, - "conditions": 4, - "utConditions": 4, - "coveredConditions": 2, - "utCoveredConditions": 2 - }, - { - "line": 11, - "code": "\t\t\treturn \"hello\";", - "lineHits": 1, - "utLineHits": 1 - }, - { - "line": 12, - "code": "\t\t} else {" - }, - { - "line": 13, - "code": "\t\t\tthrow new IllegalStateException();", - "lineHits": 1, - "utLineHits": 1 - }, - { - "line": 14, - "code": "\t\t}" - }, - { - "line": 15, - "code": "\t}" - }, - { - "line": 16, - "code": "}" - }, - { - "line": 17, - "code": "" - } - ] - -} diff --git a/it/it-tests/src/test/resources/test/CoverageTrackingTest/covered_files-expected.json b/it/it-tests/src/test/resources/test/CoverageTrackingTest/covered_files-expected.json deleted file mode 100644 index 5dda4f3dd11..00000000000 --- a/it/it-tests/src/test/resources/test/CoverageTrackingTest/covered_files-expected.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "files": [ - { - "key": "sample-with-tests:src/main/xoo/sample/Sample.xoo", - "longName": "src/main/xoo/sample/Sample.xoo", - "coveredLines": 2 - }, - { - "key": "sample-with-tests:src/main/xoo/sample/Sample2.xoo", - "longName": "src/main/xoo/sample/Sample2.xoo", - "coveredLines": 1 - } - ] -} diff --git a/it/it-tests/src/test/resources/test/CoverageTrackingTest/tests-expected.json b/it/it-tests/src/test/resources/test/CoverageTrackingTest/tests-expected.json deleted file mode 100644 index 121e6753074..00000000000 --- a/it/it-tests/src/test/resources/test/CoverageTrackingTest/tests-expected.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "tests": [ - { - "name": "success", - "status": "OK", - "durationInMs": 4, - "coveredLines": 3 - }, - { - "name": "error", - "status": "ERROR", - "durationInMs": 2, - "coveredLines": 0, - "message": "Error", - "stacktrace": "The stack" - }, - { - "name": "failure", - "status": "FAILURE", - "durationInMs": 2, - "coveredLines": 1, - "message": "Failure" - }, - { - "name": "skipped", - "status": "SKIPPED", - "coveredLines": 0 - } - ] -} diff --git a/it/it-tests/src/test/resources/test/TestExecutionTest/expected.json b/it/it-tests/src/test/resources/test/TestExecutionTest/expected.json deleted file mode 100644 index 843d28f5284..00000000000 --- a/it/it-tests/src/test/resources/test/TestExecutionTest/expected.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "tests": [ - { - "name": "success", - "status": "OK", - "durationInMs": 4, - "coveredLines": 0 - }, - { - "name": "error", - "status": "ERROR", - "durationInMs": 2, - "coveredLines": 0, - "message": "Error", - "stacktrace": "The stack" - }, - { - "name": "failure", - "status": "FAILURE", - "durationInMs": 2, - "coveredLines": 0, - "message": "Failure" - }, - { - "name": "skipped", - "status": "SKIPPED", - "coveredLines": 0, - "durationInMs": 0 - } - ] -} diff --git a/it/it-tests/src/test/resources/uiExtension/UiExtensionsTest/static-files.html b/it/it-tests/src/test/resources/uiExtension/UiExtensionsTest/static-files.html deleted file mode 100644 index 0acd31cc1fa..00000000000 --- a/it/it-tests/src/test/resources/uiExtension/UiExtensionsTest/static-files.html +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>static-files</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/static/uiextensionsplugin/file.html</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>//body</td> - <td>Text from static resource</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/updateCenter/UpdateCenterTest/update-center.properties b/it/it-tests/src/test/resources/updateCenter/UpdateCenterTest/update-center.properties deleted file mode 100644 index 5882d43188f..00000000000 --- a/it/it-tests/src/test/resources/updateCenter/UpdateCenterTest/update-center.properties +++ /dev/null @@ -1,62 +0,0 @@ -# THIS FILE IS USED BY THE UPDATE CENTER -# DO NOT REMOVE OR RENAME -# -# Note : prefix all : by \ -# - -publicVersions=3.0,100.0 - -3.0.description=Encryption of database password, TimeMachine available as widgets, New algorithm for tracking violations, 40 bugs and 40 improvements -3.0.downloadUrl=http\://dist.sonar.codehaus.org/sonar-3.0.zip -3.0.changelogUrl=http\://www.sonarsource.org/downloads/#3.0 -3.0.date=2012-04-17 - -100.0.description=Hundred dot zero! -100.0.downloadUrl=http\://dist.sonar.codehaus.org/sonar-100.0.zip -100.0.changelogUrl=http\://www.sonarsource.org/downloads/#100.0 -100.0.date=2112-06-13 - - -plugins=fake,abap - -#-------------------------------------------------------------------------------------------------------------------------- -abap.homepageUrl=http\://www.sonarsource.com/products/plugins/languages/abap/ -abap.name=ABAP -abap.category=Additional Languages -abap.publicVersions=1.0,1.0.1,1.1,2.0.1 - -abap.1.0.description=Initial version of the product -abap.1.0.sqVersions=2.7,2.8,2.9,2.10,2.11,2.12,2.13,2.13.1,2.14,3.0,3.0.1,3.1,3.1.1 -abap.1.0.downloadUrl= -abap.1.0.date=2011-07-29 - -abap.1.0.1.description=Adjust computation of certain metrics -abap.1.0.1.sqVersions=2.7,2.8,2.9,2.10,2.11,2.12,2.13,2.13.1,2.14,3.0,3.0.1,3.1,3.1.1 -abap.1.0.1.downloadUrl= -abap.1.0.1.date=2011-08-28 - -abap.1.1.description=Adjust computation of certain metrics -abap.1.1.sqVersions=2.7,2.8,2.9,2.10,2.11,2.12,2.13,2.13.1,2.14,3.0,3.0.1,3.1,3.1.1 -abap.1.1.downloadUrl= -abap.1.1.date=2012-01-05 - -abap.2.0.1.description=This new version provides an ABAP source code extractor, adds 5 new rules and improves others -abap.2.0.1.sqVersions=3.2,3.3,3.4,3.5,3.6,3.7,3.7.1,3.7.2,3.7.3,3.7.4,3.7.5,3.7.6,3.7.7,4.0,4.0.1,4.1,4.2,4.3,4.4,4.5,4.6,4.7,5.0,5.1,5.2,5.3,5.4,5.5,5.6,5.7,6.0,6.1,6.2,6.3,6.4,6.5,6.6 -abap.2.0.1.downloadUrl= -abap.2.0.1.date=2012-06-25 - -#-------------------------------------------------------------------------------------------------------------------------- -fake.category=Additional Metrics -fake.publicVersions=1.0,1.1 -fake.name=Fake -fake.description=Fake plugin for integration tests - -fake.1.0.description=Initial release -fake.1.0.sqVersions=3.2,3.3,3.4,3.5,3.6,3.7 -fake.1.0.downloadUrl= -fake.1.0.date=2011-05-06 - -fake.1.1.description=Support sonarqube v100.0 -fake.1.1.sqVersions=3.2,3.3,3.4,3.5,3.6,3.7,3.7.1,3.7.2,3.7.3,3.7.4,3.7.5,3.7.6,3.7.7,4.0,4.0.1,4.1,4.2,4.3,4.4,4.5,4.6,4.7,5.0,5.1,5.2,5.3,5.4,5.5,5.6,5.7,6.0,6.1,6.2,6.3,6.4,6.5,6.6,100.0 -fake.1.1.downloadUrl= -fake.1.1.date=2012-04-27 diff --git a/it/it-tests/src/test/resources/updateCenter/installed-plugins.html b/it/it-tests/src/test/resources/updateCenter/installed-plugins.html deleted file mode 100644 index d1986f6f897..00000000000 --- a/it/it-tests/src/test/resources/updateCenter/installed-plugins.html +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>installed-plugins</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/updatecenter</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Fake*</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=update-center-plugins</td> - <td>*Fake*1.0-SNAPSHOT*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/display_message_in_ui_but_not_in_log_when_unauthorized_exception.html b/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/display_message_in_ui_but_not_in_log_when_unauthorized_exception.html deleted file mode 100644 index b62763fb7c9..00000000000 --- a/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/display_message_in_ui_but_not_in_log_when_unauthorized_exception.html +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>fail_to_authenticate_when_not_allowed_to_sign_up</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log in with Fake base identity provider*</td> - </tr> - <tr> - <td>click</td> - <td>css=.oauth-providers a</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>bd</td> - <td>*You're not authorized to access this page. Please contact the administrator.*</td> - </tr> - <tr> - <td>assertText</td> - <td>bd</td> - <td>*Reason : A functional error has happened*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/display_unauthorized_page_when_authentication_failed.html b/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/display_unauthorized_page_when_authentication_failed.html deleted file mode 100644 index 47a19a2df41..00000000000 --- a/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/display_unauthorized_page_when_authentication_failed.html +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>display_unauthorized_page_when_authentication_failed</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log in with Fake base identity provider*</td> - </tr> - <tr> - <td>click</td> - <td>css=.oauth-providers a</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>bd</td> - <td>*You're not authorized to access this page. Please contact the administrator.*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/fail_to_authenticate_when_not_allowed_to_sign_up.html b/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/fail_to_authenticate_when_not_allowed_to_sign_up.html deleted file mode 100644 index 40c300bd701..00000000000 --- a/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/fail_to_authenticate_when_not_allowed_to_sign_up.html +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>fail_to_authenticate_when_not_allowed_to_sign_up</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log in with Fake base identity provider*</td> - </tr> - <tr> - <td>click</td> - <td>css=.oauth-providers a</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>bd</td> - <td>*You're not authorized to access this page. Please contact the administrator.*Reason : 'fake-base-id-provider' users are not allowed to sign up*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/fail_when_email_already_exists.html b/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/fail_when_email_already_exists.html deleted file mode 100644 index b6f7e600ac3..00000000000 --- a/it/it-tests/src/test/resources/user/BaseIdentityProviderTest/fail_when_email_already_exists.html +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>fail_when_email_already_exists</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log in with Fake base identity provider*</td> - </tr> - <tr> - <td>click</td> - <td>css=.oauth-providers a</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>bd</td> - <td>*You're not authorized to access this page. Please contact the administrator.*</td> - </tr> - <tr> - <td>assertText</td> - <td>bd</td> - <td>*You can't sign up because email 'john@email.com' is already used by an existing user. This means that you probably already registered with another account*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/create-and-delete-user.html b/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/create-and-delete-user.html deleted file mode 100644 index f7d0dd6ffb6..00000000000 --- a/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/create-and-delete-user.html +++ /dev/null @@ -1,144 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Strict/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http:/www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http:/selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>create-and-delete-users</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">create-and-delete-users</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/users</td> - <td></td> -</tr> -<tr> - <td>store</td> - <td>javascript{new Date().getTime()}</td> - <td>userId</td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*Create User*</td> -</tr> -<tr> - <td>click</td> - <td>id=users-create</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>id=create-user-form</td> - <td>*Create User*</td> -</tr> -<tr> - <td>type</td> - <td>id=create-user-login</td> - <td>${userId}</td> -</tr> -<tr> - <td>type</td> - <td>id=create-user-name</td> - <td>Name of ${userId}</td> -</tr> -<tr> - <td>type</td> - <td>id=create-user-password</td> - <td>password</td> -</tr> -<tr> - <td>click</td> - <td>id=create-user-submit</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>id=users-list</td> - <td>*${userId}*</td> -</tr> -<tr> - <td>click</td> - <td>css=[data-login="${userId}"] .js-user-deactivate</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>id=deactivate-user-form</td> - <td>*${userId}*</td> -</tr> -<tr> - <td>click</td> - <td>id=deactivate-user-submit</td> - <td></td> -</tr> -<tr> - <td>waitForNotText</td> - <td>id=users-list</td> - <td>*${userId}*</td> -</tr> -<tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>tester</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>password</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td>deactivate-user-form</td> -</tr> -<tr> - <td>waitForText</td> - <td>login_form</td> - <td>*Authentication failed*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/external-user-details.html b/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/external-user-details.html deleted file mode 100644 index b2d712f516c..00000000000 --- a/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/external-user-details.html +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Strict/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http:/www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http:/selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>external_user_details</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">external_user_details</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>tester</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>123</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/account/</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>login</td> - <td>tester</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=name</td> - <td>Tester Testerovich</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=email</td> - <td>tester@example.org</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/external-user-details2.html b/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/external-user-details2.html deleted file mode 100644 index d18ae08afb9..00000000000 --- a/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/external-user-details2.html +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Strict/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http:/www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http:/selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>external_user_details</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">external_user_details</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>tester</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>123</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/account</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>login</td> - <td>tester</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=name</td> - <td>Tester2 Testerovich</td> - </tr> - <tr> - <td>waitForText</td> - <td>id=email</td> - <td>tester2@example.org</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/system-info.html b/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/system-info.html deleted file mode 100644 index 1daf46d205d..00000000000 --- a/it/it-tests/src/test/resources/user/ExternalAuthenticationTest/system-info.html +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Strict/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http:/www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http:/selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>external_user_details</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">external_user_details</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/system</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>id=content</td> - <td>*External User Authentication*FakeRealm*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/allow_users_to_sign_up.html b/it/it-tests/src/test/resources/user/LocalAuthenticationTest/allow_users_to_sign_up.html deleted file mode 100644 index dab0c303ea5..00000000000 --- a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/allow_users_to_sign_up.html +++ /dev/null @@ -1,109 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>allow_users_to_sign_up</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> - </tr> - <tr> - <td>waitForText</td> - <td>bd</td> - <td>*Not a member*</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>link=Sign up</td> - <td></td> - </tr> - <tr> - <td>type</td> - <td>id=user_login</td> - <td>signuplogin</td> - </tr> - <tr> - <td>type</td> - <td>id=user_name</td> - <td>SignUpName</td> - </tr> - <tr> - <td>type</td> - <td>id=user_password</td> - <td>password</td> - </tr> - <tr> - <td>type</td> - <td>id=user_password_confirmation</td> - <td>password</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>global-navigation</td> - <td>*Log in*</td> - </tr> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>signuplogin</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>password</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=.navbar</td> - <td>*SignUpName*</td> - </tr> - <tr> - <td>click</td> - <td>Link=SignUpName</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>css=.navbar</td> - <td>*Log out*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/force-authentication.html b/it/it-tests/src/test/resources/user/LocalAuthenticationTest/force-authentication.html deleted file mode 100644 index 4c5a751665d..00000000000 --- a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/force-authentication.html +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>force-authentication</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">force-authentication</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/login_successful.html b/it/it-tests/src/test/resources/user/LocalAuthenticationTest/login_successful.html deleted file mode 100644 index 18da805f66b..00000000000 --- a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/login_successful.html +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>login_successful</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">login_successful</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>click</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>assertTextPresent</td> - <td>Log out</td> - <td></td> - </tr> - <tr> - <td>clickAndWait</td> - <td>link=Log out</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>link=Log in</td> - <td>Log in</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/login_wrong_password.html b/it/it-tests/src/test/resources/user/LocalAuthenticationTest/login_wrong_password.html deleted file mode 100644 index dc66db8ee9b..00000000000 --- a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/login_wrong_password.html +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>login_wrong_password</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>wrong</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>assertTextPresent</td> - <td>Authentication failed</td> - <td></td> - </tr> - - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_login_when_not_enough_privilege.html b/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_login_when_not_enough_privilege.html deleted file mode 100644 index 9b5a1645ace..00000000000 --- a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_login_when_not_enough_privilege.html +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>redirect-to-original-url-after-direct-login</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>simple-user</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>password</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/settings</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> -</tr> -<tr> - <td>assertText</td> - <td>content</td> - <td>*You are not authorized to access this page. Please log in with more privileges and try again.*</td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_direct_login.html b/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_direct_login.html deleted file mode 100644 index c6519726f27..00000000000 --- a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_direct_login.html +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>redirect-to-original-url-after-direct-login</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>global-navigation</td> - <td>*Log in*</td> - </tr> - <tr> - <td>open</td> - <td>/settings?category=general</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>assertLocation</td> - <td>glob:*/settings?category=general*</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_indirect_login.html b/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_indirect_login.html deleted file mode 100644 index aecfd8af765..00000000000 --- a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_indirect_login.html +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>global-navigation</td> - <td>*Log in*</td> - </tr> - <tr> - <td>open</td> - <td>/settings</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>assertLocation</td> - <td>*/settings</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_with_parameters_after_direct_login.html b/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_with_parameters_after_direct_login.html deleted file mode 100644 index 5359e3308e0..00000000000 --- a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_with_parameters_after_direct_login.html +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/logout</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>global-navigation</td> - <td>*Log in*</td> - </tr> - <tr> - <td>open</td> - <td>/projects?gate=OK&reliability=1&security=1</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>global-navigation</td> - <td>*Log in*</td> - </tr> - <tr> - <td>click</td> - <td>link=Log in</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> - </tr> - <tr> - <td>type</td> - <td>login</td> - <td>admin-user</td> - </tr> - <tr> - <td>type</td> - <td>password</td> - <td>admin-user</td> - </tr> - <tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> - </tr> - <tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> - </tr> - <tr> - <td>assertLocation</td> - <td>*/projects?gate=OK&reliability=1&security=1</td> - <td></td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/should_not_be_unlogged_when_going_to_login_page.html b/it/it-tests/src/test/resources/user/LocalAuthenticationTest/should_not_be_unlogged_when_going_to_login_page.html deleted file mode 100644 index af5b4362f0e..00000000000 --- a/it/it-tests/src/test/resources/user/LocalAuthenticationTest/should_not_be_unlogged_when_going_to_login_page.html +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>redirect-to-original-url-after-direct-login</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>simple-user</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>password</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> -</tr> -<tr> - <td>waitForText</td> - <td>content</td> - <td>*Log In to SonarQube*</td> -</tr> -<tr> - <td>open</td> - <td>/</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/MyAccountPageTest/should_display_no_projects.html b/it/it-tests/src/test/resources/user/MyAccountPageTest/should_display_no_projects.html deleted file mode 100644 index 2c2f0f026db..00000000000 --- a/it/it-tests/src/test/resources/user/MyAccountPageTest/should_display_no_projects.html +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_no_projects</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">should_display_no_projects</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>account-user</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>password</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/account/projects/</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=#account-projects</td> - <td></td> -</tr> -<tr> - <td>assertElementNotPresent</td> - <td>css=.account-projects-list</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/MyAccountPageTest/should_display_projects.html b/it/it-tests/src/test/resources/user/MyAccountPageTest/should_display_projects.html deleted file mode 100644 index b199152803f..00000000000 --- a/it/it-tests/src/test/resources/user/MyAccountPageTest/should_display_projects.html +++ /dev/null @@ -1,85 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <link rel="selenium.base" href="http://localhost:49506"/> - <title>should_display_projects</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">should_display_projects</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/login</td> - <td></td> -</tr> -<tr> - <td>type</td> - <td>login</td> - <td>account-user</td> -</tr> -<tr> - <td>type</td> - <td>password</td> - <td>password</td> -</tr> -<tr> - <td>clickAndWait</td> - <td>commit</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.js-user-authenticated</td> - <td></td> -</tr> -<tr> - <td>open</td> - <td>/account/projects/</td> - <td></td> -</tr> -<tr> - <td>waitForElementPresent</td> - <td>css=.account-project-card</td> - <td></td> -</tr> -<tr> - <td>assertText</td> - <td>css=.account-project-name</td> - <td>*Sample*</td> -</tr> -<tr> - <td>assertText</td> - <td>css=.account-project-quality-gate</td> - <td>*Passed*</td> -</tr> -<tr> - <td>assertText</td> - <td>css=.account-project-key</td> - <td>*sample*</td> -</tr> -<tr> - <td>assertText</td> - <td>css=.account-project-description</td> - <td>*Description of a project*</td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.account-project-analysis</td> - <td></td> -</tr> -<tr> - <td>assertElementPresent</td> - <td>css=.account-project-links a[href="http://example.com"]</td> - <td></td> -</tr> -</tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/display_message_in_ui_but_not_in_log_when_unauthorized_exception.html b/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/display_message_in_ui_but_not_in_log_when_unauthorized_exception.html deleted file mode 100644 index 6a38ed69063..00000000000 --- a/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/display_message_in_ui_but_not_in_log_when_unauthorized_exception.html +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>fail_to_authenticate_when_not_allowed_to_sign_up</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log in with Fake oauth2 identity provider*</td> - </tr> - <tr> - <td>click</td> - <td>css=.oauth-providers a</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>bd</td> - <td>*You're not authorized to access this page. Please contact the administrator.*</td> - </tr> - <tr> - <td>assertText</td> - <td>bd</td> - <td>*Reason : A functional error has happened*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/display_unauthorized_page_when_authentication_failed.html b/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/display_unauthorized_page_when_authentication_failed.html deleted file mode 100644 index b01d24aad4c..00000000000 --- a/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/display_unauthorized_page_when_authentication_failed.html +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>display_unauthorized_page_when_authentication_failed</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log in with Fake oauth2 identity provider*</td> - </tr> - <tr> - <td>click</td> - <td>css=.oauth-providers a</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>bd</td> - <td>*You're not authorized to access this page. Please contact the administrator.*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/fail_to_authenticate_when_not_allowed_to_sign_up.html b/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/fail_to_authenticate_when_not_allowed_to_sign_up.html deleted file mode 100644 index a3da2de8ed0..00000000000 --- a/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/fail_to_authenticate_when_not_allowed_to_sign_up.html +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>fail_to_authenticate_when_not_allowed_to_sign_up</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log in with Fake oauth2 identity provider*</td> - </tr> - <tr> - <td>click</td> - <td>css=.oauth-providers a</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>bd</td> - <td>*You're not authorized to access this page. Please contact the administrator.*Reason : 'fake-oauth2-id-provider' users are not allowed to sign up*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/fail_when_email_already_exists.html b/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/fail_when_email_already_exists.html deleted file mode 100644 index 7d038ac592d..00000000000 --- a/it/it-tests/src/test/resources/user/OAuth2IdentityProviderTest/fail_when_email_already_exists.html +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> - <title>fail_when_email_already_exists</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> - <thead> - <tr> - <td rowspan="1" colspan="3">french</td> - </tr> - </thead> - <tbody> - <tr> - <td>open</td> - <td>/sessions/new</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>content</td> - <td>*Log in with Fake oauth2 identity provider*</td> - </tr> - <tr> - <td>click</td> - <td>css=.oauth-providers a</td> - <td></td> - </tr> - <tr> - <td>waitForText</td> - <td>bd</td> - <td>*You're not authorized to access this page. Please contact the administrator.*</td> - </tr> - <tr> - <td>assertText</td> - <td>bd</td> - <td>*You can't sign up because email 'john@email.com' is already used by an existing user. This means that you probably already registered with another account*</td> - </tr> - </tbody> -</table> -</body> -</html> diff --git a/it/pom.xml b/it/pom.xml deleted file mode 100644 index 3c57da3d396..00000000000 --- a/it/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.sonarsource.sonarqube</groupId> - <artifactId>sonarqube</artifactId> - <version>6.5-SNAPSHOT</version> - </parent> - - <artifactId>it</artifactId> - <name>SonarQube Integration Tests</name> - <packaging>pom</packaging> - - <properties> - <maven.deploy.skip>true</maven.deploy.skip> - <source.skip>true</source.skip> - <enforcer.skip>true</enforcer.skip> - </properties> - - <modules> - <module>it-plugins</module> - <module>it-tests</module> - </modules> - -</project> |