0.1.0
This commit is contained in:
parent
2eb5853bca
commit
7cc3ca3cee
|
@ -2,7 +2,30 @@
|
|||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="40b9626d-5f4f-46c4-8096-7de331aaa15a" name="Default" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
||||
<change beforePath="$PROJECT_DIR$/config.json" afterPath="$PROJECT_DIR$/config.json" />
|
||||
<change beforePath="$PROJECT_DIR$/entity/Investor.js" afterPath="$PROJECT_DIR$/entity/Investor.js" />
|
||||
<change beforePath="$PROJECT_DIR$/entity/Owner.js" afterPath="$PROJECT_DIR$/entity/Owner.js" />
|
||||
<change beforePath="$PROJECT_DIR$/entity/User.js" afterPath="$PROJECT_DIR$/entity/User.js" />
|
||||
<change beforePath="$PROJECT_DIR$/how" afterPath="" />
|
||||
<change beforePath="$PROJECT_DIR$/index.js" afterPath="$PROJECT_DIR$/index.js" />
|
||||
<change beforePath="$PROJECT_DIR$/pages/CrowdsalePage.js" afterPath="$PROJECT_DIR$/pages/CrowdsalePage.js" />
|
||||
<change beforePath="$PROJECT_DIR$/pages/InvestPage.js" afterPath="$PROJECT_DIR$/pages/InvestPage.js" />
|
||||
<change beforePath="$PROJECT_DIR$/pages/ManagePage.js" afterPath="$PROJECT_DIR$/pages/ManagePage.js" />
|
||||
<change beforePath="$PROJECT_DIR$/pages/MetaMask.js" afterPath="$PROJECT_DIR$/pages/MetaMask.js" />
|
||||
<change beforePath="$PROJECT_DIR$/pages/Page.js" afterPath="$PROJECT_DIR$/pages/Page.js" />
|
||||
<change beforePath="$PROJECT_DIR$/pages/ReservedTokensPage.js" afterPath="$PROJECT_DIR$/pages/ReservedTokensPage.js" />
|
||||
<change beforePath="$PROJECT_DIR$/pages/TierPage.js" afterPath="$PROJECT_DIR$/pages/TierPage.js" />
|
||||
<change beforePath="$PROJECT_DIR$/pages/WizardStep1.js" afterPath="$PROJECT_DIR$/pages/WizardStep1.js" />
|
||||
<change beforePath="$PROJECT_DIR$/pages/WizardStep2.js" afterPath="$PROJECT_DIR$/pages/WizardStep2.js" />
|
||||
<change beforePath="$PROJECT_DIR$/pages/WizardStep3.js" afterPath="$PROJECT_DIR$/pages/WizardStep3.js" />
|
||||
<change beforePath="$PROJECT_DIR$/pages/WizardWelcome.js" afterPath="$PROJECT_DIR$/pages/WizardWelcome.js" />
|
||||
<change beforePath="$PROJECT_DIR$/scenarios/T2RnWy_0001.json" afterPath="$PROJECT_DIR$/scenarios/T2RnWy_0001.json" />
|
||||
<change beforePath="$PROJECT_DIR$/tests/Test1.js" afterPath="$PROJECT_DIR$/tests/Test1.js" />
|
||||
<change beforePath="$PROJECT_DIR$/tests/Test2.js" afterPath="$PROJECT_DIR$/tests/Test2.js" />
|
||||
<change beforePath="$PROJECT_DIR$/tests/Test3.js" afterPath="$PROJECT_DIR$/tests/Test3.js" />
|
||||
<change beforePath="$PROJECT_DIR$/tests/Test4.js" afterPath="$PROJECT_DIR$/tests/Test4.js" />
|
||||
<change beforePath="$PROJECT_DIR$/utils/Utils.js" afterPath="$PROJECT_DIR$/utils/Utils.js" />
|
||||
</list>
|
||||
<ignored path="$PROJECT_DIR$/.tmp/" />
|
||||
<ignored path="$PROJECT_DIR$/temp/" />
|
||||
|
@ -19,71 +42,58 @@
|
|||
<file leaf-file-name="Test1.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test1.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="252">
|
||||
<caret line="29" column="40" lean-forward="true" selection-start-line="29" selection-start-column="40" selection-end-line="29" selection-end-column="40" />
|
||||
<state relative-caret-position="292">
|
||||
<caret line="89" column="7" lean-forward="false" selection-start-line="89" selection-start-column="7" selection-end-line="89" selection-end-column="7" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name=".gitignore" pinned="false" current-in-tab="false">
|
||||
<file leaf-file-name=".gitignore" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="54">
|
||||
<caret line="3" column="4" lean-forward="true" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="4" />
|
||||
<state relative-caret-position="72">
|
||||
<caret line="4" column="0" lean-forward="true" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="package.json" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/package.json">
|
||||
<file leaf-file-name="Currency.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/entity/Currency.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="144">
|
||||
<caret line="8" column="26" lean-forward="false" selection-start-line="8" selection-start-column="26" selection-end-line="8" selection-end-column="26" />
|
||||
<state relative-caret-position="18">
|
||||
<caret line="37" column="27" lean-forward="false" selection-start-line="37" selection-start-column="27" selection-end-line="37" selection-end-column="27" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="config.yml" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/.circleci/config.yml">
|
||||
<file leaf-file-name="simple.json" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/scenarios/simple.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-162">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<state relative-caret-position="266">
|
||||
<caret line="30" column="19" lean-forward="false" selection-start-line="30" selection-start-column="19" selection-end-line="30" selection-end-column="19" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="token.txt" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/token.txt">
|
||||
<file leaf-file-name="Owner.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/entity/Owner.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="126">
|
||||
<caret line="7" column="0" lean-forward="true" selection-start-line="3" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
|
||||
<state relative-caret-position="559">
|
||||
<caret line="245" column="0" lean-forward="false" selection-start-line="245" selection-start-column="0" selection-end-line="245" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="README.md" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/README.md">
|
||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||
<state split_layout="SPLIT">
|
||||
<first_editor relative-caret-position="108">
|
||||
<caret line="6" column="1" lean-forward="true" selection-start-line="6" selection-start-column="1" selection-end-line="6" selection-end-column="1" />
|
||||
<folding />
|
||||
</first_editor>
|
||||
<second_editor />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Test2.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test2.js">
|
||||
<file leaf-file-name="MetaMask.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/pages/MetaMask.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="217">
|
||||
<caret line="27" column="0" lean-forward="false" selection-start-line="27" selection-start-column="0" selection-end-line="27" selection-end-column="0" />
|
||||
<state relative-caret-position="136">
|
||||
<caret line="158" column="6" lean-forward="false" selection-start-line="158" selection-start-column="6" selection-end-line="158" selection-end-column="6" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -92,18 +102,8 @@
|
|||
<file leaf-file-name="Test3.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test3.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="306">
|
||||
<caret line="26" column="17" lean-forward="false" selection-start-line="26" selection-start-column="17" selection-end-line="26" selection-end-column="17" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Test4.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test4.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="684">
|
||||
<caret line="38" column="20" lean-forward="true" selection-start-line="38" selection-start-column="20" selection-end-line="38" selection-end-column="20" />
|
||||
<state relative-caret-position="458">
|
||||
<caret line="42" column="27" lean-forward="false" selection-start-line="42" selection-start-column="27" selection-end-line="42" selection-end-column="27" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -112,8 +112,8 @@
|
|||
<file leaf-file-name="index.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="378">
|
||||
<caret line="58" column="19" lean-forward="true" selection-start-line="58" selection-start-column="19" selection-end-line="58" selection-end-column="19" />
|
||||
<state relative-caret-position="100">
|
||||
<caret line="49" column="12" lean-forward="false" selection-start-line="49" selection-start-column="12" selection-end-line="49" selection-end-column="12" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
|
@ -132,8 +132,18 @@
|
|||
<findStrings>
|
||||
<find>wallet</find>
|
||||
<find>refr</find>
|
||||
<find>return</find>
|
||||
<find>dropdown-menu-item</find>
|
||||
<find>Utils</find>
|
||||
<find>return</find>
|
||||
<find>output</find>
|
||||
<find>outputD</find>
|
||||
<find>result</find>
|
||||
<find>Time</find>
|
||||
<find>accN</find>
|
||||
<find>screen</find>
|
||||
<find>startDate</find>
|
||||
<find>get</find>
|
||||
<find>etText</find>
|
||||
</findStrings>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
|
@ -144,34 +154,45 @@
|
|||
<list>
|
||||
<option value="$PROJECT_DIR$/pages/TransactionPage.js" />
|
||||
<option value="$PROJECT_DIR$/pages/WizardStep4.js" />
|
||||
<option value="$PROJECT_DIR$/pages/CrowdsalePage.js" />
|
||||
<option value="$PROJECT_DIR$/pages/TierPage.js" />
|
||||
<option value="$PROJECT_DIR$/pages/WizardStep3.js" />
|
||||
<option value="$PROJECT_DIR$/tests/BaseTest.js" />
|
||||
<option value="$PROJECT_DIR$/entity/Currency.js" />
|
||||
<option value="$PROJECT_DIR$/entity/Crowdsale.js" />
|
||||
<option value="$PROJECT_DIR$/pages/WizardStep1.js" />
|
||||
<option value="$PROJECT_DIR$/entity/Helper.js" />
|
||||
<option value="$PROJECT_DIR$/pages/ManagePage.js" />
|
||||
<option value="$PROJECT_DIR$/entity/User.js" />
|
||||
<option value="$PROJECT_DIR$/results1518579200002/result.log" />
|
||||
<option value="$PROJECT_DIR$/investors/investor1.json" />
|
||||
<option value="$PROJECT_DIR$/owners/owner1.json" />
|
||||
<option value="$PROJECT_DIR$/pages/Page.js" />
|
||||
<option value="$PROJECT_DIR$/pages/InvestPage.js" />
|
||||
<option value="$PROJECT_DIR$/pages/MetaMask.js" />
|
||||
<option value="$PROJECT_DIR$/tests/Test4.js" />
|
||||
<option value="$PROJECT_DIR$/scenarios/T1RnWy.json" />
|
||||
<option value="$PROJECT_DIR$/entity/Investor.js" />
|
||||
<option value="$PROJECT_DIR$/entity/Owner.js" />
|
||||
<option value="$PROJECT_DIR$/index.js" />
|
||||
<option value="$PROJECT_DIR$/tests/Test2.js" />
|
||||
<option value="$PROJECT_DIR$/tests/Test3.js" />
|
||||
<option value="$PROJECT_DIR$/tests/Test1.js" />
|
||||
<option value="$PROJECT_DIR$/.gitignore" />
|
||||
<option value="$PROJECT_DIR$/package.json" />
|
||||
<option value="$PROJECT_DIR$/token.txt" />
|
||||
<option value="$PROJECT_DIR$/README.md" />
|
||||
<option value="$PROJECT_DIR$/pages/WizardStep2.js" />
|
||||
<option value="$PROJECT_DIR$/pages/WizardStep1.js" />
|
||||
<option value="$PROJECT_DIR$/entity/User.js" />
|
||||
<option value="$PROJECT_DIR$/tests/Test2.js" />
|
||||
<option value="$PROJECT_DIR$/pages/MetaMask.js" />
|
||||
<option value="$PROJECT_DIR$/utils/Utils.js" />
|
||||
<option value="$PROJECT_DIR$/results/result_2_18_2018_21_14_30/Test1_2_18_2018_21_14_30.log" />
|
||||
<option value="$PROJECT_DIR$/results/result_2_18_2018_21_46_30/Test1_2_18_2018_21_46_30.log" />
|
||||
<option value="$PROJECT_DIR$/config.json" />
|
||||
<option value="$PROJECT_DIR$/pages/ReservedTokensPage.js" />
|
||||
<option value="$PROJECT_DIR$/scenarios/T2RnWy_0001.json" />
|
||||
<option value="$PROJECT_DIR$/pages/WizardStep3.js" />
|
||||
<option value="$PROJECT_DIR$/pages/CrowdsalePage.js" />
|
||||
<option value="$PROJECT_DIR$/pages/Page.js" />
|
||||
<option value="$PROJECT_DIR$/pages/InvestPage.js" />
|
||||
<option value="$PROJECT_DIR$/tests/Test4.js" />
|
||||
<option value="$PROJECT_DIR$/entity/Investor.js" />
|
||||
<option value="$PROJECT_DIR$/pages/WizardWelcome.js" />
|
||||
<option value="$PROJECT_DIR$/owners/owner2.json" />
|
||||
<option value="$PROJECT_DIR$/results/result_2_19_2018_19_28_33/Test1_2_19_2018_19_28_33.log" />
|
||||
<option value="$PROJECT_DIR$/pages/TierPage.js" />
|
||||
<option value="$PROJECT_DIR$/scenarios/simple.json" />
|
||||
<option value="$PROJECT_DIR$/pages/ManagePage.js" />
|
||||
<option value="$PROJECT_DIR$/tests/Test3.js" />
|
||||
<option value="$PROJECT_DIR$/index.js" />
|
||||
<option value="$PROJECT_DIR$/entity/Owner.js" />
|
||||
<option value="$PROJECT_DIR$/tests/Test1.js" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
|
@ -193,10 +214,10 @@
|
|||
<handled-path value="$PROJECT_DIR$/node_modules" />
|
||||
</component>
|
||||
<component name="ProjectFrameBounds" extendedState="6">
|
||||
<option name="x" value="47" />
|
||||
<option name="y" value="52" />
|
||||
<option name="width" value="693" />
|
||||
<option name="height" value="491" />
|
||||
<option name="x" value="57" />
|
||||
<option name="y" value="80" />
|
||||
<option name="width" value="614" />
|
||||
<option name="height" value="670" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator currentView="ProjectPane" proportions="" version="1">
|
||||
|
@ -213,8 +234,8 @@
|
|||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="Scope" />
|
||||
<pane id="Scratches" />
|
||||
<pane id="Scope" />
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<expand>
|
||||
|
@ -225,7 +246,32 @@
|
|||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
<item name=".circleci" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="entity" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="investors" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="owners" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="pages" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="tests" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="utils" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
|
@ -235,13 +281,19 @@
|
|||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/../TetsingWizardPOA" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/../e2e-test-token-wizard" />
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="nodejs_interpreter_path" value="node" />
|
||||
<property name="javascript.nodejs.core.library.configured.version" value="8.9.4" />
|
||||
<property name="HbShouldOpenHtmlAsHb" value="" />
|
||||
<property name="settings.editor.selected.configurable" value="Settings.JavaScript" />
|
||||
<property name="settings.editor.selected.configurable" value="preferences.sourceCode" />
|
||||
<property name="JavaScriptWeakerCompletionTypeGuess" value="true" />
|
||||
<property name="run.code.analysis.last.selected.profile" value="pProject Default" />
|
||||
</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/scenarios" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunDashboard">
|
||||
<option name="ruleStates">
|
||||
|
@ -273,34 +325,49 @@
|
|||
<workItem from="1518630499741" duration="31848000" />
|
||||
<workItem from="1518684789742" duration="8131000" />
|
||||
<workItem from="1518731952469" duration="3676000" />
|
||||
<workItem from="1518802568462" duration="6119000" />
|
||||
<workItem from="1518802568462" duration="8711000" />
|
||||
<workItem from="1518863293223" duration="1210000" />
|
||||
<workItem from="1518971379074" duration="2472000" />
|
||||
<workItem from="1518978282156" duration="29546000" />
|
||||
<workItem from="1519029774049" duration="21737000" />
|
||||
<workItem from="1519104748897" duration="5474000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="74778000" />
|
||||
<option name="totallyTimeSpent" value="137809000" />
|
||||
</component>
|
||||
<component name="TodoView">
|
||||
<todo-panel id="selected-file">
|
||||
<is-autoscroll-to-source value="true" />
|
||||
</todo-panel>
|
||||
<todo-panel id="all">
|
||||
<are-packages-shown value="true" />
|
||||
<are-modules-shown value="true" />
|
||||
<is-autoscroll-to-source value="true" />
|
||||
</todo-panel>
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="47" y="-4" width="1319" height="772" extended-state="6" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.22222222" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.26234567" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32970452" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Docker" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.2037325" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32970452" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32868218" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.20062208" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.35303265" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3281493" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24416797" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32868218" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
</layout>
|
||||
</component>
|
||||
|
@ -312,217 +379,244 @@
|
|||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
<option name="time" value="1" />
|
||||
<breakpoints>
|
||||
<line-breakpoint enabled="true" type="javascript">
|
||||
<url>file://$PROJECT_DIR$/tests/Test1.js</url>
|
||||
<line>59</line>
|
||||
<option name="timeStamp" value="1" />
|
||||
</line-breakpoint>
|
||||
</breakpoints>
|
||||
<option name="time" value="2" />
|
||||
</breakpoint-manager>
|
||||
<watches-manager />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1170">
|
||||
<caret line="65" column="0" lean-forward="true" selection-start-line="65" selection-start-column="0" selection-end-line="65" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test3.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="504">
|
||||
<caret line="28" column="34" lean-forward="true" selection-start-line="28" selection-start-column="34" selection-end-line="28" selection-end-column="34" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Investor.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="180">
|
||||
<caret line="10" column="28" lean-forward="false" selection-start-line="10" selection-start-column="28" selection-end-line="10" selection-end-column="28" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/User.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="25" lean-forward="false" selection-start-line="0" selection-start-column="25" selection-end-line="0" selection-end-column="25" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/InvestPage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="540">
|
||||
<caret line="30" column="37" lean-forward="true" selection-start-line="30" selection-start-column="37" selection-end-line="30" selection-end-column="37" />
|
||||
<state relative-caret-position="391">
|
||||
<caret line="24" column="19" lean-forward="false" selection-start-line="24" selection-start-column="19" selection-end-line="24" selection-end-column="19" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/scenarios/T1RnWn_0005.json">
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test2.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
|
||||
<state relative-caret-position="-234">
|
||||
<caret line="19" column="0" lean-forward="true" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/MetaMaskWallet.js">
|
||||
<entry file="file://$PROJECT_DIR$/pages/WizardStep4.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-198">
|
||||
<caret line="7" column="19" lean-forward="false" selection-start-line="7" selection-start-column="19" selection-end-line="7" selection-end-column="19" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/views/error.jade" />
|
||||
<entry file="file://$PROJECT_DIR$/routes/index.js" />
|
||||
<entry file="file://$PROJECT_DIR$/public/stylesheets/style.css" />
|
||||
<entry file="file://$PROJECT_DIR$/utils/Utils.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="126">
|
||||
<caret line="90" column="68" lean-forward="false" selection-start-line="90" selection-start-column="68" selection-end-line="90" selection-end-column="68" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/TransactionPage.js" />
|
||||
<entry file="file://$PROJECT_DIR$/results1518579200002/screenshoot1518579678064.png">
|
||||
<provider selected="true" editor-type-id="images">
|
||||
<state />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/CrowdsalePage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tests/BaseTest.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/TierPage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/WizardWelcome.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="540">
|
||||
<caret line="30" column="4" lean-forward="false" selection-start-line="30" selection-start-column="4" selection-end-line="30" selection-end-column="4" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Helper.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="72">
|
||||
<caret line="4" column="8" lean-forward="false" selection-start-line="4" selection-start-column="8" selection-end-line="4" selection-end-column="8" />
|
||||
<state relative-caret-position="234">
|
||||
<caret line="13" column="0" lean-forward="false" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/WizardStep1.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="54">
|
||||
<caret line="3" column="17" lean-forward="false" selection-start-line="3" selection-start-column="17" selection-end-line="3" selection-end-column="17" />
|
||||
<caret line="3" column="23" lean-forward="false" selection-start-line="3" selection-start-column="23" selection-end-line="4" selection-end-column="22" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results1518579200002/result.log">
|
||||
<entry file="file://$PROJECT_DIR$/utils/Utils.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="162">
|
||||
<caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_18_2018_18_15_30/Test1_2_18_2018_18_15_30.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="72">
|
||||
<caret line="4" column="24" lean-forward="true" selection-start-line="4" selection-start-column="24" selection-end-line="4" selection-end-column="24" />
|
||||
<caret line="4" column="118" lean-forward="true" selection-start-line="4" selection-start-column="25" selection-end-line="4" selection-end-column="118" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/WizardStep2.js">
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_18_2018_21_14_30/Test1_2_18_2018_21_14_30.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="198">
|
||||
<caret line="20" column="39" lean-forward="true" selection-start-line="20" selection-start-column="4" selection-end-line="20" selection-end-column="39" />
|
||||
<state relative-caret-position="90">
|
||||
<caret line="5" column="93" lean-forward="false" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="93" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_18_2018_21_46_30/Test1_2_18_2018_21_46_30.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="90">
|
||||
<caret line="5" column="37" lean-forward="false" selection-start-line="5" selection-start-column="37" selection-end-line="5" selection-end-column="37" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_0_59_7/screenshoot_2_19_2018_1_6_39.png">
|
||||
<provider selected="true" editor-type-id="images">
|
||||
<state />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_0_59_7/screenshoot_2_19_2018_1_6_49.png">
|
||||
<provider selected="true" editor-type-id="images">
|
||||
<state />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_0_59_7/screenshoot_2_19_2018_1_6_50.png">
|
||||
<provider selected="true" editor-type-id="images">
|
||||
<state />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_0_59_7/Test1_2_19_2018_0_59_7.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_11_36_24/screenshoot_2_19_2018_11_36_49.png">
|
||||
<provider selected="true" editor-type-id="images">
|
||||
<state />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_11_36_24/screenshoot_2_19_2018_11_36_46.png">
|
||||
<provider selected="true" editor-type-id="images">
|
||||
<state />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_11_36_24/screenshoot_2_19_2018_11_36_52.png">
|
||||
<provider selected="true" editor-type-id="images">
|
||||
<state />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="72">
|
||||
<caret line="4" column="32" lean-forward="false" selection-start-line="4" selection-start-column="32" selection-end-line="4" selection-end-column="32" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Tier.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="216">
|
||||
<caret line="12" column="25" lean-forward="false" selection-start-line="12" selection-start-column="25" selection-end-line="12" selection-end-column="25" />
|
||||
<state relative-caret-position="144">
|
||||
<caret line="8" column="22" lean-forward="false" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="22" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Helper.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/scenarios/T2RnWy_0001.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="90">
|
||||
<caret line="23" column="22" lean-forward="false" selection-start-line="23" selection-start-column="22" selection-end-line="23" selection-end-column="22" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/CrowdsalePage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="144">
|
||||
<caret line="8" column="35" lean-forward="false" selection-start-line="8" selection-start-column="35" selection-end-line="8" selection-end-column="35" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/ReservedTokensPage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1026">
|
||||
<caret line="57" column="32" lean-forward="false" selection-start-line="57" selection-start-column="32" selection-end-line="57" selection-end-column="32" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/node_modules/selenium-webdriver/lib/promise.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="559">
|
||||
<caret line="2190" column="22" lean-forward="true" selection-start-line="2190" selection-start-column="22" selection-end-line="2190" selection-end-column="22" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/ReservedTokens.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/WizardStep3.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-108">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<state relative-caret-position="154">
|
||||
<caret line="10" column="52" lean-forward="false" selection-start-line="10" selection-start-column="52" selection-end-line="10" selection-end-column="52" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/ManagePage.js">
|
||||
<entry file="file://$PROJECT_DIR$/pages/WizardStep2.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="180">
|
||||
<caret line="88" column="37" lean-forward="false" selection-start-line="88" selection-start-column="5" selection-end-line="88" selection-end-column="37" />
|
||||
<state relative-caret-position="428">
|
||||
<caret line="37" column="45" lean-forward="false" selection-start-line="36" selection-start-column="7" selection-end-line="37" selection-end-column="45" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/InvestPage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-666">
|
||||
<caret line="17" column="0" lean-forward="false" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/WizardWelcome.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="154">
|
||||
<caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/owners/owner2.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="72">
|
||||
<caret line="4" column="1" lean-forward="true" selection-start-line="4" selection-start-column="1" selection-end-line="4" selection-end-column="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/owners/owner1.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="54">
|
||||
<caret line="3" column="16" lean-forward="true" selection-start-line="3" selection-start-column="16" selection-end-line="3" selection-end-column="16" />
|
||||
<state relative-caret-position="72">
|
||||
<caret line="4" column="1" lean-forward="false" selection-start-line="4" selection-start-column="1" selection-end-line="4" selection-end-column="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results1518674572046/screenshoot1518675022064.png">
|
||||
<provider selected="true" editor-type-id="images">
|
||||
<state />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results1518674572046/screenshoot1518674594482.png">
|
||||
<provider selected="true" editor-type-id="images">
|
||||
<state />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/WizardStep4.js">
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test4.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="198">
|
||||
<caret line="11" column="6" lean-forward="false" selection-start-line="11" selection-start-column="6" selection-end-line="11" selection-end-column="6" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Crowdsale.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="17" lean-forward="false" selection-start-line="0" selection-start-column="17" selection-end-line="0" selection-end-column="17" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/testAccounts.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="54">
|
||||
<caret line="3" column="55" lean-forward="false" selection-start-line="3" selection-start-column="13" selection-end-line="3" selection-end-column="55" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/MetaMask.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="984">
|
||||
<caret line="116" column="49" lean-forward="false" selection-start-line="116" selection-start-column="39" selection-end-line="116" selection-end-column="49" />
|
||||
<state relative-caret-position="154">
|
||||
<caret line="34" column="5" lean-forward="false" selection-start-line="33" selection-start-column="17" selection-end-line="34" selection-end-column="5" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Investor.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="176">
|
||||
<caret line="57" column="4" lean-forward="false" selection-start-line="57" selection-start-column="4" selection-end-line="57" selection-end-column="4" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_19_28_33/Test1_2_19_2018_19_28_33.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="180">
|
||||
<caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/investors/investor1.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="72">
|
||||
|
@ -530,144 +624,147 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/scenarios/T1RnWy.json">
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_20_4_18/Test1_2_19_2018_20_4_18.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="414">
|
||||
<caret line="23" column="25" lean-forward="false" selection-start-line="23" selection-start-column="25" selection-end-line="23" selection-end-column="25" />
|
||||
<state relative-caret-position="126">
|
||||
<caret line="7" column="23" lean-forward="false" selection-start-line="7" selection-start-column="23" selection-end-line="7" selection-end-column="23" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Crowdsale.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="36">
|
||||
<caret line="2" column="58" lean-forward="false" selection-start-line="2" selection-start-column="15" selection-end-line="2" selection-end-column="58" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_20_41_33/Test1_2_19_2018_20_41_33.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="72">
|
||||
<caret line="4" column="20" lean-forward="false" selection-start-line="4" selection-start-column="20" selection-end-line="4" selection-end-column="20" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/Page.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1548">
|
||||
<caret line="86" column="14" lean-forward="false" selection-start-line="86" selection-start-column="14" selection-end-line="86" selection-end-column="14" />
|
||||
<state relative-caret-position="136">
|
||||
<caret line="36" column="8" lean-forward="false" selection-start-line="36" selection-start-column="8" selection-end-line="36" selection-end-column="8" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/InvestPage.js">
|
||||
<entry file="file://$PROJECT_DIR$/pages/TierPage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="612">
|
||||
<caret line="34" column="14" lean-forward="false" selection-start-line="34" selection-start-column="14" selection-end-line="34" selection-end-column="14" />
|
||||
<state relative-caret-position="118">
|
||||
<caret line="143" column="39" lean-forward="false" selection-start-line="143" selection-start-column="39" selection-end-line="143" selection-end-column="39" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/MetaMask.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="136">
|
||||
<caret line="158" column="6" lean-forward="false" selection-start-line="158" selection-start-column="6" selection-end-line="158" selection-end-column="6" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_21_48_50/Test1_2_19_2018_21_48_50.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Currency.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="234">
|
||||
<caret line="13" column="19" lean-forward="false" selection-start-line="13" selection-start-column="19" selection-end-line="13" selection-end-column="19" />
|
||||
<state relative-caret-position="18">
|
||||
<caret line="37" column="27" lean-forward="false" selection-start-line="37" selection-start-column="27" selection-end-line="37" selection-end-column="27" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/User.js">
|
||||
<entry file="file://$PROJECT_DIR$/pages/ManagePage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="378">
|
||||
<caret line="21" column="4" lean-forward="false" selection-start-line="21" selection-start-column="4" selection-end-line="21" selection-end-column="4" />
|
||||
<state relative-caret-position="154">
|
||||
<caret line="49" column="11" lean-forward="false" selection-start-line="49" selection-start-column="11" selection-end-line="49" selection-end-column="11" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Investor.js">
|
||||
<entry file="file://$PROJECT_DIR$/scenarios/simple.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="228">
|
||||
<caret line="17" column="42" lean-forward="false" selection-start-line="17" selection-start-column="42" selection-end-line="17" selection-end-column="42" />
|
||||
<state relative-caret-position="266">
|
||||
<caret line="30" column="19" lean-forward="false" selection-start-line="30" selection-start-column="19" selection-end-line="30" selection-end-column="19" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Owner.js">
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_22_27_9/Test1_2_19_2018_22_27_9.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="379">
|
||||
<caret line="52" column="15" lean-forward="false" selection-start-line="52" selection-start-column="15" selection-end-line="52" selection-end-column="15" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="378">
|
||||
<caret line="58" column="19" lean-forward="true" selection-start-line="58" selection-start-column="19" selection-end-line="58" selection-end-column="19" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test2.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="217">
|
||||
<caret line="27" column="0" lean-forward="false" selection-start-line="27" selection-start-column="0" selection-end-line="27" selection-end-column="0" />
|
||||
<state relative-caret-position="324">
|
||||
<caret line="18" column="57" lean-forward="false" selection-start-line="18" selection-start-column="15" selection-end-line="18" selection-end-column="57" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test3.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="306">
|
||||
<caret line="26" column="17" lean-forward="false" selection-start-line="26" selection-start-column="17" selection-end-line="26" selection-end-column="17" />
|
||||
<state relative-caret-position="458">
|
||||
<caret line="42" column="27" lean-forward="false" selection-start-line="42" selection-start-column="27" selection-end-line="42" selection-end-column="27" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test4.js">
|
||||
<entry file="file://$PROJECT_DIR$/index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="684">
|
||||
<caret line="38" column="20" lean-forward="true" selection-start-line="38" selection-start-column="20" selection-end-line="38" selection-end-column="20" />
|
||||
<state relative-caret-position="100">
|
||||
<caret line="49" column="12" lean-forward="false" selection-start-line="49" selection-start-column="12" selection-end-line="49" selection-end-column="12" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/results/result_2_19_2018_22_52_40/Test1_2_19_2018_22_52_40.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="234">
|
||||
<caret line="13" column="31" lean-forward="false" selection-start-line="13" selection-start-column="31" selection-end-line="13" selection-end-column="31" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Owner.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="559">
|
||||
<caret line="245" column="0" lean-forward="false" selection-start-line="245" selection-start-column="0" selection-end-line="245" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/how">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test1.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="252">
|
||||
<caret line="29" column="40" lean-forward="true" selection-start-line="29" selection-start-column="40" selection-end-line="29" selection-end-column="40" />
|
||||
<state relative-caret-position="292">
|
||||
<caret line="89" column="7" lean-forward="false" selection-start-line="89" selection-start-column="7" selection-end-line="89" selection-end-column="7" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="54">
|
||||
<caret line="3" column="4" lean-forward="true" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="4" />
|
||||
<state relative-caret-position="72">
|
||||
<caret line="4" column="0" lean-forward="true" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/package.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="144">
|
||||
<caret line="8" column="26" lean-forward="false" selection-start-line="8" selection-start-column="26" selection-end-line="8" selection-end-column="26" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/.circleci/config.yml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-162">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/token.txt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="126">
|
||||
<caret line="7" column="0" lean-forward="true" selection-start-line="3" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/README.md">
|
||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||
<state split_layout="SPLIT">
|
||||
<first_editor relative-caret-position="108">
|
||||
<caret line="6" column="1" lean-forward="true" selection-start-line="6" selection-start-column="1" selection-end-line="6" selection-end-column="1" />
|
||||
<folding />
|
||||
</first_editor>
|
||||
<second_editor />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
</project>
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"startURL" : "https://wizard.poa.network/",
|
||||
"startURL" : "https://5a87189fefbe5d658ef89ee4--ico-wizard.netlify.com/",
|
||||
"outputPath":"./results",
|
||||
"installMetaMask":true,
|
||||
"scenario":"./scenarios/T2RnWyMy_0016.json"
|
||||
"scenario":"./scenarios/T2RnWy_0001.json"
|
||||
}
|
|
@ -2,6 +2,8 @@ const user=require("./User.js");
|
|||
const User=user.User;
|
||||
const invest=require('../pages/InvestPage.js');
|
||||
const InvestPage=invest.InvestPage;
|
||||
const metaMask=require('../pages/MetaMask.js');
|
||||
const MetaMask=metaMask.MetaMask;
|
||||
class Investor extends User
|
||||
{
|
||||
constructor(driver,file){
|
||||
|
@ -17,12 +19,42 @@ class Investor extends User
|
|||
async contribute(amount){
|
||||
var investPage = new InvestPage(this.driver);
|
||||
investPage.fillInvest(amount);
|
||||
investPage.waitUntilLoaderGone();
|
||||
investPage.clickButtonContribute();
|
||||
if (await investPage.isPresentWarning()) {investPage.clickButtonOK();return false;}
|
||||
return true;
|
||||
}
|
||||
await investPage.waitUntilLoaderGone();
|
||||
await investPage.clickButtonContribute();
|
||||
|
||||
await new MetaMask(this.driver).doTransaction();
|
||||
|
||||
var counter=0;
|
||||
var timeLimit=20;
|
||||
do {
|
||||
|
||||
this.driver.sleep(3000);
|
||||
//investPage.refresh();
|
||||
if (await investPage.isPresentWarning()) {investPage.clickButtonOK();return true;}
|
||||
|
||||
counter++;
|
||||
if (counter>=timeLimit) {
|
||||
investPage.switchToAnotherPage();
|
||||
return false;
|
||||
}
|
||||
} while(true);
|
||||
return true;
|
||||
}
|
||||
async getBalanceFromPage(url)
|
||||
{
|
||||
var investPage = new InvestPage(this.driver);
|
||||
var curURL=await investPage.getURL();
|
||||
if(url!=curURL) investPage.open(url);
|
||||
await investPage.waitUntilLoaderGone();
|
||||
this.driver.sleep(2000);
|
||||
let s=await investPage.getBalance();
|
||||
let arr=s.split(" ");
|
||||
s=arr[0].trim();
|
||||
return s;
|
||||
|
||||
|
||||
|
||||
}
|
||||
balanceTokens(tokenAddress){
|
||||
return 0;
|
||||
|
||||
|
|
|
@ -34,9 +34,9 @@ const Crowdsale=crowdsale.Crowdsale;
|
|||
const timeLimitTransactions=80;
|
||||
const managePage=require('../pages/ManagePage.js');
|
||||
const ManagePage=managePage.ManagePage;
|
||||
|
||||
|
||||
const startURL="https://wizard.poa.network/";
|
||||
|
||||
|
||||
class Owner extends User
|
||||
{
|
||||
constructor(driver,file){
|
||||
|
@ -55,52 +55,71 @@ class Owner extends User
|
|||
}
|
||||
async openManagePage(crowdsale){
|
||||
var welcomePage=new WizardWelcome(this.driver);
|
||||
|
||||
welcomePage.URL=startURL;
|
||||
welcomePage.open();
|
||||
welcomePage.clickButtonChooseContract();
|
||||
var mngPage=new ManagePage(this.driver);
|
||||
do {this.driver.sleep(1000);} while(!await mngPage.isAvailable());
|
||||
var counter=0;
|
||||
do {this.driver.sleep(1000);
|
||||
if(counter++>30) break;
|
||||
} while(!await mngPage.isAvailable());
|
||||
mngPage.URL=startURL+"manage/"+crowdsale.contractAddress;
|
||||
mngPage.open();
|
||||
await mngPage.waitUntilLoaderGone();
|
||||
|
||||
return mngPage.URL;
|
||||
return mngPage;
|
||||
|
||||
}
|
||||
|
||||
async distribute(crowdsale){
|
||||
|
||||
this.openManagePage(crowdsale);
|
||||
var mngPage=new ManagePage(this.driver);
|
||||
this.driver.sleep(3000);
|
||||
var mngPage=await this.openManagePage(crowdsale);
|
||||
|
||||
this.driver.sleep(5000);
|
||||
//console.log("Present:"+await mngPage.isPresentButtonDistribute());
|
||||
// console.log("Enabled"+await mngPage.isEnabledDistribute());
|
||||
if ( await mngPage.isEnabledDistribute())
|
||||
{
|
||||
mngPage.clickButtonDistribute();
|
||||
await mngPage.clickButtonDistribute();
|
||||
}
|
||||
else {return false;}
|
||||
var metaMask = new meta.MetaMask(this.driver);
|
||||
metaMask.doTransaction();
|
||||
mngPage.waitUntilLoaderGone();
|
||||
return await mngPage.confirmPopup();
|
||||
await metaMask.doTransaction();
|
||||
await mngPage.waitUntilLoaderGone();
|
||||
|
||||
var b= await mngPage.confirmPopup();
|
||||
return b;
|
||||
}
|
||||
|
||||
async finalize(crowdsale){
|
||||
|
||||
this.openManagePage(crowdsale);
|
||||
await this.openManagePage(crowdsale);
|
||||
var mngPage=new ManagePage(this.driver);
|
||||
this.driver.sleep(3000);
|
||||
await mngPage.waitUntilLoaderGone();
|
||||
|
||||
if ( await mngPage.isEnabledFinalize())
|
||||
{
|
||||
await mngPage.clickButtonFinalize();
|
||||
}
|
||||
else {return false;}
|
||||
mngPage.clickButtonYesFinalize();
|
||||
|
||||
|
||||
var counter=0;
|
||||
do{
|
||||
if (counter++>50) return false;
|
||||
this.driver.sleep(1000);
|
||||
|
||||
}
|
||||
while(!(await mngPage.isPresentPopupYesFinalize()));
|
||||
this.driver.sleep(1000);
|
||||
await mngPage.clickButtonYesFinalize();
|
||||
this.driver.sleep(3000);
|
||||
var metaMask = new meta.MetaMask(this.driver);
|
||||
metaMask.doTransaction();
|
||||
mngPage.waitUntilLoaderGone();
|
||||
return await mngPage.confirmPopup();
|
||||
await metaMask.doTransaction();
|
||||
await mngPage.waitUntilLoaderGone();
|
||||
var b= await mngPage.confirmPopup();
|
||||
return b;
|
||||
}
|
||||
|
||||
|
||||
|
@ -108,12 +127,8 @@ class Owner extends User
|
|||
|
||||
|
||||
|
||||
async createCrowdsale(scenarioFile){
|
||||
async createCrowdsale(scenarioFile,outputPath,logFile){
|
||||
var utils=new Utils();
|
||||
var d=new Date();
|
||||
var outputDirectory="./results"+d.getTime();
|
||||
fs.mkdirSync(outputDirectory);
|
||||
fs.writeFileSync(outputDirectory+'/result.log', "Test start time:"+d.getTime());
|
||||
|
||||
var welcomePage = new wizardWelcome.WizardWelcome(this.driver,startURL);
|
||||
var wallet=new MetaMaskWallet();
|
||||
|
@ -133,7 +148,7 @@ class Owner extends User
|
|||
var tiers=[];
|
||||
for (var i=0;i<cur.tiers.length;i++)
|
||||
tiers.push(new TierPage(this.driver,cur.tiers[i]));
|
||||
metaMask.setAccount(this);
|
||||
metaMask.importAccount(this);
|
||||
welcomePage.open();
|
||||
welcomePage.clickButtonNewCrowdsale();
|
||||
this.driver.sleep(2000);
|
||||
|
@ -145,25 +160,30 @@ class Owner extends User
|
|||
for (var i=0;i<cur.reservedTokens.length;i++)
|
||||
{
|
||||
reservedTokens.fillReservedTokens(cur.reservedTokens[i]);
|
||||
this.driver.sleep(1000);
|
||||
reservedTokens.clickButtonAddReservedTokens();
|
||||
this.driver.sleep(1000);
|
||||
|
||||
}
|
||||
utils.zoom(this.driver,0.5);
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
utils.takeScreenshoot(this.driver,outputPath);
|
||||
utils.zoom(this.driver,1);
|
||||
|
||||
wizardStep2.clickButtonContinue();
|
||||
wizardStep3.fillWalletAddress(cur.walletAddress);
|
||||
|
||||
wizardStep3.setGasPrice(cur.gasPrice);
|
||||
if (cur.whitelisting) wizardStep3.clickCheckboWhitelistYes();
|
||||
else (wizardStep3.fillMinCap(cur.minCap));
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
utils.takeScreenshoot(this.driver,outputPath);
|
||||
for (var i=0;i<cur.tiers.length-1;i++)
|
||||
{
|
||||
tiers[i].fillTier();
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
utils.takeScreenshoot(this.driver,outputPath);
|
||||
wizardStep3.clickButtonAddTier();
|
||||
}
|
||||
tiers[cur.tiers.length-1].fillTier();
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
utils.takeScreenshoot(this.driver,outputPath);
|
||||
wizardStep3.clickButtonContinue();
|
||||
this.driver.sleep(2000);
|
||||
if (!(await wizardStep4.isPage()))throw new Error('incorrect data in tiers');
|
||||
|
@ -190,16 +210,16 @@ class Owner extends User
|
|||
}
|
||||
if((timeLimit--)==0)
|
||||
{ var s="Deployment failed.Transaction were done:"+ trCounter;
|
||||
fs.appendFileSync(outputDirectory+'/result.log',"\n"+s);
|
||||
fs.appendFileSync(logFile,"\n"+s);
|
||||
console.log(s);
|
||||
b=false;}
|
||||
} while (b);
|
||||
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
utils.takeScreenshoot(this.driver,outputPath);
|
||||
this.driver.sleep(5000);
|
||||
wizardStep4.clickButtonContinue();
|
||||
this.driver.sleep(5000);
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
utils.takeScreenshoot(this.driver,outputPath);
|
||||
|
||||
b=true;
|
||||
var counter=50;
|
||||
|
@ -214,16 +234,16 @@ class Owner extends User
|
|||
counter++;
|
||||
}
|
||||
} while (b);
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
utils.takeScreenshoot(this.driver,outputPath);
|
||||
this.driver.getCurrentUrl().then((res)=>{
|
||||
console.log("Final invest page link: "+res);
|
||||
fs.appendFileSync(outputDirectory+'/result.log', "\n\Final invest page link: \""+res);
|
||||
fs.writeFileSync('./artifacts/result.log', res);//for circleci
|
||||
fs.appendFileSync(logFile, "\n\ Final invest page link: \n"+res+"\n");
|
||||
|
||||
});
|
||||
s="Transaction were done: "+ trCounter;
|
||||
console.log(s);
|
||||
fs.appendFileSync(outputDirectory+'/result.log',s+'\n');
|
||||
fs.appendFileSync(outputDirectory+'/result.log', "Test end time:"+new Date().getTime()+'\n');
|
||||
fs.appendFileSync(logFile,s+'\n');
|
||||
|
||||
|
||||
investPage.waitUntilLoaderGone().then().catch();
|
||||
this.driver.sleep(10000);
|
||||
|
|
|
@ -6,18 +6,32 @@ const MetaMaskWallet=metaMaskWallet.MetaMaskWallet;
|
|||
const metaMask=require('../pages/MetaMask.js');
|
||||
const MetaMask=metaMask.MetaMask;
|
||||
class User {
|
||||
constructor(driver,file){
|
||||
constructor(driver,file,resultFile){
|
||||
this.driver=driver;
|
||||
var obj=JSON.parse(fs.readFileSync(file,"utf8"));
|
||||
this.account=obj.account;
|
||||
this.privateKey=obj.privateKey;
|
||||
this.networkID=obj.networkID;
|
||||
this.resultFile=resultFile;
|
||||
this.accN="undefined";//for MetaMaskPage only
|
||||
}
|
||||
|
||||
setMetaMaskAccount(){
|
||||
|
||||
var metaMask = new MetaMask(this.driver);
|
||||
metaMask.setAccount(this)
|
||||
console.log(this.accN);
|
||||
if (this.accN =="undefined")
|
||||
{
|
||||
console.log("import");
|
||||
metaMask.importAccount(this);
|
||||
}
|
||||
else
|
||||
{ console.log("select");
|
||||
|
||||
metaMask.selectAccount(this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
open(url){
|
||||
new Page(this.driver).open(url);
|
||||
|
|
323
how
323
how
|
@ -1,323 +0,0 @@
|
|||
[33mcommit 2420c7517f12bfefd9aed463f3caadec963a8b67[m
|
||||
Author: dennis00010011b@gmail.com <dennis00010011b@gmail.com>
|
||||
Date: Tue Feb 13 19:21:10 2018 -0800
|
||||
|
||||
0.0.1
|
||||
|
||||
[1mdiff --git a/.circleci/config.yml b/.circleci/config.yml[m
|
||||
[1mnew file mode 100644[m
|
||||
[1mindex 0000000..4215863[m
|
||||
[1m--- /dev/null[m
|
||||
[1m+++ b/.circleci/config.yml[m
|
||||
[36m@@ -0,0 +1,68 @@[m
|
||||
[32m+[m[32mversion: 2[m
|
||||
[32m+[m
|
||||
[32m+[m[32mjobs:[m
|
||||
[32m+[m[32m build:[m
|
||||
[32m+[m[32m working_directory: ~/ddd[m
|
||||
[32m+[m[32m docker:[m
|
||||
[32m+[m[32m - image: circleci/node:latest-browsers[m
|
||||
[32m+[m[32m steps:[m
|
||||
[32m+[m[32m - checkout[m
|
||||
[32m+[m
|
||||
[32m+[m[32m - run: strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC[m
|
||||
[32m+[m[32m - run: npm install[m
|
||||
[32m+[m[32m - run: node -v[m
|
||||
[32m+[m[32m - run: npm -v[m
|
||||
[32m+[m[32m - run: google-chrome --version[m
|
||||
[32m+[m[32m - run: chromedriver -v[m
|
||||
[32m+[m[32m - run:[m
|
||||
[32m+[m[32m name: Creating Artifacts[m
|
||||
[32m+[m[32m command: |[m
|
||||
[32m+[m[32m sudo echo "my artifact file" > ~/ddd/artifact-1;[m
|
||||
[32m+[m[32m # sudo mkdir ~/ddd/artifacts;[m
|
||||
[32m+[m[32m # sudo echo "my artifact files in a dir" > ~/ddd/artifacts/artifact-2;[m
|
||||
[32m+[m
|
||||
[32m+[m[32m #- run:[m
|
||||
[32m+[m[32m # command: |[m
|
||||
[32m+[m[32m # cd /[m
|
||||
[32m+[m[32m#[m
|
||||
[32m+[m[32m # sudo mkdir -p /etc/opt/chrome/policies/managed[m
|
||||
[32m+[m[32m # cd ~/ddd[m
|
||||
[32m+[m[32m # ls -l[m
|
||||
[32m+[m[32m # sudo cp test_policy.json /etc/opt/chrome/policies/managed[m
|
||||
[32m+[m[32m # cd /etc/opt/chrome/policies/managed[m
|
||||
[32m+[m[32m # ls -l[m
|
||||
[32m+[m[32m # cat test_policy.json[m
|
||||
[32m+[m[32m # - run: google-chrome[m
|
||||
[32m+[m[32m # - run: sudo killall chrome[m
|
||||
[32m+[m
|
||||
[32m+[m[32m # - run: sudo mkdir /1 # sudo cp test_policy.json /etc/opt/chrome/policies/managed[m
|
||||
[32m+[m[32m #- run: cd /1[m
|
||||
[32m+[m
|
||||
[32m+[m
|
||||
[32m+[m[32m test:[m
|
||||
[32m+[m[32m docker:[m
|
||||
[32m+[m[32m - image: circleci/node:latest-browsers[m
|
||||
[32m+[m[32m working_directory: ~/ddd[m
|
||||
[32m+[m[32m steps:[m
|
||||
[32m+[m[32m - checkout[m
|
||||
[32m+[m
|
||||
[32m+[m[32m - run: node index.js[m
|
||||
[32m+[m
|
||||
[32m+[m
|
||||
[32m+[m[32m - store_artifacts:[m
|
||||
[32m+[m[32m path: ~/ddd/artifacts[m
|
||||
[32m+[m[32m destination: artifact-file[m
|
||||
[32m+[m
|
||||
[32m+[m[32m - store_artifacts:[m
|
||||
[32m+[m[32m path: ~/ddd/artifacts[m
|
||||
[32m+[m[32m #- run:[m
|
||||
[32m+[m
|
||||
[32m+[m
|
||||
[32m+[m[32mworkflows:[m
|
||||
[32m+[m[32m version: 2[m
|
||||
[32m+[m[32m build_and_test:[m
|
||||
[32m+[m[32m jobs:[m
|
||||
[32m+[m[32m - build[m
|
||||
[32m+[m[32m - test:[m
|
||||
[32m+[m[32m requires:[m
|
||||
[32m+[m[32m - build[m
|
||||
\ No newline at end of file[m
|
||||
[1mdiff --git a/.gitignore b/.gitignore[m
|
||||
[1mnew file mode 100644[m
|
||||
[1mindex 0000000..1862b4a[m
|
||||
[1m--- /dev/null[m
|
||||
[1m+++ b/.gitignore[m
|
||||
[36m@@ -0,0 +1,4 @@[m
|
||||
[32m+[m[32mnode_modules[m
|
||||
[32m+[m[32mtempAddr.txt[m
|
||||
[32m+[m[32mresults[m
|
||||
[32m+[m[32martifacts[m
|
||||
[1mdiff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml[m
|
||||
[1mnew file mode 100644[m
|
||||
[1mindex 0000000..d23208f[m
|
||||
[1m--- /dev/null[m
|
||||
[1m+++ b/.idea/jsLibraryMappings.xml[m
|
||||
[36m@@ -0,0 +1,6 @@[m
|
||||
[32m+[m[32m<?xml version="1.0" encoding="UTF-8"?>[m
|
||||
[32m+[m[32m<project version="4">[m
|
||||
[32m+[m[32m <component name="JavaScriptLibraryMappings">[m
|
||||
[32m+[m[32m <includedPredefinedLibrary name="Node.js Core" />[m
|
||||
[32m+[m[32m </component>[m
|
||||
[32m+[m[32m</project>[m
|
||||
\ No newline at end of file[m
|
||||
[1mdiff --git a/.idea/misc.xml b/.idea/misc.xml[m
|
||||
[1mnew file mode 100644[m
|
||||
[1mindex 0000000..28a804d[m
|
||||
[1m--- /dev/null[m
|
||||
[1m+++ b/.idea/misc.xml[m
|
||||
[36m@@ -0,0 +1,6 @@[m
|
||||
[32m+[m[32m<?xml version="1.0" encoding="UTF-8"?>[m
|
||||
[32m+[m[32m<project version="4">[m
|
||||
[32m+[m[32m <component name="JavaScriptSettings">[m
|
||||
[32m+[m[32m <option name="languageLevel" value="ES6" />[m
|
||||
[32m+[m[32m </component>[m
|
||||
[32m+[m[32m</project>[m
|
||||
\ No newline at end of file[m
|
||||
[1mdiff --git a/.idea/modules.xml b/.idea/modules.xml[m
|
||||
[1mnew file mode 100644[m
|
||||
[1mindex 0000000..12b1aa3[m
|
||||
[1m--- /dev/null[m
|
||||
[1m+++ b/.idea/modules.xml[m
|
||||
[36m@@ -0,0 +1,8 @@[m
|
||||
[32m+[m[32m<?xml version="1.0" encoding="UTF-8"?>[m
|
||||
[32m+[m[32m<project version="4">[m
|
||||
[32m+[m[32m <component name="ProjectModuleManager">[m
|
||||
[32m+[m[32m <modules>[m
|
||||
[32m+[m[32m <module fileurl="file://$PROJECT_DIR$/.idea/wizardAutomation.iml" filepath="$PROJECT_DIR$/.idea/wizardAutomation.iml" />[m
|
||||
[32m+[m[32m </modules>[m
|
||||
[32m+[m[32m </component>[m
|
||||
[32m+[m[32m</project>[m
|
||||
\ No newline at end of file[m
|
||||
[1mdiff --git a/.idea/runConfigurations/index.xml b/.idea/runConfigurations/index.xml[m
|
||||
[1mnew file mode 100644[m
|
||||
[1mindex 0000000..4a9c15a[m
|
||||
[1m--- /dev/null[m
|
||||
[1m+++ b/.idea/runConfigurations/index.xml[m
|
||||
[36m@@ -0,0 +1,11 @@[m
|
||||
[32m+[m[32m<component name="ProjectRunConfigurationManager">[m
|
||||
[32m+[m[32m <configuration default="false" name="index" type="NodeJSConfigurationType" factoryName="Node.js" path-to-js-file="index.js" working-dir="$PROJECT_DIR$">[m
|
||||
[32m+[m[32m <envs>[m
|
||||
[32m+[m[32m <env name="DEBUG" value="wizardAutomation:*" />[m
|
||||
[32m+[m[32m </envs>[m
|
||||
[32m+[m[32m <EXTENSION ID="com.jetbrains.nodejs.run.NodeJSStartBrowserRunConfigurationExtension">[m
|
||||
[32m+[m[32m <browser url="http://localhost:3000/" />[m
|
||||
[32m+[m[32m </EXTENSION>[m
|
||||
[32m+[m[32m <method />[m
|
||||
[32m+[m[32m </configuration>[m
|
||||
[32m+[m[32m</component>[m
|
||||
\ No newline at end of file[m
|
||||
[1mdiff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml[m
|
||||
[1mnew file mode 100644[m
|
||||
[1mindex 0000000..9338ba6[m
|
||||
[1m--- /dev/null[m
|
||||
[1m+++ b/.idea/watcherTasks.xml[m
|
||||
[36m@@ -0,0 +1,4 @@[m
|
||||
[32m+[m[32m<?xml version="1.0" encoding="UTF-8"?>[m
|
||||
[32m+[m[32m<project version="4">[m
|
||||
[32m+[m[32m <component name="ProjectTasksOptions" suppressed-tasks="Babel" />[m
|
||||
[32m+[m[32m</project>[m
|
||||
\ No newline at end of file[m
|
||||
[1mdiff --git a/.idea/wizardAutomation.iml b/.idea/wizardAutomation.iml[m
|
||||
[1mnew file mode 100644[m
|
||||
[1mindex 0000000..24643cc[m
|
||||
[1m--- /dev/null[m
|
||||
[1m+++ b/.idea/wizardAutomation.iml[m
|
||||
[36m@@ -0,0 +1,12 @@[m
|
||||
[32m+[m[32m<?xml version="1.0" encoding="UTF-8"?>[m
|
||||
[32m+[m[32m<module type="WEB_MODULE" version="4">[m
|
||||
[32m+[m[32m <component name="NewModuleRootManager">[m
|
||||
[32m+[m[32m <content url="file://$MODULE_DIR$">[m
|
||||
[32m+[m[32m <excludeFolder url="file://$MODULE_DIR$/.tmp" />[m
|
||||
[32m+[m[32m <excludeFolder url="file://$MODULE_DIR$/temp" />[m
|
||||
[32m+[m[32m <excludeFolder url="file://$MODULE_DIR$/tmp" />[m
|
||||
[32m+[m[32m </content>[m
|
||||
[32m+[m[32m <orderEntry type="inheritedJdk" />[m
|
||||
[32m+[m[32m <orderEntry type="sourceFolder" forTests="false" />[m
|
||||
[32m+[m[32m </component>[m
|
||||
[32m+[m[32m</module>[m
|
||||
\ No newline at end of file[m
|
||||
[1mdiff --git a/.idea/workspace.xml b/.idea/workspace.xml[m
|
||||
[1mnew file mode 100644[m
|
||||
[1mindex 0000000..2c10b99[m
|
||||
[1m--- /dev/null[m
|
||||
[1m+++ b/.idea/workspace.xml[m
|
||||
[36m@@ -0,0 +1,544 @@[m
|
||||
[32m+[m[32m<?xml version="1.0" encoding="UTF-8"?>[m
|
||||
[32m+[m[32m<project version="4">[m
|
||||
[32m+[m[32m <component name="ChangeListManager">[m
|
||||
[32m+[m[32m <list default="true" id="40b9626d-5f4f-46c4-8096-7de331aaa15a" name="Default" comment="" />[m
|
||||
[32m+[m[32m <ignored path="$PROJECT_DIR$/.tmp/" />[m
|
||||
[32m+[m[32m <ignored path="$PROJECT_DIR$/temp/" />[m
|
||||
[32m+[m[32m <ignored path="$PROJECT_DIR$/tmp/" />[m
|
||||
[32m+[m[32m <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />[m
|
||||
[32m+[m[32m <option name="TRACKING_ENABLED" value="true" />[m
|
||||
[32m+[m[32m <option name="SHOW_DIALOG" value="false" />[m
|
||||
[32m+[m[32m <option name="HIGHLIGHT_CONFLICTS" value="true" />[m
|
||||
[32m+[m[32m <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />[m
|
||||
[32m+[m[32m <option name="LAST_RESOLUTION" value="IGNORE" />[m
|
||||
[32m+[m[32m </component>[m
|
||||
[32m+[m[32m <component name="FileEditorManager">[m
|
||||
[32m+[m[32m <leaf>[m
|
||||
[32m+[m[32m <file leaf-file-name="Owner.js" pinned="false" current-in-tab="false">[m
|
||||
[32m+[m[32m <entry file="file://$PROJECT_DIR$/entity/Owner.js">[m
|
||||
[32m+[m[32m <provider selected="true" editor-type-id="text-editor">[m
|
||||
[32m+[m[32m <state relative-caret-position="143">[m
|
||||
[32m+[m[32m <caret line="52" column="0" lean-forward="true" selection-start-line="52" selection-start-column="0" selection-end-line="52" selection-end-column="0" />[m
|
||||
[32m+[m[32m <folding />[m
|
||||
[32m+[m[32m </state>[m
|
||||
[32m+[m[32m </provider>[m
|
||||
[32m+[m[32m </entry>[m
|
||||
[32m+[m[32m </file>[m
|
||||
[32m+[m[32m <file leaf-file-name="Test2.js" pinned="false" current-in-tab="false">[m
|
||||
[32m+[m[32m <entry file="file://$PROJECT_DIR$/tests/Test2.js">[m
|
||||
[32m+[m[32m <provider selected="true" editor-type-id="text-editor">[m
|
||||
[32m+[m[32m <state relative-caret-position="450">[m
|
||||
[32m+[m[32m <caret line="43" column="27" lean-forward="true" selection-start-line="43" selection-start-column="27" selection-end-line="43" selection-end-column="27" />[m
|
||||
[32m+[m[32m <folding />[m
|
||||
[32m+[m[32m </state>[m
|
||||
[32m+[m[32m </provider>[m
|
||||
[32m+[m[32m </entry>[m
|
||||
[32m+[m[32m </file>[m
|
||||
[32m+[m[32m <file leaf-file-name="Page.js" pinned="false" current-in-tab="false">[m
|
||||
[32m+[m[32m <entry file="file://$PROJECT_DIR$/pages/Page.js">[m
|
||||
[32m+[m[32m <provider selected="true" editor-type-id="text-editor">[m
|
||||
[32m+[m[32m <state relative-caret-position="90">[m
|
||||
[32m+[m[32m <caret line="32" column="52" lean-forward="false" selection-start-line="32" selection-start-column="52" selection-end-line="32" selection-end-column="52" />[m
|
||||
[32m+[m[32m <folding />[m
|
||||
[32m+[m[32m </state>[m
|
||||
[32m+[m[32m </provider>[m
|
||||
[32m+[m[32m </entry>[m
|
||||
[32m+[m[32m </file>[m
|
||||
[32m+[m[32m <file leaf-file-name="InvestPage.js" pinned="false" current-in-tab="false">[m
|
||||
[32m+[m[32m <entry file="file://$PROJECT_DIR$/pages/InvestPage.js">[m
|
||||
[32m+[m[32m <provider selected="true" editor-type-id="text-editor">[m
|
||||
[32m+[m[32m <state relative-caret-position="339">[m
|
||||
[32m+[m[32m <caret line="29" column="0" lean-forward="false" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />[m
|
||||
[32m+[m[32m <folding />[m
|
||||
[32m+[m[32m </state>[m
|
||||
[32m+[m[32m </provider>[m
|
||||
[32m+[m[32m </entry>[m
|
||||
[32m+[m[32m </file>[m
|
||||
[32m+[m[32m <file leaf-file-name="Currency.js" pinned="false" current-in-tab="false">[m
|
||||
[32m+[m[32m <entry file="file://$PROJECT_DIR$/entity/Currency.js">[m
|
||||
[32m+[m[32m <provider selected="true" editor-type-id="text-editor">[m
|
||||
[32m+[m[32m <state relative-caret-position="2070">[m
|
||||
[32m+[m[32m <caret line="115" column="63" lean-forward="false" selection-start-line="115" selection-start-column="63" selection-end-line="115" selection-end-column="63" />[m
|
||||
[32m+[m[32m <folding />[m
|
||||
[32m+[m[32m </state>[m
|
||||
[32m+[m[32m </provider>[m
|
||||
[32m+[m[32m </entry>[m
|
||||
[32m+[m[32m </file>[m
|
||||
[32m+[m[32m <file leaf-file-name="MetaMask.js" pinned="false" current-in-tab="false">[m
|
||||
[32m+[m[32m <entry file="file://$PROJECT_DIR$/pages/MetaMask.js">[m
|
||||
[32m+[m[32m <provider selected="true" editor-type-id="text-editor">[m
|
||||
[32m+[m[32m <state relative-caret-position="918">[m
|
||||
[32m+[m[32m <caret line="180" column="97" lean-forward="false" selection-start-line="180" selection-start-column="97" selection-end-line="180" selection-end-column="97" />[m
|
||||
[32m+[m[32m <folding />[m
|
||||
[32m+[m[32m </state>[m
|
||||
[32m+[m[32m </provider>[m
|
||||
[32m+[m[32m </entry>[m
|
||||
[32m+[m[32m </file>[m
|
||||
[32m+[m[32m <file leaf-file-name="Test1.js" pinned="false" current-in-tab="false">[m
|
||||
[32m+[m[32m <entry file="file://$PROJECT_DIR$/tests/Test1.js">[m
|
||||
[32m+[m[32m <provider selected="true" editor-type-id="text-editor">[m
|
||||
[32m+[m[32m <state relative-caret-position="125">[m
|
||||
[32m+[m[32m <caret line="30" column="16" lean-forward="false" selection-start-line="30" selection-start-column="16" selection-end-line="30" selection-end-column="16" />[m
|
||||
[32m+[m[32m <folding />[m
|
||||
[32m+[m[32m </state>[m
|
||||
[32m+[m[32m </provider>[m
|
||||
[32m+[m[32m </entry>[m
|
||||
[32m+[m[32m </file>[m
|
||||
[32m+[m[32m <file leaf-file-name="Crowdsale.js" pinned="false" current-in-tab="false">[m
|
||||
[32m+[m[32m <entry file="file://$PROJECT_DIR$/entity/Crowdsale.js">[m
|
||||
[32m+[m[32m <provider selected="true" editor-type-id="text-editor">[m
|
||||
[32m+[m[32m <state relative-caret-position="126">[m
|
||||
[32m+[m[32m <caret line="7" column="5" lean-forward="true" selection-start-line="7" selection-start-column="5" selection-end-line="7" selection-end-column="5" />[m
|
||||
[32m+[m[32m <folding />[m
|
||||
[32m+[m[32m </state>[m
|
||||
[32m+[m[32m </provider>[m
|
||||
[32m+[m[32m </entry>[m
|
||||
[32m+[m[32m </file>[m
|
||||
[32m+[m[32m <file leaf-file-name="Test3.js" pinned="false" current-in-tab="false">[m
|
||||
[32m+[m[32m <entry file="file://$PROJECT_DIR$/tests/Test3.js">[m
|
||||
[32m+[m[32m <provider selected="true" editor-type-id="text-editor">[m
|
||||
[32m+[m[32m <state relative-caret-position="177">[m
|
||||
[32m+[m[32m <caret line="29" column="46" lean-forward="true" selection-start-line="29" selection-start-column="46" selection-end-line="29" selection-end-column="46" />[m
|
||||
[32m+[m[32m <folding />[m
|
||||
[32m+[m[32m </state>[m
|
||||
[32m+[m[32m </provider>[m
|
||||
[32m+[m[32m </entry>[m
|
||||
[32m+[m[32m </file>[m
|
||||
[32m+[m[32m <file leaf-file-name="index.js" pinned="false" current-in-tab="true">[m
|
||||
[32m+[m[32m <entry file="file://$PROJECT_DIR$/index.js">[m
|
||||
[32m+[m[32m <provider selected="true" editor-type-id="text-editor">[m
|
||||
[32m+[m[32m <state relative-caret-position="231">[m
|
||||
[32m+[m[32m <caret line="65" column="0" lean-forward="true" selection-start-line="65" selection-start-column="0" selection-end-line="65" selection-end-column="0" />[m
|
||||
[32m+[m[32m <folding />[m
|
||||
[32m+[m[32m </state>[m
|
||||
[32m+[m[32m </provider>[m
|
||||
[32m+[m[32m </entry>[m
|
||||
[32m+[m[32m </file>[m
|
||||
[32m+[m[32m </leaf>[m
|
||||
[32m+[m[32m </component>[m
|
||||
[32m+[m[32m <component name="FileTemplateManagerImpl">[m
|
||||
[32m+[m[32m <option name="RECENT_TEMPLATES">[m
|
||||
[32m+[m[32m <list>[m
|
||||
[32m+[m[32m <option value="JavaScript File" />[m
|
||||
[32m+[m[32m </list>[m
|
||||
[32m+[m[32m </option>[m
|
||||
[32m+[m[32m </component>[m
|
||||
[32m+[m[32m <component name="FindInProjectRecents">[m
|
||||
[32m+[m[32m <findStrings>[m
|
||||
[32m+[m[32m <find>wallet</find>[m
|
||||
[32m+[m[32m </findStrings>[m
|
||||
[32m+[m[32m </component>[m
|
||||
[32m+[m[32m <component name="IdeDocumentHistory">[m
|
||||
[32m+[m[32m <option name="CHANGED_PATHS">[m
|
||||
[32m+[m[32m <list>[m
|
||||
[32m+[m[32m <option value="$PROJECT_DIR$/package.json" />[m
|
||||
[32m+[m[32m <option value="$PROJECT_DIR$/entity/User.js" />[m
|
||||
[32m+[m[32m <option value="$PROJECT_DIR$/owners/owner1.json" />[m
|
||||
[32m+[
|
19
index.js
19
index.js
|
@ -30,7 +30,7 @@ const TierPage=tierpage.TierPage;
|
|||
const Web3 = require('web3');
|
||||
const fs = require('fs');
|
||||
///////////////////////////////////////
|
||||
token-wizard-test-automation
|
||||
|
||||
|
||||
run();
|
||||
|
||||
|
@ -46,25 +46,24 @@ function run() {
|
|||
var mtMask = new MetaMask(driver);
|
||||
mtMask.open();//return activated Metamask and empty page
|
||||
|
||||
var test1 = new Test1(driver);
|
||||
var test1 = new Test1(driver,Utils.getOutputPath("config.json"));
|
||||
test1.run().then().catch();
|
||||
|
||||
var test3 = new Test3(driver);
|
||||
test3.run().then().catch();
|
||||
var test3 = new Test3(driver,Utils.getOutputPath("config.json"));
|
||||
//test3.run().then().catch();
|
||||
|
||||
var test4 = new Test4(driver);
|
||||
test4.run().then().catch();
|
||||
var test4 = new Test4(driver,Utils.getOutputPath("config.json"));
|
||||
//test4.run().then().catch();
|
||||
|
||||
//@After suit
|
||||
driver.close();
|
||||
// driver.close();
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
module.exports={
|
||||
createPOACrowdsale:createPOACrowdsale
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"account": "0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"privateKey": "728d7d4c1a95bad69c5e92d4c1fa7ff54455d9949534c6eba68c568c4addc9d0",
|
||||
"networkID": 4
|
||||
}
|
|
@ -5,8 +5,8 @@ const webdriver = require('selenium-webdriver'),
|
|||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
const buttonInvest=By.xpath('//*[@id="root"]/div/section/div[3]/a');
|
||||
|
||||
//const buttonInvest=By.xpath('//*[@id="root"]/div/section/div[3]/a');
|
||||
const buttonInvest=By.className("button button_fill");
|
||||
|
||||
class CrowdsalePage extends page.Page{
|
||||
|
||||
|
|
|
@ -6,20 +6,35 @@ const webdriver = require('selenium-webdriver'),
|
|||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
const buttonContribute=By.xpath('//*[@id="root"]/div/div[1]/div[1]/div[2]/form/div[2]/a');
|
||||
const fieldTokenAddress=By.xpath("//*[@id=\"root\"]/div/div[1]/div[1]/div[1]/div[2]/div[2]/p[1]");
|
||||
const buttonContribute=By.className("button button_fill");
|
||||
|
||||
const fieldContractAddress=By.xpath("//*[@id=\"root\"]/div/div[1]/div[1]/div[1]/div[2]/div[3]/p[1]");
|
||||
//const fieldTokenAddress=By.xpath("//*[@id=\"root\"]/div/div[1]/div[1]/div[1]/div[2]/div[2]/p[1]");
|
||||
//*[@id="root"]/div/div[1]/div/div[1]/div[1]/div[2]/div[3]/p[1]
|
||||
//const fieldContractAddress=By.xpath("//*[@id=\"root\"]/div/div[1]/div[1]/div[1]/div[2]/div[3]/p[1]");
|
||||
//*[@id="root"]/div/div[1]/div[1]/div[1]/div[2]/div[3]/p[1]
|
||||
const fieldInvest=By.className("invest-form-input");
|
||||
const buttonOk=By.className("swal2-confirm swal2-styled");
|
||||
const fieldBalance=By.className("balance-title");
|
||||
|
||||
const fields=By.className("hashes-title");
|
||||
|
||||
class InvestPage extends Page{
|
||||
|
||||
constructor(driver){
|
||||
super(driver);
|
||||
this.URL;
|
||||
|
||||
this.fieldTokenAddress;
|
||||
this.fieldContractAddress;
|
||||
this.fieldCurrentAccount;
|
||||
}
|
||||
async initFields(){
|
||||
var arr = await super.findWithWait(fields);
|
||||
this.fieldTokenAddress = arr[1];
|
||||
this.fieldContractAddress = arr[2];
|
||||
this.fieldCurrentAccount=arr[0];
|
||||
}
|
||||
async getBalance(){
|
||||
return await super.getText(fieldBalance);
|
||||
}
|
||||
|
||||
async isPresentWarning(){
|
||||
|
@ -35,17 +50,22 @@ class InvestPage extends Page{
|
|||
super.fillWithWait(fieldInvest,amount);
|
||||
}
|
||||
|
||||
clickButtonContribute(){
|
||||
async clickButtonContribute(){
|
||||
|
||||
super.clickWithWait(buttonContribute);
|
||||
}
|
||||
|
||||
async getTokenAddress(){
|
||||
|
||||
return await super.getText(fieldTokenAddress);
|
||||
await this.initFields();
|
||||
return await super.getTextElement(this.fieldTokenAddress);
|
||||
}
|
||||
async getContractAddress(){
|
||||
|
||||
return await super.getText(fieldContractAddress);
|
||||
await this.initFields();
|
||||
return await super.getTextElement(this.fieldContractAddress);
|
||||
}
|
||||
async getCurrentAccount(){
|
||||
await this.initFields();
|
||||
return await super.getTextElement(this.fieldCurrentAccount);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -4,15 +4,15 @@ const Page=page.Page;
|
|||
const By=by.By;
|
||||
const utils=require('../utils//Utils.js');
|
||||
const Utils=utils.Utils;
|
||||
const firstContract=By.xpath("//*[@id=\"root\"]/div/div[1]/section/div[3]/div/div[1]/div/div[2]/div[1]/div");
|
||||
//const buttonOk=By.xpath("/html/body/div[2]/div/div[3]/button[1]");
|
||||
|
||||
const modal=By.className("modal");
|
||||
const buttonOk=By.className("swal2-confirm swal2-styled");
|
||||
|
||||
const buttonDistribute=By.xpath("//*[@id=\"root\"]/div/section/div[1]/div/a/span");
|
||||
const buttonDistribute=By.xpath("//*[contains(text(),'Distribute tokens')]");
|
||||
const buttonFinalize=By.xpath("//*[contains(text(),'Finalize Crowdsale')]");
|
||||
const buttonYesFinalize=By.className("swal2-confirm swal2-styled");
|
||||
|
||||
|
||||
class ManagePage extends Page
|
||||
{
|
||||
constructor(driver) {
|
||||
|
@ -28,7 +28,7 @@ this.driver.get(this.URL);
|
|||
}
|
||||
async isAvailable(){
|
||||
|
||||
return (await super.isElementPresent(firstContract));
|
||||
return (await super.isElementPresent(modal));
|
||||
}
|
||||
/////////////////////////////////
|
||||
async isEnabledDistribute(){
|
||||
|
@ -46,8 +46,8 @@ async isPresentButtonDistribute(){
|
|||
return s;
|
||||
}
|
||||
|
||||
clickButtonDistribute(){
|
||||
super.clickWithWait(buttonDistribute);
|
||||
async clickButtonDistribute(){
|
||||
await super.clickWithWait(buttonDistribute);
|
||||
}
|
||||
////////////////////////////////////////////////////
|
||||
async isEnabledFinalize(){
|
||||
|
@ -74,32 +74,36 @@ clickButtonDistribute(){
|
|||
}
|
||||
|
||||
|
||||
clickButtonYesFinalize(){
|
||||
super.clickWithWait(buttonYesFinalize);
|
||||
async clickButtonYesFinalize(){
|
||||
await super.clickWithWait(buttonYesFinalize);
|
||||
}
|
||||
|
||||
async isPresentPopupYesFinalize()
|
||||
{
|
||||
return await super.isElementPresent(buttonYesFinalize);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
async isPresentButtonOK(){
|
||||
return await super.isElementPresent(buttonFinalize);
|
||||
return await super.isElementPresent(buttonOk);
|
||||
}
|
||||
clickButtonOK(){
|
||||
super.clickWithWait(buttonOk);
|
||||
async clickButtonOK(){
|
||||
await super.clickWithWait(buttonOk);
|
||||
|
||||
}
|
||||
confirmPopup(){
|
||||
async confirmPopup(){
|
||||
|
||||
var c=0;
|
||||
var limit=10;
|
||||
var limit=30;
|
||||
do {
|
||||
|
||||
if (this.isPresentButtonOK) {
|
||||
this.clickButtonOK();
|
||||
this.driver.sleep(1000);
|
||||
if (await this.isPresentButtonOK) {
|
||||
this.driver.sleep(2000);
|
||||
await this.clickButtonOK();
|
||||
return true;
|
||||
}
|
||||
this.driver.sleep(1000);
|
||||
|
||||
c++;
|
||||
if(c>=limit){return false;}
|
||||
}while(true);
|
||||
|
|
|
@ -117,16 +117,22 @@ class MetaMask extends page.Page{
|
|||
return this.driver.findElement(addrWallet).getText();
|
||||
|
||||
}
|
||||
setAccount(user){
|
||||
importAccount(user){
|
||||
this.switchToAnotherPage();
|
||||
this.chooseProvider(user.networkID);
|
||||
//super.clickWithWait(popupAccount);
|
||||
// this.driver.executeScript("document.getElementsByClassName('dropdown-menu-item')[2].click();");
|
||||
this.clickImportAccount();
|
||||
|
||||
super.fillWithWait(fieldPrivateKey,user.privateKey);
|
||||
this.driver.sleep(1500);
|
||||
super.clickWithWait(buttonImport);
|
||||
user.accN=accN-1;
|
||||
this.switchToAnotherPage();
|
||||
}
|
||||
|
||||
selectAccount(user){
|
||||
this.switchToAnotherPage();
|
||||
// this.clickImportAccount();
|
||||
super.clickWithWait(popupAccount);
|
||||
this.driver.executeScript( "document.getElementsByClassName('dropdown-menu-item')["+(user.accN)+"].click();");
|
||||
this.switchToAnotherPage();
|
||||
}
|
||||
|
||||
|
@ -135,21 +141,20 @@ class MetaMask extends page.Page{
|
|||
this.driver.executeScript( "document.getElementsByClassName('dropdown-menu-item')["+(accN+1)+"].click();");
|
||||
accN++;
|
||||
|
||||
|
||||
}
|
||||
|
||||
activate(user){
|
||||
/*activate(user){
|
||||
|
||||
|
||||
this.chooseProvider(user.networkID);
|
||||
this.clickImportAccount();
|
||||
//super.clickWithWait(popupAccount);
|
||||
//this.driver.executeScript( "document.getElementsByClassName('dropdown-menu-item')["+accN+"].click();"););
|
||||
|
||||
super.fillWithWait(fieldPrivateKey,this.owner.privateKey);
|
||||
this.driver.sleep(1500);
|
||||
super.clickWithWait(buttonImport);
|
||||
|
||||
}
|
||||
}*/
|
||||
|
||||
async doTransaction(){
|
||||
this.switchToAnotherPage();
|
||||
|
@ -171,6 +176,7 @@ async doTransaction(){
|
|||
return false;
|
||||
}
|
||||
} while(true);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@ class Page {
|
|||
this.header;
|
||||
}
|
||||
|
||||
|
||||
|
||||
async findElementInArray(locator,className)
|
||||
{
|
||||
var arr=await this.driver.findElements(locator);
|
||||
|
@ -47,6 +49,12 @@ class Page {
|
|||
return q;
|
||||
|
||||
}
|
||||
async getTextElement(element)
|
||||
{return await element.getText();}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
async getText(element)
|
||||
{
|
||||
|
@ -59,8 +67,12 @@ async getURL()
|
|||
open (url){
|
||||
this.driver.get(url);
|
||||
}
|
||||
clearField(element){
|
||||
let field = this.driver.wait(webdriver.until.elementLocated(element), Twait);
|
||||
clearField(element,n){
|
||||
let field;
|
||||
if (n!=1) {
|
||||
field = this.driver.wait(webdriver.until.elementLocated(element), Twait);
|
||||
}
|
||||
else field=element;
|
||||
const c=key.chord(key.CONTROL,"a");
|
||||
const action=this.driver.actions();
|
||||
action.click(field).perform();
|
||||
|
@ -70,14 +82,20 @@ clearField(element){
|
|||
action.sendKeys(key.DELETE).perform();
|
||||
action.sendKeys(key.DELETE).perform();
|
||||
|
||||
|
||||
}
|
||||
oneClick(element){
|
||||
this.driver.findElement(element).click();
|
||||
}
|
||||
waitUntilLocated(element){
|
||||
this.driver.wait(webdriver.until.elementLocated(element), Twait);
|
||||
clickElement(element){
|
||||
element.click();
|
||||
}
|
||||
|
||||
fillField(field,address){
|
||||
field.sendKeys(address);
|
||||
|
||||
}
|
||||
|
||||
|
||||
clickWithWait(element) {
|
||||
let button = this.driver.wait(webdriver.until.elementLocated(element), Twait);
|
||||
button.click();
|
||||
|
@ -90,7 +108,15 @@ oneClick(element){
|
|||
refresh(){
|
||||
this.driver.navigate().refresh();
|
||||
}
|
||||
async findWithWait(element)
|
||||
{
|
||||
await this.driver.wait(webdriver.until.elementLocated(element), Twait);
|
||||
return await this.driver.findElements(element);
|
||||
}
|
||||
clickTo(element){
|
||||
element.click();
|
||||
|
||||
}
|
||||
|
||||
async isDisplayedLoader(){
|
||||
var s=await this.driver.findElement(loader).getAttribute("className");
|
||||
|
|
|
@ -2,57 +2,84 @@ const page=require('./Page.js');
|
|||
const Page=page.Page;
|
||||
const by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
const fieldAddress=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[1]/input");
|
||||
const checkboxTokens=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[2]/div/label[1]/span");
|
||||
const checkboxPercentage=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[2]/div/label[2]/span");
|
||||
const fieldValue=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[3]/input");
|
||||
const buttonAdd=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[2]/div");
|
||||
//const fieldAddress=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[1]/input");
|
||||
//const checkboxTokens=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[2]/div/label[1]/span");
|
||||
//const checkboxPercentage=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[2]/div/label[2]/span");
|
||||
//const fieldValue=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[3]/input");
|
||||
//const buttonAdd=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[2]/div");
|
||||
//*[@id="root"]/div/section/div[2]/div[4]/div[1]/div[2]/div
|
||||
//*[@id="root"]/div/section/div[2]/div[4]/div/div[2]/div
|
||||
//*[@id="root"]/div/section/div[2]/div[4]/div[1]/div[2]/div
|
||||
const buttonAdd=By.className("button button_fill button_fill_plus");
|
||||
|
||||
|
||||
class ReservedTokensPage extends Page{
|
||||
|
||||
constructor(driver) {
|
||||
super(driver);
|
||||
this.URL;
|
||||
this.fieldAddress;
|
||||
this.fieldValue;
|
||||
//this.checkboxTokens;
|
||||
// this.checkboxPercentage;
|
||||
|
||||
}
|
||||
async init(){
|
||||
|
||||
var locator = By.className("input");
|
||||
var arr = await super.findWithWait(locator);
|
||||
this.fieldAddress = arr[3];
|
||||
this.fieldValue = arr[4];
|
||||
locator=By.className("radio-inline");
|
||||
var arr = await super.findWithWait(locator);
|
||||
this.checkboxTokens=arr[0];
|
||||
this.checkboxPercentage=arr[1];
|
||||
}
|
||||
|
||||
|
||||
fillReservedTokens(reservedTokens){
|
||||
|
||||
try {
|
||||
if (reservedTokens.address == undefined) return;
|
||||
|
||||
|
||||
this.fillAddress(reservedTokens.address);
|
||||
this.setDimension(reservedTokens.dimension);
|
||||
this.fillValue(reservedTokens.value);
|
||||
}
|
||||
catch (err){console.log("Reserved tokens: Incorrect data")}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
setDimension(dimension){
|
||||
if (dimension=='percentage') this.clickCheckboxPercentage();
|
||||
async setDimension(dimension){
|
||||
await this.init();
|
||||
if (dimension==='percentage') this.clickCheckboxPercentage();
|
||||
else this.clickCheckboxTokens();
|
||||
}
|
||||
|
||||
|
||||
fillAddress(address){
|
||||
|
||||
super.fillWithWait(fieldAddress,address);
|
||||
}
|
||||
fillValue(value){
|
||||
|
||||
super.fillWithWait(fieldValue,value);
|
||||
}
|
||||
|
||||
clickCheckboxPercentage(){
|
||||
super.clickWithWait(checkboxPercentage);
|
||||
async fillAddress(address){
|
||||
// console.log(address);
|
||||
if (address==undefined) return;
|
||||
else {
|
||||
console.log(address);
|
||||
await this.init();
|
||||
super.fillField(this.fieldAddress, address);
|
||||
}
|
||||
|
||||
}
|
||||
clickCheckboxTokens(){
|
||||
super.clickWithWait(checkboxTokens);
|
||||
async fillValue(value){
|
||||
if (value==undefined) return;
|
||||
await this.init();
|
||||
super.fillField(this.fieldValue,value);
|
||||
}
|
||||
|
||||
|
||||
async clickCheckboxPercentage(){
|
||||
await this.init();
|
||||
super.clickTo(this.checkboxPercentage);
|
||||
|
||||
|
||||
}
|
||||
async clickCheckboxTokens() {
|
||||
await this.init();
|
||||
super.clickTo(this.checkboxTokens);
|
||||
}
|
||||
clickButtonAddReservedTokens(){
|
||||
super.clickWithWait(buttonAdd);
|
||||
|
|
|
@ -7,51 +7,54 @@ const webdriver = require('selenium-webdriver'),
|
|||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
var COUNT_TIERS=0;
|
||||
const fieldAddressTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div[2]/div[2]/div/div[1]/div[1]/input");
|
||||
const fieldAddress1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const adj="div[1]/";
|
||||
//const adj="";
|
||||
const fieldAddressTier1=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[3]/div[2]/div[2]/div/div[1]/div[1]/input");
|
||||
const fieldAddress1="//*[@id=\"root\"]/div/"+adj+"section/div[4]/div[";
|
||||
const fieldAddress2="]/div[2]/div[2]/div/div[1]/div[1]/input";
|
||||
|
||||
const fieldMinTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div[2]/div[2]/div/div[1]/div[2]/input");
|
||||
const fieldMin1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldMinTier1=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[3]/div[2]/div[2]/div/div[1]/div[2]/input");
|
||||
const fieldMin1="//*[@id=\"root\"]/div/"+adj+"section/div[4]/div[";
|
||||
const fieldMin2="]/div[2]/div[2]/div/div[1]/div[2]/input";
|
||||
|
||||
const fieldMaxTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div[2]/div[2]/div/div[1]/div[3]/input");
|
||||
const fieldMax1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldMaxTier1=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[3]/div[2]/div[2]/div/div[1]/div[3]/input");
|
||||
const fieldMax1="//*[@id=\"root\"]/div/"+adj+"section/div[4]/div[";
|
||||
const fieldMax2="]/div[2]/div[2]/div/div[1]/div[3]/input";
|
||||
|
||||
const buttonAdd=By.className("button button_fill button_fill_plus");
|
||||
const buttonAdd1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const buttonAdd1="//*[@id=\"root\"]/div/"+adj+"section/div[4]/div[";
|
||||
const buttonAdd2="]/div[2]/div[2]/div/div[2]/div";
|
||||
|
||||
const fieldNameTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[1]/div[1]/input\n");
|
||||
const checkboxModifyOffTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[1]/div[2]/div/label[2]/span\n");
|
||||
const checkboxModifyOnTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[1]/div[2]/div/label[1]/span");
|
||||
const fieldRateTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[3]/div[1]/input");
|
||||
const fieldSupplyTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[3]/div[2]/input");
|
||||
const fieldStartTimeTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[2]/div[1]/input");
|
||||
const fieldEndTimeTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[2]/div[2]/input");
|
||||
const fieldNameTier1=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[3]/div/div[1]/div[1]/input\n");
|
||||
const checkboxModifyOffTier1=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[3]/div/div[1]/div[2]/div/label[2]/span\n");
|
||||
const checkboxModifyOnTier1=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[3]/div/div[1]/div[2]/div/label[1]/span");
|
||||
const fieldRateTier1=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[3]/div/div[3]/div[1]/input");
|
||||
const fieldSupplyTier1=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[3]/div/div[3]/div[2]/input");
|
||||
const fieldStartTimeTier1=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[3]/div/div[2]/div[1]/input");
|
||||
const fieldEndTimeTier1=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[3]/div/div[2]/div[2]/input");
|
||||
|
||||
const fieldName1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldName1="//*[@id=\"root\"]/div/"+adj+"section/div[4]/div[";
|
||||
const fieldName2="]/div/div[1]/div[1]/input";
|
||||
const fieldRate1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldRate1="//*[@id=\"root\"]/div/"+adj+"section/div[4]/div[";
|
||||
const fieldRate2="]/div/div[3]/div[1]/input";
|
||||
|
||||
|
||||
const fieldSupply1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldSupply1="//*[@id=\"root\"]/div/"+adj+"section/div[4]/div[";
|
||||
const fieldSupply2="]/div/div[3]/div[2]/input\n";
|
||||
|
||||
const checkboxModifyOn1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const checkboxModifyOn1="//*[@id=\"root\"]/div/"+adj+"section/div[4]/div[";
|
||||
const checkboxModifyOn2="]/div/div[1]/div[2]/div/label[1]/span\n";
|
||||
const checkboxModifyOff1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const checkboxModifyOff1="//*[@id=\"root\"]/div/"+adj+"section/div[4]/div[";
|
||||
const checkboxModifyOff2="]/div/div[1]/div[2]/div/label[2]/span\n";
|
||||
|
||||
const fieldStartTime1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldStartTime1="//*[@id=\"root\"]/div/"+adj+"section/div[4]/div[";
|
||||
const fieldStartTime2="]/div/div[2]/div[1]/input";
|
||||
|
||||
const fieldEndTime1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldEndTime1="//*[@id=\"root\"]/div/"+adj+"section/div[4]/div[";
|
||||
const fieldEndTime2="]/div/div[2]/div[2]/input";
|
||||
|
||||
|
||||
|
||||
class TierPage extends page.Page{
|
||||
|
||||
constructor(driver,tier){
|
||||
|
@ -59,8 +62,6 @@ class TierPage extends page.Page{
|
|||
this.URL;
|
||||
this.tier=tier;
|
||||
this.number=COUNT_TIERS++;
|
||||
|
||||
|
||||
}
|
||||
print(){
|
||||
console.log(typeof(this.tier));
|
||||
|
@ -72,6 +73,7 @@ class TierPage extends page.Page{
|
|||
this.fillRate();
|
||||
this.fillSupply();
|
||||
this.setModify();
|
||||
|
||||
this.fillStartTime();
|
||||
this.fillEndTime();
|
||||
if (this.tier.whitelist!=null)
|
||||
|
@ -129,7 +131,7 @@ class TierPage extends page.Page{
|
|||
|
||||
}
|
||||
fillStartTime()
|
||||
{
|
||||
{ if((this.tier.startDate==undefined)) return;
|
||||
let locator;
|
||||
if (this.number==0) {locator=fieldStartTimeTier1;}
|
||||
else {locator=by.By.xpath(fieldStartTime1+this.number+fieldStartTime2);}
|
||||
|
@ -143,6 +145,7 @@ class TierPage extends page.Page{
|
|||
}
|
||||
fillEndTime()
|
||||
{
|
||||
if((this.tier.endDate==undefined)) return;
|
||||
let locator;
|
||||
|
||||
if (this.number==0) {locator=fieldEndTimeTier1;}
|
||||
|
|
|
@ -4,7 +4,8 @@ const webdriver = require('selenium-webdriver'),
|
|||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const buttonContinue= by.By.xpath("//*[@id=\"root\"]/div/section/div[3]/a/span");
|
||||
const By=by.By;
|
||||
const buttonContinue= By.className("button button_fill");
|
||||
|
||||
|
||||
class WizardStep1 extends page.Page{
|
||||
|
|
|
@ -5,26 +5,45 @@ const webdriver = require('selenium-webdriver'),
|
|||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
|
||||
const fieldName=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[1]/input");
|
||||
const fieldTicker=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/input");
|
||||
const fieldDecimals=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[3]/input");
|
||||
const buttonContinue=By.xpath("//*[@id=\"root\"]/div/section/div[3]/a");
|
||||
//const fieldName=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[1]/input");
|
||||
//const fieldTicker=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/input");
|
||||
//const fieldDecimals=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[3]/input");
|
||||
//const buttonContinue=By.xpath("//*[@id=\"root\"]/div/section/div[3]/a");
|
||||
const buttonContinue=By.xpath("//*[contains(text(),'Continue')]");
|
||||
|
||||
class WizardStep2 extends page.Page {
|
||||
|
||||
constructor(driver) {
|
||||
super(driver);
|
||||
this.URL;
|
||||
this.fieldName;
|
||||
this.fieldTicker;
|
||||
this.fieldDecimals;
|
||||
|
||||
}
|
||||
|
||||
fillName(name){
|
||||
super.fillWithWait(fieldName,name);
|
||||
async init(){
|
||||
|
||||
var locator = By.className("input");
|
||||
var arr = await super.findWithWait(locator);
|
||||
this.fieldName = arr[0];
|
||||
this.fieldTicker = arr[1];
|
||||
this.fieldDecimals = arr[2];
|
||||
}
|
||||
|
||||
|
||||
|
||||
async fillName(name){
|
||||
await this.init();
|
||||
super.fillField(this.fieldName,name);
|
||||
}
|
||||
fillTicker(name){
|
||||
super.fillWithWait(fieldTicker,name);
|
||||
async fillTicker(name){
|
||||
await this.init();
|
||||
super.fillField(this.fieldTicker,name);
|
||||
}
|
||||
fillDecimals(name){
|
||||
super.fillWithWait(fieldDecimals,name);
|
||||
async fillDecimals(name){
|
||||
await this.init();
|
||||
super.fillField(this.fieldDecimals,name);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -5,18 +5,19 @@ const webdriver = require('selenium-webdriver'),
|
|||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
|
||||
const fieldWalletAddress=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[1]/input");
|
||||
const fieldMinCap=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[3]/div[1]/input");
|
||||
const boxGasPriceSafe=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[2]/div[1]/label/span");
|
||||
const boxGasPriceNormal=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[2]/div[2]/label/span");
|
||||
const boxGasPriceFast=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[2]/div[3]/label/span");
|
||||
const boxGasPriceCustom=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[2]/div[4]/label/span");
|
||||
const fieldGasPriceCustom=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[2]/input");
|
||||
const buttonContinue=By.xpath("//*[@id=\"root\"]/div/section/div[5]/div/a");
|
||||
const buttonAddTier=By.xpath("//*[@id=\"root\"]/div/section/div[5]/div/div");
|
||||
const boxWhitelistingYes=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[3]/div[2]/div/label[1]/span");
|
||||
const boxWhitelistingNo=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[3]/div[2]/div/label[2]/span");
|
||||
const adj="div[1]/";
|
||||
//const adj="";
|
||||
const fieldWalletAddress=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[2]/div[2]/div[2]/div[1]/input");
|
||||
const fieldMinCap=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[2]/div[2]/div[3]/div[1]/input");
|
||||
const boxGasPriceSafe=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[2]/div[2]/div[2]/div[2]/div[1]/label/span");
|
||||
const boxGasPriceNormal=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[2]/div[2]/div[2]/div[2]/div[2]/label/span");
|
||||
const boxGasPriceFast=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[2]/div[2]/div[2]/div[2]/div[3]/label/span");
|
||||
const boxGasPriceCustom=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[2]/div[2]/div[2]/div[2]/div[4]/label/span");
|
||||
const fieldGasPriceCustom=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[2]/div[2]/div[2]/div[2]/input");
|
||||
const buttonContinue=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[5]/div/a");
|
||||
const buttonAddTier=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[5]/div/div");
|
||||
const boxWhitelistingYes=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[2]/div[2]/div[3]/div[2]/div/label[1]/span");
|
||||
const boxWhitelistingNo=By.xpath("//*[@id=\"root\"]/div/"+adj+"section/div[2]/div[2]/div[3]/div[2]/div/label[2]/span");
|
||||
|
||||
class WizardStep3 extends page.Page{
|
||||
|
||||
|
@ -32,6 +33,7 @@ class WizardStep3 extends page.Page{
|
|||
|
||||
}
|
||||
fillWalletAddress(address){
|
||||
//console.log("QQQQQ1");
|
||||
super.clearField(fieldWalletAddress);
|
||||
super.fillWithWait(fieldWalletAddress,address);
|
||||
}
|
||||
|
|
|
@ -4,9 +4,9 @@ const webdriver = require('selenium-webdriver'),
|
|||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
|
||||
const buttonNewCrowdsale=by.By.css("#root > div > div:nth-child(2) > section > div.crowdsale > div > div > a > span");
|
||||
const buttonChooseContract=by.By.xpath("//*[@id=\"root\"]/div/div[1]/section/div[1]/div/div/div");
|
||||
const By=by.By;
|
||||
const buttonNewCrowdsale=By.className("button button_fill");
|
||||
const buttonChooseContract=By.className("button button_outline");
|
||||
|
||||
class WizardWelcome extends page.Page{
|
||||
|
||||
|
@ -16,12 +16,6 @@ class WizardWelcome extends page.Page{
|
|||
|
||||
}
|
||||
|
||||
open()
|
||||
{
|
||||
this.driver.get(this.URL);
|
||||
|
||||
}
|
||||
|
||||
clickButtonNewCrowdsale(){
|
||||
super.clickWithWait(buttonNewCrowdsale);
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T2RnWy 02/10/18",
|
||||
"name": "T2RnWy.json",
|
||||
"ticker": "test",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
|
@ -20,9 +20,9 @@
|
|||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "11:00am",
|
||||
"endDate":"02/10/2018",
|
||||
"startDate": "",
|
||||
"startTime": "",
|
||||
"endDate":"02/20/2018",
|
||||
"endTime":"11:10am",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
|
@ -37,9 +37,9 @@
|
|||
{
|
||||
"name":"###2",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startDate": "02/20/2018",
|
||||
"startTime": "11:15am",
|
||||
"endDate":"02/10/2018",
|
||||
"endDate":"02/20/2018",
|
||||
"endTime":"11:25pm",
|
||||
"rate":100,
|
||||
"supply": 100,
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "simple.json",
|
||||
"ticker": "test",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
"address" : "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "percentage",
|
||||
"value": 99
|
||||
},
|
||||
{
|
||||
"address" : "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "tokens",
|
||||
"value":333
|
||||
}
|
||||
],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice":40,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "",
|
||||
"startTime": "",
|
||||
"endDate":"",
|
||||
"endTime":"",
|
||||
"rate":100,
|
||||
"supply": 20,
|
||||
"whitelist":[]
|
||||
}]
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
//const Web3 = require('web3');
|
||||
const fs=require('fs');
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
|
@ -15,76 +16,82 @@ const MetaMask=metaMask.MetaMask;
|
|||
const metaMaskWallet=require('../entity/MetaMaskWallet.js');
|
||||
const MetaMaskWallet=metaMaskWallet.MetaMaskWallet;
|
||||
const crowdsale=require('../entity/Crowdsale.js');
|
||||
const Crowdsale=crowdsale.Crowdsale;
|
||||
const utils=require('../utils/Utils.js');
|
||||
const Utils=utils.Utils;
|
||||
const assert = require('assert');
|
||||
|
||||
class Test1 extends BaseTest {
|
||||
constructor(driver) {
|
||||
constructor(driver,outputPath) {
|
||||
super(driver);
|
||||
this.outputPath=outputPath;
|
||||
|
||||
|
||||
}
|
||||
// Ow8 Owner can create crowdsale with parameters:
|
||||
// single-tier, no reserved tokens, no whitelist
|
||||
//Ow19 Owner can distribute tokens after crowdsale
|
||||
// Ow18 Owner can finalize crowdsale after end time of latest tier
|
||||
// single-tier, reserved tokens, no whitelist
|
||||
// Ow19 Owner can distribute tokens after crowdsale
|
||||
// Ow18 Owner can finalize crowdsale after all tokens will sold
|
||||
//I14 Investor can buy if no whitelist in crowdsaleI14 Investor can buy if no whitelist in crowdsale
|
||||
//I15 Investors receive right amount of tokens after finalize
|
||||
|
||||
|
||||
async run() {
|
||||
var s="Test #1"+"\n"+
|
||||
" #Ow8 Owner can create crowdsale with parameters:\n"+
|
||||
"single-tier, reserved tokens, no whitelist.\n"+
|
||||
" #Ow19 Owner can distribute tokens after crowdsale. \n"+
|
||||
" #Ow18 Owner can finalize crowdsale after all tokens will sold.\n"+
|
||||
" #I14 Investor can buy if no whitelist in crowdsale.\n"+
|
||||
" #I15 Investors receive right amount of tokens after finalization.\n"+
|
||||
" #I25 Reserved addresses receive right amount of tokens after distribution.\n"
|
||||
|
||||
var b=false;
|
||||
if (!fs.existsSync(this.outputPath))
|
||||
fs.mkdirSync(this.outputPath);
|
||||
var outputPath=this.outputPath+"/result"+Utils.getDate();
|
||||
if (!fs.existsSync(outputPath))
|
||||
fs.mkdirSync(outputPath);
|
||||
var logFile=outputPath+"/Test1"+Utils.getDate()+".log";
|
||||
fs.writeFileSync(logFile, "Test start time:"+Utils.getDate()+"\n");
|
||||
fs.appendFileSync(logFile,s);
|
||||
var ownerFile='./owners/owner1.json';
|
||||
var owner=new Owner(this.driver,ownerFile);
|
||||
var investorFile='./investors/investor1.json';
|
||||
var investor = new Investor(this.driver,investorFile);
|
||||
|
||||
var scenario='./scenarios/T1RnWn_0005.json';
|
||||
var crowdsale=await owner.createCrowdsale(scenario);
|
||||
var scenario='./scenarios/simple.json';
|
||||
fs.appendFileSync(logFile,'Owner: '+ownerFile+"\n");
|
||||
fs.appendFileSync(logFile,'Investor: '+investorFile+"\n");
|
||||
fs.appendFileSync(logFile,'Scenario: '+scenario+"\n");
|
||||
|
||||
console.log("Currency"+crowdsale.currency.print());
|
||||
console.log("TokenAddress"+crowdsale.tokenAddress);
|
||||
console.log("ContractAddress"+crowdsale.contractAddress);
|
||||
console.log("url"+crowdsale.url);
|
||||
var crowdsale=await owner.createCrowdsale(scenario,outputPath,logFile);
|
||||
|
||||
s= "TokenAddress: "+crowdsale.tokenAddress+"\n"+
|
||||
"ContractAddress: "+crowdsale.contractAddress+"\n"+
|
||||
"url: "+crowdsale.url+"\n";
|
||||
fs.appendFileSync(logFile,s);
|
||||
|
||||
investor.setMetaMaskAccount();
|
||||
investor.open(crowdsale.url)
|
||||
investor.open(crowdsale.url);
|
||||
|
||||
b=await investor.contribute(crowdsale.currency.tiers[1].supply);//buy ALL
|
||||
b=await investor.contribute(crowdsale.currency.tiers[0].supply);//buy ALL
|
||||
assert.equal(b,true,"Test1->Investor->Contribution failed");
|
||||
owner.setMetaMaskAccount();
|
||||
b=await owner.distribute(crowdsale);
|
||||
assert.equal(b,true,"Test1->Owner->Distribution failed");
|
||||
this.driver.sleep(5000);
|
||||
b=await owner.finalize(crowdsale);
|
||||
assert.equal(b,true,"Test1->Owner->Finalization failed");
|
||||
var bal=crowdsale.currency.tiers[1].supply*(crowdsale.currency.supply/crowdsale.currency.rate);
|
||||
var n=await owner.balance();
|
||||
assert.equal(b,bal,"Test1->Owner->Wrong balance of token");
|
||||
n=await investor.balanceTokens(crowdsale.tokenAddress);
|
||||
assert.equal(b,crowdsale.currency.tiers[1].supply,"Test1->Investor->Wrong balance of token");
|
||||
|
||||
//var bal=crowdsale.currency.tiers[0].supply*(crowdsale.currency.supply/crowdsale.currency.rate);
|
||||
// var n=await owner.balance();
|
||||
// assert.equal(b,bal,"Test1->Owner->Wrong balance of token");
|
||||
// n=await investor.balanceTokens(crowdsale.tokenAddress);
|
||||
// assert.equal(b,crowdsale.currency.tiers[1].supply,"Test1->Investor->Wrong balance of token");
|
||||
fs.appendFileSync(logFile, "Test end time:"+Utils.getDate()+'\n');
|
||||
}
|
||||
|
||||
}
|
||||
module.exports.Test1=Test1;
|
||||
|
||||
|
||||
// https://wizard.poa.network/manage/0x011C0608e9858f22564C31199438f9a732B6f157
|
||||
// crowdsale.contractAddress="0x72A02BB92714c8c675785cD2f6748220e66243c2";
|
||||
//crowdsale.tokenAddress="0x89F0d1E1a12CAC229b71F687939e7bE7b45CF249";//yes finalize,no distribute button
|
||||
//crowdsale.contractAddress="0x41ED3972fEBFa8d62B201eE3184D6Cf09766E440";
|
||||
//crowdsale.tokenAddress="0xd81838C299a2074478fBBb5e32B120Aa44025680";//yes finalize,yes distribute button
|
||||
|
||||
|
||||
/*
|
||||
var scenario='./scenarios/T1RnWy.json';
|
||||
|
||||
var crowdsale=await own.createCrowdsale(scenario);
|
||||
console.log("TokenAddress"+crowdsale.tokenAddress);
|
||||
console.log("ContractAddress"+crowdsale.contractAddress);
|
||||
console.log("url"+crowdsale.url);
|
||||
*/
|
||||
|
||||
//crowdsale.url="https://wizard.poa.network/invest?addr=0xEFd615B84Bb5452162B608D5Af322fE967264f59&networkID=4";
|
||||
//console.log("Hello!");
|
||||
|
||||
|
||||
|
|
|
@ -18,6 +18,8 @@ const fs = require('fs');
|
|||
const metaMaskWallet=require('../entity/MetaMaskWallet.js');
|
||||
const MetaMaskWallet=metaMaskWallet.MetaMaskWallet;
|
||||
|
||||
const assert = require('assert');
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -38,7 +40,7 @@ class Test2 extends baseTest.BaseTest {
|
|||
var mngPage=new ManagePage(this.driver);
|
||||
|
||||
metaMask.open();
|
||||
metaMask.activate();
|
||||
//metaMask.activate();
|
||||
welcomePage.switchToAnotherPage();
|
||||
welcomePage.open();
|
||||
welcomePage.clickButtonChooseContract();
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
const baseTest=require('./BaseTest.js');
|
||||
const BaseTest=baseTest.BaseTest;
|
||||
const owner=require('../entity/Owner.js');
|
||||
const Owner=owner.Owner;
|
||||
const investPage=require('../pages/InvestPage.js');
|
||||
const InvestPage=investPage.InvestPage;
|
||||
const metaMaskWallet=require('../entity/MetaMaskWallet.js');
|
||||
|
@ -8,6 +10,13 @@ const metaMask=require('../pages/MetaMask.js');
|
|||
const MetaMask=metaMask.MetaMask;
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
const utils=require('../utils/Utils.js');
|
||||
const Utils=utils.Utils;
|
||||
const crowdsale=require('../entity/Crowdsale.js');
|
||||
const Crowdsale=crowdsale.Crowdsale;
|
||||
const currency=require('../entity/Currency.js');
|
||||
const Currency=currency.Currency;
|
||||
const assert = require('assert');
|
||||
|
||||
class Test3 extends BaseTest
|
||||
{
|
||||
|
@ -18,27 +27,21 @@ class Test3 extends BaseTest
|
|||
}
|
||||
async run()
|
||||
{
|
||||
var wallet=new MetaMaskWallet();
|
||||
wallet.account="0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411";
|
||||
wallet.privateKey="03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0";
|
||||
wallet.networkID="4";
|
||||
var metaMask = new MetaMask(this.driver,wallet);
|
||||
metaMask.switchToAnotherPage();
|
||||
metaMask.chooseProvider(4);
|
||||
metaMask.switchToAnotherPage();
|
||||
|
||||
var e=new InvestPage(this.driver);
|
||||
Utils.open("https://wizard.poa.network/invest?addr=0xcB82AF7fD8Baa5A144Eaa90101c4901D987f9bf5&networkID=4")
|
||||
|
||||
e.waitUntilLoaderGone().then().catch();
|
||||
console.log(await e.getTokenAddress());
|
||||
console.log(await e.getContractAddress());
|
||||
console.log(await e.getURL());
|
||||
|
||||
|
||||
var cr=new Crowdsale();
|
||||
cr.contractAddress="0x5Aa23F2F974432Cd9a631F713944C9077bacb60f";
|
||||
cr.tokenAddress="0xA293D65251E7690dB079489F34c2e541AF410e4d";//yes finalize,yes distribute button
|
||||
|
||||
|
||||
var ownerFile='./owners/owner1.json';
|
||||
var owner=new Owner(this.driver,ownerFile);
|
||||
owner.setMetaMaskAccount();
|
||||
var b;
|
||||
|
||||
//b=await owner.distribute(cr);
|
||||
//assert.equal(b,true,"Test1->Owner->Distribution failed");
|
||||
b=await owner.finalize(cr);
|
||||
assert.equal(b,true,"Test1->Owner->Finalization failed");
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,10 @@ const metaMaskWallet=require('../entity/MetaMaskWallet.js');
|
|||
const MetaMaskWallet=metaMaskWallet.MetaMaskWallet;
|
||||
const crowdsale=require('../entity/Crowdsale.js');
|
||||
const Crowdsale=crowdsale.Crowdsale;
|
||||
const utils=require('../utils/Utils.js');
|
||||
const Utils=utils.Utils;
|
||||
const assert = require('assert');
|
||||
|
||||
|
||||
|
||||
class Test4 extends BaseTest {
|
||||
|
@ -24,22 +28,22 @@ class Test4 extends BaseTest {
|
|||
|
||||
async run(){
|
||||
|
||||
|
||||
|
||||
var wallet=new MetaMaskWallet();
|
||||
wallet.account="0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411";
|
||||
wallet.privateKey="03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0";
|
||||
wallet.networkID="4";
|
||||
var metaMask = new MetaMask(this.driver,wallet);
|
||||
metaMask.switchToAnotherPage();
|
||||
metaMask.createAccount();
|
||||
metaMask.createAccount();
|
||||
metaMask.switchToAnotherPage();
|
||||
|
||||
var b=false;
|
||||
var investorFile='./investors/investor1.json';
|
||||
var investor = new Investor(this.driver,investorFile);
|
||||
var url="https://wizard.poa.network/invest?addr=0xF17ECacECD45c8e89906362Dd5573FD813C971Ab&networkID=4";
|
||||
investor.setMetaMaskAccount();
|
||||
investor.open(url);
|
||||
|
||||
metaMask.setAccount(investor);
|
||||
|
||||
|
||||
var balance=await investor.getBalanceFromPage(url);
|
||||
console.log(balance);
|
||||
b=await investor.contribute(3);//buy ALL
|
||||
var newBalance=await investor.getBalanceFromPage(url);
|
||||
console.log(newBalance);
|
||||
|
||||
assert.equal(b,true,"Test1->Investor->Contribution failed");
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
//console.log(module.filename);
|
||||
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
|
@ -8,6 +8,24 @@ const Web3 = require('web3');
|
|||
|
||||
class Utils {
|
||||
|
||||
static getOutputPath(fileName) {
|
||||
var obj = JSON.parse(fs.readFileSync(fileName, "utf8"));
|
||||
return obj.outputPath;
|
||||
|
||||
}
|
||||
|
||||
static getScenarioFile(fileName) {
|
||||
var obj = JSON.parse(fs.readFileSync(fileName, "utf8"));
|
||||
return obj.scenario;
|
||||
|
||||
}
|
||||
|
||||
static getDate() {
|
||||
var d = new Date();
|
||||
var date = "_" + (d.getMonth() + 1) + "_" + d.getDate() + "_"
|
||||
+ d.getFullYear() + "_" + d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds();
|
||||
return date;
|
||||
}
|
||||
|
||||
openAnotherTab(driver, URL) {
|
||||
driver.executeScript('window.open("' + URL + '");');
|
||||
|
@ -52,12 +70,12 @@ class Utils {
|
|||
driver.takeScreenshot()
|
||||
.then((res) => {
|
||||
//console.log(res);
|
||||
var d = new Date();
|
||||
var buf = new Buffer(res, 'base64');
|
||||
var buf = new Buffer(res, 'base64');
|
||||
|
||||
fs.writeFileSync(path + "/screenshoot" + Utils.getDate() + '.png', buf);
|
||||
|
||||
fs.writeFileSync('./artifacts/screenshoot' + d.getTime() + '.png', buf);//for circleci
|
||||
fs.writeFileSync(path + "/screenshoot" + d.getTime() + '.png', buf);
|
||||
//fs.writeFileSync('./artifacts/screenshoot' + d.getTime() + '.png', buf);//for circleci
|
||||
//fs.writeFileSync(path + "/screenshoot" + d.getTime() + '.png', buf);
|
||||
});
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue