]> source.dussan.org Git - sonarqube.git/commitdiff
Fix QA
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Fri, 6 Apr 2018 15:22:28 +0000 (17:22 +0200)
committerSonarTech <sonartech@sonarsource.com>
Mon, 9 Apr 2018 18:20:45 +0000 (20:20 +0200)
63 files changed:
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/QProfileTester.java
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/PropertySetInput.java
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/SettingsPage.java
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/UpdateConditionAction.java
server/sonar-web/src/main/js/apps/explore/ExploreProjects.tsx
server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx
server/sonar-web/src/main/js/apps/projects/components/AllProjectsContainer.tsx
server/sonar-web/src/main/js/apps/projects/components/__tests__/AllProjects-test.tsx
server/sonar-web/src/main/js/components/SourceViewer/SourceViewerBase.tsx
server/sonar-web/src/main/js/components/SourceViewer/components/LineNumber.tsx
server/sonar-web/src/main/js/components/SourceViewer/components/LineSCM.tsx
server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineNumber-test.tsx.snap
server/sonar-web/src/main/js/components/SourceViewer/components/__tests__/__snapshots__/LineSCM-test.tsx.snap
server/sonar-web/src/main/js/components/common/MultiSelect.tsx
server/sonar-web/src/main/js/helpers/storage.ts
tests/build.gradle
tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.scm
tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.scm
tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.scm
tests/src/test/java/org/sonarqube/tests/Category6Suite.java
tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplatePageTest.java
tests/src/test/java/org/sonarqube/tests/component/BranchTest.java
tests/src/test/java/org/sonarqube/tests/component/CodePageTest.java
tests/src/test/java/org/sonarqube/tests/component/ComponentsWsTest.java
tests/src/test/java/org/sonarqube/tests/component/ModuleTest.java
tests/src/test/java/org/sonarqube/tests/issue/IssueNotificationsTest.java
tests/src/test/java/org/sonarqube/tests/issue/IssueSuite.java
tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java
tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueSuite.java
tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java
tests/src/test/java/org/sonarqube/tests/measure/ProjectActivityPageTest.java
tests/src/test/java/org/sonarqube/tests/measure/ProjectDashboardTest.java
tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java
tests/src/test/java/org/sonarqube/tests/organization/OrganizationSuite.java
tests/src/test/java/org/sonarqube/tests/project/OrganizationProjectSuite.java [new file with mode: 0644]
tests/src/test/java/org/sonarqube/tests/project/ProjectBadgesTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionPageTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectDeletionTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectFilterTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectKeyUpdatePageTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectKeyUpdateTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectLeakPageTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectLinksTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectListTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectProvisioningTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectSearchTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectSettingsTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectSuite.java
tests/src/test/java/org/sonarqube/tests/project/ProjectVisibilityPageTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectsExplorePageTest.java [new file with mode: 0644]
tests/src/test/java/org/sonarqube/tests/project/ProjectsPageTest.java
tests/src/test/java/org/sonarqube/tests/project/SonarCloudProjectBadgesTest.java
tests/src/test/java/org/sonarqube/tests/project/SonarCloudProjectSuite.java [deleted file]
tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateForSmallChangesetsTest.java
tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateSuite.java
tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateTest.java
tests/src/test/java/org/sonarqube/tests/serverSystem/HttpHeadersTest.java
tests/src/test/java/org/sonarqube/tests/settings/ValidatorsTest.java
tests/src/test/java/org/sonarqube/tests/user/NotificationsWsTest.java
tests/src/test/java/org/sonarqube/tests/user/SonarCloudUserSuite.java
tests/src/test/java/org/sonarqube/tests/webhook/WebhooksSuite.java

index 2609faaa7c04e1e5de7894e648c911f98c39e26d..7378ffd1860a1d1a0c7cfd34c6535d31cab36aed 100644 (file)
@@ -22,6 +22,7 @@ package org.sonarqube.qa.util;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Consumer;
+import javax.annotation.Nullable;
 import org.assertj.core.api.Assertions;
 import org.sonarqube.ws.Common;
 import org.sonarqube.ws.Organizations.Organization;
@@ -55,10 +56,15 @@ public class QProfileTester {
   }
 
   @SafeVarargs
-  public final QualityProfile createXooProfile(Organization organization, Consumer<CreateRequest>... populators) {
+  public final QualityProfile createXooProfile(Consumer<CreateRequest>... populators) {
+    return createXooProfile(null, populators);
+  }
+
+  @SafeVarargs
+  public final QualityProfile createXooProfile(@Nullable Organization organization, Consumer<CreateRequest>... populators) {
     int id = ID_GENERATOR.getAndIncrement();
     CreateRequest request = new CreateRequest()
-      .setOrganization(organization.getKey())
+      .setOrganization(organization == null ? null : organization.getKey())
       .setLanguage("xoo")
       .setName("Profile" + id);
     stream(populators).forEach(p -> p.accept(request));
index 073df461b8ba1e390598b4cdb902551305489e65..a0266da622a1ad945dc965ef06f647934a09c83b 100644 (file)
@@ -55,7 +55,7 @@ public class Navigation {
     driver.manage().deleteAllCookies();
     clearStorage(d -> d.getLocalStorage().clear());
     clearStorage(d -> d.getSessionStorage().clear());
-    clearStorage(d -> Selenide.clearBrowserLocalStorage());
+    clearBrowserLocalStorage();
     return Selenide.open(path, Navigation.class);
   }
 
@@ -69,6 +69,19 @@ public class Navigation {
     }
   }
 
+  /**
+   * Do not call {@link #clearStorage(Consumer)} for {@link Selenide#clearBrowserLocalStorage} as it's failing on Firefox 46
+   */
+  private static void clearBrowserLocalStorage() {
+    try {
+      Selenide.clearBrowserLocalStorage();
+    } 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);
   }
@@ -85,10 +98,18 @@ public class Navigation {
     return open("/projects?" + query, ProjectsPage.class);
   }
 
+  public ProjectsPage openExploreProjects() {
+    return open("/explore/projects", ProjectsPage.class);
+  }
+
   public IssuesPage openIssues() {
     return open("/issues", IssuesPage.class);
   }
 
+  public IssuesPage openExploreIssues() {
+    return open("/explore/issues", IssuesPage.class);
+  }
+
   public IssuesPage openIssues(String organization) {
     return open("/organizations/" + organization + "/issues", IssuesPage.class);
   }
index 759f7189a719951efcfe47cc62f2082005488390..46f1ac6201a7ffe4eeaba56e3ef4ab39f9d28777 100644 (file)
@@ -40,8 +40,8 @@ public class PropertySetInput {
   }
 
   public PropertySetInput save() {
-    elt.find(".js-save-changes").click();
-    elt.find(".js-save-changes").shouldNot(Condition.exist);
+    elt.find(".button-success").click();
+    elt.find(".button-success").shouldNot(Condition.exist);
     return this;
   }
 }
index 9bb53d9b50fc1d6b960fddc02507635256dff9be..f55d3edfa9d02c2067f37add78a138a01365e717 100644 (file)
@@ -116,12 +116,12 @@ public class SettingsPage {
   }
 
   public SettingsPage clickOnCancel(String settingKey) {
-    Selenide.$("[data-key=\"" + settingKey + "\"]").find(byText("Cancel")).click();
+    click(Selenide.$("[data-key=\"" + settingKey + "\"]").find(byText("Cancel")));
     return this;
   }
 
   public SettingsPage removeFirstValue(String settingKey) {
-    Selenide.$("[data-key=\"" + settingKey + "\"]").find(".button.js-remove-value.button-icon").click();
+    click(Selenide.$("[data-key=\"" + settingKey + "\"]").find(".js-remove-value"));
     return this;
   }
 
@@ -133,8 +133,8 @@ public class SettingsPage {
   public SettingsPage setStringValue(String settingKey, String value) {
     SelenideElement setting = Selenide.$(".settings-definition[data-key=\"" + settingKey + "\"]");
     setting.find("input").val(value);
-    setting.find(".js-save-changes").click();
-    setting.find(".js-save-changes").shouldNot(Condition.exist);
+    setting.find(".button-success").click();
+    setting.find(".button-success").shouldNot(Condition.exist);
     return this;
   }
 
@@ -142,4 +142,10 @@ public class SettingsPage {
     SelenideElement setting = Selenide.$(".settings-definition[data-key=\"" + settingKey + "\"]");
     return new PropertySetInput(setting);
   }
+
+  private void click(SelenideElement selenideElement){
+    // FIXME Temporary fix to correctly scroll in Firefox 46
+    Selenide.executeJavaScript("arguments[0].click()", selenideElement);
+  }
+
 }
index dcdb8b6e29f70504964c054ec2d971eb76cc8466..4cc5adcd424c95338cf9294d9ee3da317b43b994 100644 (file)
@@ -89,7 +89,8 @@ public class UpdateConditionAction implements QualityGatesWsAction {
       QGateWithOrgDto qualityGateDto = dbClient.qualityGateDao().selectByOrganizationAndId(dbSession, organization, condition.getQualityGateId());
       checkState(qualityGateDto != null, "Condition '%s' is linked to an unknown quality gate '%s'", id, condition.getQualityGateId());
       wsSupport.checkCanEdit(qualityGateDto);
-      QualityGateConditionDto updatedCondition = qualityGateConditionsUpdater.updateCondition(dbSession, condition, metric, operator, emptyToNull(warning), emptyToNull(error), period);
+      QualityGateConditionDto updatedCondition = qualityGateConditionsUpdater.updateCondition(dbSession, condition, metric, operator,
+        emptyToNull(warning), emptyToNull(error), period);
       UpdateConditionResponse.Builder updateConditionResponse = UpdateConditionResponse.newBuilder()
         .setId(updatedCondition.getId())
         .setMetric(updatedCondition.getMetricKey())
index 67f09dc545e54ba06aa26df4ddb0361fcde21033..ff1789ee68c6a98d6ad682cf9b631a5bbf511e50 100644 (file)
@@ -26,5 +26,5 @@ interface Props {
 }
 
 export default function ExploreProjects(props: Props) {
-  return <AllProjectsContainer isFavorite={false} {...props} />;
+  return <AllProjectsContainer isFavorite={false} storageOptionsSuffix="explore" {...props} />;
 }
index b0f995c28466e84b220efca101c9a12cc05259a2..dc9836331d8932d24ded51ad250ce17376619414 100644 (file)
@@ -44,6 +44,7 @@ export interface Props {
   onSonarCloud: boolean;
   organization?: { key: string };
   organizationsEnabled: boolean;
+  storageOptionsSuffix?: string;
 }
 
 interface State {
@@ -151,25 +152,27 @@ export default class AllProjects extends React.PureComponent<Props, State> {
     }
   };
 
-  getSavedOptions = () => {
+  getStorageOptions = () => {
+    const { storageOptionsSuffix } = this.props;
     const options: {
       sort?: string;
       view?: string;
       visualization?: string;
     } = {};
-    if (storage.getSort()) {
-      options.sort = storage.getSort() || undefined;
+    if (storage.getSort(storageOptionsSuffix)) {
+      options.sort = storage.getSort(storageOptionsSuffix) || undefined;
     }
-    if (storage.getView()) {
-      options.view = storage.getView() || undefined;
+    if (storage.getView(storageOptionsSuffix)) {
+      options.view = storage.getView(storageOptionsSuffix) || undefined;
     }
-    if (storage.getVisualization()) {
-      options.visualization = storage.getVisualization() || undefined;
+    if (storage.getVisualization(storageOptionsSuffix)) {
+      options.visualization = storage.getVisualization(storageOptionsSuffix) || undefined;
     }
     return options;
   };
 
   handlePerspectiveChange = ({ view, visualization }: { view: string; visualization?: string }) => {
+    const { storageOptionsSuffix } = this.props;
     const query: {
       view: string | undefined;
       visualization: string | undefined;
@@ -191,20 +194,20 @@ export default class AllProjects extends React.PureComponent<Props, State> {
       this.updateLocationQuery(query);
     }
 
-    storage.saveSort(query.sort);
-    storage.saveView(query.view);
-    storage.saveVisualization(visualization);
+    storage.saveSort(query.sort, storageOptionsSuffix);
+    storage.saveView(query.view, storageOptionsSuffix);
+    storage.saveVisualization(visualization, storageOptionsSuffix);
   };
 
   handleSortChange = (sort: string, desc: boolean) => {
     const asString = (desc ? '-' : '') + sort;
     this.updateLocationQuery({ sort: asString });
-    storage.saveSort(asString);
+    storage.saveSort(asString, this.props.storageOptionsSuffix);
   };
 
   handleQueryChange(initialMount: boolean) {
     const query = parseUrlQuery(this.props.location.query);
-    const savedOptions = this.getSavedOptions();
+    const savedOptions = this.getStorageOptions();
     const savedOptionsSet = savedOptions.sort || savedOptions.view || savedOptions.visualization;
 
     // if there is no filter, but there are saved preferences in the localStorage
index 6d236c388a2676d85c6586d38c631796450cd9b4..cd24cb1cb1eb8743db142a228a39fb5286646796 100644 (file)
@@ -37,6 +37,7 @@ interface OwnProps {
   isFavorite: boolean;
   location: { pathname: string; query: RawQuery };
   organization?: { key: string };
+  storageOptionsSuffix?: string;
 }
 
 const stateToProps = (state: any) => {
index 14ea18c6c7c0b1f0c34335659b623178f6f3c574..cc642e972f48286aef57a8f89ee6aa588f558801 100644 (file)
@@ -117,7 +117,7 @@ it('changes sort', () => {
   const wrapper = shallowRender({}, push);
   wrapper.find('PageHeader').prop<Function>('onSortChange')('size', false);
   expect(push).lastCalledWith({ pathname: '/projects', query: { sort: 'size' } });
-  expect(saveSort).lastCalledWith('size');
+  expect(saveSort).lastCalledWith('size', undefined);
 });
 
 it('changes perspective to leak', () => {
@@ -128,9 +128,9 @@ it('changes perspective to leak', () => {
     pathname: '/projects',
     query: { view: 'leak', visualization: undefined }
   });
-  expect(saveSort).lastCalledWith(undefined);
-  expect(saveView).lastCalledWith('leak');
-  expect(saveVisualization).lastCalledWith(undefined);
+  expect(saveSort).lastCalledWith(undefined, undefined);
+  expect(saveView).lastCalledWith('leak', undefined);
+  expect(saveVisualization).lastCalledWith(undefined, undefined);
 });
 
 it('updates sorting when changing perspective from leak', () => {
@@ -144,9 +144,9 @@ it('updates sorting when changing perspective from leak', () => {
     pathname: '/projects',
     query: { sort: 'coverage', view: undefined, visualization: undefined }
   });
-  expect(saveSort).lastCalledWith('coverage');
-  expect(saveView).lastCalledWith(undefined);
-  expect(saveVisualization).lastCalledWith(undefined);
+  expect(saveSort).lastCalledWith('coverage', undefined);
+  expect(saveView).lastCalledWith(undefined, undefined);
+  expect(saveVisualization).lastCalledWith(undefined, undefined);
 });
 
 it('changes perspective to risk visualization', () => {
@@ -160,9 +160,9 @@ it('changes perspective to risk visualization', () => {
     pathname: '/projects',
     query: { view: 'visualizations', visualization: 'risk' }
   });
-  expect(saveSort).lastCalledWith(undefined);
-  expect(saveView).lastCalledWith('visualizations');
-  expect(saveVisualization).lastCalledWith('risk');
+  expect(saveSort).lastCalledWith(undefined, undefined);
+  expect(saveView).lastCalledWith('visualizations', undefined);
+  expect(saveVisualization).lastCalledWith('risk', undefined);
 });
 
 function mountRender(props: any = {}, push: Function = jest.fn(), replace: Function = jest.fn()) {
index 1c615cc6bd458a6c426421006bb672b8fb54d0e2..c0e9326f5e825d077af8836507414fc049a6544f 100644 (file)
@@ -100,7 +100,6 @@ interface State {
   duplications?: Duplication[];
   duplicationsByLine: { [line: number]: number[] };
   hasSourcesAfter: boolean;
-  highlightedLine?: number;
   highlightedSymbols: string[];
   issueLocationsByLine: { [line: number]: LinearIssueLocation[] };
   issuePopup?: { issue: string; name: string };
@@ -134,11 +133,11 @@ export default class SourceViewerBase extends React.PureComponent<Props, State>
 
   constructor(props: Props) {
     super(props);
+
     this.state = {
       displayDuplications: false,
       duplicationsByLine: {},
       hasSourcesAfter: false,
-      highlightedLine: props.highlightedLine,
       highlightedSymbols: [],
       issuesByLine: {},
       issueLocationsByLine: {},
@@ -242,6 +241,7 @@ export default class SourceViewerBase extends React.PureComponent<Props, State>
         issues => {
           if (this.mounted) {
             const finalSources = sources.slice(0, LINES);
+
             this.setState(
               {
                 component,
@@ -250,7 +250,6 @@ export default class SourceViewerBase extends React.PureComponent<Props, State>
                 duplications: undefined,
                 duplicationsByLine: {},
                 hasSourcesAfter: sources.length > LINES,
-                highlightedLine: undefined,
                 highlightedSymbols: [],
                 issueLocationsByLine: locationsByLine(issues),
                 issues,
@@ -669,7 +668,7 @@ export default class SourceViewerBase extends React.PureComponent<Props, State>
         filterLine={this.handleFilterLine}
         hasSourcesAfter={this.state.hasSourcesAfter}
         hasSourcesBefore={hasSourcesBefore}
-        highlightedLine={this.state.highlightedLine}
+        highlightedLine={this.props.highlightedLine}
         highlightedLocationMessage={this.props.highlightedLocationMessage}
         highlightedLocations={this.props.highlightedLocations}
         highlightedSymbols={this.state.highlightedSymbols}
index 6d1f4940141c3f0cbc1e6ad2821930dae9d87d2d..9297036d88d33e1ca2011ab464991943375a18d2 100644 (file)
@@ -56,6 +56,7 @@ export default class LineNumber extends React.PureComponent<Props> {
         tabIndex={0}>
         <BubblePopupHelper
           isOpen={popupOpen}
+          offset={{ vertical: -18, horizontal: 0 }}
           popup={
             <LineOptionsPopup branchLike={branchLike} componentKey={componentKey} line={line} />
           }
index c1de61e6ee2de64286e67ca61a51dec3c543eef5..e692a3c46f170881b4bdd0b0c38bbf3caf847ef3 100644 (file)
@@ -58,6 +58,7 @@ export default class LineSCM extends React.PureComponent<Props> {
         {cell}
         <BubblePopupHelper
           isOpen={popupOpen}
+          offset={{ vertical: -18, horizontal: 0 }}
           popup={<SCMPopup line={line} />}
           position="bottomright"
           togglePopup={this.handleTogglePopup}
index 2633afb6d2c89a8b76ca4321802d0b73e70c49f5..3841048e4aee20d76d642e9d28c2129be42e7194 100644 (file)
@@ -16,6 +16,12 @@ exports[`render line 3 1`] = `
 >
   <BubblePopupHelper
     isOpen={false}
+    offset={
+      Object {
+        "horizontal": 0,
+        "vertical": -18,
+      }
+    }
     popup={
       <LineOptionsPopup
         branchLike={undefined}
index dcbaf7e2c9cacf344ad6a421d3a994b9ab834e7e..c320b6a9b3604030c15a0e353cf3a25fa45c6cd3 100644 (file)
@@ -10,6 +10,12 @@ exports[`does not render scm details 1`] = `
 >
   <BubblePopupHelper
     isOpen={false}
+    offset={
+      Object {
+        "horizontal": 0,
+        "vertical": -18,
+      }
+    }
     popup={
       <SCMPopup
         line={
@@ -41,6 +47,12 @@ exports[`render scm details 1`] = `
   />
   <BubblePopupHelper
     isOpen={false}
+    offset={
+      Object {
+        "horizontal": 0,
+        "vertical": -18,
+      }
+    }
     popup={
       <SCMPopup
         line={
@@ -72,6 +84,12 @@ exports[`render scm details for the first line 1`] = `
   />
   <BubblePopupHelper
     isOpen={false}
+    offset={
+      Object {
+        "horizontal": 0,
+        "vertical": -18,
+      }
+    }
     popup={
       <SCMPopup
         line={
index 892cab66813755908966665dda7010340ca6ca0d..3da8a520ebe458b6040d16fe9ea96cc6b6695296 100644 (file)
@@ -257,6 +257,7 @@ export default class MultiSelect extends React.PureComponent<Props, State> {
     const { renderLabel } = this.props as PropsWithDefault;
     const { query, activeIdx, selectedElements, unselectedElements } = this.state;
     const activeElement = this.getAllElements(this.props, this.state)[activeIdx];
+    const showNewElement = allowNewElements && this.isNewElement(query, this.props);
     const infiniteList = this.props.listSize === 0;
     const listClasses = classNames('menu', {
       'menu-vertically-limited': infiniteList,
@@ -278,10 +279,6 @@ export default class MultiSelect extends React.PureComponent<Props, State> {
           />
         </div>
         <ul className={listClasses}>
-          {selectedElements.length < 1 &&
-            unselectedElements.length < 1 && (
-              <li className="spacer-left">{translateWithParameters('no_results_for_x', query)}</li>
-            )}
           {selectedElements.length > 0 &&
             selectedElements.map(element => (
               <MultiSelectOption
@@ -306,17 +303,21 @@ export default class MultiSelect extends React.PureComponent<Props, State> {
                 renderLabel={renderLabel}
               />
             ))}
-          {allowNewElements &&
-            this.isNewElement(query, this.props) && (
-              <MultiSelectOption
-                active={activeElement === query}
-                custom={true}
-                element={query}
-                key={query}
-                onHover={this.handleElementHover}
-                onSelectChange={this.handleSelectChange}
-                renderLabel={renderLabel}
-              />
+          {showNewElement && (
+            <MultiSelectOption
+              active={activeElement === query}
+              custom={true}
+              element={query}
+              key={query}
+              onHover={this.handleElementHover}
+              onSelectChange={this.handleSelectChange}
+              renderLabel={renderLabel}
+            />
+          )}
+          {!showNewElement &&
+            selectedElements.length < 1 &&
+            unselectedElements.length < 1 && (
+              <li className="spacer-left">{translateWithParameters('no_results_for_x', query)}</li>
             )}
         </ul>
         {footerNode}
index fc54899c8b490393b989585b778fade9f278ce1b..b533d353735cf05e980a70e900664edc8eb2c751 100644 (file)
@@ -28,12 +28,13 @@ const PROJECTS_SORT = 'sonarqube.projects.sort';
 const PROJECT_ACTIVITY_GRAPH = 'sonarqube.project_activity.graph';
 const PROJECT_ACTIVITY_GRAPH_CUSTOM = 'sonarqube.project_activity.graph.custom';
 
-function save(key: string, value?: string): void {
+function save(key: string, value?: string, suffix?: string): void {
   try {
+    const finalKey = suffix ? `${key}.${suffix}` : key;
     if (value) {
-      window.localStorage.setItem(key, value);
+      window.localStorage.setItem(finalKey, value);
     } else {
-      window.localStorage.removeItem(key);
+      window.localStorage.removeItem(finalKey);
     }
   } catch (e) {
     // usually that means the storage is full
@@ -41,12 +42,16 @@ function save(key: string, value?: string): void {
   }
 }
 
+function get(key: string, suffix?: string): string | null {
+  return window.localStorage.getItem(suffix ? `${key}.${suffix}` : key);
+}
+
 export function saveFavorite(): void {
   save(PROJECTS_DEFAULT_FILTER, PROJECTS_FAVORITE);
 }
 
 export function isFavoriteSet(): boolean {
-  const setting = window.localStorage.getItem(PROJECTS_DEFAULT_FILTER);
+  const setting = get(PROJECTS_DEFAULT_FILTER);
   return setting === PROJECTS_FAVORITE;
 }
 
@@ -55,32 +60,32 @@ export function saveAll(): void {
 }
 
 export function isAllSet(): boolean {
-  const setting = window.localStorage.getItem(PROJECTS_DEFAULT_FILTER);
+  const setting = get(PROJECTS_DEFAULT_FILTER);
   return setting === PROJECTS_ALL;
 }
 
-export function saveView(view?: string): void {
-  save(PROJECTS_VIEW, view);
+export function saveView(view?: string, suffix?: string): void {
+  save(PROJECTS_VIEW, view, suffix);
 }
 
-export function getView(): string | null {
-  return window.localStorage.getItem(PROJECTS_VIEW);
+export function getView(suffix?: string): string | null {
+  return get(PROJECTS_VIEW, suffix);
 }
 
-export function saveVisualization(visualization?: string): void {
-  save(PROJECTS_VISUALIZATION, visualization);
+export function saveVisualization(visualization?: string, suffix?: string): void {
+  save(PROJECTS_VISUALIZATION, visualization, suffix);
 }
 
-export function getVisualization(): string | null {
-  return window.localStorage.getItem(PROJECTS_VISUALIZATION);
+export function getVisualization(suffix?: string): string | null {
+  return get(PROJECTS_VISUALIZATION, suffix);
 }
 
-export function saveSort(sort?: string): void {
-  save(PROJECTS_SORT, sort);
+export function saveSort(sort?: string, suffix?: string): void {
+  save(PROJECTS_SORT, sort, suffix);
 }
 
-export function getSort(): string | null {
-  return window.localStorage.getItem(PROJECTS_SORT);
+export function getSort(suffix?: string): string | null {
+  return get(PROJECTS_SORT, suffix);
 }
 
 export function saveCustomGraph(metrics?: string[]): void {
@@ -88,7 +93,7 @@ export function saveCustomGraph(metrics?: string[]): void {
 }
 
 export function getCustomGraph(): string[] {
-  const customGraphs = window.localStorage.getItem(PROJECT_ACTIVITY_GRAPH_CUSTOM);
+  const customGraphs = get(PROJECT_ACTIVITY_GRAPH_CUSTOM);
   return customGraphs ? customGraphs.split(',') : [];
 }
 
@@ -97,5 +102,5 @@ export function saveGraph(graph?: string): void {
 }
 
 export function getGraph(): string {
-  return window.localStorage.getItem(PROJECT_ACTIVITY_GRAPH) || 'issues';
+  return get(PROJECT_ACTIVITY_GRAPH) || 'issues';
 }
index 666130b7e6f23130dcbaae502ffacf1a8ca3fd80..f1eb642dd21fbd7b726fc2325826cc040fd98dc9 100644 (file)
@@ -129,13 +129,13 @@ task integrationTest(type: Test) {
         includeTestsMatching 'org.sonarqube.tests.organization.*Suite'
         break
       case 'Plugins':
-        includeTestsMatching 'org.sonarqube.tests.plugins.PluginsSuite'
+        includeTestsMatching 'org.sonarqube.tests.plugins.*Suite'
         break
       case 'Upgrade':
-        includeTestsMatching 'org.sonarqube.tests.upgrade.UpgradeSuite'
+        includeTestsMatching 'org.sonarqube.tests.upgrade.*Suite'
         break
       case 'ServerPerformance':
-        includeTestsMatching 'org.sonarqube.tests.performance.server.ServerPerformanceSuite'
+        includeTestsMatching 'org.sonarqube.tests.performance.server.*Suite'
         break
     }
     testLogging {
index d33880c7e51475600ccc1dc1b3e3bb80d94d2b92..8939249bc5cdd0537406045fa3c86f572a47d838 100644 (file)
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
\ No newline at end of file
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
index def6df882e8b7e8127474336dd61f4c0605318ac..aa26ea19f245c8765247a5fa240d77eeb11cd0f9 100644 (file)
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
\ No newline at end of file
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
index 98fd9a53ddad3adb143113d755b4a64201d78e3d..eb74ab95461e6b6986701718a36e91b95090e89e 100644 (file)
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-1,user1,2013-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-2,user2,2014-04-01
-3,user3,2014-04-03
\ No newline at end of file
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+1,user1,2017-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+2,user2,2018-04-01
+3,user3,2018-04-03
index c8bbc8001f3b616950f74eec88c80b8874d1b599..7079fc7b7e43a48aa10578ee44a7cb4ae76bb19e 100644 (file)
@@ -27,7 +27,6 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 import org.sonarqube.tests.authorization.PermissionTemplateTest;
 import org.sonarqube.tests.ce.ReportFailureNotificationTest;
-import org.sonarqube.tests.issue.IssueNotificationsTest;
 import org.sonarqube.tests.issue.IssueTagsTest;
 import org.sonarqube.tests.issue.OrganizationIssuesPageTest;
 import org.sonarqube.tests.qualityProfile.BuiltInQualityProfilesTest;
@@ -63,8 +62,7 @@ import static util.ItUtils.xooPlugin;
   RulesWsTest.class,
   RulesMarkdownTest.class,
   PermissionTemplateTest.class,
-  ReportFailureNotificationTest.class,
-  IssueNotificationsTest.class
+  ReportFailureNotificationTest.class
 })
 public class Category6Suite {
 
index a6185016560e3d417ce280cbca32768235d32f11..05650795cac10d68986ef4c18de19af3015d336c 100644 (file)
@@ -45,8 +45,8 @@ public class PermissionTemplatePageTest {
   @Test
   public void bulk_apply_permission_template() {
     String project = tester.projects().provision().getKey();
-    String userLogin = tester.users().generateMemberOfDefaultOrganization().getLogin();
-    String adminLogin = tester.users().generateAdministratorOnDefaultOrganization().getLogin();
+    String userLogin = tester.users().generate().getLogin();
+    String adminLogin = tester.users().generateAdministrator().getLogin();
 
     tester.wsClient().permissions().createTemplate(new CreateTemplateRequest().setName("foo-template"));
     tester.wsClient().permissions().addUserToTemplate(
index e1e5dab62c3273d14f162dcd3337d89f132779e7..0086fee15b0e9cb304c68b75c7a941790d33e2e6 100644 (file)
@@ -42,7 +42,7 @@ public class BranchTest {
   public static Orchestrator orchestrator = ComponentSuite.ORCHESTRATOR;
 
   @Rule
-  public Tester tester = new Tester(orchestrator);
+  public Tester tester = new Tester(orchestrator).disableOrganizations();
 
   @Test
   public void list_branches_contains_main_branch() {
index a2fb3478de146c4edc19ff42d848b876007f7d18..ee0795801cf4e0f8e0c0994d2c82732ae3b4994d 100644 (file)
@@ -35,7 +35,7 @@ public class CodePageTest {
   public static Orchestrator orchestrator = ComponentSuite.ORCHESTRATOR;
 
   @Rule
-  public Tester tester = new Tester(orchestrator);
+  public Tester tester = new Tester(orchestrator).disableOrganizations();
 
   @Test
   public void code_page() {
index 470b5b6d96721a41064212c099283aef6badb385..2d55b8862f71f5082bf21928cab5a10dacf3bd70 100644 (file)
@@ -39,7 +39,7 @@ public class ComponentsWsTest {
   @ClassRule
   public static final Orchestrator orchestrator = ComponentSuite.ORCHESTRATOR;
 
-  private static Tester tester = new Tester(orchestrator);
+  private static Tester tester = new Tester(orchestrator).disableOrganizations();
 
   @ClassRule
   public static RuleChain ruleChain = RuleChain.outerRule(orchestrator).around(tester);
index ffc3f4e1a471cbf45172d1d2e50f539253861419..37029fd7b5741b67e664c056516364538a5e8e86 100644 (file)
@@ -28,7 +28,6 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.sonarqube.qa.util.Tester;
-import org.sonarqube.ws.Organizations;
 import org.sonarqube.ws.client.components.ShowRequest;
 import org.sonarqube.ws.client.components.TreeRequest;
 import org.sonarqube.ws.client.projects.UpdateKeyRequest;
@@ -48,14 +47,13 @@ public class ModuleTest {
   @Rule
   public TemporaryFolder temp = new TemporaryFolder();
   @Rule
-  public Tester tester = new Tester(orchestrator);
+  public Tester tester = new Tester(orchestrator).disableOrganizations();
 
   /**
    * SONAR-10536
    */
   @Test
   public void analyze_disabled_module_as_a_new_project() throws Exception {
-    Organizations.Organization organization = tester.organizations().generate();
     String projectKey = PROJECT_KEY;
     String moduleKey = projectKey + ":module_a";
 
@@ -63,7 +61,7 @@ public class ModuleTest {
     File projectWithModule = new XooProjectBuilder(projectKey)
       .addModules("module_a")
       .build(temp.newFolder());
-    analyze(organization, projectWithModule);
+    analyze(projectWithModule);
     assertThat(tester.projects().exists(moduleKey)).isTrue();
     assertThat(countFilesInProject(projectKey)).isEqualTo(2 /* 1 file in project and 1 file in module */);
 
@@ -71,7 +69,7 @@ public class ModuleTest {
     // is considered as disabled
     File projectWithoutModule = new XooProjectBuilder(projectKey)
       .build(temp.newFolder());
-    analyze(organization, projectWithoutModule);
+    analyze(projectWithoutModule);
     assertThat(tester.projects().exists(moduleKey)).isFalse();
     assertThat(countFilesInProject(projectKey)).isEqualTo(1 /* 1 file in project */);
 
@@ -79,7 +77,7 @@ public class ModuleTest {
     File moduleAsProject = new XooProjectBuilder(moduleKey)
       .build(temp.newFolder());
     try {
-      analyze(organization, moduleAsProject);
+      analyze(moduleAsProject);
       fail();
     } catch (BuildFailureException e) {
       assertThat(e.getResult().getLogs()).contains("The project '" + moduleKey + "' is already defined in SonarQube but as a module of project '" + projectKey + "'");
@@ -90,16 +88,14 @@ public class ModuleTest {
     updateModuleKey(moduleKey, moduleKey + "_old");
 
     // module_a can now be analyzed as a project
-    analyze(organization, moduleAsProject);
+    analyze(moduleAsProject);
     assertThat(tester.projects().exists(moduleKey)).isTrue();
     assertThat(countFilesInProject(moduleKey)).isEqualTo(1);
     assertThat(tester.wsClient().components().show(new ShowRequest().setComponent(moduleKey)).getComponent().getQualifier()).isEqualTo("TRK");
   }
 
-  private void analyze(Organizations.Organization organization, File projectDir) {
-    orchestrator.executeBuild(SonarScanner.create(projectDir,
-      "sonar.organization", organization.getKey(),
-      "sonar.login", "admin", "sonar.password", "admin"));
+  private void analyze(File projectDir) {
+    orchestrator.executeBuild(SonarScanner.create(projectDir));
   }
 
   private int countFilesInProject(String projectKey) {
index cf98015fc8dab818cf67d2d8c14bfd3ffc431ece..fd4cd4841b2783da8c62d52f393c8963dc382046 100644 (file)
  */
 package org.sonarqube.tests.issue;
 
-import com.google.common.collect.ObjectArrays;
 import com.sonar.orchestrator.Orchestrator;
 import java.io.IOException;
-import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 import org.apache.commons.lang.RandomStringUtils;
-import org.junit.After;
 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.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
 import org.sonarqube.qa.util.Tester;
-import org.sonarqube.tests.Category6Suite;
-import org.sonarqube.ws.Issues.Issue;
-import org.sonarqube.ws.Issues.SearchWsResponse;
-import org.sonarqube.ws.Organizations.Organization;
+import org.sonarqube.ws.Issues;
+import org.sonarqube.ws.Permissions;
 import org.sonarqube.ws.Projects.CreateWsResponse.Project;
 import org.sonarqube.ws.Qualityprofiles;
-import org.sonarqube.ws.Users;
 import org.sonarqube.ws.Users.CreateWsResponse.User;
-import org.sonarqube.ws.client.PostRequest;
-import org.sonarqube.ws.client.WsClient;
 import org.sonarqube.ws.client.issues.AssignRequest;
 import org.sonarqube.ws.client.issues.BulkChangeRequest;
 import org.sonarqube.ws.client.issues.SearchRequest;
+import org.sonarqube.ws.client.notifications.AddRequest;
 import org.sonarqube.ws.client.permissions.AddUserRequest;
 import org.subethamail.wiser.Wiser;
 import org.subethamail.wiser.WiserMessage;
 
 import static java.lang.String.format;
 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.assertj.core.api.Fail.fail;
+import static util.ItUtils.formatDate;
 import static util.ItUtils.runProjectAnalysis;
 
-@RunWith(Parameterized.class)
 public class IssueNotificationsTest {
 
+  private static final String PAST_ANALYSIS_DATE = formatDate(addDays(new Date(), -30));
+
   @ClassRule
-  public static final Orchestrator ORCHESTRATOR = Category6Suite.ORCHESTRATOR;
+  public static final Orchestrator ORCHESTRATOR = IssueSuite.ORCHESTRATOR;
 
   @Rule
-  public Tester tester = new Tester(ORCHESTRATOR);
-
-  private final static String EMAIL_TEST = "test@test.com";
-  private final static String PROJECT_KEY = "sample";
+  public Tester tester = new Tester(ORCHESTRATOR).disableOrganizations();
 
   private static Wiser smtpServer;
 
-  private Organization organization;
-  private User userWithUserRole;
-  private User userWithUserRoleThroughGroups;
-  private User userNotInOrganization;
-
-  @Parameters
-  public static List<Boolean> data() {
-    return Arrays.asList(true, false);
-  }
-
-  @Parameter
-  public boolean privateProject;
-
   @BeforeClass
   public static void setUp() {
     smtpServer = new Wiser(0);
     smtpServer.start();
-    System.out.println("SMTP Server port: " + smtpServer.getServer().getPort());
   }
 
   @AfterClass
@@ -105,49 +81,30 @@ public class IssueNotificationsTest {
   }
 
   @Before
-  public void before() throws Exception {
-    organization = tester.organizations().generate();
-
-    // Configure Sonar
+  public void before() {
     tester.settings().setGlobalSettings("email.smtp_host.secured", "localhost");
     tester.settings().setGlobalSettings("email.smtp_port.secured", Integer.toString(smtpServer.getServer().getPort()));
-
-    clearSmtpMessages();
-    checkEmailSettings();
-    clearSmtpMessages();
-  }
-
-  @After
-  public void after() {
     clearSmtpMessages();
   }
 
   @Test
-  public void notifications_on_new_issues_should_send_emails_to_subscribers() throws Exception {
+  public void notification_for_NewIssues() throws Exception {
     String version = RandomStringUtils.randomAlphanumeric(10);
-    createSampleProject(privateProject ? "private" : "public");
-    createUsers();
-    runAnalysis("shared/xoo-sample",
-      "sonar.projectVersion", version,
-      "sonar.projectDate", "2015-12-15");
-
-    // If project is private userNotInOrganization will not receive and email (missing UserRole.User permission)
-    waitUntilAllNotificationsAreDelivered(privateProject ? 2 : 3);
-    assertThat(smtpServer.getMessages()).hasSize(privateProject ? 2 : 3);
-
-    if (privateProject) {
-      assertThat(extractRecipients(smtpServer.getMessages()))
-        .containsExactlyInAnyOrder(
-          format("<%s>", userWithUserRole.getEmail()),
-          format("<%s>", userWithUserRoleThroughGroups.getEmail()));
-    } else {
-      assertThat(extractRecipients(smtpServer.getMessages()))
-        .containsExactlyInAnyOrder(
-          format("<%s>", userWithUserRole.getEmail()),
-          format("<%s>", userWithUserRoleThroughGroups.getEmail()),
-          format("<%s>", userNotInOrganization.getEmail()));
-    }
+    Project project = tester.projects().provision();
+    createSampleQProfile(project);
+    User userReceivingNotification = tester.users().generate();
+    tester.as(userReceivingNotification.getLogin()).wsClient().notifications().add(new AddRequest().setType("NewIssues").setChannel("EmailNotificationChannel"));
+    User anotherUser = tester.users().generate();
+
+    runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample",
+      "sonar.projectKey", project.getKey(),
+      "sonar.projectDate", PAST_ANALYSIS_DATE,
+      "sonar.projectVersion", version);
+    checkNotificationSent(1);
 
+    assertThat(extractRecipients(smtpServer.getMessages()))
+      .containsExactlyInAnyOrder(
+        format("<%s>", userReceivingNotification.getEmail()));
     extractBodies(smtpServer.getMessages()).forEach(
       message -> assertThat(message)
         .contains("Project: Sample")
@@ -156,72 +113,71 @@ public class IssueNotificationsTest {
         .contains("Type")
         .contains("Bug: ").contains("Code Smell: ").contains("Vulnerability: ")
         .contains("One Issue Per Line (xoo): 17")
-        .contains("More details at: http://localhost:9000/project/issues?id=sample&createdAt=2015-12-15T00%3A00%3A00%2B"));
-
-    clearSmtpMessages();
+        .contains("More details at: http://localhost:9000/project/issues?id=" + project.getKey() + "&createdAt=" + PAST_ANALYSIS_DATE + "T00%3A00%3A00%2B"));
   }
 
   @Test
-  public void notifications_for_issue_changes() throws Exception {
+  public void notification_for_ChangesOnMyIssue() throws Exception {
     String version = RandomStringUtils.randomAlphanumeric(10);
-    createSampleProject(privateProject ? "private" : "public");
-    createUsers();
-    runAnalysis("shared/xoo-sample",
-      "sonar.projectVersion", version,
-      "sonar.projectDate", "2015-12-15");
-
+    Project project = tester.projects().provision();
+    createSampleQProfile(project);
+    User user1 = tester.users().generate();
+    tester.as(user1.getLogin()).wsClient().notifications().add(new AddRequest().setType("ChangesOnMyIssue").setChannel("EmailNotificationChannel"));
+    User user2 = tester.users().generate();
+    tester.as(user2.getLogin()).wsClient().notifications().add(new AddRequest().setType("ChangesOnMyIssue").setChannel("EmailNotificationChannel"));
+    runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample",
+      "sonar.projectKey", project.getKey(),
+      "sonar.projectDate", PAST_ANALYSIS_DATE,
+      "sonar.projectVersion", version);
     // Ignore the messages generated by the analysis
     clearSmtpMessages();
 
     // Change assignee
-    SearchWsResponse issues = tester.wsClient().issues().search(new SearchRequest().setProjects(singletonList(PROJECT_KEY)));
-    Issue issue = issues.getIssuesList().get(0);
-    tester.wsClient().issues().assign(new AssignRequest().setIssue(issue.getKey()).setAssignee(userWithUserRole.getLogin()));
+    Issues.SearchWsResponse issues = tester.wsClient().issues().search(new SearchRequest().setProjects(singletonList(project.getKey())));
+    Issues.Issue issue = issues.getIssuesList().get(0);
+    tester.wsClient().issues().assign(new AssignRequest().setIssue(issue.getKey()).setAssignee(user1.getLogin()));
+    checkNotificationSent(1);
 
     // Only the assignee should receive the email
-    waitUntilAllNotificationsAreDelivered(1);
-    assertThat(smtpServer.getMessages()).hasSize(1);
-    assertThat(extractRecipients(smtpServer.getMessages())).containsExactly(format("<%s>", userWithUserRole.getEmail()));
-
+    assertThat(extractRecipients(smtpServer.getMessages())).containsExactly(format("<%s>", user1.getEmail()));
     assertThat(extractBodies(smtpServer.getMessages()).get(0))
       .contains("sample/Sample.xoo")
-      .contains("Assignee changed to userWithUserRole")
-      .contains("More details at: http://localhost:9000/project/issues?id=sample&issues=" + issue.getKey() + "&open=" + issue.getKey());
+      .contains(format("Assignee changed to %s", user1.getName()))
+      .contains("More details at: http://localhost:9000/project/issues?id=" + project.getKey() + "&issues=" + issue.getKey() + "&open=" + issue.getKey());
   }
 
   @Test
-  public void notifications_for_personalized_emails() throws Exception {
+  public void notification_for_MyNewIssue() throws Exception {
     String version = RandomStringUtils.randomAlphanumeric(10);
-    // 1st analysis without any issue (because no file is analyzed)
-    createSampleProject(privateProject ? "private" : "public");
-    createUsers();
-    tester.settings().setGlobalSettings("sonar.issues.defaultAssigneeLogin", userWithUserRole.getLogin());
+    Project project = tester.projects().provision();
+    createSampleQProfile(project);
+    // User1 is the default assignee
+    User user1 = tester.users().generate();
+    tester.as(user1.getLogin()).wsClient().notifications().add(new AddRequest().setType("SQ-MyNewIssues").setChannel("EmailNotificationChannel"));
+    tester.settings().setGlobalSettings("sonar.issues.defaultAssigneeLogin", user1.getLogin());
+    // User2 should not receive any email
+    User user2 = tester.users().generate();
+    tester.as(user2.getLogin()).wsClient().notifications().add(new AddRequest().setType("SQ-MyNewIssues").setChannel("EmailNotificationChannel"));
 
-    runAnalysis("issue/xoo-with-scm",
+    // 1st analysis without any issue (because no file is analyzed)
+    runProjectAnalysis(ORCHESTRATOR, "issue/xoo-with-scm",
+      "sonar.projectKey", project.getKey(),
       "sonar.projectVersion", version,
       "sonar.scm.provider", "xoo",
       "sonar.scm.disabled", "false",
       "sonar.exclusions", "**/*");
-
     // No email since all code is ignored
-    waitUntilAllNotificationsAreDelivered(1);
-    assertThat(smtpServer.getMessages()).isEmpty();
+    checkNoNotificationSent();
 
     // run 2nd analysis which will generate issues on the leak period
-    runAnalysis("issue/xoo-with-scm",
+    runProjectAnalysis(ORCHESTRATOR, "issue/xoo-with-scm",
+      "sonar.projectKey", project.getKey(),
       "sonar.projectVersion", version,
       "sonar.scm.provider", "xoo",
       "sonar.scm.disabled", "false");
-
-    // We expect to receive a notification for each subscriber with UserRole.user
-    // And a personalized email for the assignee userWithUserRole
-    waitUntilAllNotificationsAreDelivered(privateProject ? 3 : 4);
-    assertThat(smtpServer.getMessages()).hasSize(privateProject ? 3 : 4);
-
-    // the last email sent is the personalized one
-    MimeMessage message = smtpServer.getMessages().get(privateProject ? 2 : 3).getMimeMessage();
-
-    assertThat(message.getHeader("To", null)).isEqualTo(format("<%s>", userWithUserRole.getEmail()));
+    checkNotificationSent(1);
+    MimeMessage message = smtpServer.getMessages().get(0).getMimeMessage();
+    assertThat(message.getHeader("To", null)).isEqualTo(format("<%s>", user1.getEmail()));
     assertThat(message.getSubject()).contains("You have 13 new issues");
     assertThat((String) message.getContent())
       .contains("Project: Sample")
@@ -232,127 +188,95 @@ public class IssueNotificationsTest {
    * SONAR-4606
    */
   @Test
-  public void notifications_for_bulk_change_ws() throws Exception {
+  public void notification_for_bulk_change_ws() throws Exception {
     String version = RandomStringUtils.randomAlphanumeric(10);
-    createSampleProject(privateProject ? "private" : "public");
-    createUsers();
-    runAnalysis("shared/xoo-sample",
+    Project project = tester.projects().provision();
+    createSampleQProfile(project);
+    User user1 = tester.users().generate();
+    tester.as(user1.getLogin()).wsClient().notifications().add(new AddRequest().setType("ChangesOnMyIssue").setChannel("EmailNotificationChannel"));
+    User user2 = tester.users().generate();
+    tester.as(user2.getLogin()).wsClient().notifications().add(new AddRequest().setType("ChangesOnMyIssue").setChannel("EmailNotificationChannel"));
+    runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample",
+      "sonar.projectKey", project.getKey(),
       "sonar.projectVersion", version,
-      "sonar.projectDate", "2015-12-15");
-
-    // If project is private userNotInOrganization will not receive and email (missing UserRole.User permission)
-    waitUntilAllNotificationsAreDelivered(privateProject ? 2 : 3);
-    assertThat(smtpServer.getMessages()).hasSize(privateProject ? 2 : 3);
+      "sonar.projectDate", PAST_ANALYSIS_DATE);
+    checkNoNotificationSent();
     clearSmtpMessages();
-
-    SearchWsResponse issues = tester.wsClient().issues().search(new SearchRequest().setProjects(singletonList(PROJECT_KEY)));
-    Issue issue = issues.getIssuesList().get(0);
+    Issues.SearchWsResponse issues = tester.wsClient().issues().search(new SearchRequest().setProjects(singletonList(project.getKey())));
+    Issues.Issue issue = issues.getIssuesList().get(0);
 
     // bulk change without notification by default
     tester.wsClient().issues().bulkChange(new BulkChangeRequest()
       .setIssues(singletonList(issue.getKey()))
-      .setAssign(singletonList(userWithUserRole.getLogin()))
+      .setAssign(singletonList(user1.getLogin()))
       .setSetSeverity(singletonList("MINOR")));
+    checkNoNotificationSent();
 
     // bulk change with notification
     tester.wsClient().issues().bulkChange(new BulkChangeRequest()
       .setIssues(singletonList(issue.getKey()))
       .setSetSeverity(singletonList("BLOCKER"))
       .setSendNotifications("true"));
-
-    // We are waiting for a single notification for userWithUserRole
-    // for a change on MyIssues
-    waitUntilAllNotificationsAreDelivered(1);
-    assertThat(smtpServer.getMessages()).hasSize(1);
-
+    checkNotificationSent(1);
     assertThat(extractRecipients(smtpServer.getMessages()))
-      .containsExactly(format("<%s>", userWithUserRole.getEmail()));
+      .containsExactly(format("<%s>", user1.getEmail()));
     assertThat(extractBodies(smtpServer.getMessages()).get(0))
       .contains("sample/Sample.xoo")
       .contains("Severity: BLOCKER (was MINOR)")
-      .contains("More details at: http://localhost:9000/project/issues?id=sample&issues=" + issue.getKey() + "&open=" + issue.getKey());
-  }
-
-  private void runAnalysis(String projectRelativePath, String... extraParameters) throws Exception {
-    String[] parameters = {
-      "sonar.login", "admin",
-      "sonar.password", "admin",
-      "sonar.organization", organization.getKey()};
-    runProjectAnalysis(ORCHESTRATOR, projectRelativePath,
-      ObjectArrays.concat(parameters, extraParameters, String.class));
-
-    // Two emails should be sent for subscribers of "New issues"
-    waitUntilAllNotificationsAreDelivered(2);
+      .contains("More details at: http://localhost:9000/project/issues?id=" + project.getKey() + "&issues=" + issue.getKey() + "&open=" + issue.getKey());
   }
 
-  private void createSampleProject(String visibility) {
-    // Create project
-    Qualityprofiles.CreateWsResponse.QualityProfile profile = tester.qProfiles().createXooProfile(organization);
-    Project project = tester.projects().provision(organization, p -> p.setProject(PROJECT_KEY)
-      .setName("Sample")
-      .setVisibility(visibility));
-    tester.qProfiles()
-      .activateRule(profile, "xoo:OneIssuePerLine")
-      .assignQProfileToProject(profile, project);
-  }
-
-  private void createUsers() {
-    // Create a user with User role
-    userWithUserRole = tester.users().generateMember(organization,
-      u -> u.setLogin("userWithUserRole")
-        .setPassword("userWithUserRole")
-        .setName("userWithUserRole")
-        .setEmail("userWithUserRole@nowhere.com"));
-    tester.organizations().addMember(organization, userWithUserRole);
+  @Test
+  public void notification_on_private_project() throws Exception {
+    // Create a private project using an empty permission template, in order for noone to be able to access it by default
+    Project project = tester.projects().provision(p -> p.setVisibility("private"));
+    Permissions.PermissionTemplate permissionTemplate = tester.permissions().generateTemplate();
+    tester.permissions().applyTemplate(permissionTemplate, project);
+    createSampleQProfile(project);
+    // User having browse permission on the project
+    User userWithBrowsePermission = tester.users().generate();
+    tester.as(userWithBrowsePermission.getLogin()).wsClient().notifications().add(new AddRequest().setType("NewIssues").setChannel("EmailNotificationChannel"));
     tester.wsClient().permissions().addUser(
       new AddUserRequest()
-        .setLogin(userWithUserRole.getLogin())
-        .setProjectKey(PROJECT_KEY)
+        .setLogin(userWithBrowsePermission.getLogin())
+        .setProjectKey(project.getKey())
         .setPermission("user"));
-    addNotificationsTo(userWithUserRole);
+    // User not having browse permission on the project
+    User userWithoutBrowsePermission = tester.users().generate();
+    tester.as(userWithoutBrowsePermission.getLogin()).wsClient().notifications().add(new AddRequest().setType("NewIssues").setChannel("EmailNotificationChannel"));
 
-    // Create a user that have User role through Members group
-    userWithUserRoleThroughGroups = tester.users().generate(
-      u -> u.setLogin("userWithUserRoleThroughGroups")
-        .setPassword("userWithUserRoleThroughGroups")
-        .setName("userWithUserRoleThroughGroups")
-        .setEmail("userWithUserRoleThroughGroups@nowhere.com"));
-    tester.organizations().addMember(organization, userWithUserRoleThroughGroups);
-    addNotificationsTo(userWithUserRoleThroughGroups);
+    runProjectAnalysis(ORCHESTRATOR, "shared/xoo-sample",
+      "sonar.projectKey", project.getKey(),
+      "sonar.projectDate", PAST_ANALYSIS_DATE);
+    checkNotificationSent(1);
 
-    // Create a user that does not belongs to organization
-    userNotInOrganization = tester.users().generate(
-      u -> u.setLogin("userNotInOrganization")
-        .setPassword("userNotInOrganization")
-        .setName("userNotInOrganization")
-        .setEmail("userNotInOrganization@nowhere.com"));
-    addNotificationsTo(userNotInOrganization);
+    assertThat(extractRecipients(smtpServer.getMessages()))
+      .containsExactlyInAnyOrder(
+        format("<%s>", userWithBrowsePermission.getEmail()))
+      .doesNotContain(userWithoutBrowsePermission.getEmail());
   }
 
-  void checkEmailSettings() throws Exception {
-    // Send test email to the test user
-    tester.wsClient().wsConnector().call(new PostRequest("api/emails/send")
-      .setParam("to", EMAIL_TEST)
-      .setParam("message", "This is a test message from SonarQube"))
-      .failIfNotSuccessful();
-
-    // We need to wait until all notifications will be delivered
-    waitUntilAllNotificationsAreDelivered(1);
-
-    assertThat(smtpServer.getMessages()).hasSize(1);
-
-    MimeMessage message = smtpServer.getMessages().get(0).getMimeMessage();
-    assertThat(message.getHeader("To", null)).isEqualTo("<" + EMAIL_TEST + ">");
-    assertThat((String) message.getContent()).contains("This is a test message from SonarQube");
+  private void createSampleQProfile(Project project) {
+    // Create project
+    Qualityprofiles.CreateWsResponse.QualityProfile profile = tester.qProfiles().createXooProfile();
+    tester.qProfiles()
+      .activateRule(profile, "xoo:OneIssuePerLine")
+      .assignQProfileToProject(profile, project);
   }
 
-  private static void waitUntilAllNotificationsAreDelivered(int expectedNumberOfEmails) throws InterruptedException {
-    for (int i = 0; i < 5; i++) {
+  private static void checkNotificationSent(int expectedNumberOfEmails) throws InterruptedException {
+    for (int i = 0; i < 10; i++) {
       if (smtpServer.getMessages().size() == expectedNumberOfEmails) {
         break;
       }
       Thread.sleep(1_000);
     }
+    assertThat(smtpServer.getMessages()).hasSize(expectedNumberOfEmails);
+  }
+
+  private static void checkNoNotificationSent() throws InterruptedException {
+    Thread.sleep(1_000);
+    assertThat(smtpServer.getMessages()).isEmpty();
   }
 
   private static void clearSmtpMessages() {
@@ -384,21 +308,4 @@ public class IssueNotificationsTest {
         }
       }).collect(Collectors.toList());
   }
-
-  private void addNotificationsTo(Users.CreateWsResponse.User user) {
-    // Add notifications to the test user
-    WsClient wsClient = tester.as(user.getLogin()).wsClient();
-    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();
-  }
 }
index 8ff714fe6e3a70b23949a0dc7851713c4c70213e..cc6a0097e410ccf87615d932c3c20fd5a12dc668 100644 (file)
@@ -41,6 +41,7 @@ import static util.ItUtils.xooPlugin;
   IssueFilterTest.class,
   IssueFilterExtensionTest.class,
   IssueMeasureTest.class,
+  IssueNotificationsTest.class,
   IssuePurgeTest.class,
   IssueSearchTest.class,
   IssueTrackingTest.class,
@@ -62,8 +63,6 @@ public class IssueSuite {
     // 1 second. Required for notification test.
     .setServerProperty("sonar.notifications.delay", "1")
 
-    .setServerProperty("organization.enabled", "true")
-
     .build();
 
 }
index 01e8e14143198bd3721adb8424479752c5303940..bbe697112ea67a6452771c5ee97382ea76627fb1 100644 (file)
@@ -158,7 +158,7 @@ public class OrganizationIssueAssignTest {
     User otherUser = tester.users().generate();
     provisionAndAnalyseProject(SAMPLE_PROJECT_KEY, organization);
 
-    IssuesPage page = tester.openBrowser().logIn().submitCredentials(user.getLogin()).openIssues();
+    IssuesPage page = tester.openBrowser().logIn().submitCredentials(user.getLogin()).openExploreIssues();
     page.getFirstIssue()
       .shouldAllowAssign()
       .assigneeSearchResultCount(otherUser.getLogin(), 0)
@@ -189,7 +189,7 @@ public class OrganizationIssueAssignTest {
     provisionAndAnalyseProject(SAMPLE_PROJECT_KEY, organization);
     IssuesPage page = tester.openBrowser()
       .logIn().submitCredentials(user.getLogin())
-      .openIssues();
+      .openExploreIssues();
     page
       .bulkChangeOpen()
       .bulkChangeAssigneeSearchCount(user.getLogin(), 1)
index 85381682159ed7e7913e30936d8d4e9986ef7ff5..943657e0721cb7f44e3b498edf48b01a233082d4 100644 (file)
@@ -37,6 +37,8 @@ public class OrganizationIssueSuite {
   public static final Orchestrator ORCHESTRATOR = newOrchestratorBuilder()
     .addPlugin(xooPlugin())
 
+    .setServerProperty("sonar.sonarcloud.enabled", "true")
+
     .build();
 
 }
index 64a162edc7e8e10ba25a118d537a717ed062147e..205631023f9b2cdcbfaa6328de917f5a7d6d47ab 100644 (file)
@@ -24,9 +24,9 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
+import org.sonarqube.qa.util.Tester;
 import org.sonarqube.qa.util.pageobjects.Navigation;
 import org.sonarqube.tests.Category6Suite;
-import org.sonarqube.qa.util.Tester;
 import org.sonarqube.ws.Organizations;
 import org.sonarqube.ws.Users;
 import util.issue.IssueRule;
@@ -74,7 +74,7 @@ public class OrganizationIssuesPageTest {
       .issuesCount(2)
       .componentsShouldNotContain(org1.getName());
 
-    nav.openIssues()
+    nav.openExploreIssues()
       .issuesCount(4)
       .componentsShouldContain("Org ");
   }
index 49b87d55eab7525fffc055f13b6cdec27cf00603..3ddb07294e33974dfaba97c94143d8e1936712e3 100644 (file)
@@ -76,7 +76,7 @@ public class ProjectActivityPageTest {
   }
 
   private ProjectActivityPage openPage() {
-    String userAdmin = tester.users().generateAdministratorOnDefaultOrganization().getLogin();
+    String userAdmin = tester.users().generateAdministrator().getLogin();
     return tester.openBrowser()
       .logIn()
       .submitCredentials(userAdmin, userAdmin)
index 72c95312c0f8217b63c200d2d35b5db7e28e2ef6..80176659c5429cf0c50617da7df2ca6854f9ba34 100644 (file)
@@ -48,7 +48,7 @@ public class ProjectDashboardTest {
 
   @Before
   public void setUp() {
-    adminUser = tester.users().generateAdministratorOnDefaultOrganization().getLogin();
+    adminUser = tester.users().generateAdministrator().getLogin();
   }
 
   @Test
index 206ea6167ebc138b25a4c310ac38548a41dcb718..a66254b5ebd4309ab54c6c319744ddbf1bcbc354 100644 (file)
@@ -28,7 +28,6 @@ import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
 import org.sonarqube.qa.util.Tester;
-import org.sonarqube.qa.util.pageobjects.Navigation;
 import org.sonarqube.ws.Organizations;
 import org.sonarqube.ws.Users.CreateWsResponse.User;
 import org.sonarqube.ws.client.GetRequest;
@@ -191,7 +190,7 @@ public class BillingTest {
     String projectKey = createPublicProject();
     tester.settings().setGlobalSettings("sonar.billing.preventUpdatingProjectsVisibilityToPrivate", "true");
 
-    Navigation.create(orchestrator)
+    tester.openBrowser()
       .logIn().submitCredentials(orgAdministrator.getLogin())
       .openProjectPermissions(projectKey)
       .shouldBePublic()
index 024a8849b41888b1f79178646c1ae9b1f94794aa..0e77d7c2854b4c65cd08ee3b22d23ae0ff67332e 100644 (file)
@@ -47,5 +47,7 @@ public class OrganizationSuite {
     .addPlugin(pluginArtifact("fake-billing-plugin"))
     .addPlugin(pluginArtifact("ui-extensions-plugin"))
 
+    .setServerProperty("sonar.sonarcloud.enabled", "true")
+
     .build();
 }
diff --git a/tests/src/test/java/org/sonarqube/tests/project/OrganizationProjectSuite.java b/tests/src/test/java/org/sonarqube/tests/project/OrganizationProjectSuite.java
new file mode 100644 (file)
index 0000000..c0675b8
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public 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.tests.project;
+
+import com.sonar.orchestrator.Orchestrator;
+import com.sonar.orchestrator.util.NetworkUtils;
+import java.net.InetAddress;
+import org.junit.ClassRule;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+import static util.ItUtils.newOrchestratorBuilder;
+import static util.ItUtils.pluginArtifact;
+import static util.ItUtils.xooPlugin;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+  ProjectBulkDeletionTest.class,
+  ProjectBulkDeletionPageTest.class,
+  ProjectDeletionTest.class,
+  ProjectFilterTest.class,
+  ProjectKeyUpdateTest.class,
+  ProjectKeyUpdatePageTest.class,
+  ProjectLeakPageTest.class,
+  ProjectLinksTest.class,
+  ProjectListTest.class,
+  ProjectProvisioningTest.class,
+  ProjectSearchTest.class,
+  ProjectVisibilityPageTest.class,
+  ProjectsExplorePageTest.class,
+  SonarCloudProjectBadgesTest.class
+})
+public class OrganizationProjectSuite {
+  static final int SEARCH_HTTP_PORT = NetworkUtils.getNextAvailablePort(InetAddress.getLoopbackAddress());
+
+  @ClassRule
+  public static final Orchestrator ORCHESTRATOR = newOrchestratorBuilder()
+    // for ES resiliency tests
+    .setServerProperty("sonar.search.httpPort", "" + SEARCH_HTTP_PORT)
+    .setServerProperty("sonar.search.recovery.delayInMs", "1000")
+    .setServerProperty("sonar.search.recovery.minAgeInMs", "3000")
+    .setServerProperty("sonar.notifications.delay", "1")
+
+    .setServerProperty("sonar.sonarcloud.enabled", "true")
+
+    .addPlugin(xooPlugin())
+
+    // for ProjectSettingsTest
+    .addPlugin(pluginArtifact("sonar-subcategories-plugin"))
+
+    .build();
+
+}
index fe8bc6c1f81c9c7c159df6176bf3c73e78fda2f2..05d243af6e3fccec3a916f0ac45b77ab83f06e81 100644 (file)
@@ -48,7 +48,7 @@ public class ProjectBadgesTest {
   public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
 
   @Rule
-  public Tester tester = new Tester(orchestrator);
+  public Tester tester = new Tester(orchestrator).disableOrganizations();
 
   @Test
   public void public_project_badges() {
@@ -72,12 +72,11 @@ public class ProjectBadgesTest {
 
   @Test
   public void private_project_do_not_have_badges() {
-    Organization org = tester.organizations().generate();
-    User user = tester.users().generateAdministrator(org);
+    User user = tester.users().generateAdministrator();
     orchestrator.executeBuild(
       SonarScanner
         .create(projectDir("shared/xoo-sample"))
-        .setProperties("sonar.organization", org.getKey(), "sonar.login", user.getLogin(), "sonar.password", user.getLogin())
+        .setProperties("sonar.login", user.getLogin(), "sonar.password", user.getLogin())
     );
     tester.wsClient().projects().updateVisibility(new UpdateVisibilityRequest().setProject("sample").setVisibility("private"));
     tester.openBrowser().logIn().submitCredentials(user.getLogin()).openProjectDashboard(PROJECT_KEY);
index 65d64c732d88517a299421decbe57e67395b10c7..4f6446d331262bc85bf639b94c86aea076ea3146 100644 (file)
@@ -36,7 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 public class ProjectBulkDeletionPageTest {
 
   @ClassRule
-  public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public Tester tester = new Tester(orchestrator);
index a447b97b5e617fa01b38a2356a13882fc057fd12..bb06173f5b56b55f4171cae63b77d0bdcfb95055 100644 (file)
@@ -38,7 +38,7 @@ import static util.ItUtils.runProjectAnalysis;
 public class ProjectBulkDeletionTest {
 
   @ClassRule
-  public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public Tester tester = new Tester(orchestrator);
index 5703a13fc6b906a1f0351f59cf69855b5650d23f..355f98138a7c55500656f893d4ee17c7b7d74e24 100644 (file)
@@ -55,13 +55,13 @@ import static util.ItUtils.projectDir;
 public class ProjectDeletionTest {
 
   @ClassRule
-  public static final Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static final Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public TestRule safeguard = new DisableOnDebug(Timeout.seconds(300));
 
   @Rule
-  public Tester tester = new Tester(orchestrator).setElasticsearchHttpPort(ProjectSuite.SEARCH_HTTP_PORT);
+  public Tester tester = new Tester(orchestrator).setElasticsearchHttpPort(OrganizationProjectSuite.SEARCH_HTTP_PORT);
 
   @Test
   public void delete_project_by_web_service() {
index 83b243db7dd35f3c82f33d10b553c79e1cd38b71..c1904bb0c0daacdb45f7ec9b49a37b9e7d438c0c 100644 (file)
@@ -53,7 +53,7 @@ import static util.ItUtils.sanitizeTimezones;
 public class ProjectFilterTest {
 
   @ClassRule
-  public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public Tester tester = new Tester(orchestrator);
index 28abde7863b6e17a2d0664eb3e76345d5655611f..a6789d3c74da216ad12ba086ddafc3ba9703ba9c 100644 (file)
@@ -39,7 +39,7 @@ import static util.ItUtils.projectDir;
 public class ProjectKeyUpdatePageTest {
 
   @ClassRule
-  public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public Tester tester = new Tester(orchestrator);
index b1486e5f5395e4ba18967085935b8f243347d981..1afbc28366a186a8854ba7dc710109e0f2cd63ea 100644 (file)
@@ -61,14 +61,14 @@ public class ProjectKeyUpdateTest {
   private static final String PROJECT_KEY = "sample";
 
   @ClassRule
-  public static final Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static final Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public TestRule safeguard = new DisableOnDebug(Timeout.seconds(300));
   @Rule
   public TemporaryFolder temp = new TemporaryFolder();
   @Rule
-  public Tester tester = new Tester(orchestrator).setElasticsearchHttpPort(ProjectSuite.SEARCH_HTTP_PORT);
+  public Tester tester = new Tester(orchestrator).setElasticsearchHttpPort(OrganizationProjectSuite.SEARCH_HTTP_PORT);
 
   @After
   public void tearDown() throws Exception {
index 842b0072ea1b4db4ff27a89e0bd3eacb9eef04e4..4b622997c9c30e9010cc2e1ab916e9af6192c1d7 100644 (file)
@@ -42,7 +42,7 @@ import static util.ItUtils.restoreProfile;
 public class ProjectLeakPageTest {
 
   @ClassRule
-  public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public Tester tester = new Tester(orchestrator);
index ffaef59432281b2fbfaff401c3cc34933606955e..441ed60e9e7c62fb7195821eb10e934164185967 100644 (file)
@@ -44,7 +44,7 @@ import static util.ItUtils.projectDir;
 public class ProjectLinksTest {
 
   @ClassRule
-  public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   private static Tester tester = new Tester(orchestrator);
 
index 1c26c05f410e83f6dfc6b594efa81e22672e44ea..fdf71fd9811f80b94d1e06764849c74f1952d640 100644 (file)
@@ -34,7 +34,7 @@ import static util.ItUtils.projectDir;
 public class ProjectListTest {
 
   @ClassRule
-  public static final Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static final Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public Tester tester = new Tester(orchestrator);
index 3e9181e7a6ccf2a2f7ed65a3c2f943b16929d558..2c253402fa1f11e750ff526c0f0d97f54c63a6b2 100644 (file)
@@ -46,13 +46,13 @@ import static org.assertj.core.api.Assertions.assertThat;
 public class ProjectProvisioningTest {
 
   @ClassRule
-  public static final Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static final Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public TestRule safeguard = new DisableOnDebug(Timeout.seconds(300));
 
   @Rule
-  public Tester tester = new Tester(orchestrator).setElasticsearchHttpPort(ProjectSuite.SEARCH_HTTP_PORT);
+  public Tester tester = new Tester(orchestrator).setElasticsearchHttpPort(OrganizationProjectSuite.SEARCH_HTTP_PORT);
 
   @Test
   public void provisioned_project_is_available_in_search_engines() {
index baf43119004a89bb65af80be4068369451006c95..57589df9ce17df38b6aeae814fe247197e3a7ab9 100644 (file)
@@ -41,7 +41,7 @@ import static util.ItUtils.runProjectAnalysis;
 public class ProjectSearchTest {
 
   @ClassRule
-  public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public Tester tester = new Tester(orchestrator);
index 029cf8a8b5c670ce2a496d8fd311478d18b54a7b..a5b35a15d8eece3ddcdb8d698abbcb060d1a9faa 100644 (file)
@@ -40,13 +40,13 @@ public class ProjectSettingsTest {
   public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
 
   @Rule
-  public Tester tester = new Tester(orchestrator);
+  public Tester tester = new Tester(orchestrator).disableOrganizations();
 
   private String adminUser;
 
   @Before
   public void setUp() {
-    adminUser = tester.users().generateAdministratorOnDefaultOrganization().getLogin();
+    adminUser = tester.users().generateAdministrator().getLogin();
   }
 
   @Test
index b16447be77956b3e8b949c3a2392f8c4de550a62..b469378dce40f3211ee8860b72dc084534b25dc7 100644 (file)
@@ -33,20 +33,8 @@ import static util.ItUtils.xooPlugin;
 @RunWith(Suite.class)
 @Suite.SuiteClasses({
   ProjectBadgesTest.class,
-  ProjectBulkDeletionTest.class,
-  ProjectBulkDeletionPageTest.class,
-  ProjectDeletionTest.class,
-  ProjectFilterTest.class,
-  ProjectKeyUpdateTest.class,
-  ProjectKeyUpdatePageTest.class,
-  ProjectLeakPageTest.class,
-  ProjectLinksTest.class,
-  ProjectListTest.class,
   ProjectsPageTest.class,
-  ProjectProvisioningTest.class,
-  ProjectSearchTest.class,
-  ProjectSettingsTest.class,
-  ProjectVisibilityPageTest.class
+  ProjectSettingsTest.class
 })
 public class ProjectSuite {
   static final int SEARCH_HTTP_PORT = NetworkUtils.getNextAvailablePort(InetAddress.getLoopbackAddress());
index 64db22b012df3108f2b48410a079362506a8abf1..0525c1f5c62e6a789cfb162e7d4dc0ec08fc9b2a 100644 (file)
@@ -38,7 +38,7 @@ import static util.ItUtils.projectDir;
 public class ProjectVisibilityPageTest {
 
   @ClassRule
-  public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
+  public static Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public Tester tester = new Tester(orchestrator);
diff --git a/tests/src/test/java/org/sonarqube/tests/project/ProjectsExplorePageTest.java b/tests/src/test/java/org/sonarqube/tests/project/ProjectsExplorePageTest.java
new file mode 100644 (file)
index 0000000..4c41859
--- /dev/null
@@ -0,0 +1,168 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public 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.tests.project;
+
+import com.sonar.orchestrator.Orchestrator;
+import com.sonar.orchestrator.build.SonarScanner;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.rules.RuleChain;
+import org.sonarqube.qa.util.Tester;
+import org.sonarqube.qa.util.pageobjects.Navigation;
+import org.sonarqube.qa.util.pageobjects.projects.ProjectsPage;
+import org.sonarqube.ws.Users;
+import org.sonarqube.ws.client.PostRequest;
+import org.sonarqube.ws.client.WsClient;
+import org.sonarqube.ws.client.favorites.AddRequest;
+import org.sonarqube.ws.client.favorites.RemoveRequest;
+
+import static com.codeborne.selenide.WebDriverRunner.url;
+import static org.assertj.core.api.Assertions.assertThat;
+import static util.ItUtils.projectDir;
+
+public class ProjectsExplorePageTest {
+
+  private static final String PROJECT_KEY = "key-foo";
+
+  @ClassRule
+  public static Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
+
+  private static Tester tester = new Tester(orchestrator);
+
+  @ClassRule
+  public static RuleChain ruleChain = RuleChain.outerRule(orchestrator).around(tester);
+
+  @BeforeClass
+  public static void setUp() {
+    orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample")).setProjectKey(PROJECT_KEY));
+    orchestrator.executeBuild(SonarScanner.create(projectDir("duplications/file-duplications")).setProjectKey("key-bar"));
+  }
+
+  @Test
+  public void should_display_projects() {
+    ProjectsPage page = tester.openBrowser().openExploreProjects();
+    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().openExploreProjects();
+    page.getFacetByProperty("duplications")
+      .shouldHaveValue("1", "1")
+      .shouldHaveValue("2", "0")
+      .shouldHaveValue("3", "0")
+      .shouldHaveValue("4", "0")
+      .shouldHaveValue("5", "1")
+      .shouldHaveValue("6", "0");
+  }
+
+  @Test
+  public void should_filter_using_facet() {
+    ProjectsPage page = tester.openBrowser().openExploreProjects();
+    page.shouldHaveTotal(2);
+    page.getFacetByProperty("duplications").selectValue("3");
+    page.shouldHaveTotal(1);
+  }
+
+  @Test
+  public void should_add_language_to_facet() {
+    ProjectsPage page = tester.openBrowser().openExploreProjects();
+    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().openExploreProjects();
+    page.getFacetByProperty("tags")
+      .shouldHaveValue("aa", "1")
+      .shouldHaveValue("ii", "1")
+      .selectOptionItem("zz")
+      .shouldHaveValue("zz", "1");
+  }
+
+  @Test
+  public void should_switch_between_perspectives() {
+    Users.CreateWsResponse.User administrator = tester.users().generateAdministratorOnDefaultOrganization();
+    ProjectsPage page = tester.openBrowser()
+      .logIn().submitCredentials(administrator.getLogin())
+      .openExploreProjects();
+    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().openExploreProjects();
+    page.sortProjects("Duplications");
+    page.getProjectByIdx(0).shouldHaveMeasure("duplicated_lines_density", "0.0%");
+    page.invertSorting();
+    page.getProjectByIdx(0).shouldHaveMeasure("duplicated_lines_density", "63.7%");
+  }
+
+  @Test
+  public void should_search_for_project() {
+    ProjectsPage page = tester.openBrowser().openExploreProjects();
+    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().openExploreProjects();
+    page.shouldHaveTotal(2);
+    page.getFacetByProperty("duplications").selectValue("3");
+    page.shouldHaveTotal(1);
+    page.searchProject("sample").shouldHaveTotal(0);
+  }
+
+  @Test
+  public void should_open_permalink() {
+    String user = tester.users().generate().getLogin();
+    Navigation nav = tester.openBrowser().logIn().submitCredentials(user);
+
+    // make a search, so its parameters saved to local storage
+    nav.openExploreProjects().changePerspective("Leak");
+
+    // change a page
+    nav.openHome();
+
+    // open a permalink to a particular visualization, it must be kept
+    nav.openProjectsWithQuery("view=visualizations&visualization=coverage");
+    assertThat(url()).contains("view=visualizations&visualization=coverage");
+  }
+}
index d0a97b761a5da108576841bd9d7b04e3b60c16fc..21126cf19eebbdfcdded81b14c1493fa6a0c7875 100644 (file)
@@ -21,7 +21,6 @@ package org.sonarqube.tests.project;
 
 import com.sonar.orchestrator.Orchestrator;
 import com.sonar.orchestrator.build.SonarScanner;
-import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.ClassRule;
 import org.junit.Test;
@@ -35,7 +34,6 @@ import org.sonarqube.ws.client.WsClient;
 import org.sonarqube.ws.client.favorites.AddRequest;
 import org.sonarqube.ws.client.favorites.RemoveRequest;
 
-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;
@@ -47,7 +45,7 @@ public class ProjectsPageTest {
   @ClassRule
   public static Orchestrator orchestrator = ProjectSuite.ORCHESTRATOR;
 
-  private static Tester tester = new Tester(orchestrator);
+  private static Tester tester = new Tester(orchestrator).disableOrganizations();
 
   @ClassRule
   public static RuleChain ruleChain = RuleChain.outerRule(orchestrator).around(tester);
@@ -58,11 +56,6 @@ public class ProjectsPageTest {
     orchestrator.executeBuild(SonarScanner.create(projectDir("duplications/file-duplications")).setProjectKey("key-bar"));
   }
 
-  @Before
-  public void before() {
-    clearBrowserLocalStorage();
-  }
-
   @Test
   public void should_display_projects() {
     ProjectsPage page = tester.openBrowser().openProjects();
@@ -106,7 +99,7 @@ public class ProjectsPageTest {
     page.shouldHaveTotal(2).shouldDisplayAllProjectsWidthSort("-analysis_date");
 
     // all projects by default for logged in user
-    Users.CreateWsResponse.User administrator = tester.users().generateAdministratorOnDefaultOrganization();
+    Users.CreateWsResponse.User administrator = tester.users().generateAdministrator();
     page = nav.logIn().submitCredentials(administrator.getLogin()).openProjects();
     page.shouldHaveTotal(2).shouldDisplayAllProjects();
 
@@ -158,7 +151,7 @@ public class ProjectsPageTest {
 
   @Test
   public void should_switch_between_perspectives() {
-    Users.CreateWsResponse.User administrator = tester.users().generateAdministratorOnDefaultOrganization();
+    Users.CreateWsResponse.User administrator = tester.users().generateAdministrator();
     ProjectsPage page = tester.openBrowser()
       .logIn().submitCredentials(administrator.getLogin())
       .openProjects();
index 289539b2820372aeb769934c8c150edbfe01f1d6..f8a026857e98522c98a1d9eae1aa36564955a816 100644 (file)
@@ -46,7 +46,7 @@ public class SonarCloudProjectBadgesTest {
   private static final String SONAR_CLOUD_ORANGE_BADGE = "images/project_badges/sonarcloud-orange.svg";
 
   @ClassRule
-  public static Orchestrator orchestrator = SonarCloudProjectSuite.ORCHESTRATOR;
+  public static Orchestrator orchestrator = OrganizationProjectSuite.ORCHESTRATOR;
 
   @Rule
   public Tester tester = new Tester(orchestrator);
diff --git a/tests/src/test/java/org/sonarqube/tests/project/SonarCloudProjectSuite.java b/tests/src/test/java/org/sonarqube/tests/project/SonarCloudProjectSuite.java
deleted file mode 100644 (file)
index af9aba4..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public 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.tests.project;
-
-import com.sonar.orchestrator.Orchestrator;
-import org.junit.ClassRule;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-import static util.ItUtils.newOrchestratorBuilder;
-import static util.ItUtils.xooPlugin;
-
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
-  SonarCloudProjectBadgesTest.class
-})
-public class SonarCloudProjectSuite {
-
-  @ClassRule
-  public static final Orchestrator ORCHESTRATOR = newOrchestratorBuilder()
-    .addPlugin(xooPlugin())
-    .setServerProperty("sonar.sonarcloud.enabled", "true")
-    .build();
-}
index 564f5675af9e02b43f5195412eaf7f346a1191f3..6240442c47f18352a821fce7afa6ca482191521b 100644 (file)
@@ -21,30 +21,25 @@ package org.sonarqube.tests.qualityGate;
 
 import com.sonar.orchestrator.Orchestrator;
 import com.sonar.orchestrator.build.SonarScanner;
-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 java.util.Date;
 import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
 import org.sonarqube.qa.util.Tester;
-import org.sonarqube.ws.Ce;
-import org.sonarqube.ws.MediaTypes;
 import org.sonarqube.ws.Organizations;
+import org.sonarqube.ws.ProjectAnalyses;
 import org.sonarqube.ws.Projects.CreateWsResponse.Project;
 import org.sonarqube.ws.Qualitygates;
+import org.sonarqube.ws.Qualitygates.ProjectStatusResponse.Status;
 import org.sonarqube.ws.Users;
-import org.sonarqube.ws.client.GetRequest;
-import org.sonarqube.ws.client.WsResponse;
+import org.sonarqube.ws.client.projectanalyses.SearchRequest;
 import org.sonarqube.ws.client.qualitygates.CreateConditionRequest;
 import org.sonarqube.ws.client.qualitygates.ProjectStatusRequest;
 import org.sonarqube.ws.client.qualitygates.UpdateConditionRequest;
 
+import static org.apache.commons.lang.time.DateUtils.addMonths;
 import static org.assertj.core.api.Assertions.assertThat;
-import static util.ItUtils.getMeasure;
+import static util.ItUtils.formatDate;
 import static util.ItUtils.projectDir;
 
 public class OrganizationQualityGateForSmallChangesetsTest {
@@ -56,7 +51,7 @@ public class OrganizationQualityGateForSmallChangesetsTest {
   public Tester tester = new Tester(orchestrator);
 
   @Test
-  public void do_not_fail_quality_gate_with_poor_LEAK_coverage_and_a_max_of_19_lines_of_NEW_code() throws Exception {
+  public void do_not_fail_quality_gate_with_poor_LEAK_coverage_and_a_max_of_19_lines_of_NEW_code() {
     Organizations.Organization organization = tester.organizations().generate();
     Project project = tester.projects().provision(organization);
     Qualitygates.CreateResponse qualityGate = tester.qGates().generate(organization);
@@ -83,11 +78,10 @@ public class OrganizationQualityGateForSmallChangesetsTest {
       .setProperty("sonar.password", password)
       .setProperty("sonar.scm.provider", "xoo")
       .setProperty("sonar.scm.disabled", "false")
-      .setProperty("sonar.projectDate", "2013-04-01")
+      .setProperty("sonar.projectDate", formatDate(addMonths(new Date(), -4)))
       .setDebugLogs(true);
     orchestrator.executeBuild(analysis);
-    assertThat(getMeasure(orchestrator, project.getKey(), "alert_status").getValue()).isEqualTo("OK");
-    assertIgnoredConditions("qualitygate/small-changesets/v1-1000-lines", false);
+    verifyGateStatus(project, Status.OK, false);
 
     // small leak => ignore coverage warning or error
     SonarScanner analysis2 = SonarScanner
@@ -98,11 +92,10 @@ public class OrganizationQualityGateForSmallChangesetsTest {
       .setProperty("sonar.password", password)
       .setProperty("sonar.scm.provider", "xoo")
       .setProperty("sonar.scm.disabled", "false")
-      .setProperty("sonar.projectDate", "2014-04-01")
+      .setProperty("sonar.projectDate", formatDate(addMonths(new Date(), -3)))
       .setDebugLogs(true);
     orchestrator.executeBuild(analysis2);
-    assertThat(getMeasure(orchestrator, project.getKey(), "alert_status").getValue()).isEqualTo("OK");
-    assertIgnoredConditions("qualitygate/small-changesets/v2-1019-lines", true);
+    verifyGateStatus(project, Status.OK, true);
 
     // small leak => if coverage is OK anyways, we do not have to ignore anything
     tester.wsClient().qualitygates().updateCondition(new UpdateConditionRequest()
@@ -121,11 +114,10 @@ public class OrganizationQualityGateForSmallChangesetsTest {
       .setProperty("sonar.password", password)
       .setProperty("sonar.scm.provider", "xoo")
       .setProperty("sonar.scm.disabled", "false")
-      .setProperty("sonar.projectDate", "2014-04-02")
+      .setProperty("sonar.projectDate", formatDate(addMonths(new Date(), -2)))
       .setDebugLogs(true);
     orchestrator.executeBuild(analysis3);
-    assertThat(getMeasure(orchestrator, project.getKey(), "alert_status").getValue()).isEqualTo("OK");
-    assertIgnoredConditions("qualitygate/small-changesets/v2-1019-lines", false);
+    verifyGateStatus(project, Status.OK, false);
 
     // big leak => use usual behaviour
     tester.wsClient().qualitygates().updateCondition(new UpdateConditionRequest()
@@ -144,40 +136,21 @@ public class OrganizationQualityGateForSmallChangesetsTest {
       .setProperty("sonar.password", password)
       .setProperty("sonar.scm.provider", "xoo")
       .setProperty("sonar.scm.disabled", "false")
-      .setProperty("sonar.projectDate", "2014-04-03")
+      .setProperty("sonar.projectDate", formatDate(addMonths(new Date(), -1)))
       .setDebugLogs(true);
     orchestrator.executeBuild(analysis4);
-    assertThat(getMeasure(orchestrator, project.getKey(), "alert_status").getValue()).isEqualTo("ERROR");
-    assertIgnoredConditions("qualitygate/small-changesets/v2-1020-lines", false);
+    verifyGateStatus(project, Status.ERROR, false);
   }
 
-  private void assertIgnoredConditions(String projectDir, boolean expected) throws IOException {
-    String analysisId = getAnalysisId(getTaskIdInLocalReport(projectDir(projectDir)));
-    boolean ignoredConditions = tester.wsClient().qualitygates()
+  private void verifyGateStatus(Project project, Status expectedStatus, boolean expectedIgnoredConditions) {
+    ProjectAnalyses.SearchResponse analysis = tester.wsClient().projectAnalyses().search(new SearchRequest().setProject(project.getKey()));
+    String analysisId = analysis.getAnalysesList().get(0).getKey();
+    Qualitygates.ProjectStatusResponse.ProjectStatus gateStatus = tester.wsClient().qualitygates()
       .projectStatus(new ProjectStatusRequest().setAnalysisId(analysisId))
-      .getProjectStatus()
-      .getIgnoredConditions();
-    assertThat(ignoredConditions).isEqualTo(expected);
-  }
+      .getProjectStatus();
 
-  private String getAnalysisId(String taskId) throws IOException {
-    WsResponse activity = tester.wsClient()
-      .wsConnector()
-      .call(new GetRequest("api/ce/task")
-        .setParam("id", taskId)
-        .setMediaType(MediaTypes.PROTOBUF));
-    Ce.TaskResponse activityWsResponse = Ce.TaskResponse.parseFrom(activity.contentStream());
-    return activityWsResponse.getTask().getAnalysisId();
+    assertThat(gateStatus.getStatus()).isEqualTo(expectedStatus);
+    assertThat(gateStatus.getIgnoredConditions()).isEqualTo(expectedIgnoredConditions);
   }
 
-  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");
-  }
 }
index 985f8b3a3dc9fd5911475b49fe506e2075444c21..f91b9cdfbba7b77d22fa8e06173906997e2a417f 100644 (file)
@@ -40,6 +40,7 @@ public class OrganizationQualityGateSuite {
   public static final Orchestrator ORCHESTRATOR = newOrchestratorBuilder()
     // required for notification tests
     .setServerProperty("sonar.notifications.delay", "1")
+    .setServerProperty("sonar.sonarcloud.enabled", "true")
 
     .addPlugin(pluginArtifact("posttask-plugin"))
     .addPlugin(xooPlugin())
index 05f7871f36484bfd5ca3078ef1cd1213992bbdd4..151bdc1d4a9f2511186df4ecebb45f9e79ea7947 100644 (file)
@@ -60,7 +60,6 @@ import org.sonarqube.ws.client.qualitygates.SelectRequest;
 import org.sonarqube.ws.client.qualitygates.SetAsDefaultRequest;
 import org.sonarqube.ws.client.qualitygates.UpdateConditionRequest;
 
-import static java.lang.String.format;
 import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.groups.Tuple.tuple;
@@ -251,13 +250,13 @@ public class QualityGateTest {
     Qualitygates.CreateResponse qualityGate = tester.qGates().generate();
 
     expectHttpError(400,
-      format("Invalid value 'INVALID' for metric 'ncloc'"),
+      "Invalid value 'INVALID' for metric 'Lines of Code'",
       () -> tester.qGates().service().createCondition(new CreateConditionRequest().setGateId(Long.toString(qualityGate.getId())).setMetric("ncloc").setOp("GT").setWarning("INVALID")));
     expectHttpError(400,
-      format("User '%s' is not member of organization '%s'"),
+      "Invalid value '10d' for metric 'Technical Debt'",
       () -> tester.qGates().service().createCondition(new CreateConditionRequest().setGateId(Long.toString(qualityGate.getId())).setMetric("sqale_index").setOp("GT").setWarning("10d")));
     expectHttpError(400,
-      format("User '%s' is not member of organization '%s'"),
+      "Invalid value '10%' for metric 'Coverage'",
       () -> tester.qGates().service().createCondition(new CreateConditionRequest().setGateId(Long.toString(qualityGate.getId())).setMetric("coverage").setOp("GT").setWarning("10%")));
   }
 
index 5b8688a42016d083c96473c8241221cb1cc6a1b4..5eead374ed423318212ed69af79a6164591f942a 100644 (file)
@@ -20,7 +20,6 @@
 package org.sonarqube.tests.serverSystem;
 
 import com.sonar.orchestrator.Orchestrator;
-import org.sonarqube.tests.Category4Suite;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -29,6 +28,7 @@ import okhttp3.Response;
 import org.junit.BeforeClass;
 import org.junit.ClassRule;
 import org.junit.Test;
+import org.sonarqube.tests.Category4Suite;
 
 import static com.google.common.io.Files.getFileExtension;
 import static org.assertj.core.api.Assertions.assertThat;
@@ -77,7 +77,7 @@ public class HttpHeadersTest {
 
   @Test
   public void verify_headers_of_css() {
-    Response response = call(orchestrator.getServer().getUrl() + "/css/sonar." + JS_HASH + ".css");
+    Response response = call(orchestrator.getServer().getUrl() + "/css/main." + JS_HASH + ".css");
 
     verifySecurityHeaders(response);
     verifyContentType(response, "text/css");
@@ -86,7 +86,7 @@ public class HttpHeadersTest {
 
   @Test
   public void verify_headers_of_js() {
-    Response response = call(orchestrator.getServer().getUrl() + "/js/app." + JS_HASH + ".js");
+    Response response = call(orchestrator.getServer().getUrl() + "/js/main." + JS_HASH + ".js");
 
     verifySecurityHeaders(response);
     verifyContentType(response, "application/javascript");
@@ -152,8 +152,9 @@ public class HttpHeadersTest {
     String fileName = Files.list(cssFolder.toPath())
       .map(path -> path.toFile().getName())
       .filter(name -> getFileExtension(name).equals("css"))
+      .filter(name -> name.startsWith("main"))
       .findFirst()
-      .orElseThrow(() -> new IllegalStateException("sonar.css hasn't been found"));
-    return fileName.replace("sonar.", "").replace(".css", "");
+      .orElseThrow(() -> new IllegalStateException("css file hasn't been found"));
+    return fileName.replace("main.", "").replace(".css", "");
   }
 }
index 99bd3191ce912281b7b293417d834b6e0b1fc10a..d1c73059120415a642267dbe3cdaa46ded06c4cb 100644 (file)
@@ -78,7 +78,8 @@ public class ValidatorsTest {
       .assertSettingValueCanBeSaved(elementSelector)
       .assertSettingValueCanBeCanceled(elementSelector);
 
-    page.clickOnCancel(elementSelector).assertSettingValueIsNotedAsDefault(elementSelector);
+    page.clickOnCancel(elementSelector)
+      .assertSettingValueIsNotedAsDefault(elementSelector);
   }
 
   @Test
@@ -116,7 +117,8 @@ public class ValidatorsTest {
       .assertSettingValueCanBeSaved(elementSelector)
       .assertSettingValueCanBeCanceled(elementSelector);
 
-    page.clickOnCancel(elementSelector).assertInputCount(elementSelector, 1);
+    page.clickOnCancel(elementSelector)
+      .assertInputCount(elementSelector, 1);
   }
 
   private void analyzeSample() {
index 2dc9de4022c8fbf48dc97572bad3cb9a5cb9b57b..5874195280c04b19805ad59f29e51acf91241d6c 100644 (file)
@@ -97,7 +97,7 @@ public class NotificationsWsTest {
 
   @Test
   public void add_global_and_project_notifications_on_another_user_as_a_system_administrator() {
-    Users.CreateWsResponse.User admin = tester.users().generateAdministratorOnDefaultOrganization();
+    Users.CreateWsResponse.User admin = tester.users().generateAdministrator();
     Users.CreateWsResponse.User user = tester.users().generate();
     assertThat(tester.as(user.getLogin()).wsClient().notifications().list(new ListRequest()).getNotificationsList()).isEmpty();
     Projects.CreateWsResponse.Project project = tester.projects().provision();
@@ -114,7 +114,7 @@ public class NotificationsWsTest {
 
   @Test
   public void remove_global_and_project_notifications_on_another_user_as_a_system_administrator() {
-    Users.CreateWsResponse.User admin = tester.users().generateAdministratorOnDefaultOrganization();
+    Users.CreateWsResponse.User admin = tester.users().generateAdministrator();
     Users.CreateWsResponse.User user = tester.users().generate();
     assertThat(tester.as(user.getLogin()).wsClient().notifications().list(new ListRequest()).getNotificationsList()).isEmpty();
     Projects.CreateWsResponse.Project project = tester.projects().provision();
index afc1db9614577d11bdafe53323b99bcf91e7a522..b0a677fe7aa65ba60e3be255ffec67663ee72a41 100644 (file)
@@ -25,6 +25,7 @@ import org.junit.ClassRule;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 
+import static util.ItUtils.newOrchestratorBuilder;
 import static util.ItUtils.xooPlugin;
 
 @RunWith(Suite.class)
@@ -35,7 +36,7 @@ import static util.ItUtils.xooPlugin;
 public class SonarCloudUserSuite {
 
   @ClassRule
-  public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv()
+  public static final Orchestrator ORCHESTRATOR = newOrchestratorBuilder()
     .addPlugin(xooPlugin())
 
     .setServerProperty("sonar.sonarcloud.enabled", "true")
index e3bc89f92698781cfb538d2a4fce9363a09c526e..8e8d0023081a1f9179717afc5fa3d5b051ca1e90 100644 (file)
@@ -41,5 +41,7 @@ public class WebhooksSuite {
     // reduce memory for Elasticsearch
     .setServerProperty("sonar.search.javaOpts", "-Xms128m -Xmx128m")
 
+    .setServerProperty("sonar.sonarcloud.enabled", "true")
+
     .build();
 }