From d88e9758df11c28faa899acfc8029eac13850dc1 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Mon, 9 Mar 2020 16:51:00 +0900 Subject: [PATCH 001/207] =?UTF-8?q?EccubeEvents::ADMIN=5FADMIM=5FINDEX=5FS?= =?UTF-8?q?ALES=20=E3=81=A7=E3=82=B0=E3=83=A9=E3=83=95=E3=81=AE=E9=9B=86?= =?UTF-8?q?=E8=A8=88=E6=9D=A1=E4=BB=B6=E3=82=82=E5=A4=89=E6=9B=B4=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E3=81=AA=E3=82=88=E3=81=86=E3=81=AB=E3=82=A4=E3=83=99?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/Admin/AdminController.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Eccube/Controller/Admin/AdminController.php b/src/Eccube/Controller/Admin/AdminController.php index 80ee0ccce82..b0ff9758d5e 100644 --- a/src/Eccube/Controller/Admin/AdminController.php +++ b/src/Eccube/Controller/Admin/AdminController.php @@ -285,6 +285,15 @@ public function sale(Request $request) return $this->json(['status' => 'NG'], 400); } + $event = new EventArgs( + [ + 'excludes' => $this->excludes, + ], + $request + ); + $this->eventDispatcher->dispatch(EccubeEvents::ADMIN_ADMIM_INDEX_SALES, $event); + $this->excludes = $event->getArgument('excludes'); + // 週間の売上金額 $toDate = Carbon::now(); $fromDate = Carbon::today()->subWeek(); From 81ad221f851e962f83de9abddc949b3b00c19872 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Wed, 16 Sep 2020 16:18:25 +0900 Subject: [PATCH 002/207] =?UTF-8?q?OWASP=20ZAP=20=E9=80=A3=E6=90=BA?= =?UTF-8?q?=E7=94=A8=E3=81=AE=20docker-compose=20=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose-owaspzap.yml | 19 + zap/.gitignore | 2 + zap/.htaccess | 2 + zap/Dockerfile | 8 + zap/README.md | 51 + zap/admin.context | 82 + zap/containing_urls.txt | 298 ++ zap/front_guest.context | 74 + zap/front_login.context | 83 + zap/options.properties | 45 + zap/selenium/ide/Manual_Inspection.side | 4668 +++++++++++++++++ zap/selenium/ide/Manual_Inspection_Admin.side | 4655 ++++++++++++++++ 12 files changed, 9987 insertions(+) create mode 100644 docker-compose-owaspzap.yml create mode 100644 zap/.gitignore create mode 100644 zap/.htaccess create mode 100644 zap/Dockerfile create mode 100644 zap/README.md create mode 100644 zap/admin.context create mode 100644 zap/containing_urls.txt create mode 100644 zap/front_guest.context create mode 100644 zap/front_login.context create mode 100644 zap/options.properties create mode 100644 zap/selenium/ide/Manual_Inspection.side create mode 100644 zap/selenium/ide/Manual_Inspection_Admin.side diff --git a/docker-compose-owaspzap.yml b/docker-compose-owaspzap.yml new file mode 100644 index 00000000000..220d7802c6b --- /dev/null +++ b/docker-compose-owaspzap.yml @@ -0,0 +1,19 @@ +version: "3" + +services: + zap: + build: + context: ./zap + command: bash -c "zap.sh -cmd -addonupdate -addoninstall help_ja_JP -addoninstall wappalyzer -addoninstall sequence -addonuninstall hud -configfile /zap/wrk/options.properties -certpubdump /zap/wrk/owasp_zap_root_ca.cer && zap-webswing.sh" + # 詳細スキャンしたい場合はこちらを使用する command: bash -c "zap.sh -cmd -addonupdate -addoninstall help_ja_JP -addoninstall wappalyzer -addoninstall ascanrulesAlpha -addoninstall ascanrulesBeta -addoninstall sqliplugin -addoninstall sequence -addonuninstall hud -configfile /zap/wrk/options.properties -certpubdump /zap/wrk/owasp_zap_root_ca.cer && zap-webswing.sh" + volumes: + - ./zap:/zap/wrk/ + ports: + - "8081:8080" + - "8090:8090" + depends_on: + - ec-cube + networks: + - backend + - default + tty: true diff --git a/zap/.gitignore b/zap/.gitignore new file mode 100644 index 00000000000..30430fa4e05 --- /dev/null +++ b/zap/.gitignore @@ -0,0 +1,2 @@ +/owasp_zap_root_ca.cer +/sessions diff --git a/zap/.htaccess b/zap/.htaccess new file mode 100644 index 00000000000..281d5c33db3 --- /dev/null +++ b/zap/.htaccess @@ -0,0 +1,2 @@ +order allow,deny +deny from all diff --git a/zap/Dockerfile b/zap/Dockerfile new file mode 100644 index 00000000000..10833bc889e --- /dev/null +++ b/zap/Dockerfile @@ -0,0 +1,8 @@ +FROM owasp/zap2docker-stable + +USER root +RUN apt-get update \ + && apt-get install --no-install-recommends -y \ + fonts-noto-cjk + +USER zap diff --git a/zap/README.md b/zap/README.md new file mode 100644 index 00000000000..c61272f8371 --- /dev/null +++ b/zap/README.md @@ -0,0 +1,51 @@ +# EC-CUBE Penetration Testing with OWASP ZAP + +## Quick Start + +- 意図しない外部サイトへの攻撃を防ぐため、 OWASP ZAP は必ず **プロテクトモード** で使用してください + +1. [docker-compose を使用して EC-CUBE をインストールします](https://doc4.ec-cube.net/quickstart_install#4docker-compose%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B) +1. テスト用のデータを生成しておきます + ```shell + ## APP_ENV=dev に設定 + sed -i.bak -e 's/APP_ENV=prod/APP_ENV=dev/g' ./.env + ## customer を1件生成 + docker-compose -f docker-compose.yml -f docker-compose-owaspzap.yml exec ec-cube bin/console eccube:fixtures:generate --products=0 --customers=1 --orders=0 + ## メールアドレスを zap_user@example.com に変更 + docker-compose -f docker-compose.yml -f docker-compose-owaspzap.yml exec ec-cube bin/console doctrine:query:sql "UPDATE dtb_customer SET email = 'zap_user@example.com' WHERE id = 1;" + ## ZAP でテストする場合は APP_ENV=prod に設定しておく + sed -i.bak -e 's/APP_ENV=dev/APP_ENV=prod/g' ./.env + ``` +1. OWASP ZAP コンテナを起動します + ```shell + docker-compose -f docker-compose.yml -f docker-compose-owaspzap.yml up -d zap + ``` + - *アドオンをアップデートするため、少し時間がかかります* + - 起動してから、 Firefox 以外のブラウザで `http://localhost:8081/zap/` へアクセスすると、OWASP ZAP の管理画面が表示されます +1. Firefox を起動し、設定→ネットワーク設定→接続設定からプロキシーの設定をします + - **手動でプロキシーを設定する** を選択 + - HTTPプロキシー: localhost, ポート: 8090 + - **このプロキシーを FTP と HTTPS でも使用する** にチェックを入れる +1. Firefox に SSL ルート CA 証明書をインポートします + - ローカルの `path/to/ec-cube/zap/owasp_zap_root_ca.cer` に証明書が生成されています + - 設定→プライバシーとセキュリティ→証明書→証明書を表示から証明書マネージャーを表示 + - 認証局証明書→読み込むをクリックし、 `path/to/ec-cube/zap/owasp_zap_root_ca.cer` を選択 + - **この認証局によるウェブサイトの識別を信頼する** にチェックを入れ、 OK をクリック、設定を閉じます +1. Firefox で `https://ec-cube/` へアクセスし、プロキシー経由で EC-CUBE にアクセスできるのを確認します。 +1. コンテキストをインポートします。 + ```shell + ## 管理画面用 + docker-compose -f docker-compose.yml -f docker-compose-owaspzap.yml exec zap zap-cli -p 8090 context import /zap/wrk/admin.context + ## フロント(ログイン用) + docker-compose -f docker-compose.yml -f docker-compose-owaspzap.yml exec zap zap-cli -p 8090 context import /zap/wrk/front_login.context + ``` + - *フロントと管理画面のコンテキストを同時にインポートすると、セッションが競合してログインできなくなる場合があるため注意* +1. OWASP ZAP のツールバーにある [Forced User Mode On/Off ボタン](https://www.zaproxy.org/docs/desktop/ui/tltoolbar/#--forced-user-mode-on--off) を ON にすると、OWASP ZAP の自動ログインが有効になり、ユーザーログイン中のテストが有効になります +1. [OWASP ZAP Getting Started](https://qiita.com/koujimatsuda11/items/3d5b7eac5f9455015ba6) を参考に、テストを実施します + + +## 参考 + +- [DockerでOWASP ZAPを使う](https://pc.atsuhiro-me.net/entry/2019/08/19/011324) +- [Docker版OWASP ZAPを動かしてみる](https://qiita.com/koujimatsuda11/items/83558cd62c20141ebdda) +- [テスティングガイド](https://owasp.org/www-pdf-archive/OTGv3Japanese.pdf) diff --git a/zap/admin.context b/zap/admin.context new file mode 100644 index 00000000000..d13e9471f0d --- /dev/null +++ b/zap/admin.context @@ -0,0 +1,82 @@ + + + + admin + + true + \Qhttps://ec-cube/admin\E.* + \Qhttps://ec-cube/_wdt\E.* + \Qhttps://ec-cube/_profile\E.* + \Qhttps://ec-cube/html\E.* + + Db.MySQL + Db.PostgreSQL + Db.SQLite + Language.JavaScript + Language.PHP + OS.Linux + OS.MacOS + SCM.Git + WS.Apache + Db + Db.CouchDB + Db.Firebird + Db.HypersonicSQL + Db.IBM DB2 + Db.Microsoft Access + Db.Microsoft SQL Server + Db.MongoDB + Db.Oracle + Db.SAP MaxDB + Db.Sybase + Language + Language.ASP + Language.C + Language.JSP/Servlet + Language.Java + Language.Python + Language.Ruby + Language.XML + OS + OS.Windows + SCM + SCM.SVN + WS + WS.IIS + WS.Tomcat + + + org.zaproxy.zap.model.StandardParameterParser + {"kvps":"&","kvs":"=","struct":[]} + + + org.zaproxy.zap.model.StandardParameterParser + {"kvps":"&","kvs":"=","struct":[]} + + + 2 + \Q<button type="submit" class="btn btn-primary btn-lg btn-block">ログイン</button>\E +
+ https://ec-cube/admin/login + _csrf_token=xxx&login_id={%username%}&password={%password%} + https://ec-cube/admin/login +
+
+ + 55;true;YWRtaW4=;2;YWRtaW4=~cGFzc3dvcmQ=~ + + 55 + + 0 + + + 0 + +
+ + AND + -1 + + + + diff --git a/zap/containing_urls.txt b/zap/containing_urls.txt new file mode 100644 index 00000000000..2b2fe4ba362 --- /dev/null +++ b/zap/containing_urls.txt @@ -0,0 +1,298 @@ +https://ec-cube/ +https://ec-cube/admin +https://ec-cube/admin/ +https://ec-cube/admin/change_password +https://ec-cube/admin/content +https://ec-cube/admin/content/block +https://ec-cube/admin/content/block/1 +https://ec-cube/admin/content/block/1/delete +https://ec-cube/admin/content/block/1/edit +https://ec-cube/admin/content/block/new +https://ec-cube/admin/content/cache +https://ec-cube/admin/content/css +https://ec-cube/admin/content/file_delete +https://ec-cube/admin/content/file_delete?select_file=/assets +https://ec-cube/admin/content/file_download +https://ec-cube/admin/content/file_download?select_file=%2Fbbb.html +https://ec-cube/admin/content/file_manager +https://ec-cube/admin/content/file_view +https://ec-cube/admin/content/file_view?file=%2Fbbb.html +https://ec-cube/admin/content/js +https://ec-cube/admin/content/layout +https://ec-cube/admin/content/layout/1 +https://ec-cube/admin/content/layout/1/delete +https://ec-cube/admin/content/layout/1/edit +https://ec-cube/admin/content/layout/1/preview +https://ec-cube/admin/content/layout/new +https://ec-cube/admin/content/layout/view_block +https://ec-cube/admin/content/maintenance +https://ec-cube/admin/content/news +https://ec-cube/admin/content/news/1 +https://ec-cube/admin/content/news/1/delete +https://ec-cube/admin/content/news/1/edit +https://ec-cube/admin/content/news/new +https://ec-cube/admin/content/news/page/1 +https://ec-cube/admin/content/page +https://ec-cube/admin/content/page/1 +https://ec-cube/admin/content/page/1/delete +https://ec-cube/admin/content/page/1/edit +https://ec-cube/admin/content/page/new +https://ec-cube/admin/customer +https://ec-cube/admin/customer/1 +https://ec-cube/admin/customer/1/delete +https://ec-cube/admin/customer/1/delivery +https://ec-cube/admin/customer/1/delivery/1/delete +https://ec-cube/admin/customer/1/delivery/1/edit +https://ec-cube/admin/customer/1/delivery/2 +https://ec-cube/admin/customer/1/delivery/2/delete +https://ec-cube/admin/customer/1/delivery/2/edit +https://ec-cube/admin/customer/1/delivery/new +https://ec-cube/admin/customer/1/edit +https://ec-cube/admin/customer/1/resend +https://ec-cube/admin/customer/export +https://ec-cube/admin/customer/new +https://ec-cube/admin/customer/page +https://ec-cube/admin/customer/page/1 +https://ec-cube/admin/customer/page/1?resume=1 +https://ec-cube/admin/login +https://ec-cube/admin/logout +https://ec-cube/admin/order +https://ec-cube/admin/order/1 +https://ec-cube/admin/order/1/edit +https://ec-cube/admin/order/1/mail +https://ec-cube/admin/order/bulk_delete +https://ec-cube/admin/order/csv_template +https://ec-cube/admin/order/export +https://ec-cube/admin/order/export/order +https://ec-cube/admin/order/export/pdf +https://ec-cube/admin/order/export/pdf/download +https://ec-cube/admin/order/export/pdf?ids%5B%5D=3 +https://ec-cube/admin/order/export/shipping +https://ec-cube/admin/order/mail/view +https://ec-cube/admin/order/new +https://ec-cube/admin/order/page/1 +https://ec-cube/admin/order/search/customer/html +https://ec-cube/admin/order/search/customer/html/page/1 +https://ec-cube/admin/order/search/customer/id +https://ec-cube/admin/order/search/order_item_type +https://ec-cube/admin/order/search/product +https://ec-cube/admin/order/search/product/page/1 +https://ec-cube/admin/order/shipping_csv_upload +https://ec-cube/admin/order?order_status_id=1 +https://ec-cube/admin/order?order_status_id=4 +https://ec-cube/admin/order?resume=1 +https://ec-cube/admin/product +https://ec-cube/admin/product/bulk/product-status/1 +https://ec-cube/admin/product/category +https://ec-cube/admin/product/category/1 +https://ec-cube/admin/product/category/1/delete +https://ec-cube/admin/product/category/1/edit +https://ec-cube/admin/product/category/export +https://ec-cube/admin/product/category/sort_no/move +https://ec-cube/admin/product/category_csv_upload +https://ec-cube/admin/product/class_category +https://ec-cube/admin/product/class_category/1 +https://ec-cube/admin/product/class_category/1/1 +https://ec-cube/admin/product/class_category/1/1/delete +https://ec-cube/admin/product/class_category/1/1/edit +https://ec-cube/admin/product/class_category/1/1/visibility +https://ec-cube/admin/product/class_category/1/2 +https://ec-cube/admin/product/class_category/1/2/edit +https://ec-cube/admin/product/class_category/1/2/visibility +https://ec-cube/admin/product/class_category/1/3 +https://ec-cube/admin/product/class_category/1/3/edit +https://ec-cube/admin/product/class_category/1/3/visibility +https://ec-cube/admin/product/class_category/sort_no/move +https://ec-cube/admin/product/class_name +https://ec-cube/admin/product/class_name/1/delete +https://ec-cube/admin/product/class_name/1/edit +https://ec-cube/admin/product/class_name/sort_no/move +https://ec-cube/admin/product/classes/1/load +https://ec-cube/admin/product/csv_template +https://ec-cube/admin/product/csv_template/1 +https://ec-cube/admin/product/csv_template/category +https://ec-cube/admin/product/csv_template/product +https://ec-cube/admin/product/export +https://ec-cube/admin/product/page +https://ec-cube/admin/product/page/1 +https://ec-cube/admin/product/product +https://ec-cube/admin/product/product/1 +https://ec-cube/admin/product/product/1/copy +https://ec-cube/admin/product/product/1/delete +https://ec-cube/admin/product/product/1/display +https://ec-cube/admin/product/product/1/edit +https://ec-cube/admin/product/product/class +https://ec-cube/admin/product/product/class/1 +https://ec-cube/admin/product/product/class/1/clear +https://ec-cube/admin/product/product/class/1/clear?return_product_list=0 +https://ec-cube/admin/product/product/class/1?return_product_list=0 +https://ec-cube/admin/product/product/class/2 +https://ec-cube/admin/product/product/class/2?return_product_list=0 +https://ec-cube/admin/product/product/image/add +https://ec-cube/admin/product/product/new +https://ec-cube/admin/product/product_csv_upload +https://ec-cube/admin/product/tag +https://ec-cube/admin/product/tag/1/delete +https://ec-cube/admin/product/tag/sort_no/move +https://ec-cube/admin/sale_chart +https://ec-cube/admin/search_customer +https://ec-cube/admin/search_nonstock +https://ec-cube/admin/setting +https://ec-cube/admin/setting/shop +https://ec-cube/admin/setting/shop/csv +https://ec-cube/admin/setting/shop/csv/1 +https://ec-cube/admin/setting/shop/csv/2 +https://ec-cube/admin/setting/shop/csv/4 +https://ec-cube/admin/setting/shop/csv/5 +https://ec-cube/admin/setting/shop/delivery +https://ec-cube/admin/setting/shop/delivery/1 +https://ec-cube/admin/setting/shop/delivery/1/delete +https://ec-cube/admin/setting/shop/delivery/1/edit +https://ec-cube/admin/setting/shop/delivery/1/visibility +https://ec-cube/admin/setting/shop/delivery/2 +https://ec-cube/admin/setting/shop/delivery/new +https://ec-cube/admin/setting/shop/delivery/sort_no/move +https://ec-cube/admin/setting/shop/mail +https://ec-cube/admin/setting/shop/mail/1 +https://ec-cube/admin/setting/shop/mail/preview +https://ec-cube/admin/setting/shop/payment +https://ec-cube/admin/setting/shop/payment/1 +https://ec-cube/admin/setting/shop/payment/1/delete +https://ec-cube/admin/setting/shop/payment/1/edit +https://ec-cube/admin/setting/shop/payment/1/visible +https://ec-cube/admin/setting/shop/payment/image/add +https://ec-cube/admin/setting/shop/payment/new +https://ec-cube/admin/setting/shop/payment/sort_no/move +https://ec-cube/admin/setting/shop/tax +https://ec-cube/admin/setting/shop/tax/1/delete +https://ec-cube/admin/setting/shop/tax/new +https://ec-cube/admin/setting/system +https://ec-cube/admin/setting/system/authority +https://ec-cube/admin/setting/system/log +https://ec-cube/admin/setting/system/masterdata +https://ec-cube/admin/setting/system/masterdata/Eccube-Entity-Master-Work +https://ec-cube/admin/setting/system/masterdata/Eccube-Entity-Master-Work/edit +https://ec-cube/admin/setting/system/member +https://ec-cube/admin/setting/system/member/1 +https://ec-cube/admin/setting/system/member/1/delete +https://ec-cube/admin/setting/system/member/1/down +https://ec-cube/admin/setting/system/member/1/edit +https://ec-cube/admin/setting/system/member/1/up +https://ec-cube/admin/setting/system/member/new +https://ec-cube/admin/setting/system/security +https://ec-cube/admin/setting/system/system +https://ec-cube/admin/setting/system/system/phpinfo +https://ec-cube/admin/shipping +https://ec-cube/admin/shipping/1 +https://ec-cube/admin/shipping/1/edit +https://ec-cube/admin/shipping/1/order_status +https://ec-cube/admin/shipping/1/tracking_number +https://ec-cube/admin/shipping/2 +https://ec-cube/admin/shipping/2/edit +https://ec-cube/admin/shipping/notify_mail/1 +https://ec-cube/admin/shipping/preview_notify_mail/1 +https://ec-cube/admin/store +https://ec-cube/admin/store/plugin +https://ec-cube/admin/store/plugin/1/disable +https://ec-cube/admin/store/plugin/1/enable +https://ec-cube/admin/store/plugin/1/uninstall +https://ec-cube/admin/store/plugin/1/update +https://ec-cube/admin/store/plugin/api +https://ec-cube/admin/store/plugin/api/delete/1/uninstall +https://ec-cube/admin/store/plugin/api/install +https://ec-cube/admin/store/plugin/api/install/1/confirm +https://ec-cube/admin/store/plugin/api/schema_update +https://ec-cube/admin/store/plugin/api/search +https://ec-cube/admin/store/plugin/api/search/page +https://ec-cube/admin/store/plugin/api/search/page/1 +https://ec-cube/admin/store/plugin/api/update +https://ec-cube/admin/store/plugin/api/upgrade +https://ec-cube/admin/store/plugin/api/upgrade/1/confirm +https://ec-cube/admin/store/plugin/authentication_setting +https://ec-cube/admin/store/plugin/install +https://ec-cube/admin/store/template +https://ec-cube/admin/store/template/1 +https://ec-cube/admin/store/template/1/delete +https://ec-cube/admin/store/template/1/download +https://ec-cube/admin/store/template/install +https://ec-cube/block +https://ec-cube/block/cart +https://ec-cube/block/cart_sp +https://ec-cube/block/search_product +https://ec-cube/block/search_product_sp +https://ec-cube/cart +https://ec-cube/cart/buystep +https://ec-cube/cart/buystep/1_1 +https://ec-cube/cart/down +https://ec-cube/cart/down/1 +https://ec-cube/cart/down/11 +https://ec-cube/cart/remove +https://ec-cube/cart/remove/11 +https://ec-cube/cart/up +https://ec-cube/cart/up/1 +https://ec-cube/cart/up/11 +https://ec-cube/contact +https://ec-cube/contact/complete +https://ec-cube/entry +https://ec-cube/entry/activate/xxx/1 +https://ec-cube/entry/complete +https://ec-cube/forgot +https://ec-cube/forgot/complete +https://ec-cube/forgot/reset/xxx +https://ec-cube/guide +https://ec-cube/help +https://ec-cube/help/about +https://ec-cube/help/agreement +https://ec-cube/help/privacy +https://ec-cube/help/tradelaw +https://ec-cube/logout +https://ec-cube/mypage +https://ec-cube/mypage/ +https://ec-cube/mypage/change +https://ec-cube/mypage/change_complete +https://ec-cube/mypage/delivery +https://ec-cube/mypage/delivery/1 +https://ec-cube/mypage/delivery/1/delete +https://ec-cube/mypage/delivery/1/edit +https://ec-cube/mypage/delivery/new +https://ec-cube/mypage/favorite +https://ec-cube/mypage/favorite/1/delete +https://ec-cube/mypage/history +https://ec-cube/mypage/history/1 +https://ec-cube/mypage/history/2 +https://ec-cube/mypage/login +https://ec-cube/mypage/order/1 +https://ec-cube/mypage/withdraw +https://ec-cube/mypage/withdraw_complete +https://ec-cube/products +https://ec-cube/products/add_cart +https://ec-cube/products/add_cart/1 +https://ec-cube/products/add_cart/2 +https://ec-cube/products/add_favorite +https://ec-cube/products/add_favorite/1 +https://ec-cube/products/add_favorite/2 +https://ec-cube/products/detail +https://ec-cube/products/detail/1 +https://ec-cube/products/list +https://ec-cube/products/list?category_id&disp_number=0&mode&name&orderby=0&pageno +https://ec-cube/products/list?category_id=6 +https://ec-cube/products/list?category_id=6&name +https://ec-cube/robots.txt +https://ec-cube/shopping +https://ec-cube/shopping/checkout +https://ec-cube/shopping/complete +https://ec-cube/shopping/confirm +https://ec-cube/shopping/customer +https://ec-cube/shopping/error +https://ec-cube/shopping/login +https://ec-cube/shopping/nonmember +https://ec-cube/shopping/redirect_to +https://ec-cube/shopping/shipping +https://ec-cube/shopping/shipping/1 +https://ec-cube/shopping/shipping/4 +https://ec-cube/shopping/shipping_edit +https://ec-cube/shopping/shipping_edit/1 +https://ec-cube/shopping/shipping_edit/4 +https://ec-cube/shopping/shipping_multiple +https://ec-cube/shopping/shipping_multiple_edit +https://ec-cube/user_data/xxx diff --git a/zap/front_guest.context b/zap/front_guest.context new file mode 100644 index 00000000000..82b01c5fe11 --- /dev/null +++ b/zap/front_guest.context @@ -0,0 +1,74 @@ + + + + front_guest + + true + \Qhttps://ec-cube\E.* + \Qhttps://ec-cube/_wdt\E.* + \Qhttps://ec-cube/_profile\E.* + \Qhttps://ec-cube/admin\E.* + \Qhttps://ec-cube/html\E.* + + Db.MySQL + Db.PostgreSQL + Db.SQLite + Language.JavaScript + Language.PHP + OS.Linux + OS.MacOS + SCM.Git + WS.Apache + Db + Db.CouchDB + Db.Firebird + Db.HypersonicSQL + Db.IBM DB2 + Db.Microsoft Access + Db.Microsoft SQL Server + Db.MongoDB + Db.Oracle + Db.SAP MaxDB + Db.Sybase + Language + Language.ASP + Language.C + Language.JSP/Servlet + Language.Java + Language.Python + Language.Ruby + Language.XML + OS + OS.Windows + SCM + SCM.SVN + WS + WS.IIS + WS.Tomcat + + + org.zaproxy.zap.model.StandardParameterParser + {"kvps":"&","kvs":"=","struct":[]} + + + org.zaproxy.zap.model.StandardParameterParser + {"kvps":"&","kvs":"=","struct":[]} + + + 0 + + -1 + + 0 + + + 0 + +
+ + AND + -1 + + + + diff --git a/zap/front_login.context b/zap/front_login.context new file mode 100644 index 00000000000..5d9c7496bfd --- /dev/null +++ b/zap/front_login.context @@ -0,0 +1,83 @@ + + + + front_login + + true + \Qhttps://ec-cube\E.* + \Qhttps://ec-cube/_wdt\E.* + \Qhttps://ec-cube/_profile\E.* + \Qhttps://ec-cube/admin\E.* + \Qhttps://ec-cube/html\E.* + + Db.MySQL + Db.PostgreSQL + Db.SQLite + Language.JavaScript + Language.PHP + OS.Linux + OS.MacOS + SCM.Git + WS.Apache + Db + Db.CouchDB + Db.Firebird + Db.HypersonicSQL + Db.IBM DB2 + Db.Microsoft Access + Db.Microsoft SQL Server + Db.MongoDB + Db.Oracle + Db.SAP MaxDB + Db.Sybase + Language + Language.ASP + Language.C + Language.JSP/Servlet + Language.Java + Language.Python + Language.Ruby + Language.XML + OS + OS.Windows + SCM + SCM.SVN + WS + WS.IIS + WS.Tomcat + + + org.zaproxy.zap.model.StandardParameterParser + {"kvps":"&","kvs":"=","struct":[]} + + + org.zaproxy.zap.model.StandardParameterParser + {"kvps":"&","kvs":"=","struct":[]} + + + 2 + \Q<span class="ec-headerNav__itemLink">ログイン</span>\E +
+ https://ec-cube/mypage/login + login_email={%username%}&login_pass={%password%}&_csrf_token=xxx + https://ec-cube/mypage/login +
+
+ + 110;true;emFwX3VzZXI=;2;emFwX3VzZXJAZXhhbXBsZS5jb20=~cGFzc3dvcmQ=~ + + 110 + + 0 + + + 0 + +
+ + AND + -1 + + + + diff --git a/zap/options.properties b/zap/options.properties new file mode 100644 index 00000000000..fa8445ac469 --- /dev/null +++ b/zap/options.properties @@ -0,0 +1,45 @@ +view.locale=ja_JP +api.disablekey=true +fuzz.defaultCategoryName=dirbuster +anticsrf.tokens.token\(0\).name=_csrf_token +anticsrf.tokens.token\(0\).enabled=true +anticsrf.tokens.token\(1\).name=_csrf +anticsrf.tokens.token\(1\).enabled=true +anticsrf.tokens.token\(2\).name=_token +anticsrf.tokens.token\(2\).enabled=true +anticsrf.tokens.token\(3\).name=_shopping_order[_token] +anticsrf.tokens.token\(3\).enabled=true +anticsrf.tokens.token\(4\).name=form[_token] +anticsrf.tokens.token\(4\).enabled=true +anticsrf.tokens.token\(5\).name=shopping_shipping[_token] +anticsrf.tokens.token\(5\).enabled=true +httpsessions.tokens.token\(0\).name=eccube +httpsessions.tokens.token\(0\).enabled=true +httpsessions.tokens.token\(1\).name=ecsessid +httpsessions.tokens.token\(1\).enabled=true +httpsessions.tokens.token\(2\).name=phpsessid +httpsessions.tokens.token\(2\).enabled=true +## Filtering out false positives in PATH Traversal +globalalertfilter.filters.filter\(0\).ruleid=6 +globalalertfilter.filters.filter\(0\).newrisk=-1 +globalalertfilter.filters.filter\(0\).url=https://ec-cube/products/add_cart/[0-9]+ +globalalertfilter.filters.filter\(0\).urlregex=true +globalalertfilter.filters.filter\(0\).param= +globalalertfilter.filters.filter\(0\).paramregex=false +globalalertfilter.filters.filter\(0\).attack= +globalalertfilter.filters.filter\(0\).attackregex=false +globalalertfilter.filters.filter\(0\).evidence= +globalalertfilter.filters.filter\(0\).evidenceregex=false +globalalertfilter.filters.filter\(0\).enabled=true +## Filtering out false positives in SQL Injection +globalalertfilter.filters.filter\(1\).ruleid=40018 +globalalertfilter.filters.filter\(1\).newrisk=-1 +globalalertfilter.filters.filter\(1\).url=https://ec-cube/entry +globalalertfilter.filters.filter\(1\).urlregex=false +globalalertfilter.filters.filter\(1\).param=mode +globalalertfilter.filters.filter\(1\).paramregex=false +globalalertfilter.filters.filter\(1\).attack=confirm OR 1=1 -- +globalalertfilter.filters.filter\(1\).attackregex=false +globalalertfilter.filters.filter\(1\).evidence= +globalalertfilter.filters.filter\(1\).evidenceregex=false +globalalertfilter.filters.filter\(1\).enabled=true diff --git a/zap/selenium/ide/Manual_Inspection.side b/zap/selenium/ide/Manual_Inspection.side new file mode 100644 index 00000000000..785e4984435 --- /dev/null +++ b/zap/selenium/ide/Manual_Inspection.side @@ -0,0 +1,4668 @@ +{ + "id": "b61df7db-8ea0-4d70-84f9-0ba1ae62176c", + "version": "2.0", + "name": "[WIP]Manual_Inspection", + "url": "https://ec-cube", + "tests": [{ + "id": "6f6ae007-51ec-4832-98cd-d625753b58c8", + "name": "お問い合わせ(ゲスト)", + "commands": [{ + "id": "86629d3f-566b-4d16-a518-fa92cc8914aa", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "799abeb3-d165-4f45-a7b3-56945a634702", + "comment": "", + "command": "setWindowSize", + "target": "550x691", + "targets": [], + "value": "" + }, { + "id": "3609f12a-99fa-4cbe-8e03-584800f723b7", + "comment": "", + "command": "click", + "target": "linkText=お問い合わせ", + "targets": [ + ["linkText=お問い合わせ", "linkText"], + ["css=.ec-footerNavi__link:nth-child(4) > a", "css:finder"], + ["xpath=//a[contains(text(),'お問い合わせ')]", "xpath:link"], + ["xpath=//body[@id='page_homepage']/div/div[3]/div/div/ul/li[4]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/contact')]", "xpath:href"], + ["xpath=//li[4]/a", "xpath:position"], + ["xpath=//a[contains(.,'お問い合わせ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b8bf8918-df16-4274-911e-e565a9a4d7ae", + "comment": "", + "command": "click", + "target": "id=contact_name_name01", + "targets": [ + ["id=contact_name_name01", "id"], + ["name=contact[name][name01]", "name"], + ["css=#contact_name_name01", "css:finder"], + ["xpath=//input[@id='contact_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "3e668f89-5fe7-4312-a73d-184e835a048a", + "comment": "", + "command": "type", + "target": "id=contact_name_name01", + "targets": [ + ["id=contact_name_name01", "id"], + ["name=contact[name][name01]", "name"], + ["css=#contact_name_name01", "css:finder"], + ["xpath=//input[@id='contact_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "石" + }, { + "id": "32f32ca8-e327-4520-91f9-e1b1ea7c59d1", + "comment": "", + "command": "type", + "target": "id=contact_name_name02", + "targets": [ + ["id=contact_name_name02", "id"], + ["name=contact[name][name02]", "name"], + ["css=#contact_name_name02", "css:finder"], + ["xpath=//input[@id='contact_name_name02']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//input[2]", "xpath:position"] + ], + "value": "九部" + }, { + "id": "1198c988-8f33-413e-a9c3-dedef0ef5ce6", + "comment": "", + "command": "type", + "target": "id=contact_kana_kana01", + "targets": [ + ["id=contact_kana_kana01", "id"], + ["name=contact[kana][kana01]", "name"], + ["css=#contact_kana_kana01", "css:finder"], + ["xpath=//input[@id='contact_kana_kana01']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input", "xpath:position"] + ], + "value": "イシ" + }, { + "id": "33f49c39-4740-4b76-903e-0f4854f46b9e", + "comment": "", + "command": "type", + "target": "id=contact_kana_kana02", + "targets": [ + ["id=contact_kana_kana02", "id"], + ["name=contact[kana][kana02]", "name"], + ["css=#contact_kana_kana02", "css:finder"], + ["xpath=//input[@id='contact_kana_kana02']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"] + ], + "value": "キューブ" + }, { + "id": "11b592f1-d1e9-4dd4-8325-239d83e21ed9", + "comment": "", + "command": "type", + "target": "id=contact_postal_code", + "targets": [ + ["id=contact_postal_code", "id"], + ["name=contact[postal_code]", "name"], + ["css=#contact_postal_code", "css:finder"], + ["xpath=//input[@id='contact_postal_code']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[3]/dd/div/input", "xpath:position"] + ], + "value": "5300001" + }, { + "id": "19125959-ef21-47de-a785-ff1279c04462", + "comment": "", + "command": "click", + "target": "id=contact_address_addr02", + "targets": [ + ["id=contact_address_addr02", "id"], + ["name=contact[address][addr02]", "name"], + ["css=#contact_address_addr02", "css:finder"], + ["xpath=//input[@id='contact_address_addr02']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div[5]/input", "xpath:idRelative"], + ["xpath=//div[5]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "d18ada44-d811-4f21-9793-64912b7e1270", + "comment": "", + "command": "type", + "target": "id=contact_address_addr02", + "targets": [ + ["id=contact_address_addr02", "id"], + ["name=contact[address][addr02]", "name"], + ["css=#contact_address_addr02", "css:finder"], + ["xpath=//input[@id='contact_address_addr02']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div[5]/input", "xpath:idRelative"], + ["xpath=//div[5]/input", "xpath:position"] + ], + "value": "2" + }, { + "id": "a82efb35-ce33-4c1f-a6cd-0cb8e2ee9295", + "comment": "", + "command": "type", + "target": "id=contact_phone_number", + "targets": [ + ["id=contact_phone_number", "id"], + ["name=contact[phone_number]", "name"], + ["css=#contact_phone_number", "css:finder"], + ["xpath=//input[@id='contact_phone_number']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[4]/dd/div/input", "xpath:position"] + ], + "value": "999999999" + }, { + "id": "8c3f7f60-8ad2-4545-bacb-aac96db1c16b", + "comment": "", + "command": "type", + "target": "id=contact_email", + "targets": [ + ["id=contact_email", "id"], + ["name=contact[email]", "name"], + ["css=#contact_email", "css:finder"], + ["xpath=//input[@id='contact_email']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[5]/dd/div/input", "xpath:position"] + ], + "value": "ec-cube@example.com" + }, { + "id": "025a6b1f-6045-42e8-9383-547c5687af15", + "comment": "", + "command": "type", + "target": "id=contact_contents", + "targets": [ + ["id=contact_contents", "id"], + ["name=contact[contents]", "name"], + ["css=#contact_contents", "css:finder"], + ["xpath=//textarea[@id='contact_contents']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[6]/dd/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "お問い合わせのテスト" + }, { + "id": "5dd75e4b-b1fb-440a-ae66-88c38e4210f3", + "comment": "", + "command": "click", + "target": "name=mode", + "targets": [ + ["name=mode", "name"], + ["css=.ec-blockBtn--action", "css:finder"], + ["xpath=//button[@name='mode']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'確認ページへ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "9da4d740-a0ba-46fa-8e04-d9202b857a33", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,321.73333740234375)", + "targets": [], + "value": "" + }, { + "id": "400b2277-307d-49ee-b2e2-01ddf5011dbc", + "comment": "", + "command": "click", + "target": "name=mode", + "targets": [ + ["name=mode", "name"], + ["css=.ec-blockBtn--action", "css:finder"], + ["xpath=//button[@name='mode']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'送信する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "477f1fcc-32b5-4de3-9f87-1282ba6f7138", + "comment": "", + "command": "click", + "target": "linkText=トップページへ", + "targets": [ + ["linkText=トップページへ", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"], + ["xpath=//body[@id='page_contact_complete']/div/div[2]/div/div[2]/div/div/div[3]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"] + ], + "value": "" + }] + }, { + "id": "66cf94f2-7d92-4ff6-92dc-fb7800f0fff0", + "name": "会員登録", + "commands": [{ + "id": "23595b69-8bfa-43f1-8dd0-c6089ce1cbc0", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "181fe481-c484-433d-8db1-40c725416e09", + "comment": "", + "command": "setWindowSize", + "target": "550x691", + "targets": [], + "value": "" + }, { + "id": "92948061-39a4-46ea-ac2b-01b85fe7b704", + "comment": "", + "command": "click", + "target": "css=a > .fa-user", + "targets": [ + ["css=a > .fa-user", "css:finder"], + ["xpath=//body[@id='page_homepage']/div/div/div/div[2]/div/div/div/a/i", "xpath:idRelative"], + ["xpath=//a/i", "xpath:position"] + ], + "value": "" + }, { + "id": "4831eaaf-551f-4b03-a501-9947044b191a", + "comment": "", + "command": "click", + "target": "id=entry_name_name01", + "targets": [ + ["id=entry_name_name01", "id"], + ["name=entry[name][name01]", "name"], + ["css=#entry_name_name01", "css:finder"], + ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "318739af-014c-492a-9b3f-ccab5f05a5ca", + "comment": "", + "command": "type", + "target": "id=entry_name_name01", + "targets": [ + ["id=entry_name_name01", "id"], + ["name=entry[name][name01]", "name"], + ["css=#entry_name_name01", "css:finder"], + ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "石" + }, { + "id": "8ee4754e-a218-46bf-90c3-4e1c866dab76", + "comment": "", + "command": "type", + "target": "id=entry_name_name02", + "targets": [ + ["id=entry_name_name02", "id"], + ["name=entry[name][name02]", "name"], + ["css=#entry_name_name02", "css:finder"], + ["xpath=//input[@id='entry_name_name02']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//input[2]", "xpath:position"] + ], + "value": "九部" + }, { + "id": "07a2537b-9fa8-4adc-bcd3-7bc59c36ff62", + "comment": "", + "command": "type", + "target": "id=entry_kana_kana01", + "targets": [ + ["id=entry_kana_kana01", "id"], + ["name=entry[kana][kana01]", "name"], + ["css=#entry_kana_kana01", "css:finder"], + ["xpath=//input[@id='entry_kana_kana01']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input", "xpath:position"] + ], + "value": "イーシー" + }, { + "id": "f0e21e5a-ffa1-4dba-8f9a-7695d0ac355b", + "comment": "", + "command": "type", + "target": "id=entry_kana_kana02", + "targets": [ + ["id=entry_kana_kana02", "id"], + ["name=entry[kana][kana02]", "name"], + ["css=#entry_kana_kana02", "css:finder"], + ["xpath=//input[@id='entry_kana_kana02']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"] + ], + "value": "キューブ" + }, { + "id": "d9ece77a-6717-43a2-8972-0f2b7d595882", + "comment": "", + "command": "type", + "target": "id=entry_company_name", + "targets": [ + ["id=entry_company_name", "id"], + ["name=entry[company_name]", "name"], + ["css=#entry_company_name", "css:finder"], + ["xpath=//input[@id='entry_company_name']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[3]/dd/div/input", "xpath:position"] + ], + "value": "イーシーキューブ株式会社" + }, { + "id": "d7d41110-146e-49e4-835f-0618cc4f7947", + "comment": "", + "command": "type", + "target": "id=entry_postal_code", + "targets": [ + ["id=entry_postal_code", "id"], + ["name=entry[postal_code]", "name"], + ["css=#entry_postal_code", "css:finder"], + ["xpath=//input[@id='entry_postal_code']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[4]/dd/div/input", "xpath:position"] + ], + "value": "5300001" + }, { + "id": "23682210-277e-4d3a-919f-cbb65682f97e", + "comment": "", + "command": "click", + "target": "id=entry_address_addr02", + "targets": [ + ["id=entry_address_addr02", "id"], + ["name=entry[address][addr02]", "name"], + ["css=#entry_address_addr02", "css:finder"], + ["xpath=//input[@id='entry_address_addr02']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "95501c92-e9aa-4947-b429-29ef1f08793a", + "comment": "", + "command": "type", + "target": "id=entry_address_addr02", + "targets": [ + ["id=entry_address_addr02", "id"], + ["name=entry[address][addr02]", "name"], + ["css=#entry_address_addr02", "css:finder"], + ["xpath=//input[@id='entry_address_addr02']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "1" + }, { + "id": "ece5b2e9-d52d-4dd4-8af7-5d020413b2fc", + "comment": "", + "command": "click", + "target": "id=entry_phone_number", + "targets": [ + ["id=entry_phone_number", "id"], + ["name=entry[phone_number]", "name"], + ["css=#entry_phone_number", "css:finder"], + ["xpath=//input[@id='entry_phone_number']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[5]/dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "db5b482b-ce0a-4959-8e70-374195fd7b3d", + "comment": "", + "command": "type", + "target": "id=entry_phone_number", + "targets": [ + ["id=entry_phone_number", "id"], + ["name=entry[phone_number]", "name"], + ["css=#entry_phone_number", "css:finder"], + ["xpath=//input[@id='entry_phone_number']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[5]/dd/div/input", "xpath:position"] + ], + "value": "111222333" + }, { + "id": "d658ebdb-9156-4ff5-98e2-346886a88ef1", + "comment": "", + "command": "type", + "target": "id=entry_email_first", + "targets": [ + ["id=entry_email_first", "id"], + ["name=entry[email][first]", "name"], + ["css=#entry_email_first", "css:finder"], + ["xpath=//input[@id='entry_email_first']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[6]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[6]/dd/div/input", "xpath:position"] + ], + "value": "zap_user_guest@example.com" + }, { + "id": "f114f89e-9650-4eca-8411-c4fb95a97667", + "comment": "", + "command": "type", + "target": "id=entry_email_second", + "targets": [ + ["id=entry_email_second", "id"], + ["name=entry[email][second]", "name"], + ["css=#entry_email_second", "css:finder"], + ["xpath=//input[@id='entry_email_second']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[6]/dd/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "zap_user_guest@example.com" + }, { + "id": "dc48d3fe-ab2e-45a1-a507-4091fe298b88", + "comment": "", + "command": "click", + "target": "id=entry_password_first", + "targets": [ + ["id=entry_password_first", "id"], + ["name=entry[password][first]", "name"], + ["css=#entry_password_first", "css:finder"], + ["xpath=//input[@id='entry_password_first']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[7]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[7]/dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "dc6782b2-a6fe-445e-a689-b6bf84c1df7a", + "comment": "", + "command": "click", + "target": "id=entry_password_first", + "targets": [ + ["id=entry_password_first", "id"], + ["name=entry[password][first]", "name"], + ["css=#entry_password_first", "css:finder"], + ["xpath=//input[@id='entry_password_first']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[7]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[7]/dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "b7f41a3b-4aa7-4e86-85a2-238dfa82fbbe", + "comment": "", + "command": "doubleClick", + "target": "id=entry_password_first", + "targets": [ + ["id=entry_password_first", "id"], + ["name=entry[password][first]", "name"], + ["css=#entry_password_first", "css:finder"], + ["xpath=//input[@id='entry_password_first']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[7]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[7]/dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "bae078eb-d27a-43b6-9e20-0f9af2a11eab", + "comment": "", + "command": "type", + "target": "id=entry_password_first", + "targets": [ + ["id=entry_password_first", "id"], + ["name=entry[password][first]", "name"], + ["css=#entry_password_first", "css:finder"], + ["xpath=//input[@id='entry_password_first']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[7]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[7]/dd/div/input", "xpath:position"] + ], + "value": "password" + }, { + "id": "4cfc914e-9ead-4605-acf5-6f8c4c897d3d", + "comment": "", + "command": "type", + "target": "id=entry_password_second", + "targets": [ + ["id=entry_password_second", "id"], + ["name=entry[password][second]", "name"], + ["css=#entry_password_second", "css:finder"], + ["xpath=//input[@id='entry_password_second']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[7]/dd/div[2]/input", "xpath:idRelative"], + ["xpath=//dl[7]/dd/div[2]/input", "xpath:position"] + ], + "value": "password" + }, { + "id": "d7f75b96-9762-4a25-abbd-00257559b5a4", + "comment": "", + "command": "click", + "target": "id=entry_birth_year", + "targets": [ + ["id=entry_birth_year", "id"], + ["name=entry[birth][year]", "name"], + ["css=#entry_birth_year", "css:finder"], + ["xpath=//select[@id='entry_birth_year']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[8]/dd/div/select", "xpath:idRelative"], + ["xpath=//dl[8]/dd/div/select", "xpath:position"] + ], + "value": "" + }, { + "id": "74966ade-1768-4767-8899-b776b5e5e502", + "comment": "", + "command": "select", + "target": "id=entry_birth_year", + "targets": [], + "value": "label=2006" + }, { + "id": "d2d2927c-baec-4cdf-9858-74baeaf46f8d", + "comment": "", + "command": "click", + "target": "css=#entry_birth_year > option:nth-child(16)", + "targets": [ + ["css=#entry_birth_year > option:nth-child(16)", "css:finder"], + ["xpath=//option[@value='2006']", "xpath:attributes"], + ["xpath=//select[@id='entry_birth_year']/option[16]", "xpath:idRelative"], + ["xpath=//dl[8]/dd/div/select/option[16]", "xpath:position"], + ["xpath=//option[contains(.,'2006')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "9bcbf068-0477-417c-a861-cc9a50fa06e6", + "comment": "", + "command": "select", + "target": "id=entry_birth_month", + "targets": [], + "value": "label=09" + }, { + "id": "bf710817-929c-45bd-98d8-18526892cb1f", + "comment": "", + "command": "click", + "target": "css=#entry_birth_month > option:nth-child(10)", + "targets": [ + ["css=#entry_birth_month > option:nth-child(10)", "css:finder"], + ["xpath=(//option[@value='9'])[2]", "xpath:attributes"], + ["xpath=//select[@id='entry_birth_month']/option[10]", "xpath:idRelative"], + ["xpath=//select[2]/option[10]", "xpath:position"] + ], + "value": "" + }, { + "id": "14e3301b-fdd1-4adc-9ff0-0c83065376b6", + "comment": "", + "command": "click", + "target": "id=entry_birth_day", + "targets": [ + ["id=entry_birth_day", "id"], + ["name=entry[birth][day]", "name"], + ["css=#entry_birth_day", "css:finder"], + ["xpath=//select[@id='entry_birth_day']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[8]/dd/div/select[3]", "xpath:idRelative"], + ["xpath=//select[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "cd8bac99-386a-425f-9ed8-87fbce2bc672", + "comment": "", + "command": "select", + "target": "id=entry_birth_day", + "targets": [], + "value": "label=01" + }, { + "id": "458e630a-8e56-4e7e-b752-e9647cf7dd9d", + "comment": "", + "command": "click", + "target": "css=#entry_birth_day > option:nth-child(3)", + "targets": [ + ["css=#entry_birth_day > option:nth-child(3)", "css:finder"], + ["xpath=(//option[@value='2'])[4]", "xpath:attributes"], + ["xpath=//select[@id='entry_birth_day']/option[3]", "xpath:idRelative"], + ["xpath=//select[3]/option[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "95f8a601-1824-422d-b074-99b8dfe47c42", + "comment": "", + "command": "click", + "target": "css=dl:nth-child(9) > dt", + "targets": [ + ["css=dl:nth-child(9) > dt", "css:finder"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[9]/dt", "xpath:idRelative"], + ["xpath=//dl[9]/dt", "xpath:position"], + ["xpath=//dt[contains(.,'性別')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "4f8b90a2-ebd7-4777-a4a8-f84dfd37ee28", + "comment": "", + "command": "doubleClick", + "target": "css=dl:nth-child(9) > dt", + "targets": [ + ["css=dl:nth-child(9) > dt", "css:finder"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[9]/dt", "xpath:idRelative"], + ["xpath=//dl[9]/dt", "xpath:position"], + ["xpath=//dt[contains(.,'性別')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "3676bfcd-fd2c-4912-b8c2-faf298e7eed2", + "comment": "", + "command": "click", + "target": "id=entry_birth_day", + "targets": [ + ["id=entry_birth_day", "id"], + ["name=entry[birth][day]", "name"], + ["css=#entry_birth_day", "css:finder"], + ["xpath=//select[@id='entry_birth_day']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[8]/dd/div/select[3]", "xpath:idRelative"], + ["xpath=//select[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "b536c971-0179-41fe-915f-90b9502710e2", + "comment": "", + "command": "click", + "target": "css=#entry_birth_day > option:nth-child(2)", + "targets": [ + ["css=#entry_birth_day > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[4]", "xpath:attributes"], + ["xpath=//select[@id='entry_birth_day']/option[2]", "xpath:idRelative"], + ["xpath=//select[3]/option[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "764d9ae5-5dbf-4b65-9e2a-dac7eabeb031", + "comment": "", + "command": "click", + "target": "id=entry_sex_1", + "targets": [ + ["id=entry_sex_1", "id"], + ["name=entry[sex]", "name"], + ["css=#entry_sex_1", "css:finder"], + ["xpath=//input[@id='entry_sex_1']", "xpath:attributes"], + ["xpath=//div[@id='entry_sex']/input", "xpath:idRelative"], + ["xpath=//dd/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "d0fbae16-ed4d-42af-91f0-6a4e995d1552", + "comment": "", + "command": "click", + "target": "id=entry_job", + "targets": [ + ["id=entry_job", "id"], + ["name=entry[job]", "name"], + ["css=#entry_job", "css:finder"], + ["xpath=//select[@id='entry_job']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div/dl[10]/dd/div/select", "xpath:idRelative"], + ["xpath=//dl[10]/dd/div/select", "xpath:position"] + ], + "value": "" + }, { + "id": "287d3856-8c51-4919-9a43-1e82e424918f", + "comment": "", + "command": "select", + "target": "id=entry_job", + "targets": [], + "value": "label=コンピューター関連技術職" + }, { + "id": "1ffbf02e-d0e8-40a6-a5fc-907de557d3cc", + "comment": "", + "command": "click", + "target": "css=#entry_job > option:nth-child(4)", + "targets": [ + ["css=#entry_job > option:nth-child(4)", "css:finder"], + ["xpath=(//option[@value='3'])[5]", "xpath:attributes"], + ["xpath=//select[@id='entry_job']/option[4]", "xpath:idRelative"], + ["xpath=//dl[10]/dd/div/select/option[4]", "xpath:position"], + ["xpath=//option[contains(.,'コンピューター関連技術職')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "43b4a397-a20b-4bd2-8bda-777dc3018bac", + "comment": "", + "command": "click", + "target": "id=entry_user_policy_check", + "targets": [ + ["id=entry_user_policy_check", "id"], + ["name=entry[user_policy_check]", "name"], + ["css=#entry_user_policy_check", "css:finder"], + ["xpath=//input[@id='entry_user_policy_check']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/div/label/input", "xpath:idRelative"], + ["xpath=//label/input", "xpath:position"] + ], + "value": "" + }, { + "id": "5edafe12-8150-4ada-8bb7-b94a734cda28", + "comment": "", + "command": "click", + "target": "name=mode", + "targets": [ + ["name=mode", "name"], + ["css=.ec-blockBtn--action", "css:finder"], + ["xpath=//button[@name='mode']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'同意する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0f1cf0e2-00c1-43a3-b0c7-d32f2bab912b", + "comment": "", + "command": "click", + "target": "name=mode", + "targets": [ + ["name=mode", "name"], + ["css=.ec-blockBtn--action", "css:finder"], + ["xpath=//button[@name='mode']", "xpath:attributes"], + ["xpath=//body[@id='page_entry']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'会員登録をする')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "02e550bf-3ac1-49b4-aaf2-2cfaa0f37fb9", + "comment": "", + "command": "click", + "target": "linkText=トップページへ", + "targets": [ + ["linkText=トップページへ", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"], + ["xpath=//body[@id='page_entry_complete']/div/div[2]/div/div[2]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"] + ], + "value": "" + }] + }, { + "id": "fd31340c-5aec-4d58-805a-73208678455d", + "name": "商品購入(複数配送先)(ゲスト)", + "commands": [{ + "id": "540d5907-b46b-40b6-bf0e-f38f1b3eff0e", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "b8081b77-b274-4760-a667-b4622a1a8a75", + "comment": "", + "command": "setWindowSize", + "target": "1025x692", + "targets": [], + "value": "" + }, { + "id": "a7d0c8f1-5b48-421a-aefd-8a3e56be57eb", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1b8b6ff7-60d6-4cd8-8949-18b9c79d6f7b", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2068611f-d9a1-401b-8594-f9311fa956e1", + "comment": "", + "command": "click", + "target": "css=.ec-inlineBtn--cancel", + "targets": [ + ["css=.ec-inlineBtn--cancel", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/label", "xpath:idRelative"], + ["xpath=//div[2]/div/label", "xpath:position"], + ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e7b4767c-3ad1-4a8f-8e3c-c8d7e535e41a", + "comment": "", + "command": "select", + "target": "id=classcategory_id11", + "targets": [], + "value": "label=チョコ" + }, { + "id": "d083c0e9-8aae-404a-8087-8938981aba6c", + "comment": "", + "command": "click", + "target": "css=#classcategory_id11 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id11 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[4]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id11']/option[2]", "xpath:idRelative"], + ["xpath=//li[2]/form/div/div/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "08771f2e-818c-42e8-81be-7451161349b8", + "comment": "", + "command": "select", + "target": "id=classcategory_id21", + "targets": [], + "value": "label=16mm × 16mm" + }, { + "id": "2d18f3a0-ef2f-4bf8-bdd6-25359e6ff5f1", + "comment": "", + "command": "click", + "target": "css=#classcategory_id21 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id21 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='4'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id21']/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "da4c6cac-c4b9-4fad-8d9b-aa2484ad2936", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[3]", "xpath:attributes"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/div/button", "xpath:idRelative"], + ["xpath=//li[2]/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "e497e2c1-aa63-42f6-8d1a-735bd7d9d900", + "comment": "", + "command": "click", + "target": "linkText=カートへ進む", + "targets": [ + ["linkText=カートへ進む", "linkText"], + ["css=.ec-inlineBtn--action", "css:finder"], + ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"], + ["xpath=//div[3]/div/div/div[2]/div/a", "xpath:position"] + ], + "value": "" + }, { + "id": "cc2b585e-7823-488d-9a1e-d590312bb7ef", + "comment": "", + "command": "click", + "target": "linkText=お買い物を続ける", + "targets": [ + ["linkText=お買い物を続ける", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'お買い物を続ける')]", "xpath:link"], + ["xpath=//form[@id='form_cart']/div[3]/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '/')])[21]", "xpath:href"], + ["xpath=//form/div[3]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'お買い物を続ける')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "058cede7-fc6e-445e-8675-960ea14b8117", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "de2f220c-0698-45fe-8268-3b2ca2b84f96", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(1) img", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(1) img", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/a/p/img", "xpath:idRelative"], + ["xpath=//p/img", "xpath:position"] + ], + "value": "" + }, { + "id": "4559e33d-641f-4d56-839c-6fe14782328e", + "comment": "", + "command": "click", + "target": "css=.add-cart", + "targets": [ + ["css=.add-cart", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f384c38f-4a62-408f-83c1-9cfffb595508", + "comment": "", + "command": "click", + "target": "css=.ec-inlineBtn--cancel", + "targets": [ + ["css=.ec-inlineBtn--cancel", "css:finder"], + ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[5]/div/div/div[2]/div/label", "xpath:idRelative"], + ["xpath=//div[2]/div/label", "xpath:position"], + ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6753a4a0-908a-489c-9c1b-a09eae6553e7", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_product_detail']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "df050400-12fd-42f5-99b7-8d57e4f495f6", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(2) img", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(2) img", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/a/p/img", "xpath:idRelative"], + ["xpath=//li[2]/a/p/img", "xpath:position"] + ], + "value": "" + }, { + "id": "79e7757a-d4dd-4b18-a63a-8c72e9cb5171", + "comment": "", + "command": "click", + "target": "css=.ec-productRole__actions", + "targets": [ + ["css=.ec-productRole__actions", "css:finder"], + ["xpath=//form[@id='form1']/div", "xpath:idRelative"], + ["xpath=//div[2]/div/form/div", "xpath:position"] + ], + "value": "" + }, { + "id": "9bd4b2b3-bb3d-4139-b014-b07dad666406", + "comment": "", + "command": "select", + "target": "id=classcategory_id1", + "targets": [], + "value": "label=チョコ" + }, { + "id": "5ebf0d35-4b14-4cb8-8bfd-d52558f933f5", + "comment": "", + "command": "click", + "target": "css=#classcategory_id1 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id1 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id1']/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/form/div/div/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "936cf3f8-978b-48f0-840e-8047d782ede2", + "comment": "", + "command": "select", + "target": "id=classcategory_id2", + "targets": [], + "value": "label=64cm × 64cm" + }, { + "id": "1d317c1c-3b21-4ca7-b4ab-3a768f23db87", + "comment": "", + "command": "click", + "target": "css=#classcategory_id2 > option:nth-child(4)", + "targets": [ + ["css=#classcategory_id2 > option:nth-child(4)", "css:finder"], + ["xpath=(//option[@value='6'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id2']/option[4]", "xpath:idRelative"], + ["xpath=//div[2]/select/option[4]", "xpath:position"], + ["xpath=//option[contains(.,'64cm × 64cm')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a7e45c5e-19bc-4685-9d82-7e6f5c285687", + "comment": "", + "command": "click", + "target": "css=.add-cart", + "targets": [ + ["css=.add-cart", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5f7e0221-e585-42fa-bd16-3cb9df23487a", + "comment": "", + "command": "click", + "target": "linkText=カートへ進む", + "targets": [ + ["linkText=カートへ進む", "linkText"], + ["css=.ec-inlineBtn--action", "css:finder"], + ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"], + ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[6]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"], + ["xpath=//div[6]/div/div/div[2]/div/a", "xpath:position"] + ], + "value": "" + }, { + "id": "43e3d9fd-6b7f-402e-a991-a3886b47776f", + "comment": "", + "command": "click", + "target": "linkText=レジに進む", + "targets": [ + ["linkText=レジに進む", "linkText"], + ["css=.ec-blockBtn--action:nth-child(2)", "css:finder"], + ["xpath=//a[contains(text(),'レジに進む')]", "xpath:link"], + ["xpath=//form[@id='form_cart']/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/cart/buystep/mC5FAu4iD1fimOf2y1YjmWqaarUDbIPB_1')]", "xpath:href"], + ["xpath=//form/div[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'レジに進む')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6e935de1-f68c-4e7f-87d8-9019f3eb083f", + "comment": "", + "command": "click", + "target": "linkText=ゲスト購入", + "targets": [ + ["linkText=ゲスト購入", "linkText"], + ["css=.ec-guest__actions > .ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'ゲスト購入')]", "xpath:link"], + ["xpath=//body[@id='page_shopping_login']/div/div[2]/div/div[2]/div/div[2]/div/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/shopping/nonmember')]", "xpath:href"], + ["xpath=//div[2]/div/div[2]/div/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'ゲスト購入')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b39cddd1-9070-45af-834a-11ac241159cd", + "comment": "", + "command": "click", + "target": "id=nonmember_name_name01", + "targets": [ + ["id=nonmember_name_name01", "id"], + ["name=nonmember[name][name01]", "name"], + ["css=#nonmember_name_name01", "css:finder"], + ["xpath=//input[@id='nonmember_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "9ac270d6-0bb4-4509-84cf-2ee206bd2e84", + "comment": "", + "command": "type", + "target": "id=nonmember_name_name01", + "targets": [ + ["id=nonmember_name_name01", "id"], + ["name=nonmember[name][name01]", "name"], + ["css=#nonmember_name_name01", "css:finder"], + ["xpath=//input[@id='nonmember_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "石" + }, { + "id": "547fbb97-487e-4a02-9a12-176dc853baec", + "comment": "", + "command": "type", + "target": "id=nonmember_name_name02", + "targets": [ + ["id=nonmember_name_name02", "id"], + ["name=nonmember[name][name02]", "name"], + ["css=#nonmember_name_name02", "css:finder"], + ["xpath=//input[@id='nonmember_name_name02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//input[2]", "xpath:position"] + ], + "value": "九部" + }, { + "id": "bf1fb79e-7d05-41cb-b08c-a123f7258f60", + "comment": "", + "command": "type", + "target": "id=nonmember_kana_kana01", + "targets": [ + ["id=nonmember_kana_kana01", "id"], + ["name=nonmember[kana][kana01]", "name"], + ["css=#nonmember_kana_kana01", "css:finder"], + ["xpath=//input[@id='nonmember_kana_kana01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input", "xpath:position"] + ], + "value": "イシ" + }, { + "id": "bc8391da-ff81-4fa1-baa3-e551b7db6a3c", + "comment": "", + "command": "type", + "target": "id=nonmember_kana_kana02", + "targets": [ + ["id=nonmember_kana_kana02", "id"], + ["name=nonmember[kana][kana02]", "name"], + ["css=#nonmember_kana_kana02", "css:finder"], + ["xpath=//input[@id='nonmember_kana_kana02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"] + ], + "value": "キューブ" + }, { + "id": "1e075c31-2a34-4978-8572-f182c26cab0b", + "comment": "", + "command": "type", + "target": "id=nonmember_company_name", + "targets": [ + ["id=nonmember_company_name", "id"], + ["name=nonmember[company_name]", "name"], + ["css=#nonmember_company_name", "css:finder"], + ["xpath=//input[@id='nonmember_company_name']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[3]/dd/div/input", "xpath:position"] + ], + "value": "イーシーキューブ株式会社" + }, { + "id": "549e10dd-f72d-4772-a010-b92ce1623081", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,307.79998779296875)", + "targets": [], + "value": "" + }, { + "id": "52eb11b7-3cbc-40a8-a46c-69f1c4af576c", + "comment": "", + "command": "type", + "target": "id=nonmember_postal_code", + "targets": [ + ["id=nonmember_postal_code", "id"], + ["name=nonmember[postal_code]", "name"], + ["css=#nonmember_postal_code", "css:finder"], + ["xpath=//input[@id='nonmember_postal_code']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[4]/dd/div/input", "xpath:position"] + ], + "value": "5300001" + }, { + "id": "bd11f3fc-e7dd-4825-8ace-2cd791f537cc", + "comment": "", + "command": "click", + "target": "id=nonmember_address_addr02", + "targets": [ + ["id=nonmember_address_addr02", "id"], + ["name=nonmember[address][addr02]", "name"], + ["css=#nonmember_address_addr02", "css:finder"], + ["xpath=//input[@id='nonmember_address_addr02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "666eaff3-5420-4b68-8a9a-27debb5043d1", + "comment": "", + "command": "type", + "target": "id=nonmember_address_addr02", + "targets": [ + ["id=nonmember_address_addr02", "id"], + ["name=nonmember[address][addr02]", "name"], + ["css=#nonmember_address_addr02", "css:finder"], + ["xpath=//input[@id='nonmember_address_addr02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "1" + }, { + "id": "b193faf5-82a9-4c07-8e48-e16c9ab5ea71", + "comment": "", + "command": "type", + "target": "id=nonmember_phone_number", + "targets": [ + ["id=nonmember_phone_number", "id"], + ["name=nonmember[phone_number]", "name"], + ["css=#nonmember_phone_number", "css:finder"], + ["xpath=//input[@id='nonmember_phone_number']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[5]/dd/div/input", "xpath:position"] + ], + "value": "999000999" + }, { + "id": "22030840-f78e-4b6b-b1e3-32b30322dc3c", + "comment": "", + "command": "type", + "target": "id=nonmember_email_first", + "targets": [ + ["id=nonmember_email_first", "id"], + ["name=nonmember[email][first]", "name"], + ["css=#nonmember_email_first", "css:finder"], + ["xpath=//input[@id='nonmember_email_first']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[6]/dd/div/input", "xpath:position"] + ], + "value": "ec-cube@example.com" + }, { + "id": "f43cc971-2a42-45c6-905f-e7e682419aee", + "comment": "", + "command": "type", + "target": "id=nonmember_email_second", + "targets": [ + ["id=nonmember_email_second", "id"], + ["name=nonmember[email][second]", "name"], + ["css=#nonmember_email_second", "css:finder"], + ["xpath=//input[@id='nonmember_email_second']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "ec-cube@example.com" + }, { + "id": "66314fa9-ecc4-44d0-be72-883ea5838387", + "comment": "", + "command": "click", + "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action", + "targets": [ + ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'次へ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1e0b709c-41c5-44dc-a547-01b7440da09f", + "comment": "", + "command": "click", + "target": "id=customer", + "targets": [ + ["id=customer", "id"], + ["css=#customer", "css:finder"], + ["xpath=//button[@id='customer']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'変更')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "4c779894-bb75-4472-b498-8cd6d95d6d05", + "comment": "", + "command": "click", + "target": "id=edit8", + "targets": [ + ["id=edit8", "id"], + ["css=#edit8", "css:finder"], + ["xpath=//input[@id='edit8']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div/div[4]/dl[4]/dd/div[4]/span/input", "xpath:idRelative"], + ["xpath=//div[4]/span/input", "xpath:position"] + ], + "value": "" + }, { + "id": "981cde73-3b38-4905-a60e-a8e00bf6bd1a", + "comment": "", + "command": "click", + "target": "id=edit8", + "targets": [ + ["id=edit8", "id"], + ["css=#edit8", "css:finder"], + ["xpath=//input[@id='edit8']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div/div[4]/dl[4]/dd/div[4]/span/input", "xpath:idRelative"], + ["xpath=//div[4]/span/input", "xpath:position"] + ], + "value": "" + }, { + "id": "8e2bdc66-fdbb-40cb-b446-10a525ec45a8", + "comment": "", + "command": "doubleClick", + "target": "id=edit8", + "targets": [ + ["id=edit8", "id"], + ["css=#edit8", "css:finder"], + ["xpath=//input[@id='edit8']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div/div[4]/dl[4]/dd/div[4]/span/input", "xpath:idRelative"], + ["xpath=//div[4]/span/input", "xpath:position"] + ], + "value": "" + }, { + "id": "9514f969-2867-4b35-bc8f-d91d8e87b437", + "comment": "", + "command": "type", + "target": "id=edit8", + "targets": [ + ["id=edit8", "id"], + ["css=#edit8", "css:finder"], + ["xpath=//input[@id='edit8']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div/div[4]/dl[4]/dd/div[4]/span/input", "xpath:idRelative"], + ["xpath=//div[4]/span/input", "xpath:position"] + ], + "value": "2" + }, { + "id": "e587fd22-de96-42e8-ad8d-e87edca73562", + "comment": "", + "command": "click", + "target": "css=#customer-ok > .ec-inlineBtn", + "targets": [ + ["css=#customer-ok > .ec-inlineBtn", "css:finder"], + ["xpath=(//button[@type='button'])[2]", "xpath:attributes"], + ["xpath=//span[@id='customer-ok']/button", "xpath:idRelative"], + ["xpath=//span/button", "xpath:position"], + ["xpath=//button[contains(.,'OK')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d35eebb9-534a-442e-b2c6-2cc40c9ae4c3", + "comment": "", + "command": "click", + "target": "css=.ec-orderDelivery__edit > .ec-inlineBtn", + "targets": [ + ["css=.ec-orderDelivery__edit > .ec-inlineBtn", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[2]/div[6]/button", "xpath:idRelative"], + ["xpath=//div[6]/button", "xpath:position"], + ["xpath=//button[contains(.,'お届け先を追加する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2bcabdc4-868a-47bd-83ec-8a90990ce48d", + "comment": "", + "command": "click", + "target": "linkText=新規お届け先を追加する", + "targets": [ + ["linkText=新規お届け先を追加する", "linkText"], + ["css=.btn:nth-child(1)", "css:finder"], + ["xpath=//a[contains(text(),'新規お届け先を追加する')]", "xpath:link"], + ["xpath=//form[@id='shipping-multiple-form']/div[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/shopping/shipping_multiple_edit')]", "xpath:href"], + ["xpath=//form/div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'新規お届け先を追加する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e74b948d-687a-401a-a82b-b3f9f103d213", + "comment": "", + "command": "click", + "target": "id=shopping_shipping_name_name01", + "targets": [ + ["id=shopping_shipping_name_name01", "id"], + ["name=shopping_shipping[name][name01]", "name"], + ["css=#shopping_shipping_name_name01", "css:finder"], + ["xpath=//input[@id='shopping_shipping_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "66bd6a03-080e-4374-b441-e0af20d9870f", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_name_name01", + "targets": [ + ["id=shopping_shipping_name_name01", "id"], + ["name=shopping_shipping[name][name01]", "name"], + ["css=#shopping_shipping_name_name01", "css:finder"], + ["xpath=//input[@id='shopping_shipping_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "石井" + }, { + "id": "89e1e885-6c12-4aaa-b915-fa5a7708d2ef", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_name_name02", + "targets": [ + ["id=shopping_shipping_name_name02", "id"], + ["name=shopping_shipping[name][name02]", "name"], + ["css=#shopping_shipping_name_name02", "css:finder"], + ["xpath=//input[@id='shopping_shipping_name_name02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//input[2]", "xpath:position"] + ], + "value": "球部" + }, { + "id": "3af6d3a3-2b6a-4af2-81b5-61c4fe48da3f", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_kana_kana01", + "targets": [ + ["id=shopping_shipping_kana_kana01", "id"], + ["name=shopping_shipping[kana][kana01]", "name"], + ["css=#shopping_shipping_kana_kana01", "css:finder"], + ["xpath=//input[@id='shopping_shipping_kana_kana01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input", "xpath:position"] + ], + "value": "イシイ" + }, { + "id": "8c4f4f06-1e3f-41a9-8720-4e0519a483b2", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_kana_kana02", + "targets": [ + ["id=shopping_shipping_kana_kana02", "id"], + ["name=shopping_shipping[kana][kana02]", "name"], + ["css=#shopping_shipping_kana_kana02", "css:finder"], + ["xpath=//input[@id='shopping_shipping_kana_kana02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"] + ], + "value": "キュウブ" + }, { + "id": "43c4009f-5d30-460e-b137-e75ea993a7e3", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_company_name", + "targets": [ + ["id=shopping_shipping_company_name", "id"], + ["name=shopping_shipping[company_name]", "name"], + ["css=#shopping_shipping_company_name", "css:finder"], + ["xpath=//input[@id='shopping_shipping_company_name']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[3]/dd/div/input", "xpath:position"] + ], + "value": "イーシーキューブ" + }, { + "id": "7e8e8c1e-da4a-43c2-851e-6a8f16892a0a", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_postal_code", + "targets": [ + ["id=shopping_shipping_postal_code", "id"], + ["name=shopping_shipping[postal_code]", "name"], + ["css=#shopping_shipping_postal_code", "css:finder"], + ["xpath=//input[@id='shopping_shipping_postal_code']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[4]/dd/div/input", "xpath:position"] + ], + "value": "5430001" + }, { + "id": "b49c6802-f3ea-4df2-9ec1-b5e6f11ee2f3", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,301.4666748046875)", + "targets": [], + "value": "" + }, { + "id": "8fbe895b-7d8e-4394-8e3a-9b899bfa2bf0", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_address_addr02", + "targets": [ + ["id=shopping_shipping_address_addr02", "id"], + ["name=shopping_shipping[address][addr02]", "name"], + ["css=#shopping_shipping_address_addr02", "css:finder"], + ["xpath=//input[@id='shopping_shipping_address_addr02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "1" + }, { + "id": "cdef8fb1-bb60-49f4-8fca-f2b1c24ab350", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_phone_number", + "targets": [ + ["id=shopping_shipping_phone_number", "id"], + ["name=shopping_shipping[phone_number]", "name"], + ["css=#shopping_shipping_phone_number", "css:finder"], + ["xpath=//input[@id='shopping_shipping_phone_number']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[5]/dd/div/input", "xpath:position"] + ], + "value": "333333333" + }, { + "id": "11771814-8bb3-44ae-9837-c816e956d2b5", + "comment": "", + "command": "click", + "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action", + "targets": [ + ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'登録する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f07d254f-6f03-4682-bc42-60b36e4da49a", + "comment": "", + "command": "mouseOver", + "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action", + "targets": [ + ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'登録する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "4c8b4f91-1ee7-4cb9-bf6c-df055d2aa788", + "comment": "", + "command": "mouseOut", + "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action", + "targets": [ + ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'登録する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "64d91569-47c8-431d-b65a-f8f464a66154", + "comment": "", + "command": "click", + "target": "id=button__add0", + "targets": [ + ["id=button__add0", "id"], + ["css=#button__add0", "css:finder"], + ["xpath=//button[@id='button__add0']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__add_button0']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'お届け先追加')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "95ae615e-ae89-4a5c-987b-79ea2b81154f", + "comment": "", + "command": "mouseOver", + "target": "id=button__add0", + "targets": [ + ["id=button__add0", "id"], + ["css=#button__add0", "css:finder"], + ["xpath=//button[@id='button__add0']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__add_button0']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'お届け先追加')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2e3c839f-2fb5-498d-8a8a-64efda8006ae", + "comment": "", + "command": "mouseOut", + "target": "id=button__add0", + "targets": [ + ["id=button__add0", "id"], + ["css=#button__add0", "css:finder"], + ["xpath=//button[@id='button__add0']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__add_button0']/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'お届け先追加')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0c08e1b4-fbff-42ed-abf9-d244caf462a3", + "comment": "", + "command": "select", + "target": "id=form_shipping_multiple_0_shipping_1_customer_address", + "targets": [], + "value": "label=石井 大阪府 大阪市天王寺区上本町 1" + }, { + "id": "8cdd101b-9a2a-49b6-a9b7-e112288919a9", + "comment": "", + "command": "click", + "target": "css=#form_shipping_multiple_0_shipping_1_customer_address > option:nth-child(2)", + "targets": [ + ["css=#form_shipping_multiple_0_shipping_1_customer_address > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[3]", "xpath:attributes"], + ["xpath=//select[@id='form_shipping_multiple_0_shipping_1_customer_address']/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/div/select/option[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "d55f7ac6-0ac3-48c3-9a3d-cad2c960fecc", + "comment": "", + "command": "click", + "target": "id=form_shipping_multiple_0_shipping_0_quantity", + "targets": [ + ["id=form_shipping_multiple_0_shipping_0_quantity", "id"], + ["name=form[shipping_multiple][0][shipping][0][quantity]", "name"], + ["css=#form_shipping_multiple_0_shipping_0_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_0_shipping_0_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--0_0']/div/input", "xpath:idRelative"], + ["xpath=//div/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "52e1e064-a825-495c-958a-0575ce9f472c", + "comment": "", + "command": "click", + "target": "id=form_shipping_multiple_0_shipping_0_quantity", + "targets": [ + ["id=form_shipping_multiple_0_shipping_0_quantity", "id"], + ["name=form[shipping_multiple][0][shipping][0][quantity]", "name"], + ["css=#form_shipping_multiple_0_shipping_0_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_0_shipping_0_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--0_0']/div/input", "xpath:idRelative"], + ["xpath=//div/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "3728c2b8-6780-4266-bb74-a96ff2ccd084", + "comment": "", + "command": "doubleClick", + "target": "id=form_shipping_multiple_0_shipping_0_quantity", + "targets": [ + ["id=form_shipping_multiple_0_shipping_0_quantity", "id"], + ["name=form[shipping_multiple][0][shipping][0][quantity]", "name"], + ["css=#form_shipping_multiple_0_shipping_0_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_0_shipping_0_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--0_0']/div/input", "xpath:idRelative"], + ["xpath=//div/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "07d2480b-3171-4900-8b13-c0933da9fd16", + "comment": "", + "command": "type", + "target": "id=form_shipping_multiple_0_shipping_0_quantity", + "targets": [ + ["id=form_shipping_multiple_0_shipping_0_quantity", "id"], + ["name=form[shipping_multiple][0][shipping][0][quantity]", "name"], + ["css=#form_shipping_multiple_0_shipping_0_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_0_shipping_0_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--0_0']/div/input", "xpath:idRelative"], + ["xpath=//div/div[2]/div/input", "xpath:position"] + ], + "value": "1" + }, { + "id": "a45fbbad-72b2-446f-b51a-eccfb02de5dc", + "comment": "", + "command": "click", + "target": "id=form_shipping_multiple_0_shipping_1_quantity", + "targets": [ + ["id=form_shipping_multiple_0_shipping_1_quantity", "id"], + ["name=form[shipping_multiple][0][shipping][1][quantity]", "name"], + ["css=#form_shipping_multiple_0_shipping_1_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_0_shipping_1_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--0_1']/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "020b74d7-05dd-4aac-b1f6-8d3d75d12070", + "comment": "", + "command": "click", + "target": "id=form_shipping_multiple_0_shipping_1_quantity", + "targets": [ + ["id=form_shipping_multiple_0_shipping_1_quantity", "id"], + ["name=form[shipping_multiple][0][shipping][1][quantity]", "name"], + ["css=#form_shipping_multiple_0_shipping_1_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_0_shipping_1_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--0_1']/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "6f02e61f-3fb1-4ad8-8e16-b63fbec5539d", + "comment": "", + "command": "doubleClick", + "target": "id=form_shipping_multiple_0_shipping_1_quantity", + "targets": [ + ["id=form_shipping_multiple_0_shipping_1_quantity", "id"], + ["name=form[shipping_multiple][0][shipping][1][quantity]", "name"], + ["css=#form_shipping_multiple_0_shipping_1_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_0_shipping_1_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--0_1']/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "2baa344c-b882-4b0c-8d46-64110ebf8868", + "comment": "", + "command": "type", + "target": "id=form_shipping_multiple_0_shipping_1_quantity", + "targets": [ + ["id=form_shipping_multiple_0_shipping_1_quantity", "id"], + ["name=form[shipping_multiple][0][shipping][1][quantity]", "name"], + ["css=#form_shipping_multiple_0_shipping_1_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_0_shipping_1_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--0_1']/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/input", "xpath:position"] + ], + "value": "1" + }, { + "id": "40c962e7-1382-4ad1-aef0-af2c0329ff4d", + "comment": "", + "command": "click", + "target": "id=multiple_list__add_button0", + "targets": [ + ["id=multiple_list__add_button0", "id"], + ["css=#multiple_list__add_button0", "css:finder"], + ["xpath=//div[@id='multiple_list__add_button0']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__item_box--0']/div[3]", "xpath:idRelative"], + ["xpath=//div[3]/div[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "3e85f362-daf4-4eca-b476-be320e98033f", + "comment": "", + "command": "click", + "target": "id=button__confirm", + "targets": [ + ["id=button__confirm", "id"], + ["css=#button__confirm", "css:finder"], + ["xpath=//button[@id='button__confirm']", "xpath:attributes"], + ["xpath=//form[@id='shipping-multiple-form']/div[6]/div/div/button", "xpath:idRelative"], + ["xpath=//div[6]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'選択したお届け先に送る')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "aa42fcc6-4c92-48c4-a272-31d3c5bf9d86", + "comment": "", + "command": "click", + "target": "css=div:nth-child(3) > label > span", + "targets": [ + ["css=div:nth-child(3) > label > span", "css:finder"], + ["xpath=//form[@id='shopping-form']/div/div/div[3]/div[2]/div[3]/label/span", "xpath:idRelative"], + ["xpath=//div[3]/label/span", "xpath:position"], + ["xpath=//span[contains(.,'銀行振込')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "94c9b1aa-8717-4e46-ab78-8fd5e501c2b0", + "comment": "", + "command": "click", + "target": "id=shopping_order_message", + "targets": [ + ["id=shopping_order_message", "id"], + ["name=_shopping_order[message]", "name"], + ["css=#shopping_order_message", "css:finder"], + ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "79a8ca7b-8ac0-4344-a07f-2ec5ba79f74c", + "comment": "", + "command": "type", + "target": "id=shopping_order_message", + "targets": [ + ["id=shopping_order_message", "id"], + ["name=_shopping_order[message]", "name"], + ["css=#shopping_order_message", "css:finder"], + ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "複数配送のテスト" + }, { + "id": "4bba4cfe-d220-46b1-b99e-c4786428b8f7", + "comment": "", + "command": "click", + "target": "css=.ec-totalBox__btn > .ec-blockBtn--action", + "targets": [ + ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "64e51550-5f7d-4fda-91cd-ef9abd4bb580", + "comment": "", + "command": "click", + "target": "css=.ec-totalBox__btn > .ec-blockBtn--action", + "targets": [ + ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'注文する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "510b04db-272d-405c-b0f4-0618e4d5e39e", + "comment": "", + "command": "click", + "target": "linkText=トップページへ", + "targets": [ + ["linkText=トップページへ", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"], + ["xpath=//body[@id='page_shopping_complete']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"] + ], + "value": "" + }] + }, { + "id": "6e49bc53-4dbc-4e3a-802b-dfc0473463a4", + "name": "商品購入(ゲスト)", + "commands": [{ + "id": "76813b94-ab73-4d68-869f-5354f06f771c", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "4a947343-8c18-4603-8413-48d08b9e7226", + "comment": "", + "command": "setWindowSize", + "target": "1160x692", + "targets": [], + "value": "" + }, { + "id": "c411ae09-71ec-414c-8c20-d0c4ea224bc2", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ec3a1799-4e4e-463a-855a-857b0f2b90fe", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "dc085baa-7941-4953-9c71-ffb5a7a0352e", + "comment": "", + "command": "click", + "target": "linkText=カートへ進む", + "targets": [ + ["linkText=カートへ進む", "linkText"], + ["css=.ec-inlineBtn--action", "css:finder"], + ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"], + ["xpath=//div[3]/div/div/div[2]/div/a", "xpath:position"] + ], + "value": "" + }, { + "id": "a03f5ffa-3b91-40ce-9b92-d605e8b42e25", + "comment": "", + "command": "click", + "target": "linkText=お買い物を続ける", + "targets": [ + ["linkText=お買い物を続ける", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'お買い物を続ける')]", "xpath:link"], + ["xpath=//form[@id='form_cart']/div[3]/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '/')])[17]", "xpath:href"], + ["xpath=//div[3]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'お買い物を続ける')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "7f323ab2-0564-411e-8e67-7ecad0536aeb", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1835e757-7e24-497d-bc94-f06440510c27", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,316.6666564941406)", + "targets": [], + "value": "" + }, { + "id": "c281340c-0f34-40e6-8812-33627a658b23", + "comment": "", + "command": "select", + "target": "id=classcategory_id11", + "targets": [], + "value": "label=チョコ" + }, { + "id": "fd2373ca-e970-416f-bdd5-3c8f426b1bf0", + "comment": "", + "command": "click", + "target": "css=#classcategory_id11 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id11 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[4]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id11']/option[2]", "xpath:idRelative"], + ["xpath=//li[2]/form/div/div/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "398fe89f-efbe-4861-a0de-0d6ec105cce2", + "comment": "", + "command": "select", + "target": "id=classcategory_id21", + "targets": [], + "value": "label=16mm × 16mm" + }, { + "id": "8b426bf1-8252-4657-ad2e-cde76f3afe9c", + "comment": "", + "command": "click", + "target": "css=#classcategory_id21 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id21 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='4'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id21']/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f0c73e3f-7934-4556-906f-7cffe278c78c", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[3]", "xpath:attributes"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/div/button", "xpath:idRelative"], + ["xpath=//li[2]/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "b1a30a61-2ced-41ed-992e-471036e28756", + "comment": "", + "command": "click", + "target": "linkText=カートへ進む", + "targets": [ + ["linkText=カートへ進む", "linkText"], + ["css=.ec-inlineBtn--action", "css:finder"], + ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"], + ["xpath=//div[3]/div/div/div[2]/div/a", "xpath:position"] + ], + "value": "" + }, { + "id": "179b6934-11cc-44be-b84b-4f19ee756ea0", + "comment": "", + "command": "click", + "target": "linkText=お買い物を続ける", + "targets": [ + ["linkText=お買い物を続ける", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'お買い物を続ける')]", "xpath:link"], + ["xpath=//form[@id='form_cart']/div[3]/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '/')])[21]", "xpath:href"], + ["xpath=//form/div[3]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'お買い物を続ける')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d9b3fdca-c706-40b1-bc2e-844a18dbb347", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2f74d531-6cca-4d3a-938c-3fd3d9061e07", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,300.20001220703125)", + "targets": [], + "value": "" + }, { + "id": "99423da2-5c78-40f1-b54a-7d1d0b7d0785", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(1) img", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(1) img", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/a/p/img", "xpath:idRelative"], + ["xpath=//p/img", "xpath:position"] + ], + "value": "" + }, { + "id": "71da5e0a-c8ae-42e0-ba80-11ed6a19c6ca", + "comment": "", + "command": "click", + "target": "css=.add-cart", + "targets": [ + ["css=.add-cart", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "261a5918-a916-4f9a-a488-bf3c13d542d6", + "comment": "", + "command": "click", + "target": "css=.ec-inlineBtn--cancel", + "targets": [ + ["css=.ec-inlineBtn--cancel", "css:finder"], + ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[5]/div/div/div[2]/div/label", "xpath:idRelative"], + ["xpath=//div[2]/div/label", "xpath:position"], + ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "47a05c92-af74-4c25-9fd5-eaff2ad1d10c", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_product_detail']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "945c0ff8-3710-4321-8d21-eb1dea96bd32", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(2) img", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(2) img", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/a/p/img", "xpath:idRelative"], + ["xpath=//li[2]/a/p/img", "xpath:position"] + ], + "value": "" + }, { + "id": "c84e7074-9572-433d-acf4-234894670909", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,312.8666687011719)", + "targets": [], + "value": "" + }, { + "id": "2967c6f4-2d72-4f7b-af3c-d855d4459231", + "comment": "", + "command": "select", + "target": "id=classcategory_id1", + "targets": [], + "value": "label=バニラ" + }, { + "id": "bce8d9b1-1015-4e40-a2b9-6a4d476bcb34", + "comment": "", + "command": "click", + "target": "css=#classcategory_id1 > option:nth-child(4)", + "targets": [ + ["css=#classcategory_id1 > option:nth-child(4)", "css:finder"], + ["xpath=(//option[@value='3'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id1']/option[4]", "xpath:idRelative"], + ["xpath=//div[2]/div/form/div/div/select/option[4]", "xpath:position"], + ["xpath=//option[contains(.,'バニラ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2e49db80-2d2a-472d-9e53-06a7847d4ba0", + "comment": "", + "command": "select", + "target": "id=classcategory_id2", + "targets": [], + "value": "label=64cm × 64cm" + }, { + "id": "a84c30c8-7e7f-470a-8cc3-961f356b12ef", + "comment": "", + "command": "click", + "target": "css=#classcategory_id2 > option:nth-child(4)", + "targets": [ + ["css=#classcategory_id2 > option:nth-child(4)", "css:finder"], + ["xpath=(//option[@value='6'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id2']/option[4]", "xpath:idRelative"], + ["xpath=//div[2]/select/option[4]", "xpath:position"], + ["xpath=//option[contains(.,'64cm × 64cm')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0776f560-74de-4c79-9427-a114079f2d3e", + "comment": "", + "command": "click", + "target": "css=.add-cart", + "targets": [ + ["css=.add-cart", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b7f60f11-b8b9-4782-8c7d-93ae56370775", + "comment": "", + "command": "click", + "target": "linkText=カートへ進む", + "targets": [ + ["linkText=カートへ進む", "linkText"], + ["css=.ec-inlineBtn--action", "css:finder"], + ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"], + ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[6]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"], + ["xpath=//div[6]/div/div/div[2]/div/a", "xpath:position"] + ], + "value": "" + }, { + "id": "21c887e1-10af-4b3b-947e-f5c024f911c0", + "comment": "", + "command": "click", + "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", + "targets": [ + ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", "css:finder"], + ["xpath=(//img[@alt='increase'])[2]", "xpath:img"], + ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a/span/img", "xpath:idRelative"], + ["xpath=//ul[2]/li[3]/div[3]/a/span/img", "xpath:position"] + ], + "value": "" + }, { + "id": "1a077328-7d24-43da-8cfc-4c63725336f7", + "comment": "", + "command": "click", + "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountDownButton img", + "targets": [ + ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountDownButton img", "css:finder"], + ["xpath=(//img[@alt='reduce'])[2]", "xpath:img"], + ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a/span/img", "xpath:idRelative"], + ["xpath=//ul[2]/li[3]/div[3]/a/span/img", "xpath:position"] + ], + "value": "" + }, { + "id": "c818362c-d737-4e3a-9e76-c01a08815425", + "comment": "", + "command": "click", + "target": "linkText=レジに進む", + "targets": [ + ["linkText=レジに進む", "linkText"], + ["css=.ec-blockBtn--action:nth-child(2)", "css:finder"], + ["xpath=//a[contains(text(),'レジに進む')]", "xpath:link"], + ["xpath=//form[@id='form_cart']/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/cart/buystep/kR3Ty6253q4UR3zb7Ut4PgtUjhKHe80A_1')]", "xpath:href"], + ["xpath=//form/div[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'レジに進む')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "9d13ea23-89d8-4a32-a732-ccb5d0a9df84", + "comment": "", + "command": "click", + "target": "linkText=ゲスト購入", + "targets": [ + ["linkText=ゲスト購入", "linkText"], + ["css=.ec-guest__actions > .ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'ゲスト購入')]", "xpath:link"], + ["xpath=//body[@id='page_shopping_login']/div/div[2]/div/div[2]/div/div[2]/div/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/shopping/nonmember')]", "xpath:href"], + ["xpath=//div[2]/div/div[2]/div/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'ゲスト購入')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "aaa1a397-227b-4946-b0b9-51f8eaf978aa", + "comment": "", + "command": "click", + "target": "id=nonmember_name_name01", + "targets": [ + ["id=nonmember_name_name01", "id"], + ["name=nonmember[name][name01]", "name"], + ["css=#nonmember_name_name01", "css:finder"], + ["xpath=//input[@id='nonmember_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "d7c876ea-88a8-4480-812d-a08bb398ec5c", + "comment": "", + "command": "type", + "target": "id=nonmember_name_name01", + "targets": [ + ["id=nonmember_name_name01", "id"], + ["name=nonmember[name][name01]", "name"], + ["css=#nonmember_name_name01", "css:finder"], + ["xpath=//input[@id='nonmember_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "石" + }, { + "id": "2aeb2d44-6063-4a71-a49d-6581154d4c7f", + "comment": "", + "command": "type", + "target": "id=nonmember_name_name02", + "targets": [ + ["id=nonmember_name_name02", "id"], + ["name=nonmember[name][name02]", "name"], + ["css=#nonmember_name_name02", "css:finder"], + ["xpath=//input[@id='nonmember_name_name02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//input[2]", "xpath:position"] + ], + "value": "九部" + }, { + "id": "347e87c0-b06f-4867-963a-9abea690f1ec", + "comment": "", + "command": "type", + "target": "id=nonmember_kana_kana01", + "targets": [ + ["id=nonmember_kana_kana01", "id"], + ["name=nonmember[kana][kana01]", "name"], + ["css=#nonmember_kana_kana01", "css:finder"], + ["xpath=//input[@id='nonmember_kana_kana01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input", "xpath:position"] + ], + "value": "イシ" + }, { + "id": "a46ddd68-cb83-4634-b7ec-b561e781b0ac", + "comment": "", + "command": "type", + "target": "id=nonmember_kana_kana02", + "targets": [ + ["id=nonmember_kana_kana02", "id"], + ["name=nonmember[kana][kana02]", "name"], + ["css=#nonmember_kana_kana02", "css:finder"], + ["xpath=//input[@id='nonmember_kana_kana02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"] + ], + "value": "キューブ" + }, { + "id": "222002ae-26c0-42db-85e4-ba9b773e1116", + "comment": "", + "command": "type", + "target": "id=nonmember_company_name", + "targets": [ + ["id=nonmember_company_name", "id"], + ["name=nonmember[company_name]", "name"], + ["css=#nonmember_company_name", "css:finder"], + ["xpath=//input[@id='nonmember_company_name']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[3]/dd/div/input", "xpath:position"] + ], + "value": "イーシーキューブ株式会社" + }, { + "id": "8f311a9c-362f-47f6-aea6-477458d28745", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,331.8666687011719)", + "targets": [], + "value": "" + }, { + "id": "a163b3f6-b17e-4197-993f-bd910f07570c", + "comment": "", + "command": "type", + "target": "id=nonmember_postal_code", + "targets": [ + ["id=nonmember_postal_code", "id"], + ["name=nonmember[postal_code]", "name"], + ["css=#nonmember_postal_code", "css:finder"], + ["xpath=//input[@id='nonmember_postal_code']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[4]/dd/div/input", "xpath:position"] + ], + "value": "5300001" + }, { + "id": "f14f7d34-4931-4e44-8708-ded025ef29eb", + "comment": "", + "command": "click", + "target": "css=dl:nth-child(4) > dd", + "targets": [ + ["css=dl:nth-child(4) > dd", "css:finder"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd", "xpath:idRelative"], + ["xpath=//dl[4]/dd", "xpath:position"] + ], + "value": "" + }, { + "id": "3e2ae78b-4567-448b-adc1-16eda580e20f", + "comment": "", + "command": "click", + "target": "id=nonmember_address_addr02", + "targets": [ + ["id=nonmember_address_addr02", "id"], + ["name=nonmember[address][addr02]", "name"], + ["css=#nonmember_address_addr02", "css:finder"], + ["xpath=//input[@id='nonmember_address_addr02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "77d4700b-73fa-4680-9c6d-7812c30619d4", + "comment": "", + "command": "type", + "target": "id=nonmember_address_addr02", + "targets": [ + ["id=nonmember_address_addr02", "id"], + ["name=nonmember[address][addr02]", "name"], + ["css=#nonmember_address_addr02", "css:finder"], + ["xpath=//input[@id='nonmember_address_addr02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "1" + }, { + "id": "eff693af-ee3c-4c40-b0ec-cde64d173307", + "comment": "", + "command": "click", + "target": "css=.ec-telInput", + "targets": [ + ["css=.ec-telInput", "css:finder"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[5]/dd/div", "xpath:idRelative"], + ["xpath=//dl[5]/dd/div", "xpath:position"] + ], + "value": "" + }, { + "id": "acc45c0b-f706-4cee-ac34-2930671ceed6", + "comment": "", + "command": "click", + "target": "id=nonmember_phone_number", + "targets": [ + ["id=nonmember_phone_number", "id"], + ["name=nonmember[phone_number]", "name"], + ["css=#nonmember_phone_number", "css:finder"], + ["xpath=//input[@id='nonmember_phone_number']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[5]/dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "1baadf51-024b-49f9-ae16-a4a5d973331c", + "comment": "", + "command": "type", + "target": "id=nonmember_phone_number", + "targets": [ + ["id=nonmember_phone_number", "id"], + ["name=nonmember[phone_number]", "name"], + ["css=#nonmember_phone_number", "css:finder"], + ["xpath=//input[@id='nonmember_phone_number']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[5]/dd/div/input", "xpath:position"] + ], + "value": "333333333" + }, { + "id": "3cd29b40-347c-4379-9dbb-333ab5116d28", + "comment": "", + "command": "click", + "target": "id=nonmember_email_first", + "targets": [ + ["id=nonmember_email_first", "id"], + ["name=nonmember[email][first]", "name"], + ["css=#nonmember_email_first", "css:finder"], + ["xpath=//input[@id='nonmember_email_first']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[6]/dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "514b790f-05ee-4811-93a9-53f07492b28c", + "comment": "", + "command": "type", + "target": "id=nonmember_email_first", + "targets": [ + ["id=nonmember_email_first", "id"], + ["name=nonmember[email][first]", "name"], + ["css=#nonmember_email_first", "css:finder"], + ["xpath=//input[@id='nonmember_email_first']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[6]/dd/div/input", "xpath:position"] + ], + "value": "ec-cube@example.com" + }, { + "id": "f700349e-fcf8-46b0-8e0a-cd7987b1ff13", + "comment": "", + "command": "click", + "target": "id=nonmember_email_second", + "targets": [ + ["id=nonmember_email_second", "id"], + ["name=nonmember[email][second]", "name"], + ["css=#nonmember_email_second", "css:finder"], + ["xpath=//input[@id='nonmember_email_second']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "25ba77e4-467a-4e4d-bb5c-f4413dc609f9", + "comment": "", + "command": "type", + "target": "id=nonmember_email_second", + "targets": [ + ["id=nonmember_email_second", "id"], + ["name=nonmember[email][second]", "name"], + ["css=#nonmember_email_second", "css:finder"], + ["xpath=//input[@id='nonmember_email_second']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div/dl[6]/dd/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "ec-cube@example.com" + }, { + "id": "f2f10548-1d67-44bf-9482-3ee49e98e0a4", + "comment": "", + "command": "click", + "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action", + "targets": [ + ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_nonmember']/div/div[2]/div/div/div[3]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'次へ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "94af36da-b820-4d8e-a114-7f442c7d3c30", + "comment": "", + "command": "click", + "target": "css=#shopping_order_Shippings_0_shipping_delivery_date > option", + "targets": [ + ["css=#shopping_order_Shippings_0_shipping_delivery_date > option", "css:finder"], + ["xpath=(//option[@value=''])[2]", "xpath:attributes"], + ["xpath=//select[@id='shopping_order_Shippings_0_shipping_delivery_date']/option", "xpath:idRelative"], + ["xpath=//div[2]/select/option", "xpath:position"], + ["xpath=//option[contains(.,'指定なし')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a441aee7-fe7a-4be9-a2d7-dce6aaee49e4", + "comment": "", + "command": "select", + "target": "id=shopping_order_Shippings_0_DeliveryTime", + "targets": [], + "value": "label=午前" + }, { + "id": "c07da011-b76a-490c-a015-54d0cf650f03", + "comment": "", + "command": "click", + "target": "css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(2)", + "targets": [ + ["css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[3]", "xpath:attributes"], + ["xpath=//select[@id='shopping_order_Shippings_0_DeliveryTime']/option[2]", "xpath:idRelative"], + ["xpath=//div[3]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'午前')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1f10174a-56ea-45a7-b6d2-5e43b0229b95", + "comment": "", + "command": "click", + "target": "css=div:nth-child(4) > label > span", + "targets": [ + ["css=div:nth-child(4) > label > span", "css:finder"], + ["xpath=//form[@id='shopping-form']/div/div/div[3]/div[2]/div[4]/label/span", "xpath:idRelative"], + ["xpath=//div[4]/label/span", "xpath:position"], + ["xpath=//span[contains(.,'代金引換')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a23fabca-72fc-4bb2-a235-c68c5c54ef4a", + "comment": "", + "command": "click", + "target": "css=.ec-totalBox__btn > .ec-blockBtn--action", + "targets": [ + ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "20c52c65-0028-4aff-a4b8-71ec4edb81e4", + "comment": "", + "command": "mouseOver", + "target": "css=.ec-totalBox__btn > .ec-blockBtn--action", + "targets": [ + ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "42d684e0-d71d-40e9-bcbd-c22031f59f9a", + "comment": "", + "command": "mouseOut", + "target": "css=.ec-totalBox__btn > .ec-blockBtn--action", + "targets": [ + ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "eabd2cee-2e64-4d86-98c2-8a45c12239ef", + "comment": "", + "command": "click", + "target": "css=.ec-totalBox__btn > .ec-blockBtn--action", + "targets": [ + ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[3]/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'注文する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "93620f0c-a764-4250-a4d6-8c51c6a248ca", + "comment": "", + "command": "click", + "target": "linkText=トップページへ", + "targets": [ + ["linkText=トップページへ", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"], + ["xpath=//body[@id='page_shopping_complete']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a5413ff3-6cd3-4629-ac6c-39f4f36c63c7", + "comment": "", + "command": "chooseOkOnNextConfirmation", + "target": "", + "targets": [], + "value": "" + }, { + "id": "555f059d-70cd-4510-871f-0eeaeb024067", + "comment": "", + "command": "close", + "target": "", + "targets": [], + "value": "" + }] + }, { + "id": "30749fcc-d7dc-4ac7-b2d8-bb46a9a968bf", + "name": "お問い合わせ(ログイン)", + "commands": [{ + "id": "d8ea74c4-3409-4041-ab67-bea0cc54bf93", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "5866df66-1e67-4cfe-a1ff-81d302bc4003", + "comment": "", + "command": "setWindowSize", + "target": "1160x693", + "targets": [], + "value": "" + }, { + "id": "5adf0377-1682-4e98-975c-57b09f8432e6", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,321.73333740234375)", + "targets": [], + "value": "" + }, { + "id": "42c8b2b0-aec9-4ef0-911d-d9488d1c9977", + "comment": "", + "command": "click", + "target": "linkText=お問い合わせ", + "targets": [ + ["linkText=お問い合わせ", "linkText"], + ["css=.ec-footerNavi__link:nth-child(4) > a", "css:finder"], + ["xpath=//a[contains(text(),'お問い合わせ')]", "xpath:link"], + ["xpath=//body[@id='page_homepage']/div/div[3]/div/div/ul/li[4]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/contact')]", "xpath:href"], + ["xpath=//li[4]/a", "xpath:position"], + ["xpath=//a[contains(.,'お問い合わせ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "38ea2e95-e1d1-4db9-b7d6-7ba2f1d1ba26", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,307.79998779296875)", + "targets": [], + "value": "" + }, { + "id": "02b8b2b0-7cae-4f9d-be53-b813397d63eb", + "comment": "", + "command": "click", + "target": "id=contact_contents", + "targets": [ + ["id=contact_contents", "id"], + ["name=contact[contents]", "name"], + ["css=#contact_contents", "css:finder"], + ["xpath=//textarea[@id='contact_contents']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[6]/dd/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "25a4dda9-8dcb-45e5-9a80-c0e1552c7648", + "comment": "", + "command": "type", + "target": "id=contact_contents", + "targets": [ + ["id=contact_contents", "id"], + ["name=contact[contents]", "name"], + ["css=#contact_contents", "css:finder"], + ["xpath=//textarea[@id='contact_contents']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div/dl[6]/dd/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "お問い合わせのテスト" + }, { + "id": "52399b20-861e-4de0-990f-ca78ccec5798", + "comment": "", + "command": "click", + "target": "name=mode", + "targets": [ + ["name=mode", "name"], + ["css=.ec-blockBtn--action", "css:finder"], + ["xpath=//button[@name='mode']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'確認ページへ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "23bc91a6-7ed4-4ede-8a4f-583ccc609ee6", + "comment": "", + "command": "mouseOver", + "target": "name=mode", + "targets": [ + ["name=mode", "name"], + ["css=.ec-blockBtn--action", "css:finder"], + ["xpath=//button[@name='mode']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'確認ページへ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b30f7b98-8286-4e2d-9d56-a1ffe7abfb5e", + "comment": "", + "command": "mouseOut", + "target": "name=mode", + "targets": [ + ["name=mode", "name"], + ["css=.ec-blockBtn--action", "css:finder"], + ["xpath=//button[@name='mode']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'確認ページへ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5389872b-14f8-443d-847e-29bad889a531", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,363.5333251953125)", + "targets": [], + "value": "" + }, { + "id": "59ba9aed-b652-434e-b8ff-a0141273001b", + "comment": "", + "command": "click", + "target": "name=mode", + "targets": [ + ["name=mode", "name"], + ["css=.ec-blockBtn--action", "css:finder"], + ["xpath=//button[@name='mode']", "xpath:attributes"], + ["xpath=//body[@id='page_contact']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'送信する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "30e07db1-a1b6-416d-8804-37f16f8c99fb", + "comment": "", + "command": "click", + "target": "linkText=トップページへ", + "targets": [ + ["linkText=トップページへ", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"], + ["xpath=//body[@id='page_contact_complete']/div/div[2]/div/div[2]/div/div/div[3]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"] + ], + "value": "" + }] + }, { + "id": "45f29c3b-c4e9-48bc-a433-770b13f3c2bd", + "name": "パスワード再発行", + "commands": [{ + "id": "2186e0e3-5ef6-43d5-8937-80f67666dff6", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "eea18b28-43a1-4d4d-b10a-d0f338734fb3", + "comment": "", + "command": "setWindowSize", + "target": "1160x693", + "targets": [], + "value": "" + }, { + "id": "94152a2a-acac-4ebf-abf1-713e7ba9fe89", + "comment": "", + "command": "click", + "target": "css=.ec-headerNav__item:nth-child(3) .ec-headerNav__itemLink", + "targets": [ + ["css=.ec-headerNav__item:nth-child(3) .ec-headerNav__itemLink", "css:finder"], + ["xpath=//body[@id='page_homepage']/div/div/div/div[2]/div/div/div[3]/a/span", "xpath:idRelative"], + ["xpath=//div[3]/a/span", "xpath:position"], + ["xpath=//span[contains(.,'ログイン')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a8e507ec-4b94-4062-b7e2-ac39390b8801", + "comment": "", + "command": "click", + "target": "linkText=ログイン情報をお忘れですか?", + "targets": [ + ["linkText=ログイン情報をお忘れですか?", "linkText"], + ["css=.ec-login__link:nth-child(1) > .ec-link", "css:finder"], + ["xpath=//a[contains(text(),'ログイン情報をお忘れですか?')]", "xpath:link"], + ["xpath=//form[@id='login_mypage']/div/div[3]/div[2]/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/forgot')]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'ログイン情報をお忘れですか?')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "505a6289-f925-4933-96a5-e9f181be5c2a", + "comment": "", + "command": "click", + "target": "id=login_email", + "targets": [ + ["id=login_email", "id"], + ["name=login_email", "name"], + ["css=#login_email", "css:finder"], + ["xpath=//input[@id='login_email']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div/div/div[2]/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "59f7b8d9-a6bb-4d01-b5e2-ee33df2cff3c", + "comment": "", + "command": "type", + "target": "id=login_email", + "targets": [ + ["id=login_email", "id"], + ["name=login_email", "name"], + ["css=#login_email", "css:finder"], + ["xpath=//input[@id='login_email']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div/div/div[2]/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "zap_user_guest@example.com" + }, { + "id": "7b1878ff-03d4-41e9-b51c-1bec90259cc6", + "comment": "", + "command": "click", + "target": "css=.ec-blockBtn--action", + "targets": [ + ["css=.ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/div/button", "xpath:idRelative"], + ["xpath=//div[2]/form/div[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,'次へ')]", "xpath:innerText"] + ], + "value": "" + }] + }, { + "id": "35d9fe92-2e6f-4c22-be4f-ce68a5a53756", + "name": "商品購入(ログイン)", + "commands": [{ + "id": "12d9a8f1-3dfa-4fc6-88d3-377df5598602", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "7bcd2e4a-2e0e-4dd9-8376-c6849716e32e", + "comment": "", + "command": "setWindowSize", + "target": "1160x693", + "targets": [], + "value": "" + }, { + "id": "20207428-d03b-409b-b422-cd4f5f3cd87b", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "07a9c97e-6a42-4809-88e2-db79eb7cc0e6", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1fe3bf77-d475-42db-8813-82ba7d46f9d9", + "comment": "", + "command": "click", + "target": "linkText=カートへ進む", + "targets": [ + ["linkText=カートへ進む", "linkText"], + ["css=.ec-inlineBtn--action", "css:finder"], + ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"], + ["xpath=//div[3]/div/div/div[2]/div/a", "xpath:position"] + ], + "value": "" + }, { + "id": "c93a10d2-f0c0-41d7-b47c-3bab0174b6b3", + "comment": "", + "command": "click", + "target": "linkText=お買い物を続ける", + "targets": [ + ["linkText=お買い物を続ける", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'お買い物を続ける')]", "xpath:link"], + ["xpath=//form[@id='form_cart']/div[3]/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '/')])[17]", "xpath:href"], + ["xpath=//div[3]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'お買い物を続ける')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f9726a1f-c8bc-4eb4-8c8e-d9e61b59e8dd", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "32435465-d677-49d7-97df-867e1e7194a4", + "comment": "", + "command": "click", + "target": "id=classcategory_id11", + "targets": [ + ["id=classcategory_id11", "id"], + ["name=classcategory_id1", "name"], + ["css=#classcategory_id11", "css:finder"], + ["xpath=//select[@id='classcategory_id11']", "xpath:attributes"], + ["xpath=//form[@id='productForm1']/div/div/select", "xpath:idRelative"], + ["xpath=//li[2]/form/div/div/select", "xpath:position"] + ], + "value": "" + }, { + "id": "5e7b4d40-414f-426d-878c-afe139358ff6", + "comment": "", + "command": "select", + "target": "id=classcategory_id11", + "targets": [], + "value": "label=チョコ" + }, { + "id": "40ff6ebc-05e2-4197-aaea-17a1eac9445c", + "comment": "", + "command": "click", + "target": "css=#classcategory_id11 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id11 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[4]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id11']/option[2]", "xpath:idRelative"], + ["xpath=//li[2]/form/div/div/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ebd06755-82a7-45f5-879c-830b61aca9df", + "comment": "", + "command": "select", + "target": "id=classcategory_id21", + "targets": [], + "value": "label=16mm × 16mm" + }, { + "id": "f4e062c8-90ea-4bce-978e-d0c7b8d03b17", + "comment": "", + "command": "click", + "target": "css=#classcategory_id21 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id21 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='4'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id21']/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "3816cd3e-da65-4ea2-803d-8d8599f9d8d8", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[3]", "xpath:attributes"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/div/button", "xpath:idRelative"], + ["xpath=//li[2]/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "9c188f89-9000-4a34-90e0-9f2217ac1924", + "comment": "", + "command": "click", + "target": "css=.ec-inlineBtn--cancel", + "targets": [ + ["css=.ec-inlineBtn--cancel", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/label", "xpath:idRelative"], + ["xpath=//div[2]/div/label", "xpath:position"], + ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "235affcb-5e86-48e5-afae-d12a51f67e83", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(1) img", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(1) img", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/a/p/img", "xpath:idRelative"], + ["xpath=//p/img", "xpath:position"] + ], + "value": "" + }, { + "id": "bfb18543-786c-4755-9d84-c0a55de7ec5c", + "comment": "", + "command": "click", + "target": "css=.add-cart", + "targets": [ + ["css=.add-cart", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a144a0e6-bf9a-469f-8e26-c6d342c3c6a1", + "comment": "", + "command": "click", + "target": "linkText=カートへ進む", + "targets": [ + ["linkText=カートへ進む", "linkText"], + ["css=.ec-inlineBtn--action", "css:finder"], + ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"], + ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[5]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"], + ["xpath=//div[5]/div/div/div[2]/div/a", "xpath:position"] + ], + "value": "" + }, { + "id": "8ed07c86-1e1e-4093-a72c-0c09aab60536", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_cart']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b52bb6a6-61a0-4e2a-9fde-3b44c6cee9b7", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(2) img", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(2) img", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/a/p/img", "xpath:idRelative"], + ["xpath=//li[2]/a/p/img", "xpath:position"] + ], + "value": "" + }, { + "id": "939d101b-f705-4fc5-a933-f384aa13ea3d", + "comment": "", + "command": "select", + "target": "id=classcategory_id1", + "targets": [], + "value": "label=チョコ" + }, { + "id": "f348c7bb-d7fc-423a-b87a-52b4f11b0ada", + "comment": "", + "command": "click", + "target": "css=#classcategory_id1 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id1 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id1']/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/form/div/div/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "abad7282-3c89-41dc-a5ee-db05bdb80fb3", + "comment": "", + "command": "select", + "target": "id=classcategory_id2", + "targets": [], + "value": "label=16mm × 16mm" + }, { + "id": "a7971844-1815-4a4e-9619-a7bc45d87aa7", + "comment": "", + "command": "click", + "target": "css=#classcategory_id2 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id2 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='4'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id2']/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "64de0afe-38f4-4b8a-89cb-61dc88ee885c", + "comment": "", + "command": "click", + "target": "css=.add-cart", + "targets": [ + ["css=.add-cart", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8f49dde8-33ab-4d8e-8d0d-aa4e1f7232f4", + "comment": "", + "command": "click", + "target": "linkText=カートへ進む", + "targets": [ + ["linkText=カートへ進む", "linkText"], + ["css=.ec-inlineBtn--action", "css:finder"], + ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"], + ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[6]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"], + ["xpath=//div[6]/div/div/div[2]/div/a", "xpath:position"] + ], + "value": "" + }, { + "id": "6db11f82-aeeb-4eb6-86ea-2e1a1859f61c", + "comment": "", + "command": "click", + "target": "linkText=レジに進む", + "targets": [ + ["linkText=レジに進む", "linkText"], + ["css=.ec-blockBtn--action:nth-child(2)", "css:finder"], + ["xpath=//a[contains(text(),'レジに進む')]", "xpath:link"], + ["xpath=//form[@id='form_cart']/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/cart/buystep/1_1')]", "xpath:href"], + ["xpath=//form/div[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'レジに進む')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "db01a59c-3db1-48ea-ba14-09dc9aea6131", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,305.26666259765625)", + "targets": [], + "value": "" + }, { + "id": "93377227-cb1a-481f-aeb1-78623c78b0c9", + "comment": "", + "command": "click", + "target": "id=shopping_order_Shippings_0_Delivery", + "targets": [ + ["id=shopping_order_Shippings_0_Delivery", "id"], + ["name=_shopping_order[Shippings][0][Delivery]", "name"], + ["css=#shopping_order_Shippings_0_Delivery", "css:finder"], + ["xpath=//select[@id='shopping_order_Shippings_0_Delivery']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[2]/div[5]/div/div/select", "xpath:idRelative"], + ["xpath=//div[5]/div/div/select", "xpath:position"], + ["xpath=//select[contains(.,'サンプル業者')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e94b0c9c-d7d3-4d56-82a5-d403af99cd08", + "comment": "", + "command": "click", + "target": "id=shopping_order_Shippings_0_DeliveryTime", + "targets": [ + ["id=shopping_order_Shippings_0_DeliveryTime", "id"], + ["name=_shopping_order[Shippings][0][DeliveryTime]", "name"], + ["css=#shopping_order_Shippings_0_DeliveryTime", "css:finder"], + ["xpath=//select[@id='shopping_order_Shippings_0_DeliveryTime']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[2]/div[5]/div/div[3]/select", "xpath:idRelative"], + ["xpath=//div[3]/select", "xpath:position"] + ], + "value": "" + }, { + "id": "066895ad-7495-4d3f-8d14-356c4dfaf46d", + "comment": "", + "command": "select", + "target": "id=shopping_order_Shippings_0_DeliveryTime", + "targets": [], + "value": "label=午後" + }, { + "id": "77f4ec3c-2f18-4c85-8554-332486744fb5", + "comment": "", + "command": "click", + "target": "css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(3)", + "targets": [ + ["css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(3)", "css:finder"], + ["xpath=(//option[@value='2'])[2]", "xpath:attributes"], + ["xpath=//select[@id='shopping_order_Shippings_0_DeliveryTime']/option[3]", "xpath:idRelative"], + ["xpath=//div[3]/select/option[3]", "xpath:position"], + ["xpath=//option[contains(.,'午後')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b75a5213-478d-4723-b0b5-3eab4190b286", + "comment": "", + "command": "click", + "target": "css=div:nth-child(4) > label", + "targets": [ + ["css=div:nth-child(4) > label", "css:finder"], + ["xpath=//form[@id='shopping-form']/div/div/div[3]/div[2]/div[4]/label", "xpath:idRelative"], + ["xpath=//div[4]/label", "xpath:position"], + ["xpath=//label[contains(.,'代金引換')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "efcc6310-a83f-46a9-8c35-085b594e98b6", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,343.26666259765625)", + "targets": [], + "value": "" + }, { + "id": "4703e864-9b4b-4760-b6db-844523bd2922", + "comment": "", + "command": "click", + "target": "id=shopping_order_use_point", + "targets": [ + ["id=shopping_order_use_point", "id"], + ["name=_shopping_order[use_point]", "name"], + ["css=#shopping_order_use_point", "css:finder"], + ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "c21afda7-cfb6-4d47-8931-a4ea3afaa1e1", + "comment": "", + "command": "click", + "target": "id=shopping_order_use_point", + "targets": [ + ["id=shopping_order_use_point", "id"], + ["name=_shopping_order[use_point]", "name"], + ["css=#shopping_order_use_point", "css:finder"], + ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "b9e45263-297a-47b2-be6c-a80e70bcbab2", + "comment": "", + "command": "doubleClick", + "target": "id=shopping_order_use_point", + "targets": [ + ["id=shopping_order_use_point", "id"], + ["name=_shopping_order[use_point]", "name"], + ["css=#shopping_order_use_point", "css:finder"], + ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "8f080440-d3f8-412a-86cf-49fc959fed93", + "comment": "", + "command": "type", + "target": "id=shopping_order_use_point", + "targets": [ + ["id=shopping_order_use_point", "id"], + ["name=_shopping_order[use_point]", "name"], + ["css=#shopping_order_use_point", "css:finder"], + ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/input", "xpath:position"] + ], + "value": "1" + }, { + "id": "ab9ed110-4d4a-4743-bb7d-569356c0c4fa", + "comment": "", + "command": "click", + "target": "id=shopping_order_message", + "targets": [ + ["id=shopping_order_message", "id"], + ["name=_shopping_order[message]", "name"], + ["css=#shopping_order_message", "css:finder"], + ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[5]/div[2]/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "75b5c0e4-f0cb-4aac-9d3a-b30f2c8b1b27", + "comment": "", + "command": "type", + "target": "id=shopping_order_message", + "targets": [ + ["id=shopping_order_message", "id"], + ["name=_shopping_order[message]", "name"], + ["css=#shopping_order_message", "css:finder"], + ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[5]/div[2]/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "商品購入のテスト" + }, { + "id": "880755e3-c565-45bc-895f-6104b2d4f24a", + "comment": "", + "command": "click", + "target": "css=.ec-totalBox__btn > .ec-blockBtn--action", + "targets": [ + ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[5]/button", "xpath:idRelative"], + ["xpath=//div[5]/button", "xpath:position"], + ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "92408a52-7373-4bec-868a-a4c6599893fc", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,349.6000061035156)", + "targets": [], + "value": "" + }, { + "id": "6439b7b5-8c04-44a7-888f-ed3dc08735b3", + "comment": "", + "command": "click", + "target": "css=.ec-totalBox__btn > .ec-blockBtn--action", + "targets": [ + ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[5]/button", "xpath:idRelative"], + ["xpath=//div[5]/button", "xpath:position"], + ["xpath=//button[contains(.,'注文する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "cc4e937c-3b14-415e-aae3-f8101e5c1011", + "comment": "", + "command": "click", + "target": "linkText=トップページへ", + "targets": [ + ["linkText=トップページへ", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"], + ["xpath=//body[@id='page_shopping_complete']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"] + ], + "value": "" + }] + }, { + "id": "9d966310-b239-4084-95c9-3c4aec4ec77f", + "name": "商品購入(複数配送先)(ログイン)", + "commands": [{ + "id": "0e5dd79e-0dce-41dd-a004-4cca5ea59ca4", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "47fa5173-b26e-4232-8ed9-643337449ea3", + "comment": "", + "command": "setWindowSize", + "target": "1160x694", + "targets": [], + "value": "" + }, { + "id": "febbba39-0f48-45d7-92f4-6d8ae4c190b8", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0a745a06-8394-451f-aaa0-97b8dd677fa0", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(1) .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/div/button", "xpath:idRelative"], + ["xpath=//li/div/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0eaa154d-25a2-488c-8b2a-4a501f8c97e5", + "comment": "", + "command": "click", + "target": "css=.ec-inlineBtn--cancel", + "targets": [ + ["css=.ec-inlineBtn--cancel", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/label", "xpath:idRelative"], + ["xpath=//div[2]/div/label", "xpath:position"], + ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d83c4dc2-cd7d-43cd-bd11-fb5ac58de2b6", + "comment": "", + "command": "click", + "target": "id=classcategory_id11", + "targets": [ + ["id=classcategory_id11", "id"], + ["name=classcategory_id1", "name"], + ["css=#classcategory_id11", "css:finder"], + ["xpath=//select[@id='classcategory_id11']", "xpath:attributes"], + ["xpath=//form[@id='productForm1']/div/div/select", "xpath:idRelative"], + ["xpath=//li[2]/form/div/div/select", "xpath:position"] + ], + "value": "" + }, { + "id": "7fec15cc-bb2f-410c-ac1f-1620d9b1160f", + "comment": "", + "command": "select", + "target": "id=classcategory_id11", + "targets": [], + "value": "label=チョコ" + }, { + "id": "c45ca11b-52a2-4450-9e9f-4a982be3de41", + "comment": "", + "command": "click", + "target": "css=#classcategory_id11 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id11 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[4]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id11']/option[2]", "xpath:idRelative"], + ["xpath=//li[2]/form/div/div/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "7479d8e7-9748-4474-91b9-b08af145ca2e", + "comment": "", + "command": "click", + "target": "css=.ec-select:nth-child(2)", + "targets": [ + ["css=.ec-select:nth-child(2)", "css:finder"], + ["xpath=//form[@id='productForm1']/div/div[2]", "xpath:idRelative"], + ["xpath=//form/div/div[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "6093cc07-e555-4b3f-9267-07b30b0240d1", + "comment": "", + "command": "select", + "target": "id=classcategory_id21", + "targets": [], + "value": "label=16mm × 16mm" + }, { + "id": "b5489b9c-76d2-483f-b902-2da3373b461f", + "comment": "", + "command": "click", + "target": "css=#classcategory_id21 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id21 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='4'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id21']/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "7057eee2-c92e-4f88-8ef9-d5bfe34326aa", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(2) .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[3]", "xpath:attributes"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/div/button", "xpath:idRelative"], + ["xpath=//li[2]/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "ce1d01ec-7842-4e20-82ba-7339186c1014", + "comment": "", + "command": "click", + "target": "css=.ec-inlineBtn--cancel", + "targets": [ + ["css=.ec-inlineBtn--cancel", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[3]/div/div/div[2]/div/label", "xpath:idRelative"], + ["xpath=//div[2]/div/label", "xpath:position"], + ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0c8bffde-6fe0-4785-b531-81cbf3d5f5f8", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(1) img", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(1) img", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/a/p/img", "xpath:idRelative"], + ["xpath=//p/img", "xpath:position"] + ], + "value": "" + }, { + "id": "981e31a4-9864-4f11-bcf3-2f9c32e59f1e", + "comment": "", + "command": "click", + "target": "css=.add-cart", + "targets": [ + ["css=.add-cart", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "fee5204b-ecca-4edd-b198-4b3a190526b8", + "comment": "", + "command": "click", + "target": "css=.ec-inlineBtn--cancel", + "targets": [ + ["css=.ec-inlineBtn--cancel", "css:finder"], + ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[5]/div/div/div[2]/div/label", "xpath:idRelative"], + ["xpath=//div[2]/div/label", "xpath:position"], + ["xpath=//label[contains(.,'お買い物を続ける')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8b35e510-74fc-4892-9435-3b1e49995a7e", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_product_detail']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "52cf4076-4f5a-4c8e-b48d-aedbe4e49f84", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(2) img", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(2) img", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li[2]/a/p/img", "xpath:idRelative"], + ["xpath=//li[2]/a/p/img", "xpath:position"] + ], + "value": "" + }, { + "id": "5b5cc76e-7867-47e7-93d8-819b4cca9821", + "comment": "", + "command": "click", + "target": "id=classcategory_id1", + "targets": [ + ["id=classcategory_id1", "id"], + ["name=classcategory_id1", "name"], + ["css=#classcategory_id1", "css:finder"], + ["xpath=//select[@id='classcategory_id1']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/form/div/div/select", "xpath:position"] + ], + "value": "" + }, { + "id": "1f97b4ed-c947-4a92-a4bb-bfd600e91c2f", + "comment": "", + "command": "select", + "target": "id=classcategory_id1", + "targets": [], + "value": "label=チョコ" + }, { + "id": "fc8a0737-57e0-4512-ae21-6bcf2d0ce75d", + "comment": "", + "command": "click", + "target": "css=#classcategory_id1 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id1 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id1']/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/form/div/div/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "27a8036c-14e0-4ad5-9eef-da88ef52b875", + "comment": "", + "command": "click", + "target": "id=classcategory_id2", + "targets": [ + ["id=classcategory_id2", "id"], + ["name=classcategory_id2", "name"], + ["css=#classcategory_id2", "css:finder"], + ["xpath=//select[@id='classcategory_id2']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div[2]/select", "xpath:idRelative"], + ["xpath=//div[2]/select", "xpath:position"] + ], + "value": "" + }, { + "id": "ad48981c-5f06-4f0f-92b9-4a47c1098732", + "comment": "", + "command": "select", + "target": "id=classcategory_id2", + "targets": [], + "value": "label=64cm × 64cm" + }, { + "id": "2f47f8f9-b61d-478e-b07b-040a0528d938", + "comment": "", + "command": "click", + "target": "css=#classcategory_id2 > option:nth-child(4)", + "targets": [ + ["css=#classcategory_id2 > option:nth-child(4)", "css:finder"], + ["xpath=(//option[@value='6'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id2']/option[4]", "xpath:idRelative"], + ["xpath=//div[2]/select/option[4]", "xpath:position"], + ["xpath=//option[contains(.,'64cm × 64cm')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f784ab3c-598b-4940-9259-e3b8ea9a32c5", + "comment": "", + "command": "click", + "target": "css=.add-cart", + "targets": [ + ["css=.add-cart", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'カートに入れる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e69a27c5-86be-40e6-ae2e-81cb21fbb2fa", + "comment": "", + "command": "click", + "target": "linkText=カートへ進む", + "targets": [ + ["linkText=カートへ進む", "linkText"], + ["css=.ec-inlineBtn--action", "css:finder"], + ["xpath=(//a[contains(text(),'カートへ進む')])[2]", "xpath:link"], + ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/div[6]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/cart')])[2]", "xpath:href"], + ["xpath=//div[6]/div/div/div[2]/div/a", "xpath:position"] + ], + "value": "" + }, { + "id": "3b8c937f-a47c-458e-9229-7ee3d1219e62", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,302.73333740234375)", + "targets": [], + "value": "" + }, { + "id": "c7bd40dc-07b5-4250-b9d1-c2cba3b3b2ec", + "comment": "", + "command": "click", + "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", + "targets": [ + ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", "css:finder"], + ["xpath=(//img[@alt='increase'])[2]", "xpath:img"], + ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a/span/img", "xpath:idRelative"], + ["xpath=//ul[2]/li[3]/div[3]/a/span/img", "xpath:position"] + ], + "value": "" + }, { + "id": "2061a2cb-3d21-41f9-88a4-1f72ee5b0d28", + "comment": "", + "command": "mouseOver", + "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", + "targets": [ + ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", "css:finder"], + ["xpath=(//img[@alt='increase'])[2]", "xpath:img"], + ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a/span/img", "xpath:idRelative"], + ["xpath=//ul[2]/li[3]/div[3]/a/span/img", "xpath:position"] + ], + "value": "" + }, { + "id": "97744677-c19a-4d1d-a030-ce1cd443b48b", + "comment": "", + "command": "mouseOut", + "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", + "targets": [ + ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountUpButton img", "css:finder"], + ["xpath=(//img[@alt='increase'])[2]", "xpath:img"], + ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a/span/img", "xpath:idRelative"], + ["xpath=//ul[2]/li[3]/div[3]/a/span/img", "xpath:position"] + ], + "value": "" + }, { + "id": "124b7fac-f90b-4246-891b-0c036eefac32", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,310.3333435058594)", + "targets": [], + "value": "" + }, { + "id": "d37477e4-39f3-46a1-837b-b574a3a96e7b", + "comment": "", + "command": "click", + "target": "css=.ec-cartRow:nth-child(3) .ec-cartRow__amountDownButton", + "targets": [ + ["css=.ec-cartRow:nth-child(3) .ec-cartRow__amountDownButton", "css:finder"], + ["xpath=//form[@id='form_cart']/div/div/ul[2]/li[3]/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/cart/down/10')]", "xpath:href"], + ["xpath=//ul[2]/li[3]/div[3]/a", "xpath:position"] + ], + "value": "" + }, { + "id": "bfa9d44c-3143-4abd-94a6-2936aa091f6a", + "comment": "", + "command": "click", + "target": "linkText=レジに進む", + "targets": [ + ["linkText=レジに進む", "linkText"], + ["css=.ec-blockBtn--action:nth-child(2)", "css:finder"], + ["xpath=//a[contains(text(),'レジに進む')]", "xpath:link"], + ["xpath=//form[@id='form_cart']/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/cart/buystep/1_1')]", "xpath:href"], + ["xpath=//form/div[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'レジに進む')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d73c72f7-f3ef-4c0f-ad32-d538f19f9808", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,302.73333740234375)", + "targets": [], + "value": "" + }, { + "id": "f34031e8-8f77-4846-a523-f86e65f6e5ef", + "comment": "", + "command": "click", + "target": "css=.ec-orderDelivery__edit > .ec-inlineBtn", + "targets": [ + ["css=.ec-orderDelivery__edit > .ec-inlineBtn", "css:finder"], + ["xpath=//button[@type='button']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[2]/div[6]/button", "xpath:idRelative"], + ["xpath=//div[6]/button", "xpath:position"], + ["xpath=//button[contains(.,'お届け先を追加する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "9cd7bff0-955f-4da8-a4d9-4405a9cf81e5", + "comment": "", + "command": "click", + "target": "linkText=新規お届け先を追加する", + "targets": [ + ["linkText=新規お届け先を追加する", "linkText"], + ["css=.btn:nth-child(1)", "css:finder"], + ["xpath=//a[contains(text(),'新規お届け先を追加する')]", "xpath:link"], + ["xpath=//form[@id='shipping-multiple-form']/div[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/shopping/shipping_multiple_edit')]", "xpath:href"], + ["xpath=//form/div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'新規お届け先を追加する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d57339e2-e98b-4271-9979-5ac73bf011d6", + "comment": "", + "command": "click", + "target": "id=shopping_shipping_name_name01", + "targets": [ + ["id=shopping_shipping_name_name01", "id"], + ["name=shopping_shipping[name][name01]", "name"], + ["css=#shopping_shipping_name_name01", "css:finder"], + ["xpath=//input[@id='shopping_shipping_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "d9ce43db-9723-4ff1-aa7f-0bdb7e3939a7", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_name_name01", + "targets": [ + ["id=shopping_shipping_name_name01", "id"], + ["name=shopping_shipping[name][name01]", "name"], + ["css=#shopping_shipping_name_name01", "css:finder"], + ["xpath=//input[@id='shopping_shipping_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "石井" + }, { + "id": "c1d6928c-5e9c-4a61-b5c0-c8ce50f34544", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_name_name02", + "targets": [ + ["id=shopping_shipping_name_name02", "id"], + ["name=shopping_shipping[name][name02]", "name"], + ["css=#shopping_shipping_name_name02", "css:finder"], + ["xpath=//input[@id='shopping_shipping_name_name02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//input[2]", "xpath:position"] + ], + "value": "給部" + }, { + "id": "f96a4b04-668e-4067-ae5f-0bbd7f086834", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_kana_kana01", + "targets": [ + ["id=shopping_shipping_kana_kana01", "id"], + ["name=shopping_shipping[kana][kana01]", "name"], + ["css=#shopping_shipping_kana_kana01", "css:finder"], + ["xpath=//input[@id='shopping_shipping_kana_kana01']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input", "xpath:position"] + ], + "value": "イシイ" + }, { + "id": "19b4f791-8bee-48dc-836e-c1e0a9920c24", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_kana_kana02", + "targets": [ + ["id=shopping_shipping_kana_kana02", "id"], + ["name=shopping_shipping[kana][kana02]", "name"], + ["css=#shopping_shipping_kana_kana02", "css:finder"], + ["xpath=//input[@id='shopping_shipping_kana_kana02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"] + ], + "value": "キュウブ" + }, { + "id": "aee2840b-14a9-4c2d-bd57-71d022ec905f", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_company_name", + "targets": [ + ["id=shopping_shipping_company_name", "id"], + ["name=shopping_shipping[company_name]", "name"], + ["css=#shopping_shipping_company_name", "css:finder"], + ["xpath=//input[@id='shopping_shipping_company_name']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[3]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[3]/dd/div/input", "xpath:position"] + ], + "value": "イーシーキューブ" + }, { + "id": "2b45716a-49b1-4fcb-8b0a-8b18368d1973", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_postal_code", + "targets": [ + ["id=shopping_shipping_postal_code", "id"], + ["name=shopping_shipping[postal_code]", "name"], + ["css=#shopping_shipping_postal_code", "css:finder"], + ["xpath=//input[@id='shopping_shipping_postal_code']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[4]/dd/div/input", "xpath:position"] + ], + "value": "5300002" + }, { + "id": "769fec35-db58-4bc4-baf2-9dc939b2b033", + "comment": "", + "command": "click", + "target": "id=shopping_shipping_address_addr02", + "targets": [ + ["id=shopping_shipping_address_addr02", "id"], + ["name=shopping_shipping[address][addr02]", "name"], + ["css=#shopping_shipping_address_addr02", "css:finder"], + ["xpath=//input[@id='shopping_shipping_address_addr02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "d8dc71f6-ef14-476c-af5c-57f595882212", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_address_addr02", + "targets": [ + ["id=shopping_shipping_address_addr02", "id"], + ["name=shopping_shipping[address][addr02]", "name"], + ["css=#shopping_shipping_address_addr02", "css:finder"], + ["xpath=//input[@id='shopping_shipping_address_addr02']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[4]/dd/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "2" + }, { + "id": "ae89e65d-abc1-4961-ba41-b6ad713ec3aa", + "comment": "", + "command": "click", + "target": "id=shopping_shipping_phone_number", + "targets": [ + ["id=shopping_shipping_phone_number", "id"], + ["name=shopping_shipping[phone_number]", "name"], + ["css=#shopping_shipping_phone_number", "css:finder"], + ["xpath=//input[@id='shopping_shipping_phone_number']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[5]/dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "ce5982ae-b767-4d02-8df6-c698d09e6129", + "comment": "", + "command": "type", + "target": "id=shopping_shipping_phone_number", + "targets": [ + ["id=shopping_shipping_phone_number", "id"], + ["name=shopping_shipping[phone_number]", "name"], + ["css=#shopping_shipping_phone_number", "css:finder"], + ["xpath=//input[@id='shopping_shipping_phone_number']", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div/dl[5]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[5]/dd/div/input", "xpath:position"] + ], + "value": "333333333" + }, { + "id": "3a7e2938-6cfb-499f-8177-a3ac1b405aa5", + "comment": "", + "command": "click", + "target": "css=.ec-off4Grid__cell > .ec-blockBtn--action", + "targets": [ + ["css=.ec-off4Grid__cell > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//body[@id='page_shopping_shipping_multiple_edit']/div/div[2]/div/div/div[2]/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'登録する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "589b1327-6d06-4a3b-adbc-7d82abf6a3ee", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,304)", + "targets": [], + "value": "" + }, { + "id": "519a3272-974a-4163-b568-d43d432038fd", + "comment": "", + "command": "click", + "target": "css=#form_shipping_multiple_1_shipping_0_customer_address > option:nth-child(1)", + "targets": [ + ["css=#form_shipping_multiple_1_shipping_0_customer_address > option:nth-child(1)", "css:finder"], + ["xpath=(//option[@value='0'])[2]", "xpath:attributes"], + ["xpath=//select[@id='form_shipping_multiple_1_shipping_0_customer_address']/option", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/div/div/div/select/option", "xpath:position"] + ], + "value": "" + }, { + "id": "4745a003-0784-4919-a960-15e57db8f354", + "comment": "", + "command": "select", + "target": "id=form_shipping_multiple_2_shipping_0_customer_address", + "targets": [], + "value": "label=石井 大阪府 大阪市北区曽根崎新地 2" + }, { + "id": "9da1bb12-15f4-4641-ba89-acebe37012b3", + "comment": "", + "command": "click", + "target": "css=#form_shipping_multiple_2_shipping_0_customer_address > option:nth-child(2)", + "targets": [ + ["css=#form_shipping_multiple_2_shipping_0_customer_address > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[4]", "xpath:attributes"], + ["xpath=//select[@id='form_shipping_multiple_2_shipping_0_customer_address']/option[2]", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/div/div/select/option[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "4154f85e-5e69-4380-811d-f6014041b1aa", + "comment": "", + "command": "click", + "target": "id=button__add2", + "targets": [ + ["id=button__add2", "id"], + ["css=#button__add2", "css:finder"], + ["xpath=//button[@id='button__add2']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__add_button2']/button", "xpath:idRelative"], + ["xpath=//div[5]/div[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "27081f10-637b-4145-9948-68f2415ae3cb", + "comment": "", + "command": "mouseOver", + "target": "id=button__add2", + "targets": [ + ["id=button__add2", "id"], + ["css=#button__add2", "css:finder"], + ["xpath=//button[@id='button__add2']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__add_button2']/button", "xpath:idRelative"], + ["xpath=//div[5]/div[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "af8afa3c-8fc8-438e-9d56-19bfca6e3272", + "comment": "", + "command": "mouseOut", + "target": "id=button__add2", + "targets": [ + ["id=button__add2", "id"], + ["css=#button__add2", "css:finder"], + ["xpath=//button[@id='button__add2']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__add_button2']/button", "xpath:idRelative"], + ["xpath=//div[5]/div[3]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "b35ae1f3-a4e0-48fa-9b2b-5ce8d2d6c1ed", + "comment": "", + "command": "click", + "target": "css=#form_shipping_multiple_2_shipping_1_customer_address > option:nth-child(1)", + "targets": [ + ["css=#form_shipping_multiple_2_shipping_1_customer_address > option:nth-child(1)", "css:finder"], + ["xpath=(//option[@value='0'])[4]", "xpath:attributes"], + ["xpath=//select[@id='form_shipping_multiple_2_shipping_1_customer_address']/option", "xpath:idRelative"], + ["xpath=//div[2]/div/div/select/option", "xpath:position"] + ], + "value": "" + }, { + "id": "d610467a-b123-4196-97f9-a68672b0be6a", + "comment": "", + "command": "click", + "target": "id=form_shipping_multiple_2_shipping_1_quantity", + "targets": [ + ["id=form_shipping_multiple_2_shipping_1_quantity", "id"], + ["name=form[shipping_multiple][2][shipping][1][quantity]", "name"], + ["css=#form_shipping_multiple_2_shipping_1_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_2_shipping_1_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--2_1']/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "e520b42d-7ad8-4b0f-9451-f6655e3a02d5", + "comment": "", + "command": "click", + "target": "id=form_shipping_multiple_2_shipping_1_quantity", + "targets": [ + ["id=form_shipping_multiple_2_shipping_1_quantity", "id"], + ["name=form[shipping_multiple][2][shipping][1][quantity]", "name"], + ["css=#form_shipping_multiple_2_shipping_1_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_2_shipping_1_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--2_1']/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "8d298cb9-c58a-4393-ad1c-0f558f78d1a4", + "comment": "", + "command": "doubleClick", + "target": "id=form_shipping_multiple_2_shipping_1_quantity", + "targets": [ + ["id=form_shipping_multiple_2_shipping_1_quantity", "id"], + ["name=form[shipping_multiple][2][shipping][1][quantity]", "name"], + ["css=#form_shipping_multiple_2_shipping_1_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_2_shipping_1_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--2_1']/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "065f2843-2313-47d5-8115-219c9ac59811", + "comment": "", + "command": "type", + "target": "id=form_shipping_multiple_2_shipping_1_quantity", + "targets": [ + ["id=form_shipping_multiple_2_shipping_1_quantity", "id"], + ["name=form[shipping_multiple][2][shipping][1][quantity]", "name"], + ["css=#form_shipping_multiple_2_shipping_1_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_2_shipping_1_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--2_1']/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/input", "xpath:position"] + ], + "value": "1" + }, { + "id": "aac79b98-d88b-463e-9213-dae8348408b9", + "comment": "", + "command": "click", + "target": "id=form_shipping_multiple_2_shipping_0_quantity", + "targets": [ + ["id=form_shipping_multiple_2_shipping_0_quantity", "id"], + ["name=form[shipping_multiple][2][shipping][0][quantity]", "name"], + ["css=#form_shipping_multiple_2_shipping_0_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_2_shipping_0_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--2_0']/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "ae75ca10-e7a9-4279-96c7-27e9a0937e31", + "comment": "", + "command": "click", + "target": "id=form_shipping_multiple_2_shipping_0_quantity", + "targets": [ + ["id=form_shipping_multiple_2_shipping_0_quantity", "id"], + ["name=form[shipping_multiple][2][shipping][0][quantity]", "name"], + ["css=#form_shipping_multiple_2_shipping_0_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_2_shipping_0_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--2_0']/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "dcf96c68-30f1-4411-9a3e-290a2f0d9813", + "comment": "", + "command": "doubleClick", + "target": "id=form_shipping_multiple_2_shipping_0_quantity", + "targets": [ + ["id=form_shipping_multiple_2_shipping_0_quantity", "id"], + ["name=form[shipping_multiple][2][shipping][0][quantity]", "name"], + ["css=#form_shipping_multiple_2_shipping_0_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_2_shipping_0_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--2_0']/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "a8d5d09e-c5b7-4c3d-b2f0-c5ae698e941e", + "comment": "", + "command": "type", + "target": "id=form_shipping_multiple_2_shipping_0_quantity", + "targets": [ + ["id=form_shipping_multiple_2_shipping_0_quantity", "id"], + ["name=form[shipping_multiple][2][shipping][0][quantity]", "name"], + ["css=#form_shipping_multiple_2_shipping_0_quantity", "css:finder"], + ["xpath=//input[@id='form_shipping_multiple_2_shipping_0_quantity']", "xpath:attributes"], + ["xpath=//div[@id='multiple_list__shipping_quantity--2_0']/div/input", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/div[2]/div/input", "xpath:position"] + ], + "value": "1" + }, { + "id": "338895fc-871f-4a5d-bb95-413d02466caf", + "comment": "", + "command": "click", + "target": "id=button__confirm", + "targets": [ + ["id=button__confirm", "id"], + ["css=#button__confirm", "css:finder"], + ["xpath=//button[@id='button__confirm']", "xpath:attributes"], + ["xpath=//form[@id='shipping-multiple-form']/div[6]/div/div/button", "xpath:idRelative"], + ["xpath=//div[6]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'選択したお届け先に送る')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "aee1e253-131e-44ac-a1d2-f6fc15ac2a84", + "comment": "", + "command": "click", + "target": "id=shopping_order_Shippings_0_DeliveryTime", + "targets": [ + ["id=shopping_order_Shippings_0_DeliveryTime", "id"], + ["name=_shopping_order[Shippings][0][DeliveryTime]", "name"], + ["css=#shopping_order_Shippings_0_DeliveryTime", "css:finder"], + ["xpath=//select[@id='shopping_order_Shippings_0_DeliveryTime']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[2]/div[5]/div/div[3]/select", "xpath:idRelative"], + ["xpath=//div[3]/select", "xpath:position"] + ], + "value": "" + }, { + "id": "29a4eaf6-ca1a-4147-8aca-f3241f3e23bb", + "comment": "", + "command": "select", + "target": "id=shopping_order_Shippings_0_DeliveryTime", + "targets": [], + "value": "label=午前" + }, { + "id": "1f72e7b7-0431-4f40-a446-2844c4126d08", + "comment": "", + "command": "click", + "target": "css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(2)", + "targets": [ + ["css=#shopping_order_Shippings_0_DeliveryTime > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[3]", "xpath:attributes"], + ["xpath=//select[@id='shopping_order_Shippings_0_DeliveryTime']/option[2]", "xpath:idRelative"], + ["xpath=//div[3]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'午前')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1fa809a8-0305-4308-a0b3-7ec1469fde5c", + "comment": "", + "command": "click", + "target": "css=div:nth-child(4) > label > span", + "targets": [ + ["css=div:nth-child(4) > label > span", "css:finder"], + ["xpath=//form[@id='shopping-form']/div/div/div[3]/div[2]/div[4]/label/span", "xpath:idRelative"], + ["xpath=//div[4]/label/span", "xpath:position"], + ["xpath=//span[contains(.,'代金引換')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d73a457e-196c-46c7-98cf-5e819183d95c", + "comment": "", + "command": "click", + "target": "id=shopping_order_use_point", + "targets": [ + ["id=shopping_order_use_point", "id"], + ["name=_shopping_order[use_point]", "name"], + ["css=#shopping_order_use_point", "css:finder"], + ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "60979130-1ddc-4c55-bbd2-3a21844d9e37", + "comment": "", + "command": "click", + "target": "id=shopping_order_use_point", + "targets": [ + ["id=shopping_order_use_point", "id"], + ["name=_shopping_order[use_point]", "name"], + ["css=#shopping_order_use_point", "css:finder"], + ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "282ea251-9c0c-490e-ac9b-5a3ec39e7c55", + "comment": "", + "command": "doubleClick", + "target": "id=shopping_order_use_point", + "targets": [ + ["id=shopping_order_use_point", "id"], + ["name=_shopping_order[use_point]", "name"], + ["css=#shopping_order_use_point", "css:finder"], + ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "562e13b7-3078-4fc0-9a98-d5e17cf14bcc", + "comment": "", + "command": "type", + "target": "id=shopping_order_use_point", + "targets": [ + ["id=shopping_order_use_point", "id"], + ["name=_shopping_order[use_point]", "name"], + ["css=#shopping_order_use_point", "css:finder"], + ["xpath=//input[@id='shopping_order_use_point']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[4]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/input", "xpath:position"] + ], + "value": "1" + }, { + "id": "03600939-fc1b-4c9f-8105-5f8356438e00", + "comment": "", + "command": "click", + "target": "id=shopping_order_message", + "targets": [ + ["id=shopping_order_message", "id"], + ["name=_shopping_order[message]", "name"], + ["css=#shopping_order_message", "css:finder"], + ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[5]/div[2]/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "6a581153-8b38-46ce-abee-c1aac46b0d2f", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,317.9333190917969)", + "targets": [], + "value": "" + }, { + "id": "15d2139e-fe2b-4453-bb48-4c04b24169e9", + "comment": "", + "command": "click", + "target": "id=shopping_order_message", + "targets": [ + ["id=shopping_order_message", "id"], + ["name=_shopping_order[message]", "name"], + ["css=#shopping_order_message", "css:finder"], + ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[5]/div[2]/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "2be15243-3dd4-4574-a4c8-9443c73d3739", + "comment": "", + "command": "type", + "target": "id=shopping_order_message", + "targets": [ + ["id=shopping_order_message", "id"], + ["name=_shopping_order[message]", "name"], + ["css=#shopping_order_message", "css:finder"], + ["xpath=//textarea[@id='shopping_order_message']", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div/div[5]/div[2]/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "複数購入のテスト" + }, { + "id": "4ec20ebc-83d1-4c6e-a20d-e92dd522ca70", + "comment": "", + "command": "click", + "target": "css=.ec-totalBox__btn > .ec-blockBtn--action", + "targets": [ + ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[5]/button", "xpath:idRelative"], + ["xpath=//div[5]/button", "xpath:position"], + ["xpath=//button[contains(.,'確認する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ec6c30c3-291e-4f91-87b9-dd8d0e804fc6", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,335.6666564941406)", + "targets": [], + "value": "" + }, { + "id": "95863077-c0fc-43ec-bc9d-609107e874f9", + "comment": "", + "command": "click", + "target": "css=.ec-totalBox__btn > .ec-blockBtn--action", + "targets": [ + ["css=.ec-totalBox__btn > .ec-blockBtn--action", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//form[@id='shopping-form']/div/div[2]/div/div[5]/button", "xpath:idRelative"], + ["xpath=//div[5]/button", "xpath:position"], + ["xpath=//button[contains(.,'注文する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "344f2b60-0557-4614-9090-d10c253711dc", + "comment": "", + "command": "click", + "target": "linkText=トップページへ", + "targets": [ + ["linkText=トップページへ", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'トップページへ')]", "xpath:link"], + ["xpath=//body[@id='page_shopping_complete']/div/div[2]/div/div[3]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/')])[11]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'トップページへ')]", "xpath:innerText"] + ], + "value": "" + }] + }, { + "id": "44b105b2-6222-41da-a4ae-270a674dd05e", + "name": "お気に入り追加", + "commands": [{ + "id": "1ea04cea-54db-483e-9823-569a9462bd0e", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "47f34ae8-7a95-4ae2-a6d3-61a0a4bef86f", + "comment": "", + "command": "setWindowSize", + "target": "1160x694", + "targets": [], + "value": "" + }, { + "id": "671250e4-8355-4044-a9e3-036902f43ae6", + "comment": "", + "command": "click", + "target": "linkText=新入荷", + "targets": [ + ["linkText=新入荷", "linkText"], + ["css=.ec-itemNav:nth-child(1) > .ec-itemNav__nav > li:nth-child(1) > a", "css:finder"], + ["xpath=//a[contains(text(),'新入荷')]", "xpath:link"], + ["xpath=//body[@id='page_homepage']/div/div/div[3]/div/ul/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/products/list?category_id=2')]", "xpath:href"], + ["xpath=//li/a", "xpath:position"], + ["xpath=//a[contains(.,'新入荷')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a3971e62-bd0c-4ede-aacc-910d21ffcfef", + "comment": "", + "command": "click", + "target": "css=.ec-shelfGrid__item:nth-child(1) img", + "targets": [ + ["css=.ec-shelfGrid__item:nth-child(1) img", "css:finder"], + ["xpath=//body[@id='page_product_list']/div/div[2]/div/div[2]/ul/li/a/p/img", "xpath:idRelative"], + ["xpath=//p/img", "xpath:position"] + ], + "value": "" + }, { + "id": "b4cf43cb-eb1f-412c-8c5b-ae62a6874013", + "comment": "", + "command": "click", + "target": "id=favorite", + "targets": [ + ["id=favorite", "id"], + ["css=#favorite", "css:finder"], + ["xpath=//button[@id='favorite']", "xpath:attributes"], + ["xpath=//body[@id='page_product_detail']/div/div[2]/div/div/div/div[2]/div/form[2]/div/button", "xpath:idRelative"], + ["xpath=//form[2]/div/button", "xpath:position"], + ["xpath=//button[contains(.,'お気に入りに追加')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "4761812f-359f-4760-a159-a05ecf93361d", + "comment": "", + "command": "click", + "target": "css=.ec-headerNav__item:nth-child(2) .ec-headerNav__itemLink", + "targets": [ + ["css=.ec-headerNav__item:nth-child(2) .ec-headerNav__itemLink", "css:finder"], + ["xpath=//body[@id='page_product_detail']/div/div/div/div[2]/div/div/div[2]/a/span", "xpath:idRelative"], + ["xpath=//div[2]/a/span", "xpath:position"], + ["xpath=//span[contains(.,'お気に入り')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2ee8935f-b0a2-4f28-ab11-fce60e0196c9", + "comment": "", + "command": "click", + "target": "css=.ec-favoriteRole__item-image > img", + "targets": [ + ["css=.ec-favoriteRole__item-image > img", "css:finder"], + ["xpath=//body[@id='page_mypage_favorite']/div/div[2]/div/div/div[2]/div/div[2]/ul/li/a[2]/p/img", "xpath:idRelative"], + ["xpath=//p/img", "xpath:position"] + ], + "value": "" + }, { + "id": "689928ca-2f62-4e73-9976-571efd38ef81", + "comment": "", + "command": "click", + "target": "linkText=EC-CUBE SHOP", + "targets": [ + ["linkText=EC-CUBE SHOP", "linkText"], + ["css=h1 > a", "css:finder"], + ["xpath=//a[contains(text(),'EC-CUBE SHOP')]", "xpath:link"], + ["xpath=//body[@id='page_mypage_favorite']/div/div/div[2]/div/div/div/h1/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/')])[4]", "xpath:href"], + ["xpath=//h1/a", "xpath:position"], + ["xpath=//a[contains(.,'EC-CUBE SHOP')]", "xpath:innerText"] + ], + "value": "" + }] + }, { + "id": "4fde7efc-2af4-4831-8e38-098dd5039721", + "name": "会員情報編集", + "commands": [{ + "id": "3d6c9735-b2e4-4032-9def-83d54f1432e8", + "comment": "", + "command": "open", + "target": "/", + "targets": [], + "value": "" + }, { + "id": "c72091e5-bec7-428a-be90-c051829b1a3f", + "comment": "", + "command": "setWindowSize", + "target": "1160x694", + "targets": [], + "value": "" + }, { + "id": "ac021828-0e83-48b1-9617-ac74347678ca", + "comment": "", + "command": "click", + "target": "css=.ec-headerNav__item:nth-child(1) .ec-headerNav__itemLink", + "targets": [ + ["css=.ec-headerNav__item:nth-child(1) .ec-headerNav__itemLink", "css:finder"], + ["xpath=//body[@id='page_homepage']/div/div/div/div[2]/div/div/div/a/span", "xpath:idRelative"], + ["xpath=//span", "xpath:position"], + ["xpath=//span[contains(.,'マイページ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "58d39e65-617f-4880-a484-463fc04651ab", + "comment": "", + "command": "click", + "target": "linkText=会員情報編集", + "targets": [ + ["linkText=会員情報編集", "linkText"], + ["css=.ec-navlistRole__item:nth-child(3) > a", "css:finder"], + ["xpath=//a[contains(text(),'会員情報編集')]", "xpath:link"], + ["xpath=//body[@id='page_mypage']/div/div[2]/div/div/div/div[2]/ul/li[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/mypage/change')]", "xpath:href"], + ["xpath=//div[2]/ul/li[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'会員情報編集')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b73d557b-f8ae-4265-8950-54870ec80ce4", + "comment": "", + "command": "click", + "target": "id=entry_name_name01", + "targets": [ + ["id=entry_name_name01", "id"], + ["name=entry[name][name01]", "name"], + ["css=#entry_name_name01", "css:finder"], + ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "d451bc62-d1f9-4f10-8f5e-93f248dfa361", + "comment": "", + "command": "click", + "target": "id=entry_name_name01", + "targets": [ + ["id=entry_name_name01", "id"], + ["name=entry[name][name01]", "name"], + ["css=#entry_name_name01", "css:finder"], + ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "c341e87a-503b-4deb-8695-28b3d696480b", + "comment": "", + "command": "doubleClick", + "target": "id=entry_name_name01", + "targets": [ + ["id=entry_name_name01", "id"], + ["name=entry[name][name01]", "name"], + ["css=#entry_name_name01", "css:finder"], + ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "bcb004e2-ad9d-4046-accc-ac116a55360e", + "comment": "", + "command": "click", + "target": "id=entry_name_name01", + "targets": [ + ["id=entry_name_name01", "id"], + ["name=entry[name][name01]", "name"], + ["css=#entry_name_name01", "css:finder"], + ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "2da6e8bc-871c-4b51-9dea-30e2e7b660c7", + "comment": "", + "command": "type", + "target": "id=entry_name_name01", + "targets": [ + ["id=entry_name_name01", "id"], + ["name=entry[name][name01]", "name"], + ["css=#entry_name_name01", "css:finder"], + ["xpath=//input[@id='entry_name_name01']", "xpath:attributes"], + ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input", "xpath:idRelative"], + ["xpath=//dd/div/input", "xpath:position"] + ], + "value": "石" + }, { + "id": "4f0deb5b-7f60-4027-bfc4-dbda4a53d59a", + "comment": "", + "command": "type", + "target": "id=entry_name_name02", + "targets": [ + ["id=entry_name_name02", "id"], + ["name=entry[name][name02]", "name"], + ["css=#entry_name_name02", "css:finder"], + ["xpath=//input[@id='entry_name_name02']", "xpath:attributes"], + ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//input[2]", "xpath:position"] + ], + "value": "球部" + }, { + "id": "66530d66-cb49-4ec1-81b7-7a8180ba790a", + "comment": "", + "command": "type", + "target": "id=entry_kana_kana01", + "targets": [ + ["id=entry_kana_kana01", "id"], + ["name=entry[kana][kana01]", "name"], + ["css=#entry_kana_kana01", "css:finder"], + ["xpath=//input[@id='entry_kana_kana01']", "xpath:attributes"], + ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl[2]/dd/div/input", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input", "xpath:position"] + ], + "value": "イシ" + }, { + "id": "d940367b-a6bc-4cc9-8275-ce8d30797fa4", + "comment": "", + "command": "type", + "target": "id=entry_kana_kana02", + "targets": [ + ["id=entry_kana_kana02", "id"], + ["name=entry[kana][kana02]", "name"], + ["css=#entry_kana_kana02", "css:finder"], + ["xpath=//input[@id='entry_kana_kana02']", "xpath:attributes"], + ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div/dl[2]/dd/div/input[2]", "xpath:idRelative"], + ["xpath=//dl[2]/dd/div/input[2]", "xpath:position"] + ], + "value": "キュウブ" + }, { + "id": "d3eb4dd6-9bbe-47c6-bb35-8aa453b62aec", + "comment": "", + "command": "click", + "target": "css=.ec-blockBtn--cancel", + "targets": [ + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=(//button[@type='submit'])[2]", "xpath:attributes"], + ["xpath=//body[@id='page_mypage_change']/div/div[2]/div/div/div[2]/div/div/div/form/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'登録する')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0c4677ba-9fb8-464b-b68d-b234fda42bf7", + "comment": "", + "command": "click", + "target": "linkText=戻る", + "targets": [ + ["linkText=戻る", "linkText"], + ["css=.ec-blockBtn--cancel", "css:finder"], + ["xpath=//a[contains(text(),'戻る')]", "xpath:link"], + ["xpath=//body[@id='page_mypage_change_complete']/div/div[2]/div/div/div[2]/div/div/div[2]/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, 'https://ec-cube/')])[16]", "xpath:href"], + ["xpath=//div[2]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'戻る')]", "xpath:innerText"] + ], + "value": "" + }] + }], + "suites": [{ + "id": "c1384a80-cad4-4e78-8b42-25819b2333d0", + "name": "Guest", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["6f6ae007-51ec-4832-98cd-d625753b58c8", "66cf94f2-7d92-4ff6-92dc-fb7800f0fff0", "6e49bc53-4dbc-4e3a-802b-dfc0473463a4", "fd31340c-5aec-4d58-805a-73208678455d", "45f29c3b-c4e9-48bc-a433-770b13f3c2bd"] + }, { + "id": "edba87bb-4124-48ed-a4db-d27a98a7b4dc", + "name": "Login", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["35d9fe92-2e6f-4c22-be4f-ce68a5a53756", "30749fcc-d7dc-4ac7-b2d8-bb46a9a968bf", "44b105b2-6222-41da-a4ae-270a674dd05e", "4fde7efc-2af4-4831-8e38-098dd5039721", "9d966310-b239-4084-95c9-3c4aec4ec77f"] + }, { + "id": "444ec5d2-613c-4eb7-ae3d-59866db325b3", + "name": "Admin", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": [] + }], + "urls": ["https://ec-cube/"], + "plugins": [] +} diff --git a/zap/selenium/ide/Manual_Inspection_Admin.side b/zap/selenium/ide/Manual_Inspection_Admin.side new file mode 100644 index 00000000000..5aec5f65410 --- /dev/null +++ b/zap/selenium/ide/Manual_Inspection_Admin.side @@ -0,0 +1,4655 @@ +{ + "id": "773de04e-e5ff-47e2-b7b4-f25612459238", + "version": "2.0", + "name": "[WIP]Manual_Inspection_Admin", + "url": "https://ec-cube/admin", + "tests": [{ + "id": "af12755b-95df-4a47-ba6d-b9ea45cb4ea7", + "name": "商品管理", + "commands": [{ + "id": "e54e183a-2cc3-43e1-adaf-fdb333d50358", + "comment": "", + "command": "open", + "target": "https://ec-cube/admin/", + "targets": [], + "value": "" + }, { + "id": "6b0f9261-bba0-4c11-969a-0a8c46b7f746", + "comment": "", + "command": "setWindowSize", + "target": "1160x821", + "targets": [], + "value": "" + }, { + "id": "4ec9526c-7e1e-497b-823d-23680444023a", + "comment": "", + "command": "click", + "target": "linkText=商品管理", + "targets": [ + ["linkText=商品管理", "linkText"], + ["css=.c-mainNavArea__navItem:nth-child(2) > .c-mainNavArea__navItemTitle", "css:finder"], + ["xpath=//body[@id='page_admin_homepage']/div/div/nav/ul/li[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#nav-product')]", "xpath:href"], + ["xpath=//li[2]/a", "xpath:position"], + ["xpath=//a[contains(.,' 商品管理')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c84d90a4-4cae-4fe3-a871-d6f5d500bbd0", + "comment": "", + "command": "click", + "target": "linkText=商品登録", + "targets": [ + ["linkText=商品登録", "linkText"], + ["css=#nav-product > li:nth-child(2) > a", "css:finder"], + ["xpath=//ul[@id='nav-product']/li[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/product/new')]", "xpath:href"], + ["xpath=//li[2]/ul/li[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'商品登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "46ffb765-fe51-4c4f-b271-c4756dba9ff1", + "comment": "", + "command": "click", + "target": "id=admin_product_name", + "targets": [ + ["id=admin_product_name", "id"], + ["name=admin_product[name]", "name"], + ["css=#admin_product_name", "css:finder"], + ["xpath=//input[@id='admin_product_name']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "51197b99-ec9f-410e-8556-9b79edbe2b14", + "comment": "", + "command": "type", + "target": "id=admin_product_name", + "targets": [ + ["id=admin_product_name", "id"], + ["name=admin_product[name]", "name"], + ["css=#admin_product_name", "css:finder"], + ["xpath=//input[@id='admin_product_name']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "テスト商品" + }, { + "id": "11b21b4d-d90b-4472-bd4b-7550049335ae", + "comment": "", + "command": "click", + "target": "linkText=ファイルを選択", + "targets": [ + ["linkText=ファイルを選択", "linkText"], + ["css=.btn:nth-child(3)", "css:finder"], + ["xpath=//a[contains(text(),'ファイルを選択')]", "xpath:link"], + ["xpath=//a[@onclick=\"$('#admin_product_product_image').click()\"]", "xpath:attributes"], + ["xpath=//div[@id='upload-zone']/div/a", "xpath:idRelative"], + ["xpath=//div[3]/div/a", "xpath:position"], + ["xpath=//a[contains(.,'ファイルを選択')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d3dcbdd7-272f-4670-abbd-191fbcf3ebe8", + "comment": "", + "command": "click", + "target": "id=admin_product_description_detail", + "targets": [ + ["id=admin_product_description_detail", "id"], + ["name=admin_product[description_detail]", "name"], + ["css=#admin_product_description_detail", "css:finder"], + ["xpath=//textarea[@id='admin_product_description_detail']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div[4]/div[2]/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "d7635d40-db43-4998-acb4-2186517c28f9", + "comment": "", + "command": "type", + "target": "id=admin_product_description_detail", + "targets": [ + ["id=admin_product_description_detail", "id"], + ["name=admin_product[description_detail]", "name"], + ["css=#admin_product_description_detail", "css:finder"], + ["xpath=//textarea[@id='admin_product_description_detail']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div[4]/div[2]/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "テスト商品の説明" + }, { + "id": "cc5edef6-e202-402c-8e29-884bf84cc876", + "comment": "", + "command": "click", + "target": "id=admin_product_class_price02", + "targets": [ + ["id=admin_product_class_price02", "id"], + ["name=admin_product[class][price02]", "name"], + ["css=#admin_product_class_price02", "css:finder"], + ["xpath=//input[@id='admin_product_class_price02']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div[6]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div[2]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "a552fad9-7052-4b12-ab0c-590702efbc9a", + "comment": "", + "command": "type", + "target": "id=admin_product_class_price02", + "targets": [ + ["id=admin_product_class_price02", "id"], + ["name=admin_product[class][price02]", "name"], + ["css=#admin_product_class_price02", "css:finder"], + ["xpath=//input[@id='admin_product_class_price02']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div[6]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[6]/div[2]/div/div/input", "xpath:position"] + ], + "value": "1000" + }, { + "id": "04284054-f748-4c2c-a5d1-1aa90d92fc58", + "comment": "", + "command": "type", + "target": "id=admin_product_class_price01", + "targets": [ + ["id=admin_product_class_price01", "id"], + ["name=admin_product[class][price01]", "name"], + ["css=#admin_product_class_price01", "css:finder"], + ["xpath=//input[@id='admin_product_class_price01']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div[7]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[7]/div[2]/div/div/input", "xpath:position"] + ], + "value": "1000" + }, { + "id": "0fba28fe-84cb-4ff2-9bee-0bec18d5dd78", + "comment": "", + "command": "click", + "target": "css=.col .form-check-label", + "targets": [ + ["css=.col .form-check-label", "css:finder"], + ["xpath=//div[@id='basicConfig']/div/div[8]/div[2]/div/div/label", "xpath:idRelative"], + ["xpath=//label", "xpath:position"], + ["xpath=//label[contains(.,'無制限')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "909153cc-b8a7-491b-b54e-c0988307d308", + "comment": "", + "command": "click", + "target": "id=admin_product_class_stock", + "targets": [ + ["id=admin_product_class_stock", "id"], + ["name=admin_product[class][stock]", "name"], + ["css=#admin_product_class_stock", "css:finder"], + ["xpath=//input[@id='admin_product_class_stock']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div[8]/div[2]/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "7faf5a3f-b395-472d-a549-0a1a7b531c05", + "comment": "", + "command": "type", + "target": "id=admin_product_class_stock", + "targets": [ + ["id=admin_product_class_stock", "id"], + ["name=admin_product[class][stock]", "name"], + ["css=#admin_product_class_stock", "css:finder"], + ["xpath=//input[@id='admin_product_class_stock']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div[8]/div[2]/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/input", "xpath:position"] + ], + "value": "10000" + }, { + "id": "727dfa0e-7c31-4738-9004-f352786ab993", + "comment": "", + "command": "click", + "target": "id=admin_product_search_word", + "targets": [ + ["id=admin_product_search_word", "id"], + ["name=admin_product[search_word]", "name"], + ["css=#admin_product_search_word", "css:finder"], + ["xpath=//input[@id='admin_product_search_word']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div[9]/div[2]/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div[2]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "a3e7ee25-40b5-441e-8d49-049340dd4ac5", + "comment": "", + "command": "type", + "target": "id=admin_product_search_word", + "targets": [ + ["id=admin_product_search_word", "id"], + ["name=admin_product[search_word]", "name"], + ["css=#admin_product_search_word", "css:finder"], + ["xpath=//input[@id='admin_product_search_word']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div[9]/div[2]/div/input", "xpath:idRelative"], + ["xpath=//div[9]/div[2]/div/input", "xpath:position"] + ], + "value": "テスト,商品" + }, { + "id": "22be237a-de15-46fc-a36d-1c9505739b8e", + "comment": "", + "command": "type", + "target": "id=admin_product_class_code", + "targets": [ + ["id=admin_product_class_code", "id"], + ["name=admin_product[class][code]", "name"], + ["css=#admin_product_class_code", "css:finder"], + ["xpath=//input[@id='admin_product_class_code']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div[10]/div[2]/div/input", "xpath:idRelative"], + ["xpath=//div[10]/div[2]/div/input", "xpath:position"] + ], + "value": "testing-01" + }, { + "id": "acb7efd2-41a7-4805-8dc0-46ba8b4208a0", + "comment": "", + "command": "type", + "target": "id=admin_product_class_sale_limit", + "targets": [ + ["id=admin_product_class_sale_limit", "id"], + ["name=admin_product[class][sale_limit]", "name"], + ["css=#admin_product_class_sale_limit", "css:finder"], + ["xpath=//input[@id='admin_product_class_sale_limit']", "xpath:attributes"], + ["xpath=//div[@id='basicConfig']/div/div[11]/div[2]/div/input", "xpath:idRelative"], + ["xpath=//div[11]/div[2]/div/input", "xpath:position"] + ], + "value": "100" + }, { + "id": "6b1084b3-7178-4b8a-85d7-e5fa06be2af3", + "comment": "", + "command": "select", + "target": "id=admin_product_class_delivery_duration", + "targets": [], + "value": "label=即日" + }, { + "id": "4260b61f-7d64-4414-92d4-106942b19739", + "comment": "", + "command": "click", + "target": "css=#admin_product_class_delivery_duration > option:nth-child(2)", + "targets": [ + ["css=#admin_product_class_delivery_duration > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[2]", "xpath:attributes"], + ["xpath=//select[@id='admin_product_class_delivery_duration']/option[2]", "xpath:idRelative"], + ["xpath=//div[12]/div[2]/div/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'即日')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e0e9f606-4a18-4a1e-b70a-63b888189ad4", + "comment": "", + "command": "click", + "target": "id=wysiwyg-area", + "targets": [ + ["id=wysiwyg-area", "id"], + ["name=admin_product[free_area]", "name"], + ["css=#wysiwyg-area", "css:finder"], + ["xpath=//textarea[@id='wysiwyg-area']", "xpath:attributes"], + ["xpath=//div[@id='freeArea']/div/div/div[2]/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "4fb60435-8431-40f6-b559-5b96ad449574", + "comment": "", + "command": "type", + "target": "id=wysiwyg-area", + "targets": [ + ["id=wysiwyg-area", "id"], + ["name=admin_product[free_area]", "name"], + ["css=#wysiwyg-area", "css:finder"], + ["xpath=//textarea[@id='wysiwyg-area']", "xpath:attributes"], + ["xpath=//div[@id='freeArea']/div/div/div[2]/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/textarea", "xpath:position"] + ], + "value": "ec-cube" + }, { + "id": "7cbc21de-57a6-4b1a-b549-91663b5f9704", + "comment": "", + "command": "click", + "target": "id=admin_product_note", + "targets": [ + ["id=admin_product_note", "id"], + ["name=admin_product[note]", "name"], + ["css=#admin_product_note", "css:finder"], + ["xpath=//textarea[@id='admin_product_note']", "xpath:attributes"], + ["xpath=//div[@id='shopMemo']/div/textarea", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/div/textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "e1011f1d-292f-43cf-b15c-1e900cef35f7", + "comment": "", + "command": "type", + "target": "id=admin_product_note", + "targets": [ + ["id=admin_product_note", "id"], + ["name=admin_product[note]", "name"], + ["css=#admin_product_note", "css:finder"], + ["xpath=//textarea[@id='admin_product_note']", "xpath:attributes"], + ["xpath=//div[@id='shopMemo']/div/textarea", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/div/textarea", "xpath:position"] + ], + "value": "ショップ要メモ" + }, { + "id": "bdab2416-c24d-4013-bf78-1f12306743a6", + "comment": "", + "command": "click", + "target": "css=.ladda-label", + "targets": [ + ["css=.ladda-label", "css:finder"], + ["xpath=//div[@id='ex-conversion-action']/div[2]/button/span", "xpath:idRelative"], + ["xpath=//div[2]/button/span", "xpath:position"] + ], + "value": "" + }, { + "id": "d37ef617-491b-45d0-9328-6acf78cabf27", + "comment": "", + "command": "mouseOver", + "target": "css=.ladda-label", + "targets": [ + ["css=.ladda-label", "css:finder"], + ["xpath=//div[@id='ex-conversion-action']/div[2]/button/span", "xpath:idRelative"], + ["xpath=//div[2]/button/span", "xpath:position"] + ], + "value": "" + }, { + "id": "ef825608-913e-484f-91a1-32420bc147b3", + "comment": "", + "command": "click", + "target": "id=admin_product_category_2", + "targets": [ + ["id=admin_product_category_2", "id"], + ["name=admin_product[Category][]", "name"], + ["css=#admin_product_category_2", "css:finder"], + ["xpath=//input[@id='admin_product_category_2']", "xpath:attributes"], + ["xpath=//div[@id='category']/div/div[2]/ul/li/input", "xpath:idRelative"], + ["xpath=//li/input", "xpath:position"] + ], + "value": "" + }, { + "id": "e9e04064-4de6-4572-94ac-a383e7d85d71", + "comment": "", + "command": "click", + "target": "id=admin_product_Status", + "targets": [ + ["id=admin_product_Status", "id"], + ["name=admin_product[Status]", "name"], + ["css=#admin_product_Status", "css:finder"], + ["xpath=//select[@id='admin_product_Status']", "xpath:attributes"], + ["xpath=//div[@id='ex-conversion-action']/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/select", "xpath:position"] + ], + "value": "" + }, { + "id": "8177723a-cccc-4481-93c1-51542b6ccd7f", + "comment": "", + "command": "select", + "target": "id=admin_product_Status", + "targets": [], + "value": "label=公開" + }, { + "id": "9a036c46-7159-4246-88b5-c145793e305c", + "comment": "", + "command": "click", + "target": "css=#admin_product_Status > option:nth-child(1)", + "targets": [ + ["css=#admin_product_Status > option:nth-child(1)", "css:finder"], + ["xpath=(//option[@value='1'])[3]", "xpath:attributes"], + ["xpath=//select[@id='admin_product_Status']/option", "xpath:idRelative"], + ["xpath=//div[2]/div/div/select/option", "xpath:position"], + ["xpath=//option[contains(.,'公開')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "80e8428b-401d-40d2-80e0-4e68f35f7c39", + "comment": "", + "command": "click", + "target": "css=.px-5", + "targets": [ + ["css=.px-5", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//div[@id='ex-conversion-action']/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a17fbdb5-c5ca-47ca-9aaa-fed16193ab94", + "comment": "", + "command": "mouseOver", + "target": "css=.px-5", + "targets": [ + ["css=.px-5", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//div[@id='ex-conversion-action']/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e9bb07bc-d44d-4846-99d1-29bfb9987c88", + "comment": "", + "command": "click", + "target": "css=.d-block .font-weight-bold:nth-child(2)", + "targets": [ + ["css=.d-block .font-weight-bold:nth-child(2)", "css:finder"], + ["xpath=//div[@id='tag']/div/div/a/span", "xpath:idRelative"], + ["xpath=//div[2]/div/div/a/span", "xpath:position"], + ["xpath=//span[contains(.,'タグ登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e7c81c3d-cd1e-4114-b83e-bf3c438b65f4", + "comment": "", + "command": "click", + "target": "css=.d-inline-block:nth-child(3) > .btn", + "targets": [ + ["css=.d-inline-block:nth-child(3) > .btn", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='allTags']/div[3]/button", "xpath:idRelative"], + ["xpath=//div[3]/button", "xpath:position"], + ["xpath=//button[contains(.,'おすすめ商品')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "991c5212-00ec-433b-82da-8f544f7c41f9", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,488.9333190917969)", + "targets": [], + "value": "" + }, { + "id": "a9c60312-7b91-4450-a47c-3e2d62f7161e", + "comment": "", + "command": "click", + "target": "css=.px-5", + "targets": [ + ["css=.px-5", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//div[@id='ex-conversion-action']/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6b499b85-63b6-44e2-bca1-1562136a1413", + "comment": "", + "command": "click", + "target": "linkText=この商品の規格を確認", + "targets": [ + ["linkText=この商品の規格を確認", "linkText"], + ["css=#standardConfig .btn", "css:finder"], + ["xpath=//a[contains(text(),'この商品の規格を確認')]", "xpath:link"], + ["xpath=//div[@id='standardConfig']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/admin/product/product/class/4')]", "xpath:href"], + ["xpath=//div[2]/div[2]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'この商品の規格を確認')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "10502d07-82a1-4bf2-a304-eb891806d93c", + "comment": "", + "command": "mouseOver", + "target": "linkText=この商品の規格を確認", + "targets": [ + ["linkText=この商品の規格を確認", "linkText"], + ["css=#standardConfig .btn", "css:finder"], + ["xpath=//a[contains(text(),'この商品の規格を確認')]", "xpath:link"], + ["xpath=//div[@id='standardConfig']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/admin/product/product/class/4')]", "xpath:href"], + ["xpath=//div[2]/div[2]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'この商品の規格を確認')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e68616ff-314c-495c-a0ca-5f4fbd360de8", + "comment": "", + "command": "mouseOut", + "target": "linkText=この商品の規格を確認", + "targets": [ + ["linkText=この商品の規格を確認", "linkText"], + ["css=#standardConfig .btn", "css:finder"], + ["xpath=//a[contains(text(),'この商品の規格を確認')]", "xpath:link"], + ["xpath=//div[@id='standardConfig']/div/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '/admin/product/product/class/4')])[2]", "xpath:href"], + ["xpath=//div[2]/div[2]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'この商品の規格を確認')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "50c9519a-fb37-43df-94af-5e58033f9667", + "comment": "", + "command": "click", + "target": "linkText=保存せずに移動", + "targets": [ + ["linkText=保存せずに移動", "linkText"], + ["css=.btn-ec-sub", "css:finder"], + ["xpath=//a[contains(text(),'保存せずに移動')]", "xpath:link"], + ["xpath=//div[@id='confirmFormChangeModal']/div/div/div[3]/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/admin/product/product/class/4')]", "xpath:href"], + ["xpath=//div[3]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'保存せずに移動')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "3c2461a1-06ef-4c64-8d57-8690531c86fc", + "comment": "", + "command": "select", + "target": "id=product_class_matrix_class_name1", + "targets": [], + "value": "label=サイズ (CUBE用サイズ)" + }, { + "id": "dcbd18f0-ee1f-4c05-9407-72ac896795e9", + "comment": "", + "command": "click", + "target": "css=#product_class_matrix_class_name1 > option:nth-child(2)", + "targets": [ + ["css=#product_class_matrix_class_name1 > option:nth-child(2)", "css:finder"], + ["xpath=//option[@value='2']", "xpath:attributes"], + ["xpath=//select[@id='product_class_matrix_class_name1']/option[2]", "xpath:idRelative"], + ["xpath=//option[2]", "xpath:position"], + ["xpath=//option[contains(.,'サイズ (CUBE用サイズ)')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b3e3973f-2229-4805-8fe0-4085af12f566", + "comment": "", + "command": "select", + "target": "id=product_class_matrix_class_name2", + "targets": [], + "value": "label=フレーバー (CUBE用味)" + }, { + "id": "cc5f149b-8633-45e7-a64e-f2bf1c46a369", + "comment": "", + "command": "click", + "target": "css=#product_class_matrix_class_name2 > option:nth-child(3)", + "targets": [ + ["css=#product_class_matrix_class_name2 > option:nth-child(3)", "css:finder"], + ["xpath=(//option[@value='1'])[2]", "xpath:attributes"], + ["xpath=//select[@id='product_class_matrix_class_name2']/option[3]", "xpath:idRelative"], + ["xpath=//div[2]/select/option[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "0321b51f-9a53-42ce-b713-bedbd69038d7", + "comment": "", + "command": "click", + "target": "css=.ladda-label", + "targets": [ + ["css=.ladda-label", "css:finder"], + ["xpath=//body[@id='page_admin_product_product_class']/div/div[3]/div[2]/div/div/div/form/div/div/div[2]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"], + ["xpath=//span[contains(.,'商品規格の設定')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "40553273-9dab-4d78-a62b-a04393b638bb", + "comment": "", + "command": "click", + "target": "id=check-all", + "targets": [ + ["id=check-all", "id"], + ["css=#check-all", "css:finder"], + ["xpath=//input[@id='check-all']", "xpath:attributes"], + ["xpath=//div[@id='ex-product_class']/table/thead/tr/th/input", "xpath:idRelative"], + ["xpath=//th/input", "xpath:position"] + ], + "value": "" + }, { + "id": "eeb25565-f106-46cd-b170-169eda93361e", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_0_code", + "targets": [ + ["id=product_class_matrix_product_classes_0_code", "id"], + ["name=product_class_matrix[product_classes][0][code]", "name"], + ["css=#product_class_matrix_product_classes_0_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"], + ["xpath=//td[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "04936e6a-89f8-40ac-aed3-604c4fde90f4", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_0_code", + "targets": [ + ["id=product_class_matrix_product_classes_0_code", "id"], + ["name=product_class_matrix[product_classes][0][code]", "name"], + ["css=#product_class_matrix_product_classes_0_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"], + ["xpath=//td[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "8ce52cef-b2e1-49b7-bc10-ef7021f2e84c", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_0_code", + "targets": [ + ["id=product_class_matrix_product_classes_0_code", "id"], + ["name=product_class_matrix[product_classes][0][code]", "name"], + ["css=#product_class_matrix_product_classes_0_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"], + ["xpath=//td[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "50dc7ca5-a433-4a26-986b-efe49ae7d44b", + "comment": "", + "command": "doubleClick", + "target": "id=product_class_matrix_product_classes_0_code", + "targets": [ + ["id=product_class_matrix_product_classes_0_code", "id"], + ["name=product_class_matrix[product_classes][0][code]", "name"], + ["css=#product_class_matrix_product_classes_0_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"], + ["xpath=//td[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "f052e74d-45eb-4e0f-8bf9-3dbd7f6d266d", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_0_code", + "targets": [ + ["id=product_class_matrix_product_classes_0_code", "id"], + ["name=product_class_matrix[product_classes][0][code]", "name"], + ["css=#product_class_matrix_product_classes_0_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"], + ["xpath=//td[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "741383da-adc1-4894-89f4-8f58c3608acd", + "comment": "", + "command": "type", + "target": "id=product_class_matrix_product_classes_0_code", + "targets": [ + ["id=product_class_matrix_product_classes_0_code", "id"], + ["name=product_class_matrix[product_classes][0][code]", "name"], + ["css=#product_class_matrix_product_classes_0_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_0_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-0']/td[4]/input", "xpath:idRelative"], + ["xpath=//td[4]/input", "xpath:position"] + ], + "value": "testing-01" + }, { + "id": "4a2f42ed-c3aa-453b-bcec-3ced3dec479d", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_0_stock", + "targets": [ + ["id=product_class_matrix_product_classes_0_stock", "id"], + ["name=product_class_matrix[product_classes][0][stock]", "name"], + ["css=#product_class_matrix_product_classes_0_stock", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_0_stock']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-0']/td[5]/div/div/input", "xpath:idRelative"], + ["xpath=//div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "2c2c87fa-7ef1-415b-9b23-306420de9c96", + "comment": "", + "command": "type", + "target": "id=product_class_matrix_product_classes_0_stock", + "targets": [ + ["id=product_class_matrix_product_classes_0_stock", "id"], + ["name=product_class_matrix[product_classes][0][stock]", "name"], + ["css=#product_class_matrix_product_classes_0_stock", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_0_stock']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-0']/td[5]/div/div/input", "xpath:idRelative"], + ["xpath=//div/div/input", "xpath:position"] + ], + "value": "1000" + }, { + "id": "6d8e06d1-eac1-44f3-b0f7-b44914e17ff7", + "comment": "", + "command": "type", + "target": "id=product_class_matrix_product_classes_0_sale_limit", + "targets": [ + ["id=product_class_matrix_product_classes_0_sale_limit", "id"], + ["name=product_class_matrix[product_classes][0][sale_limit]", "name"], + ["css=#product_class_matrix_product_classes_0_sale_limit", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_0_sale_limit']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-0']/td[6]/div/div/input", "xpath:idRelative"], + ["xpath=//td[6]/div/div/input", "xpath:position"] + ], + "value": "100" + }, { + "id": "43d3f380-6d58-4458-8825-72d864812144", + "comment": "", + "command": "type", + "target": "id=product_class_matrix_product_classes_0_price01", + "targets": [ + ["id=product_class_matrix_product_classes_0_price01", "id"], + ["name=product_class_matrix[product_classes][0][price01]", "name"], + ["css=#product_class_matrix_product_classes_0_price01", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_0_price01']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-0']/td[7]/div/input", "xpath:idRelative"], + ["xpath=//td[7]/div/input", "xpath:position"] + ], + "value": "1000" + }, { + "id": "ba7bc95f-b9b1-48aa-84e9-a46235df7752", + "comment": "", + "command": "type", + "target": "id=product_class_matrix_product_classes_0_price02", + "targets": [ + ["id=product_class_matrix_product_classes_0_price02", "id"], + ["name=product_class_matrix[product_classes][0][price02]", "name"], + ["css=#product_class_matrix_product_classes_0_price02", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_0_price02']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-0']/td[8]/div/input", "xpath:idRelative"], + ["xpath=//td[8]/div/input", "xpath:position"] + ], + "value": "1000" + }, { + "id": "4e383450-abfe-4dd3-8caa-f3e58608994a", + "comment": "", + "command": "select", + "target": "id=product_class_matrix_product_classes_0_delivery_duration", + "targets": [], + "value": "label=即日" + }, { + "id": "39775784-30d9-4551-9454-37d2f7886fe7", + "comment": "", + "command": "click", + "target": "css=#product_class_matrix_product_classes_0_delivery_duration > option:nth-child(2)", + "targets": [ + ["css=#product_class_matrix_product_classes_0_delivery_duration > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[3]", "xpath:attributes"], + ["xpath=//select[@id='product_class_matrix_product_classes_0_delivery_duration']/option[2]", "xpath:idRelative"], + ["xpath=//td[9]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'即日')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "76e866ac-38c6-4fbb-9eba-8e1650d2186d", + "comment": "", + "command": "click", + "target": "css=#ex-product_class-0 > .pr-3", + "targets": [ + ["css=#ex-product_class-0 > .pr-3", "css:finder"], + ["xpath=//tr[@id='ex-product_class-0']/td[10]", "xpath:idRelative"], + ["xpath=//td[10]", "xpath:position"] + ], + "value": "" + }, { + "id": "55c296aa-d393-4476-9747-98755586ac27", + "comment": "", + "command": "click", + "target": "css=#copy > span", + "targets": [ + ["css=#copy > span", "css:finder"], + ["xpath=//button[@id='copy']/span", "xpath:idRelative"], + ["xpath=//div/div/div/div[2]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'1行目をすべての行に複製')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e526ee21-a380-45f8-a002-afe5edb52cb6", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_1_code", + "targets": [ + ["id=product_class_matrix_product_classes_1_code", "id"], + ["name=product_class_matrix[product_classes][1][code]", "name"], + ["css=#product_class_matrix_product_classes_1_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_1_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-1']/td[4]/input", "xpath:idRelative"], + ["xpath=//tr[2]/td[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "2c14b95c-dd80-480b-b92b-af0693c13ea6", + "comment": "", + "command": "type", + "target": "id=product_class_matrix_product_classes_1_code", + "targets": [ + ["id=product_class_matrix_product_classes_1_code", "id"], + ["name=product_class_matrix[product_classes][1][code]", "name"], + ["css=#product_class_matrix_product_classes_1_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_1_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-1']/td[4]/input", "xpath:idRelative"], + ["xpath=//tr[2]/td[4]/input", "xpath:position"] + ], + "value": "testing-02" + }, { + "id": "78cde8ef-63cb-4681-ac11-1ca208e8c869", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_2_code", + "targets": [ + ["id=product_class_matrix_product_classes_2_code", "id"], + ["name=product_class_matrix[product_classes][2][code]", "name"], + ["css=#product_class_matrix_product_classes_2_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_2_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-2']/td[4]/input", "xpath:idRelative"], + ["xpath=//tr[3]/td[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "7ae89485-7f66-4d5f-837b-cd865d2c4b5b", + "comment": "", + "command": "type", + "target": "id=product_class_matrix_product_classes_2_code", + "targets": [ + ["id=product_class_matrix_product_classes_2_code", "id"], + ["name=product_class_matrix[product_classes][2][code]", "name"], + ["css=#product_class_matrix_product_classes_2_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_2_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-2']/td[4]/input", "xpath:idRelative"], + ["xpath=//tr[3]/td[4]/input", "xpath:position"] + ], + "value": "testing-03" + }, { + "id": "6234b7f4-1554-431c-99f2-eef8278617d3", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_3_code", + "targets": [ + ["id=product_class_matrix_product_classes_3_code", "id"], + ["name=product_class_matrix[product_classes][3][code]", "name"], + ["css=#product_class_matrix_product_classes_3_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_3_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-3']/td[4]/input", "xpath:idRelative"], + ["xpath=//tr[4]/td[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "abca796c-9cdd-47db-ba35-fb5c7dc817a8", + "comment": "", + "command": "type", + "target": "id=product_class_matrix_product_classes_3_code", + "targets": [ + ["id=product_class_matrix_product_classes_3_code", "id"], + ["name=product_class_matrix[product_classes][3][code]", "name"], + ["css=#product_class_matrix_product_classes_3_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_3_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-3']/td[4]/input", "xpath:idRelative"], + ["xpath=//tr[4]/td[4]/input", "xpath:position"] + ], + "value": "testing-04" + }, { + "id": "9c4afc20-a073-445d-b3e5-2d673c4195cc", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_4_code", + "targets": [ + ["id=product_class_matrix_product_classes_4_code", "id"], + ["name=product_class_matrix[product_classes][4][code]", "name"], + ["css=#product_class_matrix_product_classes_4_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_4_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-4']/td[4]/input", "xpath:idRelative"], + ["xpath=//tr[5]/td[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "d0ea3120-c4cc-4b96-a51a-f15bac9cb2b8", + "comment": "", + "command": "type", + "target": "id=product_class_matrix_product_classes_4_code", + "targets": [ + ["id=product_class_matrix_product_classes_4_code", "id"], + ["name=product_class_matrix[product_classes][4][code]", "name"], + ["css=#product_class_matrix_product_classes_4_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_4_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-4']/td[4]/input", "xpath:idRelative"], + ["xpath=//tr[5]/td[4]/input", "xpath:position"] + ], + "value": "testing-05" + }, { + "id": "774fc981-2faf-4bfa-83ec-4747a9c8f68d", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_5_code", + "targets": [ + ["id=product_class_matrix_product_classes_5_code", "id"], + ["name=product_class_matrix[product_classes][5][code]", "name"], + ["css=#product_class_matrix_product_classes_5_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_5_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-5']/td[4]/input", "xpath:idRelative"], + ["xpath=//tr[6]/td[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "99aa209c-ec95-4691-986c-604524b49b90", + "comment": "", + "command": "type", + "target": "id=product_class_matrix_product_classes_5_code", + "targets": [ + ["id=product_class_matrix_product_classes_5_code", "id"], + ["name=product_class_matrix[product_classes][5][code]", "name"], + ["css=#product_class_matrix_product_classes_5_code", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_5_code']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-5']/td[4]/input", "xpath:idRelative"], + ["xpath=//tr[6]/td[4]/input", "xpath:position"] + ], + "value": "testing-06" + }, { + "id": "70af2b05-d081-4592-a8e3-c435ab064502", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_6_checked", + "targets": [ + ["id=product_class_matrix_product_classes_6_checked", "id"], + ["name=product_class_matrix[product_classes][6][checked]", "name"], + ["css=#product_class_matrix_product_classes_6_checked", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_6_checked']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-6']/td/div/input", "xpath:idRelative"], + ["xpath=//tr[7]/td/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "3c23ceb8-722a-4940-9afb-f9cb75584525", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_7_checked", + "targets": [ + ["id=product_class_matrix_product_classes_7_checked", "id"], + ["name=product_class_matrix[product_classes][7][checked]", "name"], + ["css=#product_class_matrix_product_classes_7_checked", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_7_checked']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-7']/td/div/input", "xpath:idRelative"], + ["xpath=//tr[8]/td/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "123313a9-622c-4b87-a4a6-20a645a72ed1", + "comment": "", + "command": "click", + "target": "css=#ex-product_class-8 > .pl-3", + "targets": [ + ["css=#ex-product_class-8 > .pl-3", "css:finder"], + ["xpath=//tr[@id='ex-product_class-8']/td", "xpath:idRelative"], + ["xpath=//tr[9]/td", "xpath:position"] + ], + "value": "" + }, { + "id": "2c3788b9-4cc5-4e94-b46c-a07b2286f9d5", + "comment": "", + "command": "click", + "target": "css=#ex-product_class-8 > .pl-3", + "targets": [ + ["css=#ex-product_class-8 > .pl-3", "css:finder"], + ["xpath=//tr[@id='ex-product_class-8']/td", "xpath:idRelative"], + ["xpath=//tr[9]/td", "xpath:position"] + ], + "value": "" + }, { + "id": "c2aed2a9-5903-42f3-bb89-7ad904d0ef17", + "comment": "", + "command": "doubleClick", + "target": "css=#ex-product_class-8 > .pl-3", + "targets": [ + ["css=#ex-product_class-8 > .pl-3", "css:finder"], + ["xpath=//tr[@id='ex-product_class-8']/td", "xpath:idRelative"], + ["xpath=//tr[9]/td", "xpath:position"] + ], + "value": "" + }, { + "id": "bcf527a1-410c-4494-b620-fd3820f26f8b", + "comment": "", + "command": "click", + "target": "id=product_class_matrix_product_classes_8_checked", + "targets": [ + ["id=product_class_matrix_product_classes_8_checked", "id"], + ["name=product_class_matrix[product_classes][8][checked]", "name"], + ["css=#product_class_matrix_product_classes_8_checked", "css:finder"], + ["xpath=//input[@id='product_class_matrix_product_classes_8_checked']", "xpath:attributes"], + ["xpath=//tr[@id='ex-product_class-8']/td/div/input", "xpath:idRelative"], + ["xpath=//tr[9]/td/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "957b0c77-843d-4908-ba84-70835867fe72", + "comment": "", + "command": "click", + "target": "name=product_class_matrix[save]", + "targets": [ + ["name=product_class_matrix[save]", "name"], + ["css=.px-5", "css:finder"], + ["xpath=//button[@name='product_class_matrix[save]']", "xpath:attributes"], + ["xpath=//div[@id='ex-conversion-action']/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d9ced51a-2239-4f81-9700-e5014b9fb709", + "comment": "", + "command": "click", + "target": "linkText=規格管理", + "targets": [ + ["linkText=規格管理", "linkText"], + ["css=#nav-product > li:nth-child(3) > a", "css:finder"], + ["xpath=//ul[@id='nav-product']/li[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/class_name')]", "xpath:href"], + ["xpath=//li[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'規格管理')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "35aacfde-ce52-4666-96d1-aebc3ce79438", + "comment": "", + "command": "click", + "target": "id=admin_class_name_name", + "targets": [ + ["id=admin_class_name_name", "id"], + ["name=admin_class_name[name]", "name"], + ["css=#admin_class_name_name", "css:finder"], + ["xpath=//input[@id='admin_class_name_name']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/input[2]", "xpath:idRelative"], + ["xpath=//input[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "5140af68-f48c-48e1-ab17-48e0942d5f53", + "comment": "", + "command": "type", + "target": "id=admin_class_name_name", + "targets": [ + ["id=admin_class_name_name", "id"], + ["name=admin_class_name[name]", "name"], + ["css=#admin_class_name_name", "css:finder"], + ["xpath=//input[@id='admin_class_name_name']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/input[2]", "xpath:idRelative"], + ["xpath=//input[2]", "xpath:position"] + ], + "value": "色" + }, { + "id": "703ac5f9-1c4a-4c0c-9082-f6203ea08e25", + "comment": "", + "command": "type", + "target": "id=admin_class_name_backend_name", + "targets": [ + ["id=admin_class_name_backend_name", "id"], + ["name=admin_class_name[backend_name]", "name"], + ["css=#admin_class_name_backend_name", "css:finder"], + ["xpath=//input[@id='admin_class_name_backend_name']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "色01" + }, { + "id": "497d7967-8d20-480b-adcb-fc9d9174fcd6", + "comment": "", + "command": "click", + "target": "css=.btn-ec-regular > .ladda-label", + "targets": [ + ["css=.btn-ec-regular > .ladda-label", "css:finder"], + ["xpath=//form[@id='form1']/div[5]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"], + ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f2a3fd47-82a8-4419-b1c2-ca4e9ae4f0c8", + "comment": "", + "command": "mouseOver", + "target": "css=.btn-ec-regular > .ladda-label", + "targets": [ + ["css=.btn-ec-regular > .ladda-label", "css:finder"], + ["xpath=//form[@id='form1']/div[5]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"], + ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "69876e5a-47e1-4ed6-8d72-da7704950017", + "comment": "", + "command": "mouseOut", + "target": "css=.btn-ec-regular > .ladda-label", + "targets": [ + ["css=.btn-ec-regular > .ladda-label", "css:finder"], + ["xpath=//form[@id='form1']/div[5]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"], + ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "63080b33-ceb0-47cd-b062-04f55d38e5fe", + "comment": "", + "command": "mouseDownAt", + "target": "linkText=色[管理名:色01] (0)", + "targets": [ + ["linkText=色[管理名:色01] (0)", "linkText"], + ["css=#ex-class_name-3 .col > a", "css:finder"], + ["xpath=//a[contains(text(),'色[管理名:色01] (0)')]", "xpath:link"], + ["xpath=//li[@id='ex-class_name-3']/div/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/class_category/3')]", "xpath:href"], + ["xpath=//div[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'色[管理名:色01] (0)')]", "xpath:innerText"] + ], + "value": "117.61666870117188,-78.63333129882812" + }, { + "id": "724f8c1f-ae9f-451b-88ae-d191e14e1e45", + "comment": "", + "command": "mouseMoveAt", + "target": "css=#ex-class_name-3 .col", + "targets": [ + ["css=#ex-class_name-3 .col", "css:finder"], + ["xpath=//li[@id='ex-class_name-3']/div/div[3]", "xpath:idRelative"], + ["xpath=//li[3]/div/div[3]", "xpath:position"] + ], + "value": "126.61666870117188,24" + }, { + "id": "501c876d-b9c2-4a0d-b268-6228c8ed50f0", + "comment": "", + "command": "mouseUpAt", + "target": "css=#ex-class_name-3 .col", + "targets": [ + ["css=#ex-class_name-3 .col", "css:finder"], + ["xpath=//li[@id='ex-class_name-3']/div/div[3]", "xpath:idRelative"], + ["xpath=//li[3]/div/div[3]", "xpath:position"] + ], + "value": "126.61666870117188,24" + }, { + "id": "6148b10f-c3bb-4912-8f22-48a1be649e6b", + "comment": "", + "command": "click", + "target": "linkText=色[管理名:色01] (0)", + "targets": [ + ["linkText=色[管理名:色01] (0)", "linkText"], + ["css=#ex-class_name-3 .col > a", "css:finder"], + ["xpath=//a[contains(text(),'色[管理名:色01] (0)')]", "xpath:link"], + ["xpath=//li[@id='ex-class_name-3']/div/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/class_category/3')]", "xpath:href"], + ["xpath=//li[5]/div/div[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'色[管理名:色01] (0)')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "3e101d11-939f-4a8d-99b7-8f3ebfc56f78", + "comment": "", + "command": "click", + "target": "id=class_name_3_backend_name", + "targets": [ + ["id=class_name_3_backend_name", "id"], + ["name=class_name_3[backend_name]", "name"], + ["css=#class_name_3_backend_name", "css:finder"], + ["xpath=//input[@id='class_name_3_backend_name']", "xpath:attributes"], + ["xpath=//li[@id='ex-class_name-3']/form/div[4]/input", "xpath:idRelative"], + ["xpath=//li[5]/form/div[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "c2d39dc1-ad06-4f0e-aa17-0ca74ad7d3d1", + "comment": "", + "command": "type", + "target": "id=class_name_3_backend_name", + "targets": [ + ["id=class_name_3_backend_name", "id"], + ["name=class_name_3[backend_name]", "name"], + ["css=#class_name_3_backend_name", "css:finder"], + ["xpath=//input[@id='class_name_3_backend_name']", "xpath:attributes"], + ["xpath=//li[@id='ex-class_name-3']/form/div[4]/input", "xpath:idRelative"], + ["xpath=//li[5]/form/div[4]/input", "xpath:position"] + ], + "value": "色02" + }, { + "id": "60606cfb-c3c1-45fe-8228-847011e98ab7", + "comment": "", + "command": "click", + "target": "css=#ex-class_name-3 .ladda-label", + "targets": [ + ["css=#ex-class_name-3 .ladda-label", "css:finder"], + ["xpath=//li[@id='ex-class_name-3']/form/div[5]/button/span", "xpath:idRelative"], + ["xpath=//li[5]/form/div[5]/button/span", "xpath:position"] + ], + "value": "" + }, { + "id": "73524631-d498-41e6-934a-82c57287f866", + "comment": "", + "command": "click", + "target": "linkText=カテゴリ管理", + "targets": [ + ["linkText=カテゴリ管理", "linkText"], + ["css=#nav-product > li:nth-child(4) > a", "css:finder"], + ["xpath=//ul[@id='nav-product']/li[4]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category')]", "xpath:href"], + ["xpath=//li[4]/a", "xpath:position"], + ["xpath=//a[contains(.,'カテゴリ管理')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c896d056-b5e8-45bb-a81a-1177ac218dc5", + "comment": "", + "command": "click", + "target": "id=admin_category_name", + "targets": [ + ["id=admin_category_name", "id"], + ["name=admin_category[name]", "name"], + ["css=#admin_category_name", "css:finder"], + ["xpath=//input[@id='admin_category_name']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"], + ["xpath=//div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "b89af73a-aec9-4c40-8966-f89e30fb903e", + "comment": "", + "command": "type", + "target": "id=admin_category_name", + "targets": [ + ["id=admin_category_name", "id"], + ["name=admin_category[name]", "name"], + ["css=#admin_category_name", "css:finder"], + ["xpath=//input[@id='admin_category_name']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"], + ["xpath=//div/input", "xpath:position"] + ], + "value": "テスト" + }, { + "id": "1f0c27b5-ff9a-4acd-a3f2-4888be737890", + "comment": "", + "command": "click", + "target": "css=.btn-ec-regular > .ladda-label", + "targets": [ + ["css=.btn-ec-regular > .ladda-label", "css:finder"], + ["xpath=//form[@id='form1']/div/div[2]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"], + ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e98d386a-f311-4373-aaa6-835868e9e8a3", + "comment": "", + "command": "mouseOver", + "target": "css=.btn-ec-regular > .ladda-label", + "targets": [ + ["css=.btn-ec-regular > .ladda-label", "css:finder"], + ["xpath=//form[@id='form1']/div/div[2]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"], + ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "26300d8a-c1b6-401c-b72f-c6b113b47526", + "comment": "", + "command": "mouseOver", + "target": "css=#ex-category-7 .action-edit", + "targets": [ + ["css=#ex-category-7 .action-edit", "css:finder"], + ["xpath=//li[@id='ex-category-7']/div/div[4]/a[3]", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/7/edit')]", "xpath:href"], + ["xpath=//div[4]/a[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "3dc6465d-de2d-4c56-a689-08df61f7f407", + "comment": "", + "command": "mouseOut", + "target": "css=#ex-category-7 .action-edit", + "targets": [ + ["css=#ex-category-7 .action-edit", "css:finder"], + ["xpath=//li[@id='ex-category-7']/div/div[4]/a[3]", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/7/edit')]", "xpath:href"], + ["xpath=//div[4]/a[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "6e647eef-6e9c-42f6-a94d-652d1ee145d4", + "comment": "", + "command": "click", + "target": "css=#ex-category-7 .btn:nth-child(3) > .fa", + "targets": [ + ["css=#ex-category-7 .btn:nth-child(3) > .fa", "css:finder"], + ["xpath=//li[@id='ex-category-7']/div/div[4]/a[3]/i", "xpath:idRelative"], + ["xpath=//div[4]/a[3]/i", "xpath:position"] + ], + "value": "" + }, { + "id": "fe0d1bc5-5ebc-4e71-b838-e0270b1d54f2", + "comment": "", + "command": "click", + "target": "id=category_7_name", + "targets": [ + ["id=category_7_name", "id"], + ["name=category_7[name]", "name"], + ["css=#category_7_name", "css:finder"], + ["xpath=//input[@id='category_7_name']", "xpath:attributes"], + ["xpath=//li[@id='ex-category-7']/form/div/input", "xpath:idRelative"], + ["xpath=//form/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "7057b160-9867-444e-9dfa-67125b06ac08", + "comment": "", + "command": "type", + "target": "id=category_7_name", + "targets": [ + ["id=category_7_name", "id"], + ["name=category_7[name]", "name"], + ["css=#category_7_name", "css:finder"], + ["xpath=//input[@id='category_7_name']", "xpath:attributes"], + ["xpath=//li[@id='ex-category-7']/form/div/input", "xpath:idRelative"], + ["xpath=//form/div/input", "xpath:position"] + ], + "value": "テスト01" + }, { + "id": "8436bb12-be28-457a-bcf5-0835d346c8fe", + "comment": "", + "command": "mouseDownAt", + "target": "css=#ex-category-7 .col", + "targets": [ + ["css=#ex-category-7 .col", "css:finder"], + ["xpath=//li[@id='ex-category-7']/div/div[3]", "xpath:idRelative"], + ["xpath=//li[3]/div/div[3]", "xpath:position"] + ], + "value": "169.41668701171875,19.5" + }, { + "id": "2d40c91e-cbd6-41e6-884a-a28d18253c36", + "comment": "", + "command": "mouseMoveAt", + "target": "css=#ex-category-7 .col", + "targets": [ + ["css=#ex-category-7 .col", "css:finder"], + ["xpath=//li[@id='ex-category-7']/div/div[3]", "xpath:idRelative"], + ["xpath=//li[3]/div/div[3]", "xpath:position"] + ], + "value": "169.41668701171875,19.5" + }, { + "id": "40cfd921-1303-497b-a020-637690c8a369", + "comment": "", + "command": "mouseUpAt", + "target": "css=#ex-category-7 .col", + "targets": [ + ["css=#ex-category-7 .col", "css:finder"], + ["xpath=//li[@id='ex-category-7']/div/div[3]", "xpath:idRelative"], + ["xpath=//li[3]/div/div[3]", "xpath:position"] + ], + "value": "169.41668701171875,19.5" + }, { + "id": "3159f891-7196-41fd-9cd6-ada096b222b9", + "comment": "", + "command": "click", + "target": "css=#ex-category-7 .col", + "targets": [ + ["css=#ex-category-7 .col", "css:finder"], + ["xpath=//li[@id='ex-category-7']/div/div[3]", "xpath:idRelative"], + ["xpath=//li[6]/div/div[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "c28b49f5-cb2e-4ecf-a99b-f0046cb872ad", + "comment": "", + "command": "click", + "target": "linkText=テスト", + "targets": [ + ["linkText=テスト", "linkText"], + ["css=#ex-category-7 .col > a", "css:finder"], + ["xpath=//a[contains(text(),'テスト')]", "xpath:link"], + ["xpath=//li[@id='ex-category-7']/div/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/7')]", "xpath:href"], + ["xpath=//li[6]/div/div[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'テスト')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a50dd304-a4b6-4a3d-8edb-3798066b9480", + "comment": "", + "command": "click", + "target": "id=admin_category_name", + "targets": [ + ["id=admin_category_name", "id"], + ["name=admin_category[name]", "name"], + ["css=#admin_category_name", "css:finder"], + ["xpath=//input[@id='admin_category_name']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"], + ["xpath=//div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "5a5fa0b4-8c1c-46d0-8130-a717b0af1b57", + "comment": "", + "command": "type", + "target": "id=admin_category_name", + "targets": [ + ["id=admin_category_name", "id"], + ["name=admin_category[name]", "name"], + ["css=#admin_category_name", "css:finder"], + ["xpath=//input[@id='admin_category_name']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"], + ["xpath=//div/input", "xpath:position"] + ], + "value": "テスト02" + }, { + "id": "658909bf-1441-49f3-a106-3335af4358ec", + "comment": "", + "command": "click", + "target": "css=.ladda-button", + "targets": [ + ["css=.ladda-button", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div[2]/button", "xpath:idRelative"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e4fbea57-6071-4572-bc57-b958cd54ea57", + "comment": "", + "command": "mouseOver", + "target": "css=.ladda-button", + "targets": [ + ["css=.ladda-button", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div[2]/button", "xpath:idRelative"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6c1db7f5-3244-4230-99ad-76545b4d6db3", + "comment": "", + "command": "mouseOver", + "target": "css=.action-edit", + "targets": [ + ["css=.action-edit", "css:finder"], + ["xpath=//li[@id='ex-category-8']/div/div[4]/a[3]", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/8/edit')]", "xpath:href"], + ["xpath=//div[4]/a[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "cf2b68bf-ed06-45d4-8a8c-14926f6810b3", + "comment": "", + "command": "mouseOut", + "target": "css=.action-edit", + "targets": [ + ["css=.action-edit", "css:finder"], + ["xpath=//li[@id='ex-category-8']/div/div[4]/a[3]", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/8/edit')]", "xpath:href"], + ["xpath=//div[4]/a[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "a0cb67ae-7314-4784-87f6-6ec28aec1605", + "comment": "", + "command": "click", + "target": "linkText=テスト02", + "targets": [ + ["linkText=テスト02", "linkText"], + ["css=.col > a", "css:finder"], + ["xpath=//a[contains(text(),'テスト02')]", "xpath:link"], + ["xpath=//li[@id='ex-category-8']/div/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/8')]", "xpath:href"], + ["xpath=//div[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'テスト02')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "3a596b99-a66e-42d9-b697-aae3efa46404", + "comment": "", + "command": "click", + "target": "id=admin_category_name", + "targets": [ + ["id=admin_category_name", "id"], + ["name=admin_category[name]", "name"], + ["css=#admin_category_name", "css:finder"], + ["xpath=//input[@id='admin_category_name']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"], + ["xpath=//div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "89b7f499-654c-4c81-9970-8f331e02421b", + "comment": "", + "command": "type", + "target": "id=admin_category_name", + "targets": [ + ["id=admin_category_name", "id"], + ["name=admin_category[name]", "name"], + ["css=#admin_category_name", "css:finder"], + ["xpath=//input[@id='admin_category_name']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div/div/input", "xpath:idRelative"], + ["xpath=//div/input", "xpath:position"] + ], + "value": "テスト03" + }, { + "id": "38b15837-0493-4daf-bde9-f37da6bd9493", + "comment": "", + "command": "click", + "target": "css=.ladda-label", + "targets": [ + ["css=.ladda-label", "css:finder"], + ["xpath=//form[@id='form1']/div/div[2]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"], + ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "fb852373-1e69-44db-bd0a-43f561ceb5cb", + "comment": "", + "command": "mouseOver", + "target": "css=.ladda-label", + "targets": [ + ["css=.ladda-label", "css:finder"], + ["xpath=//form[@id='form1']/div/div[2]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"], + ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "817ef252-57f5-49f2-9d62-d137d00a448b", + "comment": "", + "command": "mouseOut", + "target": "css=.ladda-label", + "targets": [ + ["css=.ladda-label", "css:finder"], + ["xpath=//form[@id='form1']/div/div[2]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"], + ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1ad6019d-9956-4edc-80f7-f75fcb8f6706", + "comment": "", + "command": "mouseOver", + "target": "css=.action-edit", + "targets": [ + ["css=.action-edit", "css:finder"], + ["xpath=//li[@id='ex-category-9']/div/div[4]/a[3]", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/9/edit')]", "xpath:href"], + ["xpath=//div[4]/a[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "36fa7ff4-b4a8-4d4d-b5d9-887c9bdc4728", + "comment": "", + "command": "mouseOut", + "target": "css=.action-edit", + "targets": [ + ["css=.action-edit", "css:finder"], + ["xpath=//li[@id='ex-category-9']/div/div[4]/a[3]", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/9/edit')]", "xpath:href"], + ["xpath=//div[4]/a[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "ecce9bd1-6b6b-4026-a6ff-8f0a3f2520e0", + "comment": "", + "command": "click", + "target": "css=.fa-close", + "targets": [ + ["css=.fa-close", "css:finder"], + ["xpath=//li[@id='ex-category-9']/div/div[4]/div/a/i", "xpath:idRelative"], + ["xpath=//div[4]/div/a/i", "xpath:position"] + ], + "value": "" + }, { + "id": "bb40c5a9-61ae-431c-ba24-691a32f4134d", + "comment": "", + "command": "click", + "target": "linkText=削除", + "targets": [ + ["linkText=削除", "linkText"], + ["css=.btn-ec-delete", "css:finder"], + ["xpath=//a[contains(text(),'削除')]", "xpath:link"], + ["xpath=//div[@id='DeleteModal']/div/div/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/category/9/delete')]", "xpath:href"], + ["xpath=//div/div/div[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'削除')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "835df1f6-2607-45db-8d02-c00a3ccdbdb5", + "comment": "", + "command": "click", + "target": "linkText=タグ管理", + "targets": [ + ["linkText=タグ管理", "linkText"], + ["css=#nav-product > li:nth-child(5) > a", "css:finder"], + ["xpath=//ul[@id='nav-product']/li[5]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/tag')]", "xpath:href"], + ["xpath=//li[5]/a", "xpath:position"], + ["xpath=//a[contains(.,'タグ管理')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "539042e4-9bfe-467e-b3b6-efcb81ddf055", + "comment": "", + "command": "click", + "target": "id=admin_product_tag_name", + "targets": [ + ["id=admin_product_tag_name", "id"], + ["name=admin_product_tag[name]", "name"], + ["css=#admin_product_tag_name", "css:finder"], + ["xpath=//input[@id='admin_product_tag_name']", "xpath:attributes"], + ["xpath=//body[@id='page_admin_product_tag']/div/div[3]/div[2]/div/div/div/div/div/ul/li/form/div/input", "xpath:idRelative"], + ["xpath=//div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "70bf8e16-be2e-47a2-abae-2c63d488f23d", + "comment": "", + "command": "type", + "target": "id=admin_product_tag_name", + "targets": [ + ["id=admin_product_tag_name", "id"], + ["name=admin_product_tag[name]", "name"], + ["css=#admin_product_tag_name", "css:finder"], + ["xpath=//input[@id='admin_product_tag_name']", "xpath:attributes"], + ["xpath=//body[@id='page_admin_product_tag']/div/div[3]/div[2]/div/div/div/div/div/ul/li/form/div/input", "xpath:idRelative"], + ["xpath=//div/input", "xpath:position"] + ], + "value": "テストタグ" + }, { + "id": "0b31608f-73e5-49a8-84c5-7fd3d93cc19e", + "comment": "", + "command": "click", + "target": "css=.btn-ec-regular > .ladda-label", + "targets": [ + ["css=.btn-ec-regular > .ladda-label", "css:finder"], + ["xpath=//body[@id='page_admin_product_tag']/div/div[3]/div[2]/div/div/div/div/div/ul/li/form/div[2]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"], + ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5c421b48-f031-48cd-b881-f4418e7dfd38", + "comment": "", + "command": "mouseOver", + "target": "css=.btn-ec-regular > .ladda-label", + "targets": [ + ["css=.btn-ec-regular > .ladda-label", "css:finder"], + ["xpath=//body[@id='page_admin_product_tag']/div/div[3]/div[3]/div/div/div/div/div/ul/li/form/div[2]/button/span", "xpath:idRelative"], + ["xpath=//form/div[2]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'新規作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6cc1d8c5-dbe8-4455-bb3c-82b6d0f27e20", + "comment": "", + "command": "mouseDownAt", + "target": "css=#ex-tag-4 .col", + "targets": [ + ["css=#ex-tag-4 .col", "css:finder"], + ["xpath=//li[@id='ex-tag-4']/div/div[3]", "xpath:idRelative"], + ["xpath=//li[3]/div/div[3]", "xpath:position"] + ], + "value": "128.38333129882812,18" + }, { + "id": "8d7a7de6-f320-49ef-8624-870f75273a78", + "comment": "", + "command": "mouseMoveAt", + "target": "css=#ex-tag-4 .col", + "targets": [ + ["css=#ex-tag-4 .col", "css:finder"], + ["xpath=//li[@id='ex-tag-4']/div/div[3]", "xpath:idRelative"], + ["xpath=//li[3]/div/div[3]", "xpath:position"] + ], + "value": "128.38333129882812,18" + }, { + "id": "3b3e5115-9565-482c-a2aa-9d27e0ee2e25", + "comment": "", + "command": "mouseUpAt", + "target": "css=#ex-tag-4 .col", + "targets": [ + ["css=#ex-tag-4 .col", "css:finder"], + ["xpath=//li[@id='ex-tag-4']/div/div[3]", "xpath:idRelative"], + ["xpath=//li[3]/div/div[3]", "xpath:position"] + ], + "value": "128.38333129882812,18" + }, { + "id": "05de52a7-cfab-49a5-8c39-6d2a71cbb7b8", + "comment": "", + "command": "click", + "target": "css=#ex-tag-4 .col", + "targets": [ + ["css=#ex-tag-4 .col", "css:finder"], + ["xpath=//li[@id='ex-tag-4']/div/div[3]", "xpath:idRelative"], + ["xpath=//li[5]/div/div[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "7e205980-b3ab-4701-800a-73c2aef82432", + "comment": "", + "command": "click", + "target": "css=#ex-tag-4 .d-inline-block .fa", + "targets": [ + ["css=#ex-tag-4 .d-inline-block .fa", "css:finder"], + ["xpath=//li[@id='ex-tag-4']/div/div[4]/div/a/i", "xpath:idRelative"], + ["xpath=//li[5]/div/div[4]/div/a/i", "xpath:position"] + ], + "value": "" + }, { + "id": "d62f6466-0667-4a8b-acff-051384399b98", + "comment": "", + "command": "click", + "target": "linkText=削除", + "targets": [ + ["linkText=削除", "linkText"], + ["css=.btn-ec-delete", "css:finder"], + ["xpath=//a[contains(text(),'削除')]", "xpath:link"], + ["xpath=//div[@id='DeleteModal']/div/div/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/tag/4/delete')]", "xpath:href"], + ["xpath=//div/div/div[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'削除')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2f3d5431-b99c-461c-901c-f829e39a6f55", + "comment": "", + "command": "mouseOver", + "target": "linkText=削除", + "targets": [ + ["linkText=削除", "linkText"], + ["css=.btn-ec-delete", "css:finder"], + ["xpath=//a[contains(text(),'削除')]", "xpath:link"], + ["xpath=//div[@id='DeleteModal']/div/div/div[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/product/tag/4/delete')]", "xpath:href"], + ["xpath=//div/div/div[3]/a", "xpath:position"], + ["xpath=//a[contains(.,'削除')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "80f49145-53ca-4fe0-ab0b-b63db4b09017", + "comment": "", + "command": "mouseOver", + "target": "css=#ex-tag-3 .action-down", + "targets": [ + ["css=#ex-tag-3 .action-down", "css:finder"], + ["xpath=//li[@id='ex-tag-3']/div/div[4]/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[13]", "xpath:href"], + ["xpath=//div[4]/a[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "2bdb2423-01cf-4fcf-8edb-fbc1614520bf", + "comment": "", + "command": "mouseOut", + "target": "css=#ex-tag-3 .action-down", + "targets": [ + ["css=#ex-tag-3 .action-down", "css:finder"], + ["xpath=//li[@id='ex-tag-3']/div/div[4]/a[2]", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '#')])[13]", "xpath:href"], + ["xpath=//div[4]/a[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "03a1c2ee-b888-4f75-a34f-85a55f46b9df", + "comment": "", + "command": "click", + "target": "css=#ex-tag-3 .action-edit", + "targets": [ + ["css=#ex-tag-3 .action-edit", "css:finder"], + ["xpath=//li[@id='ex-tag-3']/div/div[4]/a[3]", "xpath:idRelative"], + ["xpath=//div[4]/a[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "db840b3e-1264-4b21-823c-546eb2aed359", + "comment": "", + "command": "click", + "target": "css=#ex-tag-3 .ladda-label", + "targets": [ + ["css=#ex-tag-3 .ladda-label", "css:finder"], + ["xpath=//li[@id='ex-tag-3']/form/div[2]/button/span", "xpath:idRelative"], + ["xpath=//li[3]/form/div[2]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'決定')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "05d132d0-dbb4-4ef0-8482-e4eb7c6137e2", + "comment": "", + "command": "mouseOver", + "target": "css=#ex-tag-3 .ladda-label", + "targets": [ + ["css=#ex-tag-3 .ladda-label", "css:finder"], + ["xpath=//li[@id='ex-tag-3']/form/div[2]/button/span", "xpath:idRelative"], + ["xpath=//li[3]/form/div[2]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'決定')]", "xpath:innerText"] + ], + "value": "" + }] + }, { + "id": "93cadc3b-359e-440c-97b4-a69a41f7c12d", + "name": "受注管理", + "commands": [{ + "id": "2323aade-d77a-415d-8eb1-98988122a67b", + "comment": "", + "command": "open", + "target": "https://ec-cube/admin/", + "targets": [], + "value": "" + }, { + "id": "708266cf-87e2-42a9-b706-029508a5a7de", + "comment": "", + "command": "setWindowSize", + "target": "1160x821", + "targets": [], + "value": "" + }, { + "id": "77cf7e8f-3620-4c35-905b-0e369ea5ded0", + "comment": "", + "command": "click", + "target": "linkText=受注管理", + "targets": [ + ["linkText=受注管理", "linkText"], + ["css=.c-mainNavArea__navItem:nth-child(3) > .c-mainNavArea__navItemTitle", "css:finder"], + ["xpath=//body[@id='page_admin_homepage']/div/div/nav/ul/li[3]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#nav-order')]", "xpath:href"], + ["xpath=//nav/ul/li[3]/a", "xpath:position"], + ["xpath=//a[contains(.,' 受注管理')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "11e67ad6-7853-4201-a6a3-9f55b9e1bb19", + "comment": "", + "command": "click", + "target": "linkText=受注一覧", + "targets": [ + ["linkText=受注一覧", "linkText"], + ["css=#nav-order > li:nth-child(1) > a", "css:finder"], + ["xpath=//ul[@id='nav-order']/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/order')]", "xpath:href"], + ["xpath=//li[3]/ul/li/a", "xpath:position"], + ["xpath=//a[contains(.,'受注一覧')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8865a6f5-b806-44fb-8fb8-2856a5a6e291", + "comment": "", + "command": "click", + "target": "linkText=受注登録", + "targets": [ + ["linkText=受注登録", "linkText"], + ["css=.is-active", "css:finder"], + ["xpath=//ul[@id='nav-order']/li[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/order/new')]", "xpath:href"], + ["xpath=//li[3]/ul/li[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'受注登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "9c92cb52-4b77-4acc-8ba3-0d92a4256802", + "comment": "", + "command": "select", + "target": "id=order_Payment", + "targets": [], + "value": "label=郵便振替" + }, { + "id": "b75bb272-b344-4eb8-bb25-b472571dac33", + "comment": "", + "command": "click", + "target": "css=#order_Payment > option:nth-child(4)", + "targets": [ + ["css=#order_Payment > option:nth-child(4)", "css:finder"], + ["xpath=//option[@value='1']", "xpath:attributes"], + ["xpath=//select[@id='order_Payment']/option[4]", "xpath:idRelative"], + ["xpath=//option[4]", "xpath:position"], + ["xpath=//option[contains(.,'郵便振替')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "020513f3-e368-4706-9948-aa6c451c4a4e", + "comment": "", + "command": "click", + "target": "id=order_name_name01", + "targets": [ + ["id=order_name_name01", "id"], + ["name=order[name][name01]", "name"], + ["css=#order_name_name01", "css:finder"], + ["xpath=//input[@id='order_name_name01']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div[2]/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "504b9fe8-9c91-48df-8850-7f1e37eaa2f4", + "comment": "", + "command": "type", + "target": "id=order_name_name01", + "targets": [ + ["id=order_name_name01", "id"], + ["name=order[name][name01]", "name"], + ["css=#order_name_name01", "css:finder"], + ["xpath=//input[@id='order_name_name01']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div[2]/div/div/div/input", "xpath:position"] + ], + "value": "石" + }, { + "id": "1f96f4fc-0b42-431c-82b0-8b91d0c69ba4", + "comment": "", + "command": "type", + "target": "id=order_name_name02", + "targets": [ + ["id=order_name_name02", "id"], + ["name=order[name][name02]", "name"], + ["css=#order_name_name02", "css:finder"], + ["xpath=//input[@id='order_name_name02']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[2]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div[2]/div/div/div[2]/input", "xpath:position"] + ], + "value": "給部" + }, { + "id": "9000dcbd-8f34-4cbf-9ecf-b34c2a734e43", + "comment": "", + "command": "type", + "target": "id=order_kana_kana01", + "targets": [ + ["id=order_kana_kana01", "id"], + ["name=order[kana][kana01]", "name"], + ["css=#order_kana_kana01", "css:finder"], + ["xpath=//input[@id='order_kana_kana01']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div[3]/div/div/div/input", "xpath:position"] + ], + "value": "イーシー" + }, { + "id": "0cafb072-8940-4cd6-9902-e58d22daa1f1", + "comment": "", + "command": "type", + "target": "id=order_kana_kana02", + "targets": [ + ["id=order_kana_kana02", "id"], + ["name=order[kana][kana02]", "name"], + ["css=#order_kana_kana02", "css:finder"], + ["xpath=//input[@id='order_kana_kana02']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[3]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div/div[2]/input", "xpath:position"] + ], + "value": "キューブ" + }, { + "id": "7b56c03e-f515-496d-b93e-931d90526a4d", + "comment": "", + "command": "type", + "target": "id=order_postal_code", + "targets": [ + ["id=order_postal_code", "id"], + ["name=order[postal_code]", "name"], + ["css=#order_postal_code", "css:finder"], + ["xpath=//input[@id='order_postal_code']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[4]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div/input", "xpath:position"] + ], + "value": "5300001" + }, { + "id": "0f235bb5-4b5a-46df-a8db-7c2e4684fb40", + "comment": "", + "command": "click", + "target": "id=order_address_addr02", + "targets": [ + ["id=order_address_addr02", "id"], + ["name=order[address][addr02]", "name"], + ["css=#order_address_addr02", "css:finder"], + ["xpath=//input[@id='order_address_addr02']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[4]/div/div[4]/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "d69af810-7069-4c34-9543-d9fe1a6a30af", + "comment": "", + "command": "type", + "target": "id=order_address_addr02", + "targets": [ + ["id=order_address_addr02", "id"], + ["name=order[address][addr02]", "name"], + ["css=#order_address_addr02", "css:finder"], + ["xpath=//input[@id='order_address_addr02']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div/div[4]/div/div[4]/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/input", "xpath:position"] + ], + "value": "2" + }, { + "id": "43048b45-1bda-4746-b641-d2557ca08ded", + "comment": "", + "command": "click", + "target": "css=.card-body:nth-child(2)", + "targets": [ + ["css=.card-body:nth-child(2)", "css:finder"], + ["xpath=//div[@id='ordererInfo']/div", "xpath:idRelative"], + ["xpath=//form/div/div/div/div[2]/div[2]/div", "xpath:position"] + ], + "value": "" + }, { + "id": "61ff5889-0ace-4944-b9b1-af99b91c17c6", + "comment": "", + "command": "click", + "target": "id=order_email", + "targets": [ + ["id=order_email", "id"], + ["name=order[email]", "name"], + ["css=#order_email", "css:finder"], + ["xpath=//input[@id='order_email']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "5dbc8c65-3845-44b5-8e57-37bc9acffb93", + "comment": "", + "command": "type", + "target": "id=order_email", + "targets": [ + ["id=order_email", "id"], + ["name=order[email]", "name"], + ["css=#order_email", "css:finder"], + ["xpath=//input[@id='order_email']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/div/input", "xpath:position"] + ], + "value": "ec-cube-guest@example.com" + }, { + "id": "ec027f10-fe40-43cc-9f1b-293c393c6421", + "comment": "", + "command": "type", + "target": "id=order_phone_number", + "targets": [ + ["id=order_phone_number", "id"], + ["name=order[phone_number]", "name"], + ["css=#order_phone_number", "css:finder"], + ["xpath=//input[@id='order_phone_number']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div[2]/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div/input", "xpath:position"] + ], + "value": "333333333" + }, { + "id": "e33e8da6-9e22-45ae-b12e-c9a28652bef0", + "comment": "", + "command": "click", + "target": "id=order_company_name", + "targets": [ + ["id=order_company_name", "id"], + ["name=order[company_name]", "name"], + ["css=#order_company_name", "css:finder"], + ["xpath=//input[@id='order_company_name']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div[3]/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[3]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "90ed8f2e-3106-4dbf-8661-9d7cfc10ef6c", + "comment": "", + "command": "type", + "target": "id=order_company_name", + "targets": [ + ["id=order_company_name", "id"], + ["name=order[company_name]", "name"], + ["css=#order_company_name", "css:finder"], + ["xpath=//input[@id='order_company_name']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div[3]/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[3]/div/input", "xpath:position"] + ], + "value": "イーシーキューブ" + }, { + "id": "cf1f8a78-83dc-48b1-b8b1-8b43329c038b", + "comment": "", + "command": "type", + "target": "id=order_message", + "targets": [ + ["id=order_message", "id"], + ["name=order[message]", "name"], + ["css=#order_message", "css:finder"], + ["xpath=//textarea[@id='order_message']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/div[4]/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "お問い合わせ内容" + }, { + "id": "8e48b5e8-bfe4-40b8-9798-efcac2d3a612", + "comment": "", + "command": "click", + "target": "css=.copy-customer", + "targets": [ + ["css=.copy-customer", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='shippingInfo']/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div[3]/div[2]/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'注文者情報をコピー')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "864be4c7-d5f0-4259-91f2-41ed7da4ecd8", + "comment": "", + "command": "click", + "target": "id=order_Shipping_address_addr02", + "targets": [ + ["id=order_Shipping_address_addr02", "id"], + ["name=order[Shipping][address][addr02]", "name"], + ["css=#order_Shipping_address_addr02", "css:finder"], + ["xpath=//input[@id='order_Shipping_address_addr02']", "xpath:attributes"], + ["xpath=//div[@id='shippingInfo']/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div[4]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "e3912008-a704-4e3a-8887-bb210c512843", + "comment": "", + "command": "type", + "target": "id=order_Shipping_address_addr02", + "targets": [ + ["id=order_Shipping_address_addr02", "id"], + ["name=order[Shipping][address][addr02]", "name"], + ["css=#order_Shipping_address_addr02", "css:finder"], + ["xpath=//input[@id='order_Shipping_address_addr02']", "xpath:attributes"], + ["xpath=//div[@id='shippingInfo']/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:idRelative"], + ["xpath=//div[3]/div/div[4]/div/input", "xpath:position"] + ], + "value": "2333" + }, { + "id": "33af45ed-2b53-40dc-9407-c06d3230157f", + "comment": "", + "command": "select", + "target": "id=order_Shipping_shipping_delivery_date_year", + "targets": [], + "value": "label=2015" + }, { + "id": "498ec859-1f9d-4ad3-b88b-d0092749c319", + "comment": "", + "command": "click", + "target": "css=#order_Shipping_shipping_delivery_date_year > option:nth-child(2)", + "targets": [ + ["css=#order_Shipping_shipping_delivery_date_year > option:nth-child(2)", "css:finder"], + ["xpath=//option[@value='2015']", "xpath:attributes"], + ["xpath=//select[@id='order_Shipping_shipping_delivery_date_year']/option[2]", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'2015')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a4318c2e-30ae-4d94-95a8-4598d675898a", + "comment": "", + "command": "select", + "target": "id=order_Shipping_shipping_delivery_date_year", + "targets": [], + "value": "label=2020" + }, { + "id": "d195e485-09c7-4ecc-a2fa-4e27924e5ab4", + "comment": "", + "command": "click", + "target": "css=#order_Shipping_shipping_delivery_date_year > option:nth-child(7)", + "targets": [ + ["css=#order_Shipping_shipping_delivery_date_year > option:nth-child(7)", "css:finder"], + ["xpath=//option[@value='2020']", "xpath:attributes"], + ["xpath=//select[@id='order_Shipping_shipping_delivery_date_year']/option[7]", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/select/option[7]", "xpath:position"], + ["xpath=//option[contains(.,'2020')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e20bc0e2-6ec7-4614-bdfc-8dbf70624e58", + "comment": "", + "command": "select", + "target": "id=order_Shipping_shipping_delivery_date_month", + "targets": [], + "value": "label=08" + }, { + "id": "0d880539-a273-42ec-87b2-e59b082a8671", + "comment": "", + "command": "click", + "target": "css=#order_Shipping_shipping_delivery_date_month > option:nth-child(9)", + "targets": [ + ["css=#order_Shipping_shipping_delivery_date_month > option:nth-child(9)", "css:finder"], + ["xpath=(//option[@value='8'])[3]", "xpath:attributes"], + ["xpath=//select[@id='order_Shipping_shipping_delivery_date_month']/option[9]", "xpath:idRelative"], + ["xpath=//select[2]/option[9]", "xpath:position"], + ["xpath=//option[contains(.,'08')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "574b250e-e3a6-4439-b42d-ba4a3f82823a", + "comment": "", + "command": "select", + "target": "id=order_Shipping_shipping_delivery_date_day", + "targets": [], + "value": "label=19" + }, { + "id": "1404e420-c197-41f9-9f9a-1d939e5b3320", + "comment": "", + "command": "click", + "target": "css=#order_Shipping_shipping_delivery_date_day > option:nth-child(20)", + "targets": [ + ["css=#order_Shipping_shipping_delivery_date_day > option:nth-child(20)", "css:finder"], + ["xpath=(//option[@value='19'])[3]", "xpath:attributes"], + ["xpath=//select[@id='order_Shipping_shipping_delivery_date_day']/option[20]", "xpath:idRelative"], + ["xpath=//select[3]/option[20]", "xpath:position"] + ], + "value": "" + }, { + "id": "a49d78c4-7c45-4457-8ae2-fd19d699b919", + "comment": "", + "command": "select", + "target": "id=order_Shipping_DeliveryTime", + "targets": [], + "value": "label=午前" + }, { + "id": "367c6906-7558-42ee-bf72-613930bc016b", + "comment": "", + "command": "click", + "target": "css=#order_Shipping_DeliveryTime > option:nth-child(2)", + "targets": [ + ["css=#order_Shipping_DeliveryTime > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[7]", "xpath:attributes"], + ["xpath=//select[@id='order_Shipping_DeliveryTime']/option[2]", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/div/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'午前')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ffd5b0c9-bcf9-4623-9781-f67511a6823a", + "comment": "", + "command": "click", + "target": "id=order_Shipping_note", + "targets": [ + ["id=order_Shipping_note", "id"], + ["name=order[Shipping][note]", "name"], + ["css=#order_Shipping_note", "css:finder"], + ["xpath=//textarea[@id='order_Shipping_note']", "xpath:attributes"], + ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div[3]/div/textarea", "xpath:idRelative"], + ["xpath=//div[3]/div/textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "384d30fe-506d-4ccb-ade1-07cab31dce2f", + "comment": "", + "command": "type", + "target": "id=order_Shipping_note", + "targets": [ + ["id=order_Shipping_note", "id"], + ["name=order[Shipping][note]", "name"], + ["css=#order_Shipping_note", "css:finder"], + ["xpath=//textarea[@id='order_Shipping_note']", "xpath:attributes"], + ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div[3]/div/textarea", "xpath:idRelative"], + ["xpath=//div[3]/div/textarea", "xpath:position"] + ], + "value": "出荷メモ" + }, { + "id": "c9d2994f-11b2-4363-a058-7637af46d9c8", + "comment": "", + "command": "click", + "target": "linkText=商品を追加", + "targets": [ + ["linkText=商品を追加", "linkText"], + ["css=.add", "css:finder"], + ["xpath=//a[contains(text(),'商品を追加')]", "xpath:link"], + ["xpath=//div[@id='orderItem']/div/div/div/a", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/div/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'商品を追加')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "174106af-2729-4324-a681-80a67d59b2a1", + "comment": "", + "command": "click", + "target": "id=searchProductModalButton", + "targets": [ + ["id=searchProductModalButton", "id"], + ["css=#searchProductModalButton", "css:finder"], + ["xpath=//button[@id='searchProductModalButton']", "xpath:attributes"], + ["xpath=//div[@id='addProduct']/div/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "6b58a636-2d05-4fd4-86b6-18adb489ca70", + "comment": "", + "command": "select", + "target": "id=classcategory_id14", + "targets": [], + "value": "label=16mm × 16mm" + }, { + "id": "47b135c7-6bbd-4c23-9816-f104b60016b7", + "comment": "", + "command": "click", + "target": "css=#classcategory_id14 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id14 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='4'])[7]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id14']/option[2]", "xpath:idRelative"], + ["xpath=//td[3]/div/div[2]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'16mm × 16mm')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b637fa81-1f35-48cc-918a-fe557b9282d4", + "comment": "", + "command": "select", + "target": "name=classcategory_id2", + "targets": [], + "value": "label=バニラ" + }, { + "id": "a951fc89-36a9-4ade-b83a-23fad34b556f", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(2) > .col-8 option:nth-child(2)", + "targets": [ + ["css=.row:nth-child(2) > .col-8 option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='3'])[7]", "xpath:attributes"], + ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[3]/div[2]/div[2]/select/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'バニラ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "431ad801-1e14-43bc-9b4b-3c42ae64d986", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(2) .fa", + "targets": [ + ["css=tr:nth-child(2) .fa", "css:finder"], + ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[4]/button/i", "xpath:idRelative"], + ["xpath=//button/i", "xpath:position"] + ], + "value": "" + }, { + "id": "e5375fe7-9bd3-4d78-bfce-fb0614997286", + "comment": "", + "command": "click", + "target": "linkText=その他の明細を追加", + "targets": [ + ["linkText=その他の明細を追加", "linkText"], + ["css=.btn-ec-regular:nth-child(3)", "css:finder"], + ["xpath=//a[contains(text(),'その他の明細を追加')]", "xpath:link"], + ["xpath=//div[@id='orderItem']/div/div/div/a[2]", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/div/div/div/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'その他の明細を追加')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d53aff3b-a7fe-4a1e-9a92-e3b022f856ab", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(4) .fa", + "targets": [ + ["css=tr:nth-child(4) .fa", "css:finder"], + ["xpath=//div[@id='searchOrderItemTypeList']/table/tbody/tr[2]/td[3]/button/i", "xpath:idRelative"], + ["xpath=//tr[2]/td[3]/button/i", "xpath:position"] + ], + "value": "" + }, { + "id": "c629cc5d-d145-485d-ab67-90601af72b88", + "comment": "", + "command": "click", + "target": "id=order_OrderItems_2_price", + "targets": [ + ["id=order_OrderItems_2_price", "id"], + ["name=order[OrderItems][2][price]", "name"], + ["css=#order_OrderItems_2_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[2]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[2]/td[2]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "f4da6357-2aa3-4317-8a74-cf9fce7631fa", + "comment": "", + "command": "click", + "target": "id=order_OrderItems_2_price", + "targets": [ + ["id=order_OrderItems_2_price", "id"], + ["name=order[OrderItems][2][price]", "name"], + ["css=#order_OrderItems_2_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[2]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[2]/td[2]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "e93f429a-639e-451b-a80b-1538da17cf7e", + "comment": "", + "command": "doubleClick", + "target": "id=order_OrderItems_2_price", + "targets": [ + ["id=order_OrderItems_2_price", "id"], + ["name=order[OrderItems][2][price]", "name"], + ["css=#order_OrderItems_2_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[2]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[2]/td[2]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "89f9652a-af62-44fc-bbb9-17ce75eac42f", + "comment": "", + "command": "type", + "target": "id=order_OrderItems_2_price", + "targets": [ + ["id=order_OrderItems_2_price", "id"], + ["name=order[OrderItems][2][price]", "name"], + ["css=#order_OrderItems_2_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[2]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[2]/td[2]/div/div/input", "xpath:position"] + ], + "value": "1000" + }, { + "id": "0cf60fbe-95e7-4525-960e-78e64a7df4b9", + "comment": "", + "command": "click", + "target": "css=.justify-content-end:nth-child(4)", + "targets": [ + ["css=.justify-content-end:nth-child(4)", "css:finder"], + ["xpath=//div[@id='orderItem']/div/div[2]", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/div/div[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "6eadf4ac-1bda-4971-a4a9-8b3680ff186f", + "comment": "", + "command": "click", + "target": "css=#calculate > .ladda-label", + "targets": [ + ["css=#calculate > .ladda-label", "css:finder"], + ["xpath=//button[@id='calculate']/span", "xpath:idRelative"], + ["xpath=//div[2]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'計算結果を更新')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c989a63d-e334-4c66-ba6b-e63e8074e6c1", + "comment": "", + "command": "mouseOver", + "target": "css=#calculate > .ladda-label", + "targets": [ + ["css=#calculate > .ladda-label", "css:finder"], + ["xpath=//button[@id='calculate']/span", "xpath:idRelative"], + ["xpath=//div[2]/button/span", "xpath:position"], + ["xpath=//span[contains(.,'計算結果を更新')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "fa3a1efc-7ab6-4b09-9c1b-6628fd60e8e1", + "comment": "", + "command": "click", + "target": "id=order_note", + "targets": [ + ["id=order_note", "id"], + ["name=order[note]", "name"], + ["css=#order_note", "css:finder"], + ["xpath=//textarea[@id='order_note']", "xpath:attributes"], + ["xpath=//div[@id='freeArea']/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div/textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "e3c207ab-8364-42a6-b93e-5f9334afb639", + "comment": "", + "command": "type", + "target": "id=order_note", + "targets": [ + ["id=order_note", "id"], + ["name=order[note]", "name"], + ["css=#order_note", "css:finder"], + ["xpath=//textarea[@id='order_note']", "xpath:attributes"], + ["xpath=//div[@id='freeArea']/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div/textarea", "xpath:position"] + ], + "value": "ショップ用メモ" + }, { + "id": "eea2a21a-8e3d-4db8-b82f-cb32efc3fee5", + "comment": "", + "command": "click", + "target": "css=.px-5:nth-child(1)", + "targets": [ + ["css=.px-5:nth-child(1)", "css:finder"], + ["xpath=(//button[@name='mode'])[2]", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/div/div/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8c5c9245-6d80-4792-8f17-d5642a31333e", + "comment": "", + "command": "click", + "target": "css=.c-baseLink > span", + "targets": [ + ["css=.c-baseLink > span", "css:finder"], + ["xpath=//form[@id='form1']/div[2]/div/div/div/div/a/span", "xpath:idRelative"], + ["xpath=//div/div/a/span", "xpath:position"] + ], + "value": "" + }, { + "id": "d08d18dc-1e1d-4417-98c7-8750488fdfe3", + "comment": "", + "command": "click", + "target": "css=#admin_search_order_status > .form-check:nth-child(1) > .form-check-label", + "targets": [ + ["css=#admin_search_order_status > .form-check:nth-child(1) > .form-check-label", "css:finder"], + ["xpath=//div[@id='admin_search_order_status']/div/label", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/label", "xpath:position"], + ["xpath=//label[contains(.,'新規受付')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "dbfa1195-7d64-464f-9679-d850a4ede401", + "comment": "", + "command": "click", + "target": "css=.ladda-label", + "targets": [ + ["css=.ladda-label", "css:finder"], + ["xpath=//button[@id='search_submit']/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"] + ], + "value": "" + }, { + "id": "68852b37-3d8c-4d07-b8c4-a9258a949192", + "comment": "", + "command": "mouseOver", + "target": "css=.mb-3", + "targets": [ + ["css=.mb-3", "css:finder"], + ["xpath=//form[@id='search_form']/div/div/div/div[3]", "xpath:idRelative"], + ["xpath=//form/div/div/div/div[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "6904dd1c-6a28-405f-a5c7-0c4a7849bc18", + "comment": "", + "command": "click", + "target": "css=#admin_search_order_status > .form-check:nth-child(1) > .form-check-label", + "targets": [ + ["css=#admin_search_order_status > .form-check:nth-child(1) > .form-check-label", "css:finder"], + ["xpath=//div[@id='admin_search_order_status']/div/label", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/label", "xpath:position"], + ["xpath=//label[contains(.,'新規受付')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "33975424-5595-4f59-b193-f9b999d91079", + "comment": "", + "command": "click", + "target": "css=.c-outsideBlock__contents:nth-child(3) > .row", + "targets": [ + ["css=.c-outsideBlock__contents:nth-child(3) > .row", "css:finder"], + ["xpath=//form[@id='search_form']/div[3]/div", "xpath:idRelative"], + ["xpath=//form/div[3]/div", "xpath:position"] + ], + "value": "" + }, { + "id": "1bdbad2c-6b7b-4ddb-853c-de2a0f678bfb", + "comment": "", + "command": "click", + "target": "id=search_submit", + "targets": [ + ["id=search_submit", "id"], + ["css=#search_submit", "css:finder"], + ["xpath=//button[@id='search_submit']", "xpath:attributes"], + ["xpath=//form[@id='search_form']/div[3]/div/div/div/button", "xpath:idRelative"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'検索')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f9a2d10c-285e-4c6f-a236-2d18d0686853", + "comment": "", + "command": "mouseOver", + "target": "id=search_submit", + "targets": [ + ["id=search_submit", "id"], + ["css=#search_submit", "css:finder"], + ["xpath=//button[@id='search_submit']", "xpath:attributes"], + ["xpath=//form[@id='search_form']/div[3]/div/div/div/button", "xpath:idRelative"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'検索')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e3822151-431f-496e-b164-aa3c08519a0e", + "comment": "", + "command": "click", + "target": "linkText=受注登録", + "targets": [ + ["linkText=受注登録", "linkText"], + ["css=#nav-order > li:nth-child(2) > a", "css:finder"], + ["xpath=//ul[@id='nav-order']/li[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/order/new')]", "xpath:href"], + ["xpath=//li[3]/ul/li[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'受注登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "30c6aaae-6a67-4739-909b-e6ccd6773fc1", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,200.13333129882812)", + "targets": [], + "value": "" + }, { + "id": "2896e79c-a705-4918-b406-ca07de071087", + "comment": "", + "command": "click", + "target": "linkText=会員から検索・入力", + "targets": [ + ["linkText=会員から検索・入力", "linkText"], + ["css=.px-3", "css:finder"], + ["xpath=//a[contains(text(),'会員から検索・入力')]", "xpath:link"], + ["xpath=//div[@id='ordererInfo']/div/div/div/a", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'会員から検索・入力')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d935888e-b2b2-44bc-ae88-76cea38b8426", + "comment": "", + "command": "click", + "target": "id=searchCustomerModalButton", + "targets": [ + ["id=searchCustomerModalButton", "id"], + ["css=#searchCustomerModalButton", "css:finder"], + ["xpath=//button[@id='searchCustomerModalButton']", "xpath:attributes"], + ["xpath=//div[@id='searchCustomerModal']/div/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'検索')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "368ca419-c115-44ed-913b-95774a1aba3b", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(1) .btn", + "targets": [ + ["css=tr:nth-child(1) .btn", "css:finder"], + ["xpath=(//button[@type='button'])[4]", "xpath:attributes"], + ["xpath=//div[@id='searchCustomerModalList']/table/tbody/tr/td[5]/div/button", "xpath:idRelative"], + ["xpath=//td[5]/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "ce4bb159-1c9f-4055-abd7-97bd39fa484c", + "comment": "", + "command": "click", + "target": "css=.copy-customer", + "targets": [ + ["css=.copy-customer", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//div[@id='shippingInfo']/div/div/div/button", "xpath:idRelative"], + ["xpath=//div/div/div[3]/div[2]/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'注文者情報をコピー')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "538fb061-9b4f-4e57-8182-327ae17e7ca7", + "comment": "", + "command": "runScript", + "target": "window.scrollTo(0,953.7999877929688)", + "targets": [], + "value": "" + }, { + "id": "3b91c647-b9c6-450f-86de-c26b8e31674c", + "comment": "", + "command": "click", + "target": "id=order_Shipping_tracking_number", + "targets": [ + ["id=order_Shipping_tracking_number", "id"], + ["name=order[Shipping][tracking_number]", "name"], + ["css=#order_Shipping_tracking_number", "css:finder"], + ["xpath=//input[@id='order_Shipping_tracking_number']", "xpath:attributes"], + ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "0ec5b72b-0a37-40e2-9065-a46db640dcbd", + "comment": "", + "command": "type", + "target": "id=order_Shipping_tracking_number", + "targets": [ + ["id=order_Shipping_tracking_number", "id"], + ["name=order[Shipping][tracking_number]", "name"], + ["css=#order_Shipping_tracking_number", "css:finder"], + ["xpath=//input[@id='order_Shipping_tracking_number']", "xpath:attributes"], + ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div/div/input", "xpath:idRelative"], + ["xpath=//div[4]/div/div/input", "xpath:position"] + ], + "value": "999999999" + }, { + "id": "16976b7d-c1b7-43b8-b724-7c655783a6f8", + "comment": "", + "command": "click", + "target": "id=order_Shipping_note", + "targets": [ + ["id=order_Shipping_note", "id"], + ["name=order[Shipping][note]", "name"], + ["css=#order_Shipping_note", "css:finder"], + ["xpath=//textarea[@id='order_Shipping_note']", "xpath:attributes"], + ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div[3]/div/textarea", "xpath:idRelative"], + ["xpath=//div[3]/div/textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "378bed17-c663-4bed-8b61-c72ff1008476", + "comment": "", + "command": "type", + "target": "id=order_Shipping_note", + "targets": [ + ["id=order_Shipping_note", "id"], + ["name=order[Shipping][note]", "name"], + ["css=#order_Shipping_note", "css:finder"], + ["xpath=//textarea[@id='order_Shipping_note']", "xpath:attributes"], + ["xpath=//div[@id='shippingInfo']/div/div[2]/div[4]/div[3]/div/textarea", "xpath:idRelative"], + ["xpath=//div[3]/div/textarea", "xpath:position"] + ], + "value": "出荷メモ" + }, { + "id": "3401e07f-7b52-4d29-85c5-ce080a0779bc", + "comment": "", + "command": "click", + "target": "linkText=商品を追加", + "targets": [ + ["linkText=商品を追加", "linkText"], + ["css=.add", "css:finder"], + ["xpath=//a[contains(text(),'商品を追加')]", "xpath:link"], + ["xpath=//div[@id='orderItem']/div/div/div/a", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/div/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'商品を追加')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "bc82da26-3f8d-4e01-b304-c4b1b66af21e", + "comment": "", + "command": "click", + "target": "id=searchProductModalButton", + "targets": [ + ["id=searchProductModalButton", "id"], + ["css=#searchProductModalButton", "css:finder"], + ["xpath=//button[@id='searchProductModalButton']", "xpath:attributes"], + ["xpath=//div[@id='addProduct']/div/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div/div/div/div/div[2]/button", "xpath:position"] + ], + "value": "" + }, { + "id": "f516fdea-3609-4013-92ef-8561b5942818", + "comment": "", + "command": "select", + "target": "id=classcategory_id14", + "targets": [], + "value": "label=32mm × 32mm" + }, { + "id": "ef7bc3c7-feac-4c5d-8454-5152c5ecb106", + "comment": "", + "command": "click", + "target": "css=#classcategory_id14 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id14 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='5'])[6]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id14']/option[2]", "xpath:idRelative"], + ["xpath=//td[3]/div/div[2]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'32mm × 32mm')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ece13a31-1122-43e3-984f-54a52f7f984f", + "comment": "", + "command": "select", + "target": "name=classcategory_id2", + "targets": [], + "value": "label=チョコ" + }, { + "id": "2953a4d2-2774-44b5-b04c-9ce7b0364948", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(2) > .col-8 option:nth-child(2)", + "targets": [ + ["css=.row:nth-child(2) > .col-8 option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='1'])[9]", "xpath:attributes"], + ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[3]/div[2]/div[2]/select/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'チョコ')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "d7dbf528-05fd-4e8a-8e8c-aee55d023964", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(2) > .align-middle .fa", + "targets": [ + ["css=tr:nth-child(2) > .align-middle .fa", "css:finder"], + ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[4]/button/i", "xpath:idRelative"], + ["xpath=//td[4]/button/i", "xpath:position"] + ], + "value": "" + }, { + "id": "e82ba8b3-8921-477e-92f3-67fc9fdf0570", + "comment": "", + "command": "mouseOver", + "target": "css=tr:nth-child(2) > .align-middle .fa", + "targets": [ + ["css=tr:nth-child(2) > .align-middle .fa", "css:finder"], + ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[4]/button/i", "xpath:idRelative"], + ["xpath=//td[4]/button/i", "xpath:position"] + ], + "value": "" + }, { + "id": "c0f58415-6edf-4f41-b699-27ebf512d0a0", + "comment": "", + "command": "click", + "target": "id=order_note", + "targets": [ + ["id=order_note", "id"], + ["name=order[note]", "name"], + ["css=#order_note", "css:finder"], + ["xpath=//textarea[@id='order_note']", "xpath:attributes"], + ["xpath=//div[@id='freeArea']/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div/textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "16aac390-9d39-48c4-a9c6-5b03fbbadb91", + "comment": "", + "command": "type", + "target": "id=order_note", + "targets": [ + ["id=order_note", "id"], + ["name=order[note]", "name"], + ["css=#order_note", "css:finder"], + ["xpath=//textarea[@id='order_note']", "xpath:attributes"], + ["xpath=//div[@id='freeArea']/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div/textarea", "xpath:position"] + ], + "value": "ショップメモ" + }, { + "id": "ee35d224-8e2f-4694-8101-7ae327d86df1", + "comment": "", + "command": "click", + "target": "css=.px-5:nth-child(1)", + "targets": [ + ["css=.px-5:nth-child(1)", "css:finder"], + ["xpath=(//button[@name='mode'])[2]", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[2]/div/div/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b006fc9b-6c87-4610-8195-c29da4ae5030", + "comment": "", + "command": "click", + "target": "css=.fa-angle-down:nth-child(1)", + "targets": [ + ["css=.fa-angle-down:nth-child(1)", "css:finder"], + ["xpath=//form[@id='form1']/div/div/div/div[2]/div/div/div[3]/a/i", "xpath:idRelative"], + ["xpath=//div[3]/a/i", "xpath:position"] + ], + "value": "" + }, { + "id": "b3ad842a-2214-4864-aa5b-4a69c1547512", + "comment": "", + "command": "click", + "target": "id=shipping-add", + "targets": [ + ["id=shipping-add", "id"], + ["linkText=出荷情報の追加", "linkText"], + ["css=#shipping-add", "css:finder"], + ["xpath=//a[contains(text(),'出荷情報の追加')]", "xpath:link"], + ["xpath=//a[@id='shipping-add']", "xpath:attributes"], + ["xpath=//div[@id='shippingInfo']/div/div/div[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/admin/shipping/3/edit')]", "xpath:href"], + ["xpath=//div[2]/div/div/div[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'出荷情報の追加')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "32d01e56-baa9-44a7-87f4-d24304ec94e5", + "comment": "", + "command": "click", + "target": "linkText=保存せずに移動", + "targets": [ + ["linkText=保存せずに移動", "linkText"], + ["css=.btn-ec-sub:nth-child(2)", "css:finder"], + ["xpath=//a[contains(text(),'保存せずに移動')]", "xpath:link"], + ["xpath=//div[@id='confirmFormChangeModal']/div/div/div[3]/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/admin/shipping/3/edit')]", "xpath:href"], + ["xpath=//div[3]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'保存せずに移動')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f6aa4f27-08dc-4ea0-b78a-fcf1f2b2c382", + "comment": "", + "command": "click", + "target": "id=addShipping", + "targets": [ + ["id=addShipping", "id"], + ["css=#addShipping", "css:finder"], + ["xpath=//button[@id='addShipping']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[4]/div/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[4]/div/div/div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'出荷情報の追加')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "b12eeaab-854d-4317-9a1b-7cdac0151e44", + "comment": "", + "command": "click", + "target": "css=#shipmentOverview_1 .col-6 > .row:nth-child(1) .col:nth-child(1)", + "targets": [ + ["css=#shipmentOverview_1 .col-6 > .row:nth-child(1) .col:nth-child(1)", "css:finder"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div/div/div/div", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/div/div/div/div/div", "xpath:position"] + ], + "value": "" + }, { + "id": "d4d5dfb8-907f-4992-9af4-13df2ecf43ed", + "comment": "", + "command": "click", + "target": "id=form_shippings_1_name_name01", + "targets": [ + ["id=form_shippings_1_name_name01", "id"], + ["name=form[shippings][1][name][name01]", "name"], + ["css=#form_shippings_1_name_name01", "css:finder"], + ["xpath=//input[@id='form_shippings_1_name_name01']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/div/div/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "b82f1b71-8dc4-4fbc-b6cb-6451c26a4b3f", + "comment": "", + "command": "type", + "target": "id=form_shippings_1_name_name01", + "targets": [ + ["id=form_shippings_1_name_name01", "id"], + ["name=form[shippings][1][name][name01]", "name"], + ["css=#form_shippings_1_name_name01", "css:finder"], + ["xpath=//input[@id='form_shippings_1_name_name01']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/div/div/div/div/div/input", "xpath:position"] + ], + "value": "石井" + }, { + "id": "d1c4669c-8562-48e2-a1e9-c2b5ef09eed6", + "comment": "", + "command": "type", + "target": "id=form_shippings_1_name_name02", + "targets": [ + ["id=form_shippings_1_name_name02", "id"], + ["name=form[shippings][1][name][name02]", "name"], + ["css=#form_shippings_1_name_name02", "css:finder"], + ["xpath=//input[@id='form_shippings_1_name_name02']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/div/div/div/div/div[2]/input", "xpath:position"] + ], + "value": "キューブ" + }, { + "id": "8183ee82-caf3-45be-a010-e42206ba546f", + "comment": "", + "command": "type", + "target": "id=form_shippings_1_kana_kana01", + "targets": [ + ["id=form_shippings_1_kana_kana01", "id"], + ["name=form[shippings][1][kana][kana01]", "name"], + ["css=#form_shippings_1_kana_kana01", "css:finder"], + ["xpath=//input[@id='form_shippings_1_kana_kana01']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div[2]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/div/div[2]/div/div/div/input", "xpath:position"] + ], + "value": "イシイ" + }, { + "id": "5f3080be-d012-49db-9459-92cf8150fe46", + "comment": "", + "command": "type", + "target": "id=form_shippings_1_kana_kana02", + "targets": [ + ["id=form_shippings_1_kana_kana02", "id"], + ["name=form[shippings][1][kana][kana02]", "name"], + ["css=#form_shippings_1_kana_kana02", "css:finder"], + ["xpath=//input[@id='form_shippings_1_kana_kana02']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div[2]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/div/div[2]/div/div/div[2]/input", "xpath:position"] + ], + "value": "キューブ" + }, { + "id": "21f72fe4-d2dd-4460-85dd-3c4aa9359408", + "comment": "", + "command": "type", + "target": "id=form_shippings_1_postal_code", + "targets": [ + ["id=form_shippings_1_postal_code", "id"], + ["name=form[shippings][1][postal_code]", "name"], + ["css=#form_shippings_1_postal_code", "css:finder"], + ["xpath=//input[@id='form_shippings_1_postal_code']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div[3]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/div/div[3]/div/div/div/input", "xpath:position"] + ], + "value": "5300002" + }, { + "id": "fad77f5b-01dd-4956-83f2-80aa79dc8773", + "comment": "", + "command": "click", + "target": "id=form_shippings_1_address_addr02", + "targets": [ + ["id=form_shippings_1_address_addr02", "id"], + ["name=form[shippings][1][address][addr02]", "name"], + ["css=#form_shippings_1_address_addr02", "css:finder"], + ["xpath=//input[@id='form_shippings_1_address_addr02']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "ad4fcefd-3e8e-417c-867d-ed1050f75810", + "comment": "", + "command": "type", + "target": "id=form_shippings_1_address_addr02", + "targets": [ + ["id=form_shippings_1_address_addr02", "id"], + ["name=form[shippings][1][address][addr02]", "name"], + ["css=#form_shippings_1_address_addr02", "css:finder"], + ["xpath=//input[@id='form_shippings_1_address_addr02']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/div/div[3]/div/div[4]/div/input", "xpath:position"] + ], + "value": "2" + }, { + "id": "a2924fde-f0c9-4f8b-b069-570f289c1604", + "comment": "", + "command": "type", + "target": "id=form_shippings_1_phone_number", + "targets": [ + ["id=form_shippings_1_phone_number", "id"], + ["name=form[shippings][1][phone_number]", "name"], + ["css=#form_shippings_1_phone_number", "css:finder"], + ["xpath=//input[@id='form_shippings_1_phone_number']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/div[2]/div/div/input", "xpath:position"] + ], + "value": "999999999" + }, { + "id": "d9a48246-7e84-4d1c-b9e6-1d36da14f593", + "comment": "", + "command": "type", + "target": "id=form_shippings_1_company_name", + "targets": [ + ["id=form_shippings_1_company_name", "id"], + ["name=form[shippings][1][company_name]", "name"], + ["css=#form_shippings_1_company_name", "css:finder"], + ["xpath=//input[@id='form_shippings_1_company_name']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[2]/div[2]/div[2]/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/div[2]/div[2]/div/input", "xpath:position"] + ], + "value": "イーシーキューブ" + }, { + "id": "a5f75dfe-573b-419e-98ca-6b20e904b63b", + "comment": "", + "command": "click", + "target": "id=form_shippings_1_tracking_number", + "targets": [ + ["id=form_shippings_1_tracking_number", "id"], + ["name=form[shippings][1][tracking_number]", "name"], + ["css=#form_shippings_1_tracking_number", "css:finder"], + ["xpath=//input[@id='form_shippings_1_tracking_number']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[4]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[4]/div/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "82e621a3-76f7-447d-9f52-11897e296a3a", + "comment": "", + "command": "type", + "target": "id=form_shippings_1_tracking_number", + "targets": [ + ["id=form_shippings_1_tracking_number", "id"], + ["name=form[shippings][1][tracking_number]", "name"], + ["css=#form_shippings_1_tracking_number", "css:finder"], + ["xpath=//input[@id='form_shippings_1_tracking_number']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[4]/div/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[4]/div/div/div/input", "xpath:position"] + ], + "value": "888888888" + }, { + "id": "ddabf73e-a5fe-4d9b-8248-c0423bfc71ba", + "comment": "", + "command": "select", + "target": "id=form_shippings_1_Delivery", + "targets": [], + "value": "label=サンプル宅配" + }, { + "id": "16ff4f07-efed-409f-a865-51fcebacda1f", + "comment": "", + "command": "click", + "target": "css=#form_shippings_1_Delivery > option:nth-child(2)", + "targets": [ + ["css=#form_shippings_1_Delivery > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='2'])[8]", "xpath:attributes"], + ["xpath=//select[@id='form_shippings_1_Delivery']/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[4]/div/div[2]/div/select/option[2]", "xpath:position"] + ], + "value": "" + }, { + "id": "03672bc2-0c25-4b50-b072-a679247cd24c", + "comment": "", + "command": "click", + "target": "id=form_shippings_1_DeliveryTime", + "targets": [ + ["id=form_shippings_1_DeliveryTime", "id"], + ["name=form[shippings][1][DeliveryTime]", "name"], + ["css=#form_shippings_1_DeliveryTime", "css:finder"], + ["xpath=//select[@id='form_shippings_1_DeliveryTime']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[4]/div[2]/div[2]/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[4]/div[2]/div[2]/div/select", "xpath:position"] + ], + "value": "" + }, { + "id": "bc779ac3-77c5-413f-8bd2-1a829383ae0f", + "comment": "", + "command": "click", + "target": "css=#form_shippings_1_shipping_delivery_date_year > option:nth-child(1)", + "targets": [ + ["css=#form_shippings_1_shipping_delivery_date_year > option:nth-child(1)", "css:finder"], + ["xpath=(//option[@value=''])[8]", "xpath:attributes"], + ["xpath=//select[@id='form_shippings_1_shipping_delivery_date_year']/option", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[4]/div[2]/div/div/div/select/option", "xpath:position"] + ], + "value": "" + }, { + "id": "434a9be4-c7ca-456c-9ac2-6ddcf5da38f6", + "comment": "", + "command": "select", + "target": "id=form_shippings_1_shipping_delivery_date_year", + "targets": [], + "value": "label=2016" + }, { + "id": "0bcd0afb-1888-461b-8300-fb4c58d66649", + "comment": "", + "command": "click", + "target": "css=#form_shippings_1_shipping_delivery_date_year > option:nth-child(3)", + "targets": [ + ["css=#form_shippings_1_shipping_delivery_date_year > option:nth-child(3)", "css:finder"], + ["xpath=(//option[@value='2016'])[2]", "xpath:attributes"], + ["xpath=//select[@id='form_shippings_1_shipping_delivery_date_year']/option[3]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[4]/div[2]/div/div/div/select/option[3]", "xpath:position"] + ], + "value": "" + }, { + "id": "c76bc4b9-2d9e-4bbc-95a2-40c41cab44a0", + "comment": "", + "command": "select", + "target": "id=form_shippings_1_shipping_delivery_date_month", + "targets": [], + "value": "label=05" + }, { + "id": "e7e9404d-6f78-4fc2-9c30-25dd8cfc2beb", + "comment": "", + "command": "click", + "target": "css=#form_shippings_1_shipping_delivery_date_month > option:nth-child(6)", + "targets": [ + ["css=#form_shippings_1_shipping_delivery_date_month > option:nth-child(6)", "css:finder"], + ["xpath=(//option[@value='5'])[6]", "xpath:attributes"], + ["xpath=//select[@id='form_shippings_1_shipping_delivery_date_month']/option[6]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[4]/div[2]/div/div/div/select[2]/option[6]", "xpath:position"] + ], + "value": "" + }, { + "id": "ed2b3088-261e-4b98-a3d2-af592b5941c6", + "comment": "", + "command": "select", + "target": "id=form_shippings_1_shipping_delivery_date_day", + "targets": [], + "value": "label=06" + }, { + "id": "b1851e0a-4a49-4b18-8c5f-7316bc39afdb", + "comment": "", + "command": "click", + "target": "css=#form_shippings_1_shipping_delivery_date_day > option:nth-child(7)", + "targets": [ + ["css=#form_shippings_1_shipping_delivery_date_day > option:nth-child(7)", "css:finder"], + ["xpath=(//option[@value='6'])[7]", "xpath:attributes"], + ["xpath=//select[@id='form_shippings_1_shipping_delivery_date_day']/option[7]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[4]/div[2]/div/div/div/select[3]/option[7]", "xpath:position"] + ], + "value": "" + }, { + "id": "0eb43402-8f24-422a-80c7-518d4ee03f79", + "comment": "", + "command": "click", + "target": "css=#shipping-product_1 .addProduct-button", + "targets": [ + ["css=#shipping-product_1 .addProduct-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='shipping-product_1']/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[6]/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "b64cb154-fb5d-487a-9cda-0c73e98969e9", + "comment": "", + "command": "mouseOver", + "target": "css=#shipping-product_1 .addProduct-button", + "targets": [ + ["css=#shipping-product_1 .addProduct-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='shipping-product_1']/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[6]/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "219b8e17-3c07-44b5-9a76-be5ed688bc18", + "comment": "", + "command": "mouseOut", + "target": "css=#shipping-product_1 .addProduct-button", + "targets": [ + ["css=#shipping-product_1 .addProduct-button", "css:finder"], + ["xpath=(//button[@type='button'])[17]", "xpath:attributes"], + ["xpath=//div[@id='shipping-product_1']/div/button", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[6]/div/button", "xpath:position"] + ], + "value": "" + }, { + "id": "79a51688-af21-4319-b30b-5109c5f23c58", + "comment": "", + "command": "click", + "target": "id=searchProductModalButton", + "targets": [ + ["id=searchProductModalButton", "id"], + ["css=#searchProductModalButton", "css:finder"], + ["xpath=//button[@id='searchProductModalButton']", "xpath:attributes"], + ["xpath=//div[@id='addProduct']/div/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'検索')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "4918367b-c1ab-4503-a228-7305bb945179", + "comment": "", + "command": "select", + "target": "id=classcategory_id14", + "targets": [], + "value": "label=32mm × 32mm" + }, { + "id": "49ee4d7c-aac9-44f3-b136-c51572a31b4b", + "comment": "", + "command": "click", + "target": "css=#classcategory_id14 > option:nth-child(2)", + "targets": [ + ["css=#classcategory_id14 > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='5'])[2]", "xpath:attributes"], + ["xpath=//select[@id='classcategory_id14']/option[2]", "xpath:idRelative"], + ["xpath=//td[3]/div/div[2]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'32mm × 32mm')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6bc9f9dc-53fe-44b5-be2e-95e042cbaab9", + "comment": "", + "command": "select", + "target": "name=classcategory_id2", + "targets": [], + "value": "label=抹茶" + }, { + "id": "f2d6b40f-2321-4f4a-8393-4430fc828ac1", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(2) > .col-8 option:nth-child(2)", + "targets": [ + ["css=.row:nth-child(2) > .col-8 option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='2'])[2]", "xpath:attributes"], + ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[3]/div[2]/div[2]/select/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'抹茶')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c5697bc1-f2f1-4c76-9d08-daf31e63cec1", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(2) .fa", + "targets": [ + ["css=tr:nth-child(2) .fa", "css:finder"], + ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[4]/button/i", "xpath:idRelative"], + ["xpath=//button/i", "xpath:position"] + ], + "value": "" + }, { + "id": "fbd977d4-8b8b-4ebd-bd1b-07b49f76d57d", + "comment": "", + "command": "mouseOver", + "target": "css=tr:nth-child(2) .fa", + "targets": [ + ["css=tr:nth-child(2) .fa", "css:finder"], + ["xpath=//div[@id='searchProductModalList']/table/tbody/tr/td[4]/button/i", "xpath:idRelative"], + ["xpath=//button/i", "xpath:position"] + ], + "value": "" + }, { + "id": "c9d2ffff-df21-46e1-8f26-5c7f3316c428", + "comment": "", + "command": "click", + "target": "id=form_shippings_0_note", + "targets": [ + ["id=form_shippings_0_note", "id"], + ["name=form[shippings][0][note]", "name"], + ["css=#form_shippings_0_note", "css:finder"], + ["xpath=//textarea[@id='form_shippings_0_note']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_0']/div/div[9]/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "5dceae02-ecf7-493a-ae89-41140675af75", + "comment": "", + "command": "click", + "target": "id=form_shippings_1_note", + "targets": [ + ["id=form_shippings_1_note", "id"], + ["name=form[shippings][1][note]", "name"], + ["css=#form_shippings_1_note", "css:finder"], + ["xpath=//textarea[@id='form_shippings_1_note']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[9]/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[9]/div/div/div/textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "e031ee06-35b4-4701-b0e5-8b79ebf0339f", + "comment": "", + "command": "type", + "target": "id=form_shippings_1_note", + "targets": [ + ["id=form_shippings_1_note", "id"], + ["name=form[shippings][1][note]", "name"], + ["css=#form_shippings_1_note", "css:finder"], + ["xpath=//textarea[@id='form_shippings_1_note']", "xpath:attributes"], + ["xpath=//div[@id='shipmentOverview_1']/div/div[9]/div/div/div/textarea", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[9]/div/div/div/textarea", "xpath:position"] + ], + "value": "出荷メモ2" + }, { + "id": "3380b17f-47d5-4a48-bb42-51643a11b5de", + "comment": "", + "command": "click", + "target": "css=#shipping-product_1 .addOtherProduct-button", + "targets": [ + ["css=#shipping-product_1 .addOtherProduct-button", "css:finder"], + ["xpath=(//a[contains(text(),'その他の明細を追加')])[2]", "xpath:link"], + ["xpath=//div[@id='shipping-product_1']/div/a", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[6]/div/a", "xpath:position"] + ], + "value": "" + }, { + "id": "a4f10e27-58c6-4b2b-83a2-5188a647bb3f", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(4) .fa", + "targets": [ + ["css=tr:nth-child(4) .fa", "css:finder"], + ["xpath=//div[@id='searchOrderItemTypeList']/table/tbody/tr[2]/td[3]/button/i", "xpath:idRelative"], + ["xpath=//tr[2]/td[3]/button/i", "xpath:position"] + ], + "value": "" + }, { + "id": "072cd5b1-0177-45b0-8753-07eea8594b13", + "comment": "", + "command": "mouseOver", + "target": "css=tr:nth-child(4) .fa", + "targets": [ + ["css=tr:nth-child(4) .fa", "css:finder"], + ["xpath=//div[@id='searchOrderItemTypeList']/table/tbody/tr[2]/td[3]/button/i", "xpath:idRelative"], + ["xpath=//tr[2]/td[3]/button/i", "xpath:position"] + ], + "value": "" + }, { + "id": "7b772945-53fe-4689-802f-e76669613a27", + "comment": "", + "command": "mouseOut", + "target": "css=tr:nth-child(4) .fa", + "targets": [ + ["css=tr:nth-child(4) .fa", "css:finder"], + ["xpath=//div[@id='searchOrderItemTypeList']/table/tbody/tr[2]/td[3]/button/i", "xpath:idRelative"], + ["xpath=//tr[2]/td[3]/button/i", "xpath:position"] + ], + "value": "" + }, { + "id": "2cb2997c-c906-4f60-b805-dde1c9cd336f", + "comment": "", + "command": "click", + "target": "id=btn_save", + "targets": [ + ["id=btn_save", "id"], + ["name=mode", "name"], + ["css=#btn_save", "css:finder"], + ["xpath=//button[@id='btn_save']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[5]/div/div/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2efff5ca-32c4-4b25-8797-5b5ee574f65c", + "comment": "", + "command": "mouseOver", + "target": "id=btn_save", + "targets": [ + ["id=btn_save", "id"], + ["name=mode", "name"], + ["css=#btn_save", "css:finder"], + ["xpath=//button[@id='btn_save']", "xpath:attributes"], + ["xpath=//form[@id='form1']/div[5]/div/div/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div[2]/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5c12f634-8dbf-46e0-8143-10742ec6677a", + "comment": "", + "command": "click", + "target": "css=.c-baseLink > span", + "targets": [ + ["css=.c-baseLink > span", "css:finder"], + ["xpath=//form[@id='form1']/div[5]/div/div/div/div/a/span", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/a/span", "xpath:position"] + ], + "value": "" + }, { + "id": "423985bd-b2b5-4fed-b012-f7053a735868", + "comment": "", + "command": "click", + "target": "css=.c-baseLink > span", + "targets": [ + ["css=.c-baseLink > span", "css:finder"], + ["xpath=//form[@id='form1']/div[5]/div/div/div/div/a/span", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/a/span", "xpath:position"] + ], + "value": "" + }, { + "id": "5849bb6e-c174-4f1b-9d7d-6c21fa3e2e09", + "comment": "", + "command": "doubleClick", + "target": "css=.c-baseLink > span", + "targets": [ + ["css=.c-baseLink > span", "css:finder"], + ["xpath=//form[@id='form1']/div[5]/div/div/div/div/a/span", "xpath:idRelative"], + ["xpath=//div[5]/div/div/div/div/a/span", "xpath:position"] + ], + "value": "" + }, { + "id": "20ccf336-7e35-471f-8f0f-b98433bcee2a", + "comment": "", + "command": "click", + "target": "linkText=その他の明細を追加", + "targets": [ + ["linkText=その他の明細を追加", "linkText"], + ["css=.col-6 > .btn", "css:finder"], + ["xpath=//a[contains(text(),'その他の明細を追加')]", "xpath:link"], + ["xpath=//div[@id='orderItem']/div/div/div/a", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/div/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'その他の明細を追加')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "3c8def23-902f-46a3-9915-ca34a7912601", + "comment": "", + "command": "click", + "target": "css=tr:nth-child(4) .fa", + "targets": [ + ["css=tr:nth-child(4) .fa", "css:finder"], + ["xpath=//div[@id='searchOrderItemTypeList']/table/tbody/tr[2]/td[3]/button/i", "xpath:idRelative"], + ["xpath=//tr[2]/td[3]/button/i", "xpath:position"] + ], + "value": "" + }, { + "id": "4d355047-4e97-4f30-b9a7-1a756a396716", + "comment": "", + "command": "click", + "target": "id=order_OrderItems_2_price", + "targets": [ + ["id=order_OrderItems_2_price", "id"], + ["name=order[OrderItems][2][price]", "name"], + ["css=#order_OrderItems_2_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[3]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "dc85d203-464b-45df-94ba-16eea738a67f", + "comment": "", + "command": "click", + "target": "id=order_OrderItems_2_price", + "targets": [ + ["id=order_OrderItems_2_price", "id"], + ["name=order[OrderItems][2][price]", "name"], + ["css=#order_OrderItems_2_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[3]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "109c74ce-6255-4d12-992a-f64bc01912ed", + "comment": "", + "command": "doubleClick", + "target": "id=order_OrderItems_2_price", + "targets": [ + ["id=order_OrderItems_2_price", "id"], + ["name=order[OrderItems][2][price]", "name"], + ["css=#order_OrderItems_2_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[3]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "a58ad46a-e7a6-42a3-a2df-6dcc6774d629", + "comment": "", + "command": "type", + "target": "id=order_OrderItems_2_price", + "targets": [ + ["id=order_OrderItems_2_price", "id"], + ["name=order[OrderItems][2][price]", "name"], + ["css=#order_OrderItems_2_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_2_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[3]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[3]/td[2]/div/div/input", "xpath:position"] + ], + "value": "1000" + }, { + "id": "cbb7c6cd-6e6b-45f3-b060-e0a591c98519", + "comment": "", + "command": "click", + "target": "id=order_OrderItems_4_price", + "targets": [ + ["id=order_OrderItems_4_price", "id"], + ["name=order[OrderItems][4][price]", "name"], + ["css=#order_OrderItems_4_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_4_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[4]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[4]/td[2]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "83f19bd1-993f-474b-b0b2-588e8c169dc7", + "comment": "", + "command": "click", + "target": "id=order_OrderItems_4_price", + "targets": [ + ["id=order_OrderItems_4_price", "id"], + ["name=order[OrderItems][4][price]", "name"], + ["css=#order_OrderItems_4_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_4_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[4]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[4]/td[2]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "61dc8c45-9c74-4488-994f-7d281e39429c", + "comment": "", + "command": "doubleClick", + "target": "id=order_OrderItems_4_price", + "targets": [ + ["id=order_OrderItems_4_price", "id"], + ["name=order[OrderItems][4][price]", "name"], + ["css=#order_OrderItems_4_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_4_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[4]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[4]/td[2]/div/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "a2527b54-c0ba-487e-8dec-cb06c4dd7245", + "comment": "", + "command": "type", + "target": "id=order_OrderItems_4_price", + "targets": [ + ["id=order_OrderItems_4_price", "id"], + ["name=order[OrderItems][4][price]", "name"], + ["css=#order_OrderItems_4_price", "css:finder"], + ["xpath=//input[@id='order_OrderItems_4_price']", "xpath:attributes"], + ["xpath=//table[@id='table-form-field']/tbody/tr[4]/td[2]/div/div/input", "xpath:idRelative"], + ["xpath=//tr[4]/td[2]/div/div/input", "xpath:position"] + ], + "value": "1000" + }, { + "id": "3bae2c1a-67a4-4859-a77b-20c709c5f81d", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(10)", + "targets": [ + ["css=.row:nth-child(10)", "css:finder"], + ["xpath=//div[@id='orderItem']/div/div[7]", "xpath:idRelative"], + ["xpath=//div[7]", "xpath:position"] + ], + "value": "" + }, { + "id": "ed24d815-1778-4cfa-b46f-f6a9dbb05f29", + "comment": "", + "command": "click", + "target": "css=.btn-ec-conversion > .ladda-label", + "targets": [ + ["css=.btn-ec-conversion > .ladda-label", "css:finder"], + ["xpath=//form[@id='form1']/div[2]/div/div/div[2]/div/div/button/span", "xpath:idRelative"], + ["xpath=//div[2]/div/div/button/span", "xpath:position"] + ], + "value": "" + }, { + "id": "176e36ac-f4eb-4c2d-92f6-a2861d0093e8", + "comment": "", + "command": "click", + "target": "css=#mailHistory > .card-body", + "targets": [ + ["css=#mailHistory > .card-body", "css:finder"], + ["xpath=//div[@id='mailHistory']/div", "xpath:idRelative"], + ["xpath=//div[6]/div[2]/div", "xpath:position"] + ], + "value": "" + }, { + "id": "0aacdb15-1b20-48ac-93b3-a5594898e057", + "comment": "", + "command": "click", + "target": "linkText=メールを作成", + "targets": [ + ["linkText=メールを作成", "linkText"], + ["css=.text-center > .btn", "css:finder"], + ["xpath=//a[contains(text(),'メールを作成')]", "xpath:link"], + ["xpath=//div[@id='mailHistory']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/admin/order/3/mail')]", "xpath:href"], + ["xpath=//div[6]/div[2]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'メールを作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "6e412281-4b8f-4667-86ab-c736068d777e", + "comment": "", + "command": "mouseOver", + "target": "linkText=メールを作成", + "targets": [ + ["linkText=メールを作成", "linkText"], + ["css=.text-center > .btn", "css:finder"], + ["xpath=//a[contains(text(),'メールを作成')]", "xpath:link"], + ["xpath=//div[@id='mailHistory']/div/div/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/admin/order/3/mail')]", "xpath:href"], + ["xpath=//div[6]/div[2]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'メールを作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "7d8cfa7a-4302-4426-ad84-efa5a0cb419c", + "comment": "", + "command": "mouseOut", + "target": "linkText=メールを作成", + "targets": [ + ["linkText=メールを作成", "linkText"], + ["css=.text-center > .btn", "css:finder"], + ["xpath=//a[contains(text(),'メールを作成')]", "xpath:link"], + ["xpath=//div[@id='mailHistory']/div/div/a", "xpath:idRelative"], + ["xpath=(//a[contains(@href, '/admin/order/3/mail')])[2]", "xpath:href"], + ["xpath=//div[6]/div[2]/div/div/a", "xpath:position"], + ["xpath=//a[contains(.,'メールを作成')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2bd7dd2f-dfca-42d7-9bce-186e99106d7b", + "comment": "", + "command": "click", + "target": "linkText=保存せずに移動", + "targets": [ + ["linkText=保存せずに移動", "linkText"], + ["css=.btn-ec-sub:nth-child(2)", "css:finder"], + ["xpath=//a[contains(text(),'保存せずに移動')]", "xpath:link"], + ["xpath=//div[@id='confirmFormChangeModal']/div/div/div[3]/a[2]", "xpath:idRelative"], + ["xpath=//a[contains(@href, '/admin/order/3/mail')]", "xpath:href"], + ["xpath=//div[3]/a[2]", "xpath:position"], + ["xpath=//a[contains(.,'保存せずに移動')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "cd85f991-48f5-4bac-bf29-0b8e0f61320a", + "comment": "", + "command": "click", + "target": "css=option:nth-child(2)", + "targets": [ + ["css=option:nth-child(2)", "css:finder"], + ["xpath=//option[@value='1']", "xpath:attributes"], + ["xpath=//select[@id='template-change']/option[2]", "xpath:idRelative"], + ["xpath=//option[2]", "xpath:position"], + ["xpath=//option[contains(.,'注文受付メール')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "0b84df8b-e863-4230-b31b-3591ca2c5e32", + "comment": "", + "command": "click", + "target": "css=.ladda-label", + "targets": [ + ["css=.ladda-label", "css:finder"], + ["xpath=//form[@id='order-mail-form']/div[2]/div/div/div[2]/div/div/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"], + ["xpath=//span[contains(.,'送信内容を確認')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f81b83a5-a92d-4a98-bb08-66ceeb9277bf", + "comment": "", + "command": "click", + "target": "css=.btn", + "targets": [ + ["css=.btn", "css:finder"], + ["xpath=//button[@name='mode']", "xpath:attributes"], + ["xpath=//form[@id='order-mail-form']/div/div[3]/div/div/div[2]/div/div/button", "xpath:idRelative"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'送信')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c44f984a-88c9-4b28-95cb-4e037b8878b3", + "comment": "", + "command": "click", + "target": "css=.c-baseLink > span", + "targets": [ + ["css=.c-baseLink > span", "css:finder"], + ["xpath=//form[@id='form1']/div[2]/div/div/div/div/a/span", "xpath:idRelative"], + ["xpath=//div/div/a/span", "xpath:position"] + ], + "value": "" + }, { + "id": "a4c7ab56-b824-4491-be12-5fa230630e4e", + "comment": "", + "command": "mouseOver", + "target": "css=tr:nth-child(3) > .align-middle > .btn", + "targets": [ + ["css=tr:nth-child(3) > .align-middle > .btn", "css:finder"], + ["xpath=//table[@id='search_result']/tbody/tr[3]/td[6]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/order/2/edit#order_message')]", "xpath:href"], + ["xpath=//tr[3]/td[6]/a", "xpath:position"] + ], + "value": "" + }, { + "id": "8ba852c7-68d0-4d3e-9db8-ea75f4a1671a", + "comment": "", + "command": "mouseOut", + "target": "css=tr:nth-child(3) > .align-middle > .btn", + "targets": [ + ["css=tr:nth-child(3) > .align-middle > .btn", "css:finder"], + ["xpath=//table[@id='search_result']/tbody/tr[3]/td[6]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/order/2/edit#order_message')]", "xpath:href"], + ["xpath=//tr[3]/td[6]/a", "xpath:position"] + ], + "value": "" + }, { + "id": "3c6e2619-917a-4464-b188-990d1987144e", + "comment": "", + "command": "click", + "target": "id=tracking_number_2", + "targets": [ + ["id=tracking_number_2", "id"], + ["css=#tracking_number_2", "css:finder"], + ["xpath=//input[@id='tracking_number_2']", "xpath:attributes"], + ["xpath=//table[@id='search_result']/tbody/tr[3]/td[8]/div/input", "xpath:idRelative"], + ["xpath=//tr[3]/td[8]/div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "e8463776-972d-490e-bec8-dd8690a01d30", + "comment": "", + "command": "type", + "target": "id=tracking_number_2", + "targets": [ + ["id=tracking_number_2", "id"], + ["css=#tracking_number_2", "css:finder"], + ["xpath=//input[@id='tracking_number_2']", "xpath:attributes"], + ["xpath=//table[@id='search_result']/tbody/tr[3]/td[8]/div/input", "xpath:idRelative"], + ["xpath=//tr[3]/td[8]/div/input", "xpath:position"] + ], + "value": "333333333" + }, { + "id": "52fc839d-1669-4462-b8a4-b73908780fdc", + "comment": "", + "command": "mouseOver", + "target": "css=tr:nth-child(2) .input-group .btn", + "targets": [ + ["css=tr:nth-child(2) .input-group .btn", "css:finder"], + ["xpath=(//button[@type='button'])[7]", "xpath:attributes"], + ["xpath=//table[@id='search_result']/tbody/tr[2]/td[8]/div/span/button", "xpath:idRelative"], + ["xpath=//tr[2]/td[8]/div/span/button", "xpath:position"] + ], + "value": "" + }, { + "id": "bce7756f-260b-49db-b24b-4f7b7173d803", + "comment": "", + "command": "click", + "target": "id=toggle_check_all", + "targets": [ + ["id=toggle_check_all", "id"], + ["name=filter", "name"], + ["css=#toggle_check_all", "css:finder"], + ["xpath=//input[@id='toggle_check_all']", "xpath:attributes"], + ["xpath=//table[@id='search_result']/thead/tr/th/input", "xpath:idRelative"], + ["xpath=//th/input", "xpath:position"] + ], + "value": "" + }, { + "id": "a74d3236-f5d7-4a15-b286-d70d6d01d178", + "comment": "", + "command": "select", + "target": "id=option_bulk_status", + "targets": [], + "value": "label=発送済み" + }, { + "id": "1b946eef-5b9a-4a8d-a2e2-01193eeb4b59", + "comment": "", + "command": "click", + "target": "css=#option_bulk_status > option:nth-child(6)", + "targets": [ + ["css=#option_bulk_status > option:nth-child(6)", "css:finder"], + ["xpath=//option[@value='5']", "xpath:attributes"], + ["xpath=//select[@id='option_bulk_status']/option[6]", "xpath:idRelative"], + ["xpath=//option[6]", "xpath:position"], + ["xpath=//option[contains(.,'発送済み')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "29a37fff-719e-4541-8590-d80e957880e9", + "comment": "", + "command": "click", + "target": "id=btn_bulk_status", + "targets": [ + ["id=btn_bulk_status", "id"], + ["css=#btn_bulk_status", "css:finder"], + ["xpath=//button[@id='btn_bulk_status']", "xpath:attributes"], + ["xpath=//form[@id='form_bulk']/div/div/div/div[2]/button", "xpath:idRelative"], + ["xpath=//div[2]/button", "xpath:position"], + ["xpath=//button[contains(.,'決定')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "e2c32a7e-0af3-45cb-b1ae-225359d3c953", + "comment": "", + "command": "click", + "target": "id=bulkChangeComplete", + "targets": [ + ["id=bulkChangeComplete", "id"], + ["css=#bulkChangeComplete", "css:finder"], + ["xpath=//button[@id='bulkChangeComplete']", "xpath:attributes"], + ["xpath=//div[@id='sentUpdateModal']/div/div/div[3]/button[3]", "xpath:idRelative"], + ["xpath=//button[3]", "xpath:position"], + ["xpath=//button[contains(.,'閉じる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "93d61621-ee6a-4a04-9815-cc2893c6b8da", + "comment": "", + "command": "click", + "target": "id=toggle_check_all", + "targets": [ + ["id=toggle_check_all", "id"], + ["name=filter", "name"], + ["css=#toggle_check_all", "css:finder"], + ["xpath=//input[@id='toggle_check_all']", "xpath:attributes"], + ["xpath=//table[@id='search_result']/thead/tr/th/input", "xpath:idRelative"], + ["xpath=//th/input", "xpath:position"] + ], + "value": "" + }, { + "id": "62901e89-47aa-4104-9778-b6a7aff916d1", + "comment": "", + "command": "click", + "target": "id=bulkSendMail", + "targets": [ + ["id=bulkSendMail", "id"], + ["css=#bulkSendMail", "css:finder"], + ["xpath=//button[@id='bulkSendMail']", "xpath:attributes"], + ["xpath=//form[@id='form_bulk']/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/form/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'メールする')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "8a7c1fbd-d262-4df5-9537-6bf1ad27bf64", + "comment": "", + "command": "mouseOver", + "target": "id=bulkSendMail", + "targets": [ + ["id=bulkSendMail", "id"], + ["css=#bulkSendMail", "css:finder"], + ["xpath=//button[@id='bulkSendMail']", "xpath:attributes"], + ["xpath=//form[@id='form_bulk']/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/form/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'メールする')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "66cf628d-8ec8-48aa-898c-8eb483ca575d", + "comment": "", + "command": "mouseOut", + "target": "id=bulkSendMail", + "targets": [ + ["id=bulkSendMail", "id"], + ["css=#bulkSendMail", "css:finder"], + ["xpath=//button[@id='bulkSendMail']", "xpath:attributes"], + ["xpath=//form[@id='form_bulk']/div/div/div/div/button", "xpath:idRelative"], + ["xpath=//div[3]/div/div/form/div/div/div/div/button", "xpath:position"], + ["xpath=//button[contains(.,'メールする')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "c95fe319-9e28-41ee-83e4-ba1cde806e59", + "comment": "", + "command": "click", + "target": "css=a > .font-weight-bold:nth-child(2)", + "targets": [ + ["css=a > .font-weight-bold:nth-child(2)", "css:finder"], + ["xpath=//div[@id='bulk-options']/div[3]/div/a/span", "xpath:idRelative"], + ["xpath=//div[3]/div/a/span", "xpath:position"], + ["xpath=//span[contains(.,'メールの文面を確認')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a70fe589-b1f0-484d-ad77-e1c969a9daf3", + "comment": "", + "command": "click", + "target": "id=bulkChange", + "targets": [ + ["id=bulkChange", "id"], + ["css=#bulkChange", "css:finder"], + ["xpath=//button[@id='bulkChange']", "xpath:attributes"], + ["xpath=//div[@id='sentUpdateModal']/div/div/div[3]/button[2]", "xpath:idRelative"], + ["xpath=//div[3]/button[2]", "xpath:position"], + ["xpath=//button[contains(.,'送信')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "75ef8790-fd73-48e2-87f5-59b03032dc27", + "comment": "", + "command": "click", + "target": "id=bulkChangeComplete", + "targets": [ + ["id=bulkChangeComplete", "id"], + ["css=#bulkChangeComplete", "css:finder"], + ["xpath=//button[@id='bulkChangeComplete']", "xpath:attributes"], + ["xpath=//div[@id='sentUpdateModal']/div/div/div[3]/button[3]", "xpath:idRelative"], + ["xpath=//button[3]", "xpath:position"], + ["xpath=//button[contains(.,'閉じる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "41832942-3f1d-4c60-ad11-09cd45d46d9f", + "comment": "", + "command": "click", + "target": "id=bulkChangeComplete", + "targets": [ + ["id=bulkChangeComplete", "id"], + ["css=#bulkChangeComplete", "css:finder"], + ["xpath=//button[@id='bulkChangeComplete']", "xpath:attributes"], + ["xpath=//div[@id='sentUpdateModal']/div/div/div[3]/button[3]", "xpath:idRelative"], + ["xpath=//button[3]", "xpath:position"], + ["xpath=//button[contains(.,'閉じる')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "5190e5f1-00fa-4eb2-be1f-11ef7b1a549e", + "comment": "", + "command": "doubleClick", + "target": "id=bulkChangeComplete", + "targets": [ + ["id=bulkChangeComplete", "id"], + ["css=#bulkChangeComplete", "css:finder"], + ["xpath=//button[@id='bulkChangeComplete']", "xpath:attributes"], + ["xpath=//div[@id='sentUpdateModal']/div/div/div[3]/button[3]", "xpath:idRelative"], + ["xpath=//button[3]", "xpath:position"], + ["xpath=//button[contains(.,'閉じる')]", "xpath:innerText"] + ], + "value": "" + }] + }, { + "id": "72004182-0333-4101-8bdc-25c6e2eb91f1", + "name": "会員管理", + "commands": [{ + "id": "ccaf088d-8090-491d-9c51-bbe5bd4b2a9a", + "comment": "", + "command": "open", + "target": "https://ec-cube/admin/", + "targets": [], + "value": "" + }, { + "id": "fe4e8c55-4646-43df-b6d6-9054ccdaf74e", + "comment": "", + "command": "setWindowSize", + "target": "1160x821", + "targets": [], + "value": "" + }, { + "id": "c9b7c6a6-a5e9-4823-a556-e5fe2b1518d4", + "comment": "", + "command": "click", + "target": "linkText=会員管理", + "targets": [ + ["linkText=会員管理", "linkText"], + ["css=.c-mainNavArea__navItem:nth-child(4) > .c-mainNavArea__navItemTitle", "css:finder"], + ["xpath=//body[@id='page_admin_homepage']/div/div/nav/ul/li[4]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, '#nav-customer')]", "xpath:href"], + ["xpath=//nav/ul/li[4]/a", "xpath:position"], + ["xpath=//a[contains(.,' 会員管理')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "2b315ddb-b0b7-43e0-a44a-f242b187f743", + "comment": "", + "command": "click", + "target": "linkText=会員一覧", + "targets": [ + ["linkText=会員一覧", "linkText"], + ["css=#nav-customer > li:nth-child(1) > a", "css:finder"], + ["xpath=//ul[@id='nav-customer']/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/customer')]", "xpath:href"], + ["xpath=//li[4]/ul/li/a", "xpath:position"], + ["xpath=//a[contains(.,'会員一覧')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "33c0d106-c3f7-4b0a-994b-1c7acbf694dd", + "comment": "", + "command": "click", + "target": "linkText=会員登録", + "targets": [ + ["linkText=会員登録", "linkText"], + ["css=#nav-customer > li:nth-child(2) > a", "css:finder"], + ["xpath=//ul[@id='nav-customer']/li[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/customer/new')]", "xpath:href"], + ["xpath=//li[4]/ul/li[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'会員登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ab44b3ca-92c9-40dd-b893-0bb64d9a0420", + "comment": "", + "command": "click", + "target": "id=admin_customer_name_name01", + "targets": [ + ["id=admin_customer_name_name01", "id"], + ["name=admin_customer[name][name01]", "name"], + ["css=#admin_customer_name_name01", "css:finder"], + ["xpath=//input[@id='admin_customer_name_name01']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div/input", "xpath:position"] + ], + "value": "" + }, { + "id": "5c3c4516-611c-43cb-9533-8b449180733e", + "comment": "", + "command": "type", + "target": "id=admin_customer_name_name01", + "targets": [ + ["id=admin_customer_name_name01", "id"], + ["name=admin_customer[name][name01]", "name"], + ["css=#admin_customer_name_name01", "css:finder"], + ["xpath=//input[@id='admin_customer_name_name01']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div/input", "xpath:position"] + ], + "value": "石" + }, { + "id": "30efafb7-4a50-4cd7-b674-2ee930786f6a", + "comment": "", + "command": "type", + "target": "id=admin_customer_name_name02", + "targets": [ + ["id=admin_customer_name_name02", "id"], + ["name=admin_customer[name][name02]", "name"], + ["css=#admin_customer_name_name02", "css:finder"], + ["xpath=//input[@id='admin_customer_name_name02']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div/div[2]/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/input", "xpath:position"] + ], + "value": "九部" + }, { + "id": "3dabb035-b073-4135-a9f2-cd3090879c5c", + "comment": "", + "command": "type", + "target": "id=admin_customer_kana_kana01", + "targets": [ + ["id=admin_customer_kana_kana01", "id"], + ["name=admin_customer[kana][kana01]", "name"], + ["css=#admin_customer_kana_kana01", "css:finder"], + ["xpath=//input[@id='admin_customer_kana_kana01']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[2]/div[2]/div/div/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div/input", "xpath:position"] + ], + "value": "イシ" + }, { + "id": "74678c2c-8e13-403c-a77d-ba03fc3dbf59", + "comment": "", + "command": "type", + "target": "id=admin_customer_kana_kana02", + "targets": [ + ["id=admin_customer_kana_kana02", "id"], + ["name=admin_customer[kana][kana02]", "name"], + ["css=#admin_customer_kana_kana02", "css:finder"], + ["xpath=//input[@id='admin_customer_kana_kana02']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[2]/div[2]/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[2]/div[2]/div/div[2]/input", "xpath:position"] + ], + "value": "キューブ" + }, { + "id": "4e7a0392-57f7-4bb7-a4f9-c93d866666d9", + "comment": "", + "command": "type", + "target": "id=admin_customer_company_name", + "targets": [ + ["id=admin_customer_company_name", "id"], + ["name=admin_customer[company_name]", "name"], + ["css=#admin_customer_company_name", "css:finder"], + ["xpath=//input[@id='admin_customer_company_name']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[3]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[3]/div[2]/input", "xpath:position"] + ], + "value": "イーシーキューブ" + }, { + "id": "55d7b0e5-f160-44f7-bf0c-4c594a5ab906", + "comment": "", + "command": "type", + "target": "id=admin_customer_postal_code", + "targets": [ + ["id=admin_customer_postal_code", "id"], + ["name=admin_customer[postal_code]", "name"], + ["css=#admin_customer_postal_code", "css:finder"], + ["xpath=//input[@id='admin_customer_postal_code']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[4]/div[2]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/div/div/div[2]/input", "xpath:position"] + ], + "value": "5" + }, { + "id": "9ca12c07-f425-4518-8033-19c0d7c38bbe", + "comment": "", + "command": "click", + "target": "id=admin_customer_postal_code", + "targets": [ + ["id=admin_customer_postal_code", "id"], + ["name=admin_customer[postal_code]", "name"], + ["css=#admin_customer_postal_code", "css:finder"], + ["xpath=//input[@id='admin_customer_postal_code']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[4]/div[2]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/div/div/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "ca6281de-9aef-475b-a672-35d5bd43885c", + "comment": "", + "command": "type", + "target": "id=admin_customer_postal_code", + "targets": [ + ["id=admin_customer_postal_code", "id"], + ["name=admin_customer[postal_code]", "name"], + ["css=#admin_customer_postal_code", "css:finder"], + ["xpath=//input[@id='admin_customer_postal_code']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[4]/div[2]/div/div/div[2]/input", "xpath:idRelative"], + ["xpath=//div[4]/div[2]/div/div/div[2]/input", "xpath:position"] + ], + "value": "5300003" + }, { + "id": "249eff04-d59c-4362-be02-db0e2580d54c", + "comment": "", + "command": "click", + "target": "id=admin_customer_address_addr02", + "targets": [ + ["id=admin_customer_address_addr02", "id"], + ["name=admin_customer[address][addr02]", "name"], + ["css=#admin_customer_address_addr02", "css:finder"], + ["xpath=//input[@id='admin_customer_address_addr02']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[4]/div[2]/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "bfd4e46b-b155-4438-959d-254c3f596b33", + "comment": "", + "command": "type", + "target": "id=admin_customer_address_addr02", + "targets": [ + ["id=admin_customer_address_addr02", "id"], + ["name=admin_customer[address][addr02]", "name"], + ["css=#admin_customer_address_addr02", "css:finder"], + ["xpath=//input[@id='admin_customer_address_addr02']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[4]/div[2]/div[4]/input", "xpath:idRelative"], + ["xpath=//div[4]/input", "xpath:position"] + ], + "value": "2" + }, { + "id": "15657c30-8359-4eee-8af9-d82bad850e97", + "comment": "", + "command": "click", + "target": "id=admin_customer_email", + "targets": [ + ["id=admin_customer_email", "id"], + ["name=admin_customer[email]", "name"], + ["css=#admin_customer_email", "css:finder"], + ["xpath=//input[@id='admin_customer_email']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[5]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "0d3996f7-d9d7-44b0-b553-f90ee8a8024c", + "comment": "", + "command": "type", + "target": "id=admin_customer_email", + "targets": [ + ["id=admin_customer_email", "id"], + ["name=admin_customer[email]", "name"], + ["css=#admin_customer_email", "css:finder"], + ["xpath=//input[@id='admin_customer_email']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[5]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[5]/div[2]/input", "xpath:position"] + ], + "value": "ec-cube-cube@example.com" + }, { + "id": "3d878741-b012-43ab-bcea-4950f0f42d69", + "comment": "", + "command": "type", + "target": "id=admin_customer_phone_number", + "targets": [ + ["id=admin_customer_phone_number", "id"], + ["name=admin_customer[phone_number]", "name"], + ["css=#admin_customer_phone_number", "css:finder"], + ["xpath=//input[@id='admin_customer_phone_number']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[6]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[6]/div[2]/input", "xpath:position"] + ], + "value": "222222222" + }, { + "id": "32028c70-0a9d-4e03-847b-44a0fcaf6254", + "comment": "", + "command": "type", + "target": "id=admin_customer_password_first", + "targets": [ + ["id=admin_customer_password_first", "id"], + ["name=admin_customer[password][first]", "name"], + ["css=#admin_customer_password_first", "css:finder"], + ["xpath=//input[@id='admin_customer_password_first']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[7]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div[2]/input", "xpath:position"] + ], + "value": "password" + }, { + "id": "3785b746-4b91-447f-9c32-b388d96aa1d0", + "comment": "", + "command": "type", + "target": "id=admin_customer_password_second", + "targets": [ + ["id=admin_customer_password_second", "id"], + ["name=admin_customer[password][second]", "name"], + ["css=#admin_customer_password_second", "css:finder"], + ["xpath=//input[@id='admin_customer_password_second']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[8]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[8]/div[2]/input", "xpath:position"] + ], + "value": "password" + }, { + "id": "10699b01-3faa-4444-9f35-0433ec8967a4", + "comment": "", + "command": "click", + "target": "id=admin_customer_password_first", + "targets": [ + ["id=admin_customer_password_first", "id"], + ["name=admin_customer[password][first]", "name"], + ["css=#admin_customer_password_first", "css:finder"], + ["xpath=//input[@id='admin_customer_password_first']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[7]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "eebfe387-a0e9-4948-805c-d82b4d0200b9", + "comment": "", + "command": "type", + "target": "id=admin_customer_password_first", + "targets": [ + ["id=admin_customer_password_first", "id"], + ["name=admin_customer[password][first]", "name"], + ["css=#admin_customer_password_first", "css:finder"], + ["xpath=//input[@id='admin_customer_password_first']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[7]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div[2]/input", "xpath:position"] + ], + "value": "password123" + }, { + "id": "034b442f-ca52-4cf4-b27b-73ec29e413ee", + "comment": "", + "command": "click", + "target": "id=admin_customer_password_second", + "targets": [ + ["id=admin_customer_password_second", "id"], + ["name=admin_customer[password][second]", "name"], + ["css=#admin_customer_password_second", "css:finder"], + ["xpath=//input[@id='admin_customer_password_second']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[8]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[8]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "653245c4-1a16-48f2-8a8f-08056f92967f", + "comment": "", + "command": "type", + "target": "id=admin_customer_password_second", + "targets": [ + ["id=admin_customer_password_second", "id"], + ["name=admin_customer[password][second]", "name"], + ["css=#admin_customer_password_second", "css:finder"], + ["xpath=//input[@id='admin_customer_password_second']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[8]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[8]/div[2]/input", "xpath:position"] + ], + "value": "password12" + }, { + "id": "2dd753c3-b248-4afe-ae4f-1838eaef4be8", + "comment": "", + "command": "click", + "target": "css=.form-check:nth-child(1) > .form-check-label", + "targets": [ + ["css=.form-check:nth-child(1) > .form-check-label", "css:finder"], + ["xpath=//div[@id='admin_customer_sex']/div/label", "xpath:idRelative"], + ["xpath=//label", "xpath:position"], + ["xpath=//label[contains(.,'男性')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "48b7d593-7020-4bd2-86ff-17ab7bd9c8ca", + "comment": "", + "command": "click", + "target": "id=admin_customer_job", + "targets": [ + ["id=admin_customer_job", "id"], + ["name=admin_customer[job]", "name"], + ["css=#admin_customer_job", "css:finder"], + ["xpath=//select[@id='admin_customer_job']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[10]/div[2]/select", "xpath:idRelative"], + ["xpath=//div[2]/select", "xpath:position"] + ], + "value": "" + }, { + "id": "8f242f85-a429-4e4a-9382-652c4ed6a6a8", + "comment": "", + "command": "select", + "target": "id=admin_customer_job", + "targets": [], + "value": "label=コンピューター関連技術職" + }, { + "id": "4483bb32-a088-4883-974b-bf68cb8a1801", + "comment": "", + "command": "click", + "target": "css=#admin_customer_job > option:nth-child(4)", + "targets": [ + ["css=#admin_customer_job > option:nth-child(4)", "css:finder"], + ["xpath=(//option[@value='3'])[2]", "xpath:attributes"], + ["xpath=//select[@id='admin_customer_job']/option[4]", "xpath:idRelative"], + ["xpath=//div[2]/select/option[4]", "xpath:position"], + ["xpath=//option[contains(.,'コンピューター関連技術職')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "f6c5ce2a-5601-4634-8764-f511cd3da15c", + "comment": "", + "command": "click", + "target": "id=admin_customer_birth", + "targets": [ + ["id=admin_customer_birth", "id"], + ["name=admin_customer[birth]", "name"], + ["css=#admin_customer_birth", "css:finder"], + ["xpath=//input[@id='admin_customer_birth']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[11]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[11]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "fba068ce-052d-4558-bd13-a271b8ed36ed", + "comment": "", + "command": "click", + "target": "id=admin_customer_birth", + "targets": [ + ["id=admin_customer_birth", "id"], + ["name=admin_customer[birth]", "name"], + ["css=#admin_customer_birth", "css:finder"], + ["xpath=//input[@id='admin_customer_birth']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[11]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[11]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "424626c5-5912-4033-81bd-1b8b6d2562e3", + "comment": "", + "command": "click", + "target": "id=admin_customer_birth", + "targets": [ + ["id=admin_customer_birth", "id"], + ["name=admin_customer[birth]", "name"], + ["css=#admin_customer_birth", "css:finder"], + ["xpath=//input[@id='admin_customer_birth']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[11]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[11]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "fcee8983-89f2-43b2-8c08-5370969d75da", + "comment": "", + "command": "doubleClick", + "target": "id=admin_customer_birth", + "targets": [ + ["id=admin_customer_birth", "id"], + ["name=admin_customer[birth]", "name"], + ["css=#admin_customer_birth", "css:finder"], + ["xpath=//input[@id='admin_customer_birth']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[11]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[11]/div[2]/input", "xpath:position"] + ], + "value": "" + }, { + "id": "044843e6-a5ee-4ee2-92cd-a59ed7ffc9d7", + "comment": "", + "command": "type", + "target": "id=admin_customer_birth", + "targets": [ + ["id=admin_customer_birth", "id"], + ["name=admin_customer[birth]", "name"], + ["css=#admin_customer_birth", "css:finder"], + ["xpath=//input[@id='admin_customer_birth']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[11]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[11]/div[2]/input", "xpath:position"] + ], + "value": "2006-09-01" + }, { + "id": "d85b1dec-bde7-4a28-9bfa-6ac2f5cb8693", + "comment": "", + "command": "type", + "target": "id=admin_customer_point", + "targets": [ + ["id=admin_customer_point", "id"], + ["name=admin_customer[point]", "name"], + ["css=#admin_customer_point", "css:finder"], + ["xpath=//input[@id='admin_customer_point']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[12]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[12]/div[2]/input", "xpath:position"] + ], + "value": "10000" + }, { + "id": "d8093263-2c31-408e-87e4-6cf8ee94a16c", + "comment": "", + "command": "click", + "target": "css=.row:nth-child(11) > .col-3", + "targets": [ + ["css=.row:nth-child(11) > .col-3", "css:finder"], + ["xpath=//div[@id='ordererInfo']/div/div[11]/div", "xpath:idRelative"], + ["xpath=//div[11]/div", "xpath:position"] + ], + "value": "" + }, { + "id": "67818cc8-4816-47fb-a1f5-97c877d4a9da", + "comment": "", + "command": "click", + "target": "id=admin_customer_note", + "targets": [ + ["id=admin_customer_note", "id"], + ["name=admin_customer[note]", "name"], + ["css=#admin_customer_note", "css:finder"], + ["xpath=//textarea[@id='admin_customer_note']", "xpath:attributes"], + ["xpath=//div[@id='shopMemo']/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "" + }, { + "id": "4a45f0ec-cc2b-4d84-af82-77ac9a15f5b1", + "comment": "", + "command": "type", + "target": "id=admin_customer_note", + "targets": [ + ["id=admin_customer_note", "id"], + ["name=admin_customer[note]", "name"], + ["css=#admin_customer_note", "css:finder"], + ["xpath=//textarea[@id='admin_customer_note']", "xpath:attributes"], + ["xpath=//div[@id='shopMemo']/div/textarea", "xpath:idRelative"], + ["xpath=//textarea", "xpath:position"] + ], + "value": "ショップ用メモ" + }, { + "id": "b0b204ca-f0bc-42fb-902d-c8b2070fabf2", + "comment": "", + "command": "click", + "target": "id=admin_customer_status", + "targets": [ + ["id=admin_customer_status", "id"], + ["name=admin_customer[status]", "name"], + ["css=#admin_customer_status", "css:finder"], + ["xpath=//select[@id='admin_customer_status']", "xpath:attributes"], + ["xpath=//div[@id='ex-conversion-action']/div/select", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/select", "xpath:position"] + ], + "value": "" + }, { + "id": "4e383bc6-4fe2-4fe8-b43a-2f856e845a83", + "comment": "", + "command": "select", + "target": "id=admin_customer_status", + "targets": [], + "value": "label=本会員" + }, { + "id": "d4215ab0-0ab4-4eee-bff0-913feaef2416", + "comment": "", + "command": "click", + "target": "css=#admin_customer_status > option:nth-child(2)", + "targets": [ + ["css=#admin_customer_status > option:nth-child(2)", "css:finder"], + ["xpath=(//option[@value='2'])[3]", "xpath:attributes"], + ["xpath=//select[@id='admin_customer_status']/option[2]", "xpath:idRelative"], + ["xpath=//div[2]/div/div/div[2]/div/div/select/option[2]", "xpath:position"], + ["xpath=//option[contains(.,'本会員')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "34507518-2cbf-4ac9-838d-251449db652b", + "comment": "", + "command": "click", + "target": "css=.btn", + "targets": [ + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//div[@id='ex-conversion-action']/div[2]/button", "xpath:idRelative"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "ce87d86c-d859-4566-bc36-e487959f4824", + "comment": "", + "command": "type", + "target": "id=admin_customer_password_first", + "targets": [ + ["id=admin_customer_password_first", "id"], + ["name=admin_customer[password][first]", "name"], + ["css=#admin_customer_password_first", "css:finder"], + ["xpath=//input[@id='admin_customer_password_first']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[7]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[7]/div[2]/input", "xpath:position"] + ], + "value": "password.123" + }, { + "id": "23b6727b-f1ab-4bce-bf8b-1238041fdd78", + "comment": "", + "command": "type", + "target": "id=admin_customer_password_second", + "targets": [ + ["id=admin_customer_password_second", "id"], + ["name=admin_customer[password][second]", "name"], + ["css=#admin_customer_password_second", "css:finder"], + ["xpath=//input[@id='admin_customer_password_second']", "xpath:attributes"], + ["xpath=//div[@id='ordererInfo']/div/div[8]/div[2]/input", "xpath:idRelative"], + ["xpath=//div[8]/div[2]/input", "xpath:position"] + ], + "value": "password.123" + }, { + "id": "3f783397-0ddc-48d8-b70c-4f2983f85aa8", + "comment": "", + "command": "click", + "target": "css=.btn", + "targets": [ + ["css=.btn", "css:finder"], + ["xpath=//button[@type='submit']", "xpath:attributes"], + ["xpath=//div[@id='ex-conversion-action']/div[2]/button", "xpath:idRelative"], + ["xpath=//button", "xpath:position"], + ["xpath=//button[contains(.,'登録')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "1f35bc75-ea0a-44bc-a9ca-2118529bf1fa", + "comment": "", + "command": "click", + "target": "linkText=会員一覧", + "targets": [ + ["linkText=会員一覧", "linkText"], + ["css=#nav-customer > li:nth-child(1) > a", "css:finder"], + ["xpath=//ul[@id='nav-customer']/li/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/customer')]", "xpath:href"], + ["xpath=//li[4]/ul/li/a", "xpath:position"], + ["xpath=//a[contains(.,'会員一覧')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "19614483-9e4e-4d56-8d5e-cbee7bdd1e90", + "comment": "", + "command": "click", + "target": "linkText=石 九部", + "targets": [ + ["linkText=石 九部", "linkText"], + ["css=#ex-customer-4 > .align-middle > a", "css:finder"], + ["xpath=//a[contains(text(),'石 九部')]", "xpath:link"], + ["xpath=//tr[@id='ex-customer-4']/td[2]/a", "xpath:idRelative"], + ["xpath=//a[contains(@href, 'https://ec-cube/admin/customer/4/edit')]", "xpath:href"], + ["xpath=//td[2]/a", "xpath:position"], + ["xpath=//a[contains(.,'石 九部')]", "xpath:innerText"] + ], + "value": "" + }, { + "id": "a6efbfed-44d2-47d7-8e83-1654b7513770", + "comment": "", + "command": "click", + "target": "css=.ladda-label", + "targets": [ + ["css=.ladda-label", "css:finder"], + ["xpath=//div[@id='ex-conversion-action']/div[2]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"] + ], + "value": "" + }, { + "id": "afa3be7f-721b-44ee-a6f7-374feb1e1d93", + "comment": "", + "command": "mouseOver", + "target": "css=.ladda-label", + "targets": [ + ["css=.ladda-label", "css:finder"], + ["xpath=//div[@id='ex-conversion-action']/div[2]/button/span", "xpath:idRelative"], + ["xpath=//button/span", "xpath:position"] + ], + "value": "" + }] + }], + "suites": [{ + "id": "9a93a5e6-e470-42fc-821f-e58d86b64905", + "name": "管理画面マニュアル探査", + "persistSession": false, + "parallel": false, + "timeout": 300, + "tests": ["72004182-0333-4101-8bdc-25c6e2eb91f1", "af12755b-95df-4a47-ba6d-b9ea45cb4ea7", "93cadc3b-359e-440c-97b4-a69a41f7c12d"] + }], + "urls": ["https://ec-cube/admin"], + "plugins": [] +} From d9db4518b9510477b95cdb68a33f6708cedf0c9f Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Wed, 16 Sep 2020 16:19:26 +0900 Subject: [PATCH 003/207] =?UTF-8?q?=E3=83=91=E3=83=83=E3=82=B1=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=81=8B=E3=82=89=20OWASP=20ZAP=20=E9=96=A2=E9=80=A3?= =?UTF-8?q?=E3=81=AE=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=82=92=E9=99=A4?= =?UTF-8?q?=E5=A4=96=E3=83=BB=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/action.yml | 2 ++ .htaccess | 1 + 2 files changed, 3 insertions(+) diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index e5bbf643448..44caff2fd8a 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -880,6 +880,8 @@ jobs: rm -rf $GITHUB_WORKSPACE/codeception rm -rf $GITHUB_WORKSPACE/tests rm -rf $GITHUB_WORKSPACE/.github + rm -rf $GITHUB_WORKSPACE/zap + rm -rf $GITHUB_WORKSPACE/docker-compose-owaspzap.yml find $GITHUB_WORKSPACE -name "dummy" -print0 | xargs -0 rm -rf find $GITHUB_WORKSPACE -name ".git*" -and ! -name ".gitkeep" -print0 | xargs -0 rm -rf find $GITHUB_WORKSPACE -name ".git*" -type d -print0 | xargs -0 rm -rf diff --git a/.htaccess b/.htaccess index d2c88a117f0..9a77b4d7e75 100644 --- a/.htaccess +++ b/.htaccess @@ -48,6 +48,7 @@ DirectoryIndex index.php index.html .ht RewriteRule "^bin/" - [F] RewriteRule "^dockerbuild/" - [F] RewriteRule "^\.devcontainer/" - [F] + RewriteRule "^zap/" - [F] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpe?g|css|ico|js|svg|map)$ [NC] From dbe85f96a78c610830dfa337190a2c5de84954f1 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Wed, 16 Sep 2020 16:43:48 +0900 Subject: [PATCH 004/207] Fix README --- zap/README.md | 53 +++----------------------------------- zap/selenium/ide/README.md | 7 +++++ 2 files changed, 11 insertions(+), 49 deletions(-) create mode 100644 zap/selenium/ide/README.md diff --git a/zap/README.md b/zap/README.md index c61272f8371..1841a51fe9c 100644 --- a/zap/README.md +++ b/zap/README.md @@ -1,51 +1,6 @@ # EC-CUBE Penetration Testing with OWASP ZAP -## Quick Start - -- 意図しない外部サイトへの攻撃を防ぐため、 OWASP ZAP は必ず **プロテクトモード** で使用してください - -1. [docker-compose を使用して EC-CUBE をインストールします](https://doc4.ec-cube.net/quickstart_install#4docker-compose%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B) -1. テスト用のデータを生成しておきます - ```shell - ## APP_ENV=dev に設定 - sed -i.bak -e 's/APP_ENV=prod/APP_ENV=dev/g' ./.env - ## customer を1件生成 - docker-compose -f docker-compose.yml -f docker-compose-owaspzap.yml exec ec-cube bin/console eccube:fixtures:generate --products=0 --customers=1 --orders=0 - ## メールアドレスを zap_user@example.com に変更 - docker-compose -f docker-compose.yml -f docker-compose-owaspzap.yml exec ec-cube bin/console doctrine:query:sql "UPDATE dtb_customer SET email = 'zap_user@example.com' WHERE id = 1;" - ## ZAP でテストする場合は APP_ENV=prod に設定しておく - sed -i.bak -e 's/APP_ENV=dev/APP_ENV=prod/g' ./.env - ``` -1. OWASP ZAP コンテナを起動します - ```shell - docker-compose -f docker-compose.yml -f docker-compose-owaspzap.yml up -d zap - ``` - - *アドオンをアップデートするため、少し時間がかかります* - - 起動してから、 Firefox 以外のブラウザで `http://localhost:8081/zap/` へアクセスすると、OWASP ZAP の管理画面が表示されます -1. Firefox を起動し、設定→ネットワーク設定→接続設定からプロキシーの設定をします - - **手動でプロキシーを設定する** を選択 - - HTTPプロキシー: localhost, ポート: 8090 - - **このプロキシーを FTP と HTTPS でも使用する** にチェックを入れる -1. Firefox に SSL ルート CA 証明書をインポートします - - ローカルの `path/to/ec-cube/zap/owasp_zap_root_ca.cer` に証明書が生成されています - - 設定→プライバシーとセキュリティ→証明書→証明書を表示から証明書マネージャーを表示 - - 認証局証明書→読み込むをクリックし、 `path/to/ec-cube/zap/owasp_zap_root_ca.cer` を選択 - - **この認証局によるウェブサイトの識別を信頼する** にチェックを入れ、 OK をクリック、設定を閉じます -1. Firefox で `https://ec-cube/` へアクセスし、プロキシー経由で EC-CUBE にアクセスできるのを確認します。 -1. コンテキストをインポートします。 - ```shell - ## 管理画面用 - docker-compose -f docker-compose.yml -f docker-compose-owaspzap.yml exec zap zap-cli -p 8090 context import /zap/wrk/admin.context - ## フロント(ログイン用) - docker-compose -f docker-compose.yml -f docker-compose-owaspzap.yml exec zap zap-cli -p 8090 context import /zap/wrk/front_login.context - ``` - - *フロントと管理画面のコンテキストを同時にインポートすると、セッションが競合してログインできなくなる場合があるため注意* -1. OWASP ZAP のツールバーにある [Forced User Mode On/Off ボタン](https://www.zaproxy.org/docs/desktop/ui/tltoolbar/#--forced-user-mode-on--off) を ON にすると、OWASP ZAP の自動ログインが有効になり、ユーザーログイン中のテストが有効になります -1. [OWASP ZAP Getting Started](https://qiita.com/koujimatsuda11/items/3d5b7eac5f9455015ba6) を参考に、テストを実施します - - -## 参考 - -- [DockerでOWASP ZAPを使う](https://pc.atsuhiro-me.net/entry/2019/08/19/011324) -- [Docker版OWASP ZAPを動かしてみる](https://qiita.com/koujimatsuda11/items/83558cd62c20141ebdda) -- [テスティングガイド](https://owasp.org/www-pdf-archive/OTGv3Japanese.pdf) +このツールは、サイトを実際に攻撃し、脆弱性が無いかを確認するツールです。 +必ずローカル環境の Docker でのみ使用し、稼動中のサイトには決して使用しないでください。 +意図せずデータが更新されたり、削除される場合があります。 +テストは自己責任で実施し、株式会社イーシーキューブ及び、関連する開発コミュニティは一切の責任を負いかねますのであらかじめご了承ください。 diff --git a/zap/selenium/ide/README.md b/zap/selenium/ide/README.md new file mode 100644 index 00000000000..751f07eb972 --- /dev/null +++ b/zap/selenium/ide/README.md @@ -0,0 +1,7 @@ +## 手動探索用 Selenium IDE project + +*現在作業作業進行中です。ブラウザ操作が途中で停止してしまう場合がありますのでご注意ください* + +- https://addons.mozilla.org/ja/firefox/addon/selenium-ide/ より、 Firefox のアドオンをインストールして利用してください +- OWASP ZAP での手動探索時を省力化するために使用します + From edc82fc61ef57b813ec2a0d6a8708e28d896c3cf Mon Sep 17 00:00:00 2001 From: hama Date: Thu, 17 Sep 2020 11:47:26 +0900 Subject: [PATCH 005/207] =?UTF-8?q?=E5=8F=97=E6=B3=A8=E7=99=BB=E9=8C=B2?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=E3=81=A7=E5=95=86=E5=93=81=E3=82=B3=E3=83=BC?= =?UTF-8?q?=E3=83=89=E3=82=92=E6=8C=87=E5=AE=9A=E3=81=97=E3=81=9F=E5=95=86?= =?UTF-8?q?=E5=93=81=E6=A4=9C=E7=B4=A2=E6=99=82=E3=81=AB=E7=99=BA=E7=94=9F?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=81=93=E3=81=A8=E3=81=8C=E3=81=82=E3=82=8B?= =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Repository/ProductRepository.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Eccube/Repository/ProductRepository.php b/src/Eccube/Repository/ProductRepository.php index 62667001d53..cf772597f1f 100644 --- a/src/Eccube/Repository/ProductRepository.php +++ b/src/Eccube/Repository/ProductRepository.php @@ -216,11 +216,12 @@ public function getQueryBuilderBySearchData($searchData) public function getQueryBuilderBySearchDataForAdmin($searchData) { $qb = $this->createQueryBuilder('p') - ->addSelect('pc', 'pi', 'tr', 'ps') - ->innerJoin('p.ProductClasses', 'pc') + ->addSelect('_pc', 'pi', 'tr', 'ps') + ->innerJoin('p.ProductClasses', '_pc') + ->leftJoin('p.ProductClasses', 'pc') ->leftJoin('p.ProductImage', 'pi') - ->leftJoin('pc.TaxRule', 'tr') - ->leftJoin('pc.ProductStock', 'ps') + ->leftJoin('_pc.TaxRule', 'tr') + ->leftJoin('_pc.ProductStock', 'ps') ->andWhere('pc.visible = :visible') ->setParameter('visible', true); From 3c26d486760dfa06f45c014b28c7ba761dce3d2a Mon Sep 17 00:00:00 2001 From: hama Date: Mon, 28 Sep 2020 16:30:08 +0900 Subject: [PATCH 006/207] =?UTF-8?q?Revert=20"=E5=8F=97=E6=B3=A8=E7=99=BB?= =?UTF-8?q?=E9=8C=B2=E7=94=BB=E9=9D=A2=E3=81=A7=E5=95=86=E5=93=81=E3=82=B3?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=82=92=E6=8C=87=E5=AE=9A=E3=81=97=E3=81=9F?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=A4=9C=E7=B4=A2=E6=99=82=E3=81=AB=E7=99=BA?= =?UTF-8?q?=E7=94=9F=E3=81=99=E3=82=8B=E3=81=93=E3=81=A8=E3=81=8C=E3=81=82?= =?UTF-8?q?=E3=82=8B=E3=82=A8=E3=83=A9=E3=83=BC=E3=82=92=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit edc82fc6 --- src/Eccube/Repository/ProductRepository.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Eccube/Repository/ProductRepository.php b/src/Eccube/Repository/ProductRepository.php index cf772597f1f..62667001d53 100644 --- a/src/Eccube/Repository/ProductRepository.php +++ b/src/Eccube/Repository/ProductRepository.php @@ -216,12 +216,11 @@ public function getQueryBuilderBySearchData($searchData) public function getQueryBuilderBySearchDataForAdmin($searchData) { $qb = $this->createQueryBuilder('p') - ->addSelect('_pc', 'pi', 'tr', 'ps') - ->innerJoin('p.ProductClasses', '_pc') - ->leftJoin('p.ProductClasses', 'pc') + ->addSelect('pc', 'pi', 'tr', 'ps') + ->innerJoin('p.ProductClasses', 'pc') ->leftJoin('p.ProductImage', 'pi') - ->leftJoin('_pc.TaxRule', 'tr') - ->leftJoin('_pc.ProductStock', 'ps') + ->leftJoin('pc.TaxRule', 'tr') + ->leftJoin('pc.ProductStock', 'ps') ->andWhere('pc.visible = :visible') ->setParameter('visible', true); From 72c0d684fcef6e61c738e27af4a4060148f9f18c Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Tue, 29 Sep 2020 17:01:21 +0900 Subject: [PATCH 007/207] =?UTF-8?q?=E3=83=91=E3=83=83=E3=82=B1=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=81=8B=E3=82=89=20OWASP=20ZAP=20=E9=96=A2=E9=80=A3?= =?UTF-8?q?=E3=81=AE=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=82=92=E5=89=8A?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9baf0f27d16..bb05467b21f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -59,6 +59,8 @@ jobs: rm -rf $GITHUB_WORKSPACE/codeception rm -rf $GITHUB_WORKSPACE/tests rm -rf $GITHUB_WORKSPACE/.github + rm -rf $GITHUB_WORKSPACE/zap + rm -rf $GITHUB_WORKSPACE/docker-compose-owaspzap.yml find $GITHUB_WORKSPACE -name "dummy" -print0 | xargs -0 rm -rf find $GITHUB_WORKSPACE -name ".git*" -and ! -name ".gitkeep" -print0 | xargs -0 rm -rf find $GITHUB_WORKSPACE -name ".git*" -type d -print0 | xargs -0 rm -rf From 48116a97784d95eb117403df9b11d4497ac70cfd Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Tue, 29 Sep 2020 17:02:32 +0900 Subject: [PATCH 008/207] Delete action.yml --- .github/workflows/action.yml | 976 ----------------------------------- 1 file changed, 976 deletions(-) delete mode 100644 .github/workflows/action.yml diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml deleted file mode 100644 index 44caff2fd8a..00000000000 --- a/.github/workflows/action.yml +++ /dev/null @@ -1,976 +0,0 @@ -name: CI/CD for EC-CUBE -on: - push: - branches: - - 4.0 - tags: - - '*' - paths: - - '**' - - '!*.md' - pull_request: - paths: - - '**' - - '!*.md' - release: - types: [ published ] -jobs: - phpunit: - name: PHPUnit - runs-on: ${{ matrix.operating-system }} - strategy: - fail-fast: false - matrix: - operating-system: [ ubuntu-18.04 ] - php: [ 7.1, 7.2, 7.3, 7.4 ] - db: [ mysql, pgsql, sqlite3 ] - include: - - db: mysql - database_url: mysql://root:password@127.0.0.1:3306/eccube_db - database_server_version: 5 - - db: pgsql - database_url: postgres://postgres:password@127.0.0.1:5432/eccube_db - database_server_version: 11 - - db: sqlite3 - database_url: sqlite:///var/eccube.db - database_server_version: 3 - - services: - mysql: - image: mysql:5.7 - env: - MYSQL_ROOT_PASSWORD: password - ports: - - 3306:3306 - options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 - postgres: - image: postgres:11 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - ports: - - 5432:5432 - # needed because the postgres container does not provide a healthcheck - options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 - - steps: - - name: Checkout - uses: actions/checkout@master - - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Setup PHP - uses: nanasess/setup-php@master - with: - php-version: ${{ matrix.php }} - - - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader - - - name: Setup EC-CUBE - env: - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - run: | - bin/console doctrine:database:create - bin/console doctrine:schema:create - bin/console eccube:fixtures:load - - - name: PHPUnit - env: - APP_ENV: 'test' - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - MAILER_URL: 'smtp://localhost:1025' - run: | - bin/phpunit --exclude-group cache-clear,cache-clear-install,update-schema-doctrine - bin/phpunit --group cache-clear - bin/phpunit --group cache-clear-install - bin/phpunit --group update-schema-doctrine --exclude-group update-schema-doctrine-install - bin/phpunit --group update-schema-doctrine-install --filter=testInstallPluginWithNoProxy - bin/phpunit --group update-schema-doctrine-install --filter=testInstallPluginWithProxy - bin/phpunit --group update-schema-doctrine-install --filter=testEnablePluginWithNoProxy - bin/phpunit --group update-schema-doctrine-install --filter=testEnablePluginWithProxy - bin/phpunit --group update-schema-doctrine-install --filter=testDisablePluginWithNoProxy - bin/phpunit --group update-schema-doctrine-install --filter=testDisablePluginWithProxy - bin/phpunit --group update-schema-doctrine-install --filter=testCreateEntityAndTrait - - codeception: - name: Codeception - runs-on: ${{ matrix.operating-system }} - strategy: - fail-fast: false - matrix: - operating-system: [ ubuntu-18.04 ] - php: [ 7.3 ] - db: [ pgsql ] - group: [ admin01, admin02, admin03, front, installer ] - include: - - db: pgsql - database_url: postgres://postgres:password@127.0.0.1:5432/eccube_db - database_server_version: 11 - - group: admin01 - app_env: 'codeception' - - group: admin02 - app_env: 'codeception' - - group: admin03 - app_env: 'codeception' - - group: front - app_env: 'codeception' - - group: installer - app_env: 'install' - services: - postgres: - image: postgres:11 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - ports: - - 5432:5432 - # needed because the postgres container does not provide a healthcheck - options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 - - mailcatcher: - image: schickling/mailcatcher - ports: - - 1080:1080 - - 1025:1025 - - steps: - - name: Checkout - uses: actions/checkout@master - - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Setup PHP - uses: nanasess/setup-php@master - with: - php-version: ${{ matrix.php }} - - - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader - - name: Setup to EC-CUBE - env: - APP_ENV: ${{ matrix.app_env }} - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - run: | - echo "APP_ENV=${APP_ENV}" > .env - bin/console doctrine:database:create --env=dev - bin/console doctrine:schema:create --env=dev - bin/console eccube:fixtures:load --env=dev - - - name: setup-chromedriver - uses: nanasess/setup-chromedriver@master - - - name: Run chromedriver - run: | - export DISPLAY=:99 - chromedriver --url-base=/wd/hub & - echo ">>> Started chrome-driver" - sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & - echo ">>> Started xvfb" - - - name: Start PHP Development Server - env: - APP_ENV: 'codeception' - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - MAILER_URL: 'smtp://localhost:1025' - ECCUBE_PACKAGE_API_URL: 'http://localhost:8080' - run: php -S localhost:8000 & - - - name: Codeception - env: - APP_ENV: ${{ matrix.app_env }} - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - MAILER_URL: 'smtp://localhost:1025' - ECCUBE_PACKAGE_API_URL: 'http://localhost:8080' - GROUP: ${{ matrix.group }} - SYMFONY_DEPRECATIONS_HELPER: weak - run: vendor/bin/codecept -vvv run acceptance --env chrome,github_action -g ${GROUP} - - name: Upload evidence - if: failure() - uses: actions/upload-artifact@v2 - with: - name: codeception-${{ matrix.group }}-evidence - path: codeception/_output/ - - name: Upload logs - if: failure() - uses: actions/upload-artifact@v2 - with: - name: codeception-${{ matrix.group }}-logs - path: var/log/ - - plugin-install: - name: Plugin install - runs-on: ${{ matrix.operating-system }} - strategy: - fail-fast: false - matrix: - operating-system: [ ubuntu-18.04 ] - php: [ 7.3 ] - db: [ pgsql, mysql ] - method: - - test_install_enable_disable_remove_store - - test_install_enable_disable_remove_local - - test_install_enable_disable_enable_disable_remove_store - - test_install_enable_disable_enable_disable_remove_local - - test_install_remove_local - - test_install_remove_store - - test_bundle_install_enable_disable_remove_store - - test_bundle_install_update_enable_disable_remove_store - include: - - db: pgsql - database_url: postgres://postgres:password@127.0.0.1:5432/eccube_db - database_server_version: 11 - - db: mysql - database_url: mysql://root:password@127.0.0.1:3306/eccube_db - database_server_version: 5 - - services: - mysql: - image: mysql:5.7 - env: - MYSQL_ROOT_PASSWORD: password - ports: - - 3306:3306 - options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 - postgres: - image: postgres:11 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - ports: - - 5432:5432 - # needed because the postgres container does not provide a healthcheck - options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 - mailcatcher: - image: schickling/mailcatcher - ports: - - 1080:1080 - - 1025:1025 - - steps: - - name: Checkout - uses: actions/checkout@master - - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Setup PHP - uses: nanasess/setup-php@master - with: - php-version: ${{ matrix.php }} - - - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader - - - name: Setup to EC-CUBE - env: - APP_ENV: 'codeception' - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - run: | - echo "APP_ENV=${APP_ENV}" > .env - bin/console doctrine:database:create --env=dev - bin/console doctrine:schema:create --env=dev - bin/console eccube:fixtures:load --env=dev - - - name: Update baseinfo with pgsql - if: matrix.db == 'pgsql' - env: - PGPASSWORD: 'password' - run: | - sudo apt-fast install -y postgresql-client - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - - - name: Update baseinfo with mysql - if: matrix.db == 'mysql' - run: mysql -h 127.0.0.1 -u root -ppassword eccube_db -e "update dtb_base_info set authentication_key='test';" - - - name: setup-chromedriver - uses: nanasess/setup-chromedriver@master - - - name: Run chromedriver - run: | - export DISPLAY=:99 - chromedriver --url-base=/wd/hub & - echo ">>> Started chrome-driver" - sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & - echo ">>> Started xvfb" - - - name: Start PHP Development Server - env: - APP_ENV: 'codeception' - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - MAILER_URL: 'smtp://localhost:1025' - ECCUBE_PACKAGE_API_URL: 'http://localhost:8080' - run: php -S localhost:8000 & - - ## ${PWD}/repos does not exist so service cannot be started - - name: Run package-api - run: | - if [[ ! -d ${PWD}/repos ]]; then mkdir -p ${PWD}/repos ; fi - docker run -d --rm -v ${PWD}/repos:/repos -e MOCK_REPO_DIR=/repos -p 8080:8080 eccube/mock-package-api - - - name: Codeception - env: - APP_ENV: ${{ matrix.app_env }} - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - MAILER_URL: 'smtp://localhost:1025' - METHOD: ${{ matrix.method }} - ECCUBE_PACKAGE_API_URL: 'http://localhost:8080' - NO_FIXTURES: 1 - run: vendor/bin/codecept -vvv run acceptance --env chrome,github_action EA10PluginCest:${METHOD} - - name: Upload evidence - if: failure() - uses: actions/upload-artifact@v2 - with: - name: plugin-install-${{ matrix.method }}-evidence - path: codeception/_output/ - - name: Upload logs - if: failure() - uses: actions/upload-artifact@v2 - with: - name: plugin-install-${{ matrix.method }}-logs - path: var/log/ - - plugin-update: - name: Plugin Update - runs-on: ${{ matrix.operating-system }} - strategy: - fail-fast: false - matrix: - operating-system: [ ubuntu-18.04 ] - php: [ 7.3 ] - db: [ pgsql, mysql ] - method: - - test_install_update_remove_store - - test_install_update_remove_local - - test_install_enable_disable_update_enable_disable_remove_local - - test_install_enable_disable_update_enable_disable_remove_store - - test_install_enable_update_disable_remove_store - - test_install_enable_update_disable_remove_local - include: - - db: pgsql - database_url: postgres://postgres:password@127.0.0.1:5432/eccube_db - database_server_version: 11 - - db: mysql - database_url: mysql://root:password@127.0.0.1:3306/eccube_db - database_server_version: 5 - - services: - mysql: - image: mysql:5.7 - env: - MYSQL_ROOT_PASSWORD: password - ports: - - 3306:3306 - options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 - postgres: - image: postgres:11 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - ports: - - 5432:5432 - # needed because the postgres container does not provide a healthcheck - options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 - mailcatcher: - image: schickling/mailcatcher - ports: - - 1080:1080 - - 1025:1025 - - steps: - - name: Checkout - uses: actions/checkout@master - - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Setup PHP - uses: nanasess/setup-php@master - with: - php-version: ${{ matrix.php }} - - - name: Install to Composer - run: composer install --dev --no-interaction -o --apcu-autoloader - - name: Setup to EC-CUBE - env: - APP_ENV: 'codeception' - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - run: | - echo "APP_ENV=${APP_ENV}" > .env - bin/console doctrine:database:create --env=dev - bin/console doctrine:schema:create --env=dev - bin/console eccube:fixtures:load --env=dev - - - name: Update baseinfo with pgsql - if: matrix.db == 'pgsql' - env: - PGPASSWORD: 'password' - run: | - sudo apt-fast install -y postgresql-client - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - - - name: Update baseinfo with mysql - if: matrix.db == 'mysql' - run: mysql -h 127.0.0.1 -u root -ppassword eccube_db -e "update dtb_base_info set authentication_key='test';" - - - name: setup-chromedriver - uses: nanasess/setup-chromedriver@master - - - name: Run chromedriver - run: | - export DISPLAY=:99 - chromedriver --url-base=/wd/hub & - echo ">>> Started chrome-driver" - sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & - echo ">>> Started xvfb" - - - name: Start PHP Development Server - env: - APP_ENV: 'codeception' - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - MAILER_URL: 'smtp://localhost:1025' - ECCUBE_PACKAGE_API_URL: 'http://localhost:8080' - run: php -S localhost:8000 & - - ## ${PWD}/repos does not exist so service cannot be started - - name: Run package-api - run: | - if [[ ! -d ${PWD}/repos ]]; then mkdir -p ${PWD}/repos ; fi - docker run -d --rm -v ${PWD}/repos:/repos -e MOCK_REPO_DIR=/repos -p 8080:8080 eccube/mock-package-api - - - name: Run to Codeception - env: - APP_ENV: ${{ matrix.app_env }} - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - MAILER_URL: 'smtp://localhost:1025' - METHOD: ${{ matrix.method }} - ECCUBE_PACKAGE_API_URL: 'http://localhost:8080' - NO_FIXTURES: 1 - run: vendor/bin/codecept -vvv run acceptance --env chrome,github_action EA10PluginCest:${METHOD} - - name: Upload evidence - if: failure() - uses: actions/upload-artifact@v2 - with: - name: plugin-update-${{ matrix.method }}-evidence - path: codeception/_output/ - - name: Upload logs - if: failure() - uses: actions/upload-artifact@v2 - with: - name: plugin-update-${{ matrix.method }}-logs - path: var/log/ - - plugin-extend: - name: Plugin extend - runs-on: ${{ matrix.operating-system }} - strategy: - fail-fast: false - matrix: - operating-system: [ ubuntu-18.04 ] - php: [ 7.3 ] - db: [ pgsql, mysql ] - method: - - test_extend_same_table_store - - test_extend_same_table_disabled_remove_store - - test_extend_same_table_local - - test_extend_same_table_disabled_remove_local - - test_extend_same_table_crossed_store - - test_extend_same_table_crossed_local - include: - - db: pgsql - database_url: postgres://postgres:password@127.0.0.1:5432/eccube_db - database_server_version: 11 - - db: mysql - database_url: mysql://root:password@127.0.0.1:3306/eccube_db - database_server_version: 5 - - services: - mysql: - image: mysql:5.7 - env: - MYSQL_ROOT_PASSWORD: password - ports: - - 3306:3306 - options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 - postgres: - image: postgres:11 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - ports: - - 5432:5432 - # needed because the postgres container does not provide a healthcheck - options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 - mailcatcher: - image: schickling/mailcatcher - ports: - - 1080:1080 - - 1025:1025 - - steps: - - name: Checkout - uses: actions/checkout@master - - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Setup PHP - uses: nanasess/setup-php@master - with: - php-version: ${{ matrix.php }} - - - name: Install to Composer - run: composer install --dev --no-interaction -o --apcu-autoloader - - name: Setup to EC-CUBE - env: - APP_ENV: 'codeception' - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - run: | - echo "APP_ENV=${APP_ENV}" > .env - bin/console doctrine:database:create --env=dev - bin/console doctrine:schema:create --env=dev - bin/console eccube:fixtures:load --env=dev - - - name: Update baseinfo with pgsql - if: matrix.db == 'pgsql' - env: - PGPASSWORD: 'password' - run: | - sudo apt-fast install -y postgresql-client - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - - - name: Update baseinfo with mysql - if: matrix.db == 'mysql' - run: mysql -h 127.0.0.1 -u root -ppassword eccube_db -e "update dtb_base_info set authentication_key='test';" - - - name: setup-chromedriver - uses: nanasess/setup-chromedriver@master - - - name: Run chromedriver - run: | - export DISPLAY=:99 - chromedriver --url-base=/wd/hub & - echo ">>> Started chrome-driver" - sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & - echo ">>> Started xvfb" - - - name: Start PHP Development Server - env: - APP_ENV: 'codeception' - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - MAILER_URL: 'smtp://localhost:1025' - ECCUBE_PACKAGE_API_URL: 'http://localhost:8080' - run: php -S localhost:8000 & - - ## ${PWD}/repos does not exist so service cannot be started - - name: Run package-api - run: | - if [[ ! -d ${PWD}/repos ]]; then mkdir -p ${PWD}/repos ; fi - docker run -d --rm -v ${PWD}/repos:/repos -e MOCK_REPO_DIR=/repos -p 8080:8080 eccube/mock-package-api - - - name: Run to Codeception - env: - APP_ENV: ${{ matrix.app_env }} - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - MAILER_URL: 'smtp://localhost:1025' - METHOD: ${{ matrix.method }} - ECCUBE_PACKAGE_API_URL: 'http://localhost:8080' - NO_FIXTURES: 1 - run: vendor/bin/codecept -vvv run acceptance --env chrome,github_action EA10PluginCest:${METHOD} - - name: Upload evidence - if: failure() - uses: actions/upload-artifact@v2 - with: - name: plugin-extend-${{ matrix.method }}-evidence - path: codeception/_output/ - - name: Upload logs - if: failure() - uses: actions/upload-artifact@v2 - with: - name: plugin-extend-${{ matrix.method }}-logs - path: var/log/ - - plugin-depend: - name: Plugin depend - runs-on: ${{ matrix.operating-system }} - strategy: - fail-fast: false - matrix: - operating-system: [ ubuntu-18.04 ] - php: [ 7.3 ] - db: [ pgsql, mysql ] - method: - - test_dependency_each_install_plugin - - test_dependency_plugin_install - - test_dependency_plugin_update - - test_install_error - - install_enable_disable_enable_disable_remove_store - - test_enhance_plugin_entity - include: - - db: pgsql - database_url: postgres://postgres:password@127.0.0.1:5432/eccube_db - database_server_version: 11 - - db: mysql - database_url: mysql://root:password@127.0.0.1:3306/eccube_db - database_server_version: 5 - exclude: - - db: mysql - method: test_dependency_plugin_update - - services: - mysql: - image: mysql:5.7 - env: - MYSQL_ROOT_PASSWORD: password - ports: - - 3306:3306 - options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 - postgres: - image: postgres:11 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - ports: - - 5432:5432 - # needed because the postgres container does not provide a healthcheck - options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 - mailcatcher: - image: schickling/mailcatcher - ports: - - 1080:1080 - - 1025:1025 - - steps: - - name: Checkout - uses: actions/checkout@master - - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Setup PHP - uses: nanasess/setup-php@master - with: - php-version: ${{ matrix.php }} - - - name: Install to Composer - run: composer install --dev --no-interaction -o --apcu-autoloader - - name: Setup to EC-CUBE - env: - APP_ENV: 'codeception' - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - run: | - echo "APP_ENV=${APP_ENV}" > .env - bin/console doctrine:database:create --env=dev - bin/console doctrine:schema:create --env=dev - bin/console eccube:fixtures:load --env=dev - - - name: Update baseinfo with pgsql - if: matrix.db == 'pgsql' - env: - PGPASSWORD: 'password' - run: | - sudo apt-fast install -y postgresql-client - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - - - name: Update baseinfo with mysql - if: matrix.db == 'mysql' - run: mysql -h 127.0.0.1 -u root -ppassword eccube_db -e "update dtb_base_info set authentication_key='test';" - - - name: setup-chromedriver - uses: nanasess/setup-chromedriver@master - - - name: Run chromedriver - run: | - export DISPLAY=:99 - chromedriver --url-base=/wd/hub & - echo ">>> Started chrome-driver" - sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & - echo ">>> Started xvfb" - - - name: Start PHP Development Server - env: - APP_ENV: 'codeception' - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - MAILER_URL: 'smtp://localhost:1025' - ECCUBE_PACKAGE_API_URL: 'http://localhost:8080' - run: php -S localhost:8000 & - - ## ${PWD}/repos does not exist so service cannot be started - - name: Run package-api - run: | - if [[ ! -d ${PWD}/repos ]]; then mkdir -p ${PWD}/repos ; fi - docker run -d --rm -v ${PWD}/repos:/repos -e MOCK_REPO_DIR=/repos -p 8080:8080 eccube/mock-package-api - - - name: Run to Codeception - env: - APP_ENV: ${{ matrix.app_env }} - DATABASE_URL: ${{ matrix.database_url }} - DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} - MAILER_URL: 'smtp://localhost:1025' - METHOD: ${{ matrix.method }} - ECCUBE_PACKAGE_API_URL: 'http://localhost:8080' - NO_FIXTURES: 1 - run: vendor/bin/codecept -vvv run acceptance --env chrome,github_action EA10PluginCest:${METHOD} - - name: Upload evidence - if: failure() - uses: actions/upload-artifact@v2 - with: - name: plugin-depend-${{ matrix.method }}-evidence - path: codeception/_output/ - - name: Upload logs - if: failure() - uses: actions/upload-artifact@v2 - with: - name: plugin-depend-${{ matrix.method }}-logs - path: var/log/ - - deploy: - name: Deploy - runs-on: ubuntu-18.04 - needs: [ phpunit, codeception ] - steps: - - name: Checkout - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - uses: actions/checkout@master - - - name: Setup PHP - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - uses: nanasess/setup-php@master - with: - php-version: '7.3' - - - name: Get Composer Cache Directory - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Install to Composer - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - run: composer install --no-scripts --no-dev --no-interaction --optimize-autoloader - - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - - name: Dump job context - env: - JOB_CONTEXT: ${{ toJson(job) }} - run: echo "$JOB_CONTEXT" - - name: Dump steps context - env: - STEPS_CONTEXT: ${{ toJson(steps) }} - run: echo "$STEPS_CONTEXT" - - name: Dump runner context - env: - RUNNER_CONTEXT: ${{ toJson(runner) }} - run: echo "$RUNNER_CONTEXT" - - name: Dump strategy context - env: - STRATEGY_CONTEXT: ${{ toJson(strategy) }} - run: echo "$STRATEGY_CONTEXT" - - name: Dump matrix context - env: - MATRIX_CONTEXT: ${{ toJson(matrix) }} - run: echo "$MATRIX_CONTEXT" - - - name: Translate to templates - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - run: php bin/template_jp.php - - - name: Packaging - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - working-directory: ../ - env: - TAG_NAME: ${{ github.event.release.tag_name }} - REPOSITORY_NAME: ${{ github.event.repository.name }} - PATH_NAME: eccube-${{ github.event.release.tag_name }} - run: | - rm -rf $GITHUB_WORKSPACE/.editorconfig - rm -rf $GITHUB_WORKSPACE/.gitignore - rm -rf $GITHUB_WORKSPACE/.buildpath - rm -rf $GITHUB_WORKSPACE/.gitmodules - rm -rf $GITHUB_WORKSPACE/.scrutinizer.yml - rm -rf $GITHUB_WORKSPACE/.travis.yml - rm -rf $GITHUB_WORKSPACE/appveyor.yml - rm -rf $GITHUB_WORKSPACE/.coveralls.yml - rm -rf $GITHUB_WORKSPACE/.php_cs.dist - rm -rf $GITHUB_WORKSPACE/phpunit.xml.dist - rm -rf $GITHUB_WORKSPACE/app.json - rm -rf $GITHUB_WORKSPACE/Procfile - rm -rf $GITHUB_WORKSPACE/LICENSE.txt - rm -rf $GITHUB_WORKSPACE/README.md - rm -rf $GITHUB_WORKSPACE/codeception.sh - rm -rf $GITHUB_WORKSPACE/codeception.yml - rm -rf $GITHUB_WORKSPACE/app/Plugin/* - rm -rf $GITHUB_WORKSPACE/codeception - rm -rf $GITHUB_WORKSPACE/tests - rm -rf $GITHUB_WORKSPACE/.github - rm -rf $GITHUB_WORKSPACE/zap - rm -rf $GITHUB_WORKSPACE/docker-compose-owaspzap.yml - find $GITHUB_WORKSPACE -name "dummy" -print0 | xargs -0 rm -rf - find $GITHUB_WORKSPACE -name ".git*" -and ! -name ".gitkeep" -print0 | xargs -0 rm -rf - find $GITHUB_WORKSPACE -name ".git*" -type d -print0 | xargs -0 rm -rf - - echo "set permissions..." - chmod -R o+w $GITHUB_WORKSPACE - - echo "complession files..." - mv $REPOSITORY_NAME $PATH_NAME - tar czfp eccube-$TAG_NAME.tar.gz $PATH_NAME - zip -ry eccube-$TAG_NAME.zip $PATH_NAME 1> /dev/null - md5sum eccube-$TAG_NAME.tar.gz | awk '{ print $1 }' > eccube-$TAG_NAME.tar.gz.checksum.md5 - md5sum eccube-$TAG_NAME.zip | awk '{ print $1 }' > eccube-$TAG_NAME.zip.checksum.md5 - sha1sum eccube-$TAG_NAME.tar.gz | awk '{ print $1 }' > eccube-$TAG_NAME.tar.gz.checksum.sha1 - sha1sum eccube-$TAG_NAME.zip | awk '{ print $1 }' > eccube-$TAG_NAME.zip.checksum.sha1 - sha256sum eccube-$TAG_NAME.tar.gz | awk '{ print $1 }' > eccube-$TAG_NAME.tar.gz.checksum.sha256 - sha256sum eccube-$TAG_NAME.zip | awk '{ print $1 }' > eccube-$TAG_NAME.zip.checksum.sha256 - mv $PATH_NAME $REPOSITORY_NAME - ls -al - - - name: Upload binaries to release of TGZ - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - uses: svenstaro/upload-release-action@v1-release - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ runner.workspace }}/eccube-${{ github.event.release.tag_name }}.tar.gz - asset_name: eccube-${{ github.event.release.tag_name }}.tar.gz - tag: ${{ github.ref }} - overwrite: true - - name: Upload binaries to release of ZIP - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - uses: svenstaro/upload-release-action@v1-release - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ runner.workspace }}/eccube-${{ github.event.release.tag_name }}.zip - asset_name: eccube-${{ github.event.release.tag_name }}.zip - tag: ${{ github.ref }} - overwrite: true - - name: Upload binaries to release of TGZ md5 checksum - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - uses: svenstaro/upload-release-action@v1-release - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ runner.workspace }}/eccube-${{ github.event.release.tag_name }}.tar.gz.checksum.md5 - asset_name: eccube-${{ github.event.release.tag_name }}.tar.gz.checksum.md5 - tag: ${{ github.ref }} - overwrite: true - - name: Upload binaries to release of TGZ sha1 checksum - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - uses: svenstaro/upload-release-action@v1-release - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ runner.workspace }}/eccube-${{ github.event.release.tag_name }}.tar.gz.checksum.sha1 - asset_name: eccube-${{ github.event.release.tag_name }}.tar.gz.checksum.sha1 - tag: ${{ github.ref }} - overwrite: true - - name: Upload binaries to release of TGZ sha256 checksum - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - uses: svenstaro/upload-release-action@v1-release - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ runner.workspace }}/eccube-${{ github.event.release.tag_name }}.tar.gz.checksum.sha256 - asset_name: eccube-${{ github.event.release.tag_name }}.tar.gz.checksum.sha256 - tag: ${{ github.ref }} - overwrite: true - - name: Upload binaries to release of ZIP md5 checksum - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - uses: svenstaro/upload-release-action@v1-release - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ runner.workspace }}/eccube-${{ github.event.release.tag_name }}.zip.checksum.md5 - asset_name: eccube-${{ github.event.release.tag_name }}.zip.checksum.md5 - tag: ${{ github.ref }} - overwrite: true - - name: Upload binaries to release of ZIP sha1 checksum - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - uses: svenstaro/upload-release-action@v1-release - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ runner.workspace }}/eccube-${{ github.event.release.tag_name }}.zip.checksum.sha1 - asset_name: eccube-${{ github.event.release.tag_name }}.zip.checksum.sha1 - tag: ${{ github.ref }} - overwrite: true - - name: Upload binaries to release of ZIP sha256 checksum - if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) - uses: svenstaro/upload-release-action@v1-release - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ runner.workspace }}/eccube-${{ github.event.release.tag_name }}.zip.checksum.sha256 - asset_name: eccube-${{ github.event.release.tag_name }}.zip.checksum.sha256 - tag: ${{ github.ref }} - overwrite: true From 1c198f2a1c8bdf8841311e3d05c3cf69d7e23f52 Mon Sep 17 00:00:00 2001 From: hama Date: Wed, 30 Sep 2020 15:34:04 +0900 Subject: [PATCH 009/207] =?UTF-8?q?=E5=8F=97=E6=B3=A8=E7=99=BB=E9=8C=B2?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=E3=81=A7=E5=95=86=E5=93=81=E3=82=B3=E3=83=BC?= =?UTF-8?q?=E3=83=89=E3=82=92=E6=8C=87=E5=AE=9A=E3=81=97=E3=81=9F=E5=95=86?= =?UTF-8?q?=E5=93=81=E6=A4=9C=E7=B4=A2=E6=99=82=E3=81=AB=E7=99=BA=E7=94=9F?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=81=93=E3=81=A8=E3=81=8C=E3=81=82=E3=82=8B?= =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Repository/ProductRepository.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Repository/ProductRepository.php b/src/Eccube/Repository/ProductRepository.php index 62667001d53..de7d641e6e4 100644 --- a/src/Eccube/Repository/ProductRepository.php +++ b/src/Eccube/Repository/ProductRepository.php @@ -66,7 +66,7 @@ public function __construct( public function findWithSortedClassCategories($productId) { $qb = $this->createQueryBuilder('p'); - $qb->addSelect(['pc', 'cc1', 'cc2', 'pi', 'pt']) + $qb ->innerJoin('p.ProductClasses', 'pc') ->leftJoin('pc.ClassCategory1', 'cc1') ->leftJoin('pc.ClassCategory2', 'cc2') From eeb8bb89d02055af7011b1113021a9a8f9832326 Mon Sep 17 00:00:00 2001 From: hama Date: Fri, 2 Oct 2020 13:42:27 +0900 Subject: [PATCH 010/207] =?UTF-8?q?Entity=E6=8B=A1=E5=BC=B5=E6=99=82?= =?UTF-8?q?=E3=81=AB=E3=82=AA=E3=83=AA=E3=82=B8=E3=83=8A=E3=83=AB=E3=81=AE?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=82=92=E5=84=AA=E5=85=88?= =?UTF-8?q?=E3=81=97=E3=81=A6=E5=8F=82=E7=85=A7=E3=81=99=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Service/EntityProxyService.php | 27 +++++++++- .../Tests/Service/EntityProxyServiceTest.php | 49 +++++++++++++++++++ 2 files changed, 74 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Service/EntityProxyService.php b/src/Eccube/Service/EntityProxyService.php index 90deea8e8ba..2db80a3bf1b 100644 --- a/src/Eccube/Service/EntityProxyService.php +++ b/src/Eccube/Service/EntityProxyService.php @@ -75,8 +75,7 @@ public function generate($includesDirs, $excludeDirs, $outputDir, OutputInterfac // プロキシファイルの生成 foreach ($targetEntities as $targetEntity) { $traits = isset($addTraits[$targetEntity]) ? $addTraits[$targetEntity] : []; - $rc = new ClassReflection($targetEntity); - $fileName = str_replace('\\', '/', $rc->getFileName()); + $fileName = $this->originalEntityPath($targetEntity); $baseName = basename($fileName); $entityTokens = Tokens::fromCode(file_get_contents($fileName)); @@ -115,6 +114,30 @@ public function generate($includesDirs, $excludeDirs, $outputDir, OutputInterfac return $generatedFiles; } + private function originalEntityPath(string $entityClassName): string + { + $projectDir = rtrim(str_replace('\\', '/', $this->container->getParameter('kernel.project_dir')), '/'); + $originalPath = null; + + if (preg_match('/\AEccube\\\\Entity\\\\(.+)\z/', $entityClassName, $matches)) { + $pathToEntity = str_replace('\\', '/', $matches[1]); + $originalPath = sprintf('%s/src/Eccube/Entity/%s.php', $projectDir, $pathToEntity); + } elseif (preg_match('/\ACustomize\\\\Entity\\\\(.+)\z/', $entityClassName, $matches)) { + $pathToEntity = str_replace('\\', '/', $matches[1]); + $originalPath = sprintf('%s/app/Customize/Entity/%s.php', $projectDir, $pathToEntity); + } elseif (preg_match('/\APlugin\\\\([^\\\\]+)\\\\Entity\\\\(.+)\z/', $entityClassName, $matches)) { + $pathToEntity = str_replace('\\', '/', $matches[2]); + $originalPath = sprintf('%s/app/Plugin/%s/Entity/%s.php', $projectDir, $matches[1], $pathToEntity); + } + + if ($originalPath !== null && file_exists($originalPath)) { + return $originalPath; + } + + $rc = new ClassReflection($entityClassName); + return str_replace('\\', '/', $rc->getFileName()); + } + /** * 複数のディレクトリセットをスキャンしてディレクトリセットごとのEntityとTraitのマッピングを返します. * diff --git a/tests/Eccube/Tests/Service/EntityProxyServiceTest.php b/tests/Eccube/Tests/Service/EntityProxyServiceTest.php index 7ec4952c7ea..1779d353197 100644 --- a/tests/Eccube/Tests/Service/EntityProxyServiceTest.php +++ b/tests/Eccube/Tests/Service/EntityProxyServiceTest.php @@ -16,6 +16,7 @@ use Eccube\Annotation\EntityExtension; use Eccube\Service\EntityProxyService; use PhpCsFixer\Tokenizer\CT; +use PhpCsFixer\Tokenizer\Token; use PhpCsFixer\Tokenizer\Tokens; use Eccube\Tests\EccubeTestCase; use Symfony\Component\Finder\Finder; @@ -84,6 +85,54 @@ public function testGenerate() self::assertNotNull($sequence); } + public function testGenerateFromOriginalFile() + { + $this->markTestSkipped(); + + $findSequence = static function (Tokens $tokens) { + return $tokens->findSequence([ + [T_PRIVATE, 'private'], + [T_VARIABLE, '$hoge'], + ]); + }; + + $this->entityProxyService->generate([__DIR__], [], $this->tempOutputDir); + + $generatedFile = $this->tempOutputDir.'/src/Eccube/Entity/Product.php'; + self::assertTrue(file_exists($generatedFile)); + + $tokens = Tokens::fromCode(file_get_contents($generatedFile)); + // private $hoge;がないことを確認 + self::assertNull($findSequence($tokens)); + + // private $hoge;を挿入 + $additionalVariableTokens = [ + new Token([T_WHITESPACE, PHP_EOL . ' ']), + new Token([T_PRIVATE, 'private']), + new Token([T_WHITESPACE, ' ']), + new Token([T_VARIABLE, '$hoge']), + new Token(';'), + new Token([T_WHITESPACE, PHP_EOL]) + ]; + + $classTokens = $tokens->findSequence([[T_CLASS], [T_STRING]]); + $classTokenEnd = $tokens->getNextTokenOfKind(array_keys($classTokens)[0], ['{']); + $tokens->insertAt($classTokenEnd + 1, $additionalVariableTokens); + $newCode = $tokens->generateCode(); + $newTokens = Tokens::fromCode($newCode); + + // private $hoge;が存在することを確認 + self::assertNotNull($findSequence($newTokens)); + + // 再生成する + file_put_contents($generatedFile, $newCode); + $this->entityProxyService->generate([__DIR__], [], $this->tempOutputDir); + $regeneratedTokens = Tokens::fromCode(file_get_contents($generatedFile)); + + // private $hoge;が存在しないことを確認 + self::assertNull($findSequence($regeneratedTokens)); + } + public function testGenerateExcluded() { $this->entityProxyService->generate([__DIR__], [], $this->tempOutputDir); From 5fc0b9954bde585c866d6959c9f7c68d8c2ed857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6=E7=94=B0=20=E6=86=B2=E5=A4=AA=E9=83=8E?= Date: Fri, 2 Oct 2020 21:32:03 +0900 Subject: [PATCH 011/207] =?UTF-8?q?=E3=82=AB=E3=82=B9=E3=82=BF=E3=83=9E?= =?UTF-8?q?=E3=82=A4=E3=82=BA=E9=85=8D=E4=B8=8B=E3=81=AE=E3=83=86=E3=83=B3?= =?UTF-8?q?=E3=83=97=E3=83=AC=E3=83=BC=E3=83=88=E3=83=95=E3=82=A9=E3=83=AB?= =?UTF-8?q?=E3=83=80=E3=81=A7=E3=82=82smartphone=E3=82=92git=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=87=BA=E6=9D=A5=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + app/template/smartphone/.gitkeep | 0 2 files changed, 1 insertion(+) create mode 100644 app/template/smartphone/.gitkeep diff --git a/.gitignore b/.gitignore index 7fef6b6d3ab..6910581b4ad 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ composer.phar !/app/template/admin !/app/template/default !/app/template/user_data +!/app/template/smartphone /app/proxy/entity/* !/app/proxy/entity/.gitkeep /html/plugin/* diff --git a/app/template/smartphone/.gitkeep b/app/template/smartphone/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d From f9e525eb50891e14b144dc6aa904a835bc9264d2 Mon Sep 17 00:00:00 2001 From: kazumi Date: Tue, 6 Oct 2020 01:13:59 +0900 Subject: [PATCH 012/207] =?UTF-8?q?=E7=B4=8D=E5=93=81=E6=9B=B8=E3=81=AE?= =?UTF-8?q?=E9=80=81=E6=96=99=E3=81=8C=EF=BC=92=E3=81=A4=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=81=95=E3=82=8C=E3=82=8B=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Service/OrderPdfService.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Service/OrderPdfService.php b/src/Eccube/Service/OrderPdfService.php index c746b068150..b3c52936122 100644 --- a/src/Eccube/Service/OrderPdfService.php +++ b/src/Eccube/Service/OrderPdfService.php @@ -461,8 +461,12 @@ protected function renderOrderDetailData(Shipping $Shipping) // ========================================= $i = 0; $isShowReducedTaxMess = false; + $Order = $Shipping->getOrder(); /* @var OrderItem $OrderItem */ foreach ($Shipping->getOrderItems() as $OrderItem) { + if (!$Order->isMultiple() && is_null($OrderItem->getProduct())) { + continue; + } // class categoryの生成 $classCategory = ''; /** @var OrderItem $OrderItem */ @@ -498,8 +502,6 @@ protected function renderOrderDetailData(Shipping $Shipping) ++$i; } - $Order = $Shipping->getOrder(); - if (!$Order->isMultiple()) { // ========================================= // 小計 From 9a8cd90f144eb7d987934b1adc4137f7cfa815ac Mon Sep 17 00:00:00 2001 From: hama Date: Tue, 6 Oct 2020 11:26:08 +0900 Subject: [PATCH 013/207] =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E7=94=9F=E6=88=90=E3=82=B3=E3=83=9E=E3=83=B3=E3=83=89?= =?UTF-8?q?=E3=81=AB=E3=82=88=E3=81=A3=E3=81=A6=E7=94=9F=E6=88=90=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=82=8BEntity=E3=81=A7class=5Fexists=E3=82=92?= =?UTF-8?q?=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E3=81=99=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Command/PluginGenerateCommand.php | 88 ++++++++++---------- 1 file changed, 45 insertions(+), 43 deletions(-) diff --git a/src/Eccube/Command/PluginGenerateCommand.php b/src/Eccube/Command/PluginGenerateCommand.php index db83c4298bf..0e199211e4e 100644 --- a/src/Eccube/Command/PluginGenerateCommand.php +++ b/src/Eccube/Command/PluginGenerateCommand.php @@ -396,56 +396,58 @@ public function index(Request \$request) use Doctrine\\ORM\\Mapping as ORM; -/** - * Config - * - * @ORM\Table(name="plg_${snakecased}_config") - * @ORM\Entity(repositoryClass="Plugin\\${code}\\Repository\\ConfigRepository") - */ -class Config -{ - /** - * @var int - * - * @ORM\Column(name="id", type="integer", options={"unsigned":true}) - * @ORM\Id - * @ORM\GeneratedValue(strategy="IDENTITY") - */ - private \$id; - +if (!class_exists('\\Plugin\\${code}\\Entity\\Config', false)) { /** - * @var string + * Config * - * @ORM\Column(name="name", type="string", length=255) - */ - private \$name; - - /** - * @return int + * @ORM\Table(name="plg_${snakecased}_config") + * @ORM\Entity(repositoryClass="Plugin\\${code}\\Repository\\ConfigRepository") */ - public function getId() + class Config { - return \$this->id; - } + /** + * @var int + * + * @ORM\Column(name="id", type="integer", options={"unsigned":true}) + * @ORM\Id + * @ORM\GeneratedValue(strategy="IDENTITY") + */ + private \$id; + + /** + * @var string + * + * @ORM\Column(name="name", type="string", length=255) + */ + private \$name; + + /** + * @return int + */ + public function getId() + { + return \$this->id; + } - /** - * @return string - */ - public function getName() - { - return \$this->name; - } + /** + * @return string + */ + public function getName() + { + return \$this->name; + } - /** - * @param string \$name - * - * @return \$this; - */ - public function setName(\$name) - { - \$this->name = \$name; + /** + * @param string \$name + * + * @return \$this; + */ + public function setName(\$name) + { + \$this->name = \$name; - return \$this; + return \$this; + } } } From 720fc8e7e1dd5180d3611edd3872c0197959e596 Mon Sep 17 00:00:00 2001 From: hama Date: Tue, 6 Oct 2020 11:33:51 +0900 Subject: [PATCH 014/207] =?UTF-8?q?=E3=83=9E=E3=82=B9=E3=82=BFEntity?= =?UTF-8?q?=E3=81=A7class=5Fexists=E3=82=92=E3=83=81=E3=82=A7=E3=83=83?= =?UTF-8?q?=E3=82=AF=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Entity/Master/Authority.php | 40 +++--- src/Eccube/Entity/Master/Country.php | 26 ++-- src/Eccube/Entity/Master/CsvType.php | 70 ++++++----- .../Entity/Master/CustomerOrderStatus.php | 26 ++-- src/Eccube/Entity/Master/CustomerStatus.php | 78 ++++++------ src/Eccube/Entity/Master/DeviceType.php | 32 ++--- src/Eccube/Entity/Master/Job.php | 26 ++-- src/Eccube/Entity/Master/OrderItemType.php | 118 +++++++++--------- src/Eccube/Entity/Master/OrderStatus.php | 96 +++++++------- src/Eccube/Entity/Master/OrderStatusColor.php | 26 ++-- src/Eccube/Entity/Master/PageMax.php | 26 ++-- src/Eccube/Entity/Master/Pref.php | 26 ++-- src/Eccube/Entity/Master/ProductListMax.php | 26 ++-- .../Entity/Master/ProductListOrderBy.php | 26 ++-- src/Eccube/Entity/Master/ProductStatus.php | 80 ++++++------ src/Eccube/Entity/Master/RoundingType.php | 56 +++++---- src/Eccube/Entity/Master/SaleType.php | 30 ++--- src/Eccube/Entity/Master/Sex.php | 26 ++-- src/Eccube/Entity/Master/TaxDisplayType.php | 48 +++---- src/Eccube/Entity/Master/TaxType.php | 82 ++++++------ src/Eccube/Entity/Master/Work.php | 38 +++--- 21 files changed, 522 insertions(+), 480 deletions(-) diff --git a/src/Eccube/Entity/Master/Authority.php b/src/Eccube/Entity/Master/Authority.php index 5d797886130..93f9b08b04b 100644 --- a/src/Eccube/Entity/Master/Authority.php +++ b/src/Eccube/Entity/Master/Authority.php @@ -15,25 +15,27 @@ use Doctrine\ORM\Mapping as ORM; -/** - * Authority - * - * @ORM\Table(name="mtb_authority") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\AuthorityRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class Authority extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(Authority::class, false)) { /** - * システム管理者 + * Authority + * + * @ORM\Table(name="mtb_authority") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\AuthorityRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") */ - const ADMIN = 0; + class Authority extends \Eccube\Entity\Master\AbstractMasterEntity + { + /** + * システム管理者 + */ + const ADMIN = 0; - /** - * 店舗オーナー - */ - const OWNER = 1; -} + /** + * 店舗オーナー + */ + const OWNER = 1; + } +} \ No newline at end of file diff --git a/src/Eccube/Entity/Master/Country.php b/src/Eccube/Entity/Master/Country.php index 07586e9194f..a27a7046ebd 100644 --- a/src/Eccube/Entity/Master/Country.php +++ b/src/Eccube/Entity/Master/Country.php @@ -15,16 +15,18 @@ use Doctrine\ORM\Mapping as ORM; -/** - * Country - * - * @ORM\Table(name="mtb_country") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CountryRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class Country extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(Country::class, false)) { + /** + * Country + * + * @ORM\Table(name="mtb_country") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CountryRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") + */ + class Country extends \Eccube\Entity\Master\AbstractMasterEntity + { + } } diff --git a/src/Eccube/Entity/Master/CsvType.php b/src/Eccube/Entity/Master/CsvType.php index 63f0d71c389..07123a77f79 100644 --- a/src/Eccube/Entity/Master/CsvType.php +++ b/src/Eccube/Entity/Master/CsvType.php @@ -15,40 +15,42 @@ use Doctrine\ORM\Mapping as ORM; -/** - * CsvType - * - * @ORM\Table(name="mtb_csv_type") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CsvTypeRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class CsvType extends \Eccube\Entity\Master\AbstractMasterEntity -{ - /** - * @var integer - */ - const CSV_TYPE_PRODUCT = 1; - - /** - * @var integer - */ - const CSV_TYPE_CUSTOMER = 2; - - /** - * @var integer - */ - const CSV_TYPE_ORDER = 3; - - /** - * @var integer - */ - const CSV_TYPE_SHIPPING = 4; - +if (!class_exists(CsvType::class, false)) { /** - * @var integer + * CsvType + * + * @ORM\Table(name="mtb_csv_type") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CsvTypeRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") */ - const CSV_TYPE_CATEGORY = 5; + class CsvType extends \Eccube\Entity\Master\AbstractMasterEntity + { + /** + * @var integer + */ + const CSV_TYPE_PRODUCT = 1; + + /** + * @var integer + */ + const CSV_TYPE_CUSTOMER = 2; + + /** + * @var integer + */ + const CSV_TYPE_ORDER = 3; + + /** + * @var integer + */ + const CSV_TYPE_SHIPPING = 4; + + /** + * @var integer + */ + const CSV_TYPE_CATEGORY = 5; + } } diff --git a/src/Eccube/Entity/Master/CustomerOrderStatus.php b/src/Eccube/Entity/Master/CustomerOrderStatus.php index b3a0403138a..1772aa8883f 100644 --- a/src/Eccube/Entity/Master/CustomerOrderStatus.php +++ b/src/Eccube/Entity/Master/CustomerOrderStatus.php @@ -15,16 +15,18 @@ use Doctrine\ORM\Mapping as ORM; -/** - * CustomerOrderStatus - * - * @ORM\Table(name="mtb_customer_order_status") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CustomerOrderStatusRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class CustomerOrderStatus extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(CustomerOrderStatus::class, false)) { + /** + * CustomerOrderStatus + * + * @ORM\Table(name="mtb_customer_order_status") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CustomerOrderStatusRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") + */ + class CustomerOrderStatus extends \Eccube\Entity\Master\AbstractMasterEntity + { + } } diff --git a/src/Eccube/Entity/Master/CustomerStatus.php b/src/Eccube/Entity/Master/CustomerStatus.php index ca32ee51d2e..4455381b6d4 100644 --- a/src/Eccube/Entity/Master/CustomerStatus.php +++ b/src/Eccube/Entity/Master/CustomerStatus.php @@ -15,44 +15,46 @@ use Doctrine\ORM\Mapping as ORM; -/** - * CustomerStatus - * - * @ORM\Table(name="mtb_customer_status") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CustomerStatusRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class CustomerStatus extends \Eccube\Entity\Master\AbstractMasterEntity -{ - /** - * 仮会員. - * - * @deprecated - */ - const NONACTIVE = 1; - +if (!class_exists(CustomerStatus::class, false)) { /** - * 本会員. + * CustomerStatus * - * @deprecated - */ - const ACTIVE = 2; - - /** - * 仮会員. - */ - const PROVISIONAL = 1; - - /** - * 本会員 - */ - const REGULAR = 2; - - /** - * 退会 + * @ORM\Table(name="mtb_customer_status") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\CustomerStatusRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") */ - const WITHDRAWING = 3; -} + class CustomerStatus extends \Eccube\Entity\Master\AbstractMasterEntity + { + /** + * 仮会員. + * + * @deprecated + */ + const NONACTIVE = 1; + + /** + * 本会員. + * + * @deprecated + */ + const ACTIVE = 2; + + /** + * 仮会員. + */ + const PROVISIONAL = 1; + + /** + * 本会員 + */ + const REGULAR = 2; + + /** + * 退会 + */ + const WITHDRAWING = 3; + } +} \ No newline at end of file diff --git a/src/Eccube/Entity/Master/DeviceType.php b/src/Eccube/Entity/Master/DeviceType.php index 8a4f2c38127..f4b7d8b4d91 100644 --- a/src/Eccube/Entity/Master/DeviceType.php +++ b/src/Eccube/Entity/Master/DeviceType.php @@ -15,19 +15,21 @@ use Doctrine\ORM\Mapping as ORM; -/** - * DeviceType - * - * @ORM\Table(name="mtb_device_type") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\DeviceTypeRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class DeviceType extends \Eccube\Entity\Master\AbstractMasterEntity -{ - const DEVICE_TYPE_MB = 2; - // const DEVICE_TYPE_TABLET = 3; - const DEVICE_TYPE_PC = 10; +if (!class_exists(DeviceType::class, false)) { + /** + * DeviceType + * + * @ORM\Table(name="mtb_device_type") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\DeviceTypeRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") + */ + class DeviceType extends \Eccube\Entity\Master\AbstractMasterEntity + { + const DEVICE_TYPE_MB = 2; + // const DEVICE_TYPE_TABLET = 3; + const DEVICE_TYPE_PC = 10; + } } diff --git a/src/Eccube/Entity/Master/Job.php b/src/Eccube/Entity/Master/Job.php index f537f5018fd..b786ff1422f 100644 --- a/src/Eccube/Entity/Master/Job.php +++ b/src/Eccube/Entity/Master/Job.php @@ -15,16 +15,18 @@ use Doctrine\ORM\Mapping as ORM; -/** - * Job - * - * @ORM\Table(name="mtb_job") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\JobRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class Job extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(Job::class, false)) { + /** + * Job + * + * @ORM\Table(name="mtb_job") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\JobRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") + */ + class Job extends \Eccube\Entity\Master\AbstractMasterEntity + { + } } diff --git a/src/Eccube/Entity/Master/OrderItemType.php b/src/Eccube/Entity/Master/OrderItemType.php index d8b6e3ed5e6..1857bc6adae 100644 --- a/src/Eccube/Entity/Master/OrderItemType.php +++ b/src/Eccube/Entity/Master/OrderItemType.php @@ -15,73 +15,75 @@ use Doctrine\ORM\Mapping as ORM; -/** - * OrderItemType - * - * 受注明細種別 - * - * @ORM\Table(name="mtb_order_item_type") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderItemTypeRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class OrderItemType extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(OrderItemType::class, false)) { /** - * 商品. + * OrderItemType * - * @var integer - */ - const PRODUCT = 1; - - /** - * 送料. + * 受注明細種別 * - * @var integer + * @ORM\Table(name="mtb_order_item_type") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderItemTypeRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") */ - const DELIVERY_FEE = 2; + class OrderItemType extends \Eccube\Entity\Master\AbstractMasterEntity + { + /** + * 商品. + * + * @var integer + */ + const PRODUCT = 1; - /** - * 手数料. - * - * @var integer - */ - const CHARGE = 3; + /** + * 送料. + * + * @var integer + */ + const DELIVERY_FEE = 2; - /** - * 値引き. - * - * @var integer - */ - const DISCOUNT = 4; + /** + * 手数料. + * + * @var integer + */ + const CHARGE = 3; - /** - * 税. - * - * @var integer - */ - const TAX = 5; + /** + * 値引き. + * + * @var integer + */ + const DISCOUNT = 4; - /** - * ポイント. - * - * @var integer - */ - const POINT = 6; + /** + * 税. + * + * @var integer + */ + const TAX = 5; - /** - * 商品かどうか - * - * @return bool - */ - public function isProduct() - { - if ($this->id == self::PRODUCT) { - return true; - } + /** + * ポイント. + * + * @var integer + */ + const POINT = 6; + + /** + * 商品かどうか + * + * @return bool + */ + public function isProduct() + { + if ($this->id == self::PRODUCT) { + return true; + } - return false; + return false; + } } } diff --git a/src/Eccube/Entity/Master/OrderStatus.php b/src/Eccube/Entity/Master/OrderStatus.php index 93b7cdeace2..51a58382c3e 100644 --- a/src/Eccube/Entity/Master/OrderStatus.php +++ b/src/Eccube/Entity/Master/OrderStatus.php @@ -15,57 +15,59 @@ use Doctrine\ORM\Mapping as ORM; -/** - * OrderStatus - * - * @ORM\Table(name="mtb_order_status") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderStatusRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class OrderStatus extends \Eccube\Entity\Master\AbstractMasterEntity -{ - /** 新規受付. */ - const NEW = 1; - /** 注文取消し. */ - const CANCEL = 3; - /** 対応中. */ - const IN_PROGRESS = 4; - /** 発送済み. */ - const DELIVERED = 5; - /** 入金済み. */ - const PAID = 6; - /** 決済処理中. */ - const PENDING = 7; - /** 購入処理中. */ - const PROCESSING = 8; - /** 返品 */ - const RETURNED = 9; - +if (!class_exists(OrderStatus::class, false)) { /** - * 受注一覧画面で, ステータスごとの受注件数を表示するかどうか - * - * @var bool + * OrderStatus * - * @ORM\Column(name="display_order_count", type="boolean", options={"default":false}) - */ - private $display_order_count = false; - - /** - * @return bool + * @ORM\Table(name="mtb_order_status") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderStatusRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") */ - public function isDisplayOrderCount() + class OrderStatus extends \Eccube\Entity\Master\AbstractMasterEntity { - return $this->display_order_count; - } + /** 新規受付. */ + const NEW = 1; + /** 注文取消し. */ + const CANCEL = 3; + /** 対応中. */ + const IN_PROGRESS = 4; + /** 発送済み. */ + const DELIVERED = 5; + /** 入金済み. */ + const PAID = 6; + /** 決済処理中. */ + const PENDING = 7; + /** 購入処理中. */ + const PROCESSING = 8; + /** 返品 */ + const RETURNED = 9; - /** - * @param bool $display_order_count - */ - public function setDisplayOrderCount($display_order_count = false) - { - $this->display_order_count = $display_order_count; + /** + * 受注一覧画面で, ステータスごとの受注件数を表示するかどうか + * + * @var bool + * + * @ORM\Column(name="display_order_count", type="boolean", options={"default":false}) + */ + private $display_order_count = false; + + /** + * @return bool + */ + public function isDisplayOrderCount() + { + return $this->display_order_count; + } + + /** + * @param bool $display_order_count + */ + public function setDisplayOrderCount($display_order_count = false) + { + $this->display_order_count = $display_order_count; + } } } diff --git a/src/Eccube/Entity/Master/OrderStatusColor.php b/src/Eccube/Entity/Master/OrderStatusColor.php index a37c30afe2a..a6a97b64506 100644 --- a/src/Eccube/Entity/Master/OrderStatusColor.php +++ b/src/Eccube/Entity/Master/OrderStatusColor.php @@ -15,16 +15,18 @@ use Doctrine\ORM\Mapping as ORM; -/** - * OrderStatusColor - * - * @ORM\Table(name="mtb_order_status_color") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderStatusColorRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class OrderStatusColor extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(OrderStatusColor::class, false)) { + /** + * OrderStatusColor + * + * @ORM\Table(name="mtb_order_status_color") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\OrderStatusColorRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") + */ + class OrderStatusColor extends \Eccube\Entity\Master\AbstractMasterEntity + { + } } diff --git a/src/Eccube/Entity/Master/PageMax.php b/src/Eccube/Entity/Master/PageMax.php index 428ad3b085e..c937dce8f99 100644 --- a/src/Eccube/Entity/Master/PageMax.php +++ b/src/Eccube/Entity/Master/PageMax.php @@ -15,16 +15,18 @@ use Doctrine\ORM\Mapping as ORM; -/** - * PageMax - * - * @ORM\Table(name="mtb_page_max") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\PageMaxRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class PageMax extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(PageMax::class, false)) { + /** + * PageMax + * + * @ORM\Table(name="mtb_page_max") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\PageMaxRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") + */ + class PageMax extends \Eccube\Entity\Master\AbstractMasterEntity + { + } } diff --git a/src/Eccube/Entity/Master/Pref.php b/src/Eccube/Entity/Master/Pref.php index 00969ca4164..7d4f879cb60 100644 --- a/src/Eccube/Entity/Master/Pref.php +++ b/src/Eccube/Entity/Master/Pref.php @@ -15,16 +15,18 @@ use Doctrine\ORM\Mapping as ORM; -/** - * Pref - * - * @ORM\Table(name="mtb_pref") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\PrefRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class Pref extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(Pref::class, false)) { + /** + * Pref + * + * @ORM\Table(name="mtb_pref") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\PrefRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") + */ + class Pref extends \Eccube\Entity\Master\AbstractMasterEntity + { + } } diff --git a/src/Eccube/Entity/Master/ProductListMax.php b/src/Eccube/Entity/Master/ProductListMax.php index be6525ca419..9144415aef1 100644 --- a/src/Eccube/Entity/Master/ProductListMax.php +++ b/src/Eccube/Entity/Master/ProductListMax.php @@ -15,16 +15,18 @@ use Doctrine\ORM\Mapping as ORM; -/** - * ProductListMax - * - * @ORM\Table(name="mtb_product_list_max") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductListMaxRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class ProductListMax extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(ProductListMax::class, false)) { + /** + * ProductListMax + * + * @ORM\Table(name="mtb_product_list_max") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductListMaxRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") + */ + class ProductListMax extends \Eccube\Entity\Master\AbstractMasterEntity + { + } } diff --git a/src/Eccube/Entity/Master/ProductListOrderBy.php b/src/Eccube/Entity/Master/ProductListOrderBy.php index 6b91d7f5eec..fa8b58db382 100644 --- a/src/Eccube/Entity/Master/ProductListOrderBy.php +++ b/src/Eccube/Entity/Master/ProductListOrderBy.php @@ -15,16 +15,18 @@ use Doctrine\ORM\Mapping as ORM; -/** - * ProductListOrderBy - * - * @ORM\Table(name="mtb_product_list_order_by") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductListOrderByRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class ProductListOrderBy extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(ProductListOrderBy::class, false)) { + /** + * ProductListOrderBy + * + * @ORM\Table(name="mtb_product_list_order_by") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductListOrderByRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") + */ + class ProductListOrderBy extends \Eccube\Entity\Master\AbstractMasterEntity + { + } } diff --git a/src/Eccube/Entity/Master/ProductStatus.php b/src/Eccube/Entity/Master/ProductStatus.php index cacd8b50c93..a61eb2c2fd2 100644 --- a/src/Eccube/Entity/Master/ProductStatus.php +++ b/src/Eccube/Entity/Master/ProductStatus.php @@ -15,49 +15,51 @@ use Doctrine\ORM\Mapping as ORM; -/** - * ProductStatus - * - * 商品の公開ステータス - * - * @ORM\Table(name="mtb_product_status") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductStatusRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class ProductStatus extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(ProductStatus::class, false)) { /** - * 公開 + * ProductStatus * - * フロント画面: 表示されます。 - * 管理画面商品一覧: デフォルトで検索対象となります。 + * 商品の公開ステータス * - * @var integer + * @ORM\Table(name="mtb_product_status") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\ProductStatusRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") */ - const DISPLAY_SHOW = 1; + class ProductStatus extends \Eccube\Entity\Master\AbstractMasterEntity + { + /** + * 公開 + * + * フロント画面: 表示されます。 + * 管理画面商品一覧: デフォルトで検索対象となります。 + * + * @var integer + */ + const DISPLAY_SHOW = 1; - /** - * 非公開 - * - * フロント画面: 表示されません。 - * 管理画面商品一覧: デフォルトで検索対象となります。 - * - * @var integer - */ - const DISPLAY_HIDE = 2; + /** + * 非公開 + * + * フロント画面: 表示されません。 + * 管理画面商品一覧: デフォルトで検索対象となります。 + * + * @var integer + */ + const DISPLAY_HIDE = 2; - /** - * 廃止 - * - * 通常、商品情報は受注情報などに紐づいているため、商品情報を物理削除することはできません。 - * 廃止のステータスは2系や3系での論理削除に近い役割となります。 - * フロント画面: 表示されません。 - * 管理画面商品一覧: デフォルトで検索対象外となり、廃止の公開ステータスを指定して検索可能です。 - * - * @var integer - */ - const DISPLAY_ABOLISHED = 3; + /** + * 廃止 + * + * 通常、商品情報は受注情報などに紐づいているため、商品情報を物理削除することはできません。 + * 廃止のステータスは2系や3系での論理削除に近い役割となります。 + * フロント画面: 表示されません。 + * 管理画面商品一覧: デフォルトで検索対象外となり、廃止の公開ステータスを指定して検索可能です。 + * + * @var integer + */ + const DISPLAY_ABOLISHED = 3; + } } diff --git a/src/Eccube/Entity/Master/RoundingType.php b/src/Eccube/Entity/Master/RoundingType.php index 4b9acfe295c..a02f1b2663a 100644 --- a/src/Eccube/Entity/Master/RoundingType.php +++ b/src/Eccube/Entity/Master/RoundingType.php @@ -15,34 +15,36 @@ use Doctrine\ORM\Mapping as ORM; -/** - * RoundingType - * - * @ORM\Table(name="mtb_rounding_type") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\RoundingTypeRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class RoundingType extends \Eccube\Entity\Master\AbstractMasterEntity -{ - /** - * 四捨五入. - * - * @var integer - */ - const ROUND = 1; - /** - * 切り捨て. - * - * @var integer - */ - const FLOOR = 2; +if (!class_exists(RoundingType::class, false)) { /** - * 切り上げ. + * RoundingType * - * @var integer + * @ORM\Table(name="mtb_rounding_type") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\RoundingTypeRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") */ - const CEIL = 3; + class RoundingType extends \Eccube\Entity\Master\AbstractMasterEntity + { + /** + * 四捨五入. + * + * @var integer + */ + const ROUND = 1; + /** + * 切り捨て. + * + * @var integer + */ + const FLOOR = 2; + /** + * 切り上げ. + * + * @var integer + */ + const CEIL = 3; + } } diff --git a/src/Eccube/Entity/Master/SaleType.php b/src/Eccube/Entity/Master/SaleType.php index 8104fce9196..a88a6a0e0ef 100644 --- a/src/Eccube/Entity/Master/SaleType.php +++ b/src/Eccube/Entity/Master/SaleType.php @@ -15,20 +15,22 @@ use Doctrine\ORM\Mapping as ORM; -/** - * SaleType - * - * @ORM\Table(name="mtb_sale_type") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\SaleTypeRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class SaleType extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(SaleType::class, false)) { /** - * @var integer + * SaleType + * + * @ORM\Table(name="mtb_sale_type") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\SaleTypeRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") */ - const SALE_TYPE_NORMAL = 1; + class SaleType extends \Eccube\Entity\Master\AbstractMasterEntity + { + /** + * @var integer + */ + const SALE_TYPE_NORMAL = 1; + } } diff --git a/src/Eccube/Entity/Master/Sex.php b/src/Eccube/Entity/Master/Sex.php index 255f9739cea..f10fa286ca8 100644 --- a/src/Eccube/Entity/Master/Sex.php +++ b/src/Eccube/Entity/Master/Sex.php @@ -15,16 +15,18 @@ use Doctrine\ORM\Mapping as ORM; -/** - * Sex - * - * @ORM\Table(name="mtb_sex") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\SexRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class Sex extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(Sex::class, false)) { + /** + * Sex + * + * @ORM\Table(name="mtb_sex") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\SexRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") + */ + class Sex extends \Eccube\Entity\Master\AbstractMasterEntity + { + } } diff --git a/src/Eccube/Entity/Master/TaxDisplayType.php b/src/Eccube/Entity/Master/TaxDisplayType.php index 4a8acc98402..04b9260a794 100644 --- a/src/Eccube/Entity/Master/TaxDisplayType.php +++ b/src/Eccube/Entity/Master/TaxDisplayType.php @@ -15,31 +15,33 @@ use Doctrine\ORM\Mapping as ORM; -/** - * TaxDisplayType - * - * 税抜表示 / 税込表示 - * - * @ORM\Table(name="mtb_tax_display_type") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\TaxDisplayTypeRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class TaxDisplayType extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(TaxDisplayType::class, false)) { /** - * 税抜. + * TaxDisplayType * - * @var integer - */ - const EXCLUDED = 1; - - /** - * 税込. + * 税抜表示 / 税込表示 * - * @var integer + * @ORM\Table(name="mtb_tax_display_type") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\TaxDisplayTypeRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") */ - const INCLUDED = 2; + class TaxDisplayType extends \Eccube\Entity\Master\AbstractMasterEntity + { + /** + * 税抜. + * + * @var integer + */ + const EXCLUDED = 1; + + /** + * 税込. + * + * @var integer + */ + const INCLUDED = 2; + } } diff --git a/src/Eccube/Entity/Master/TaxType.php b/src/Eccube/Entity/Master/TaxType.php index 65643c613a8..d481f74da28 100644 --- a/src/Eccube/Entity/Master/TaxType.php +++ b/src/Eccube/Entity/Master/TaxType.php @@ -15,50 +15,52 @@ use Doctrine\ORM\Mapping as ORM; -/** - * TaxType - * - * 消費税の課税区分 - * - * @ORM\Table(name="mtb_tax_type") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\TaxTypeRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - * - * @see https://www.nta.go.jp/taxanswer/shohi/6209.htm - */ -class TaxType extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(TaxType::class, false)) { /** - * 課税. + * TaxType * - * 消費税は、国内において事業者が事業として対価を得て行う取引を課税の対象としています。 + * 消費税の課税区分 * - * @var integer - */ - const TAXATION = 1; - - /** - * 不課税. + * @ORM\Table(name="mtb_tax_type") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\TaxTypeRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") * - * 消費税の課税の対象は、国内において事業者が事業として対価を得て行う資産の譲渡等と輸入取引です。 - * これに当たらない取引には消費税はかかりません。 - * 例えば、国外取引、対価を得て行うことに当たらない寄附や単なる贈与、出資に対する配当などがこれに当たります。 - * - * @var integer + * @see https://www.nta.go.jp/taxanswer/shohi/6209.htm */ - const NON_TAXABLE = 2; + class TaxType extends \Eccube\Entity\Master\AbstractMasterEntity + { + /** + * 課税. + * + * 消費税は、国内において事業者が事業として対価を得て行う取引を課税の対象としています。 + * + * @var integer + */ + const TAXATION = 1; - /** - * 非課税. - * - * 国内において事業者が事業として対価を得て行う資産の譲渡等であっても、課税対象になじまないものや社会政策的配慮から消費税を課税しない取引があります。 - * これを非課税取引といいます。 - * 例えば、土地、有価証券、商品券などの譲渡、預貯金の利子や社会保険医療などがこれに当たります。 - * - * @var integer - */ - const TAX_EXEMPT = 3; + /** + * 不課税. + * + * 消費税の課税の対象は、国内において事業者が事業として対価を得て行う資産の譲渡等と輸入取引です。 + * これに当たらない取引には消費税はかかりません。 + * 例えば、国外取引、対価を得て行うことに当たらない寄附や単なる贈与、出資に対する配当などがこれに当たります。 + * + * @var integer + */ + const NON_TAXABLE = 2; + + /** + * 非課税. + * + * 国内において事業者が事業として対価を得て行う資産の譲渡等であっても、課税対象になじまないものや社会政策的配慮から消費税を課税しない取引があります。 + * これを非課税取引といいます。 + * 例えば、土地、有価証券、商品券などの譲渡、預貯金の利子や社会保険医療などがこれに当たります。 + * + * @var integer + */ + const TAX_EXEMPT = 3; + } } diff --git a/src/Eccube/Entity/Master/Work.php b/src/Eccube/Entity/Master/Work.php index 48feed81271..a69724257ae 100644 --- a/src/Eccube/Entity/Master/Work.php +++ b/src/Eccube/Entity/Master/Work.php @@ -15,25 +15,27 @@ use Doctrine\ORM\Mapping as ORM; -/** - * Work - * - * @ORM\Table(name="mtb_work") - * @ORM\InheritanceType("SINGLE_TABLE") - * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) - * @ORM\HasLifecycleCallbacks() - * @ORM\Entity(repositoryClass="Eccube\Repository\Master\WorkRepository") - * @ORM\Cache(usage="NONSTRICT_READ_WRITE") - */ -class Work extends \Eccube\Entity\Master\AbstractMasterEntity -{ +if (!class_exists(Work::class, false)) { /** - * 非稼働 + * Work + * + * @ORM\Table(name="mtb_work") + * @ORM\InheritanceType("SINGLE_TABLE") + * @ORM\DiscriminatorColumn(name="discriminator_type", type="string", length=255) + * @ORM\HasLifecycleCallbacks() + * @ORM\Entity(repositoryClass="Eccube\Repository\Master\WorkRepository") + * @ORM\Cache(usage="NONSTRICT_READ_WRITE") */ - const NON_ACTIVE = 0; + class Work extends \Eccube\Entity\Master\AbstractMasterEntity + { + /** + * 非稼働 + */ + const NON_ACTIVE = 0; - /** - * 稼働 - */ - const ACTIVE = 1; + /** + * 稼働 + */ + const ACTIVE = 1; + } } From 8e43f929a7425bb07caf29613fa1c5daf202676c Mon Sep 17 00:00:00 2001 From: Satoshi Nakano Date: Wed, 7 Oct 2020 13:02:47 +0900 Subject: [PATCH 015/207] =?UTF-8?q?Member=E3=81=AE=E3=82=B5=E3=83=96?= =?UTF-8?q?=E3=82=AF=E3=83=A9=E3=82=B9=E3=82=82true=E3=82=92=E8=BF=94?= =?UTF-8?q?=E3=81=99=E3=82=88=E3=81=86=E3=81=AB=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Security/Core/User/MemberProvider.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Security/Core/User/MemberProvider.php b/src/Eccube/Security/Core/User/MemberProvider.php index f045d12dc46..b27af2322cd 100644 --- a/src/Eccube/Security/Core/User/MemberProvider.php +++ b/src/Eccube/Security/Core/User/MemberProvider.php @@ -86,6 +86,6 @@ public function refreshUser(UserInterface $user) */ public function supportsClass($class) { - return Member::class === $class; + return Member::class === $class || is_subclass_of($class,Member::class); } } From fdb6ae791ffde31d6a2316ee8b6f88d4307d6271 Mon Sep 17 00:00:00 2001 From: kazumi watanabe <34618717+kazumiiiiiiiiiii@users.noreply.github.com> Date: Thu, 8 Oct 2020 19:19:37 +0900 Subject: [PATCH 016/207] Apply suggestions from code review Co-authored-by: Hideki Okajima --- src/Eccube/Service/OrderPdfService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Service/OrderPdfService.php b/src/Eccube/Service/OrderPdfService.php index b3c52936122..1262c1c7cb3 100644 --- a/src/Eccube/Service/OrderPdfService.php +++ b/src/Eccube/Service/OrderPdfService.php @@ -464,7 +464,7 @@ protected function renderOrderDetailData(Shipping $Shipping) $Order = $Shipping->getOrder(); /* @var OrderItem $OrderItem */ foreach ($Shipping->getOrderItems() as $OrderItem) { - if (!$Order->isMultiple() && is_null($OrderItem->getProduct())) { + if (!$Order->isMultiple() && !$OrderItem->isProduct()) { continue; } // class categoryの生成 From bc26d6bab1e3b355f9026785913215dc22c05aa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6=E7=94=B0=20=E6=86=B2=E5=A4=AA=E9=83=8E?= Date: Sun, 11 Oct 2020 19:49:15 +0900 Subject: [PATCH 017/207] =?UTF-8?q?AbstractRepository::save()=20=E3=81=AE?= =?UTF-8?q?=E3=82=BF=E3=82=A4=E3=83=97=E3=83=92=E3=83=B3=E3=83=88=EF=BC=88?= =?UTF-8?q?=E3=82=A2=E3=83=8E=E3=83=86=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3?= =?UTF-8?q?=EF=BC=89=E3=81=AE=E8=AA=A4=E3=82=8A=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Repository/AbstractRepository.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Repository/AbstractRepository.php b/src/Eccube/Repository/AbstractRepository.php index 691f9b7c3fb..285aa8ffb4c 100644 --- a/src/Eccube/Repository/AbstractRepository.php +++ b/src/Eccube/Repository/AbstractRepository.php @@ -37,7 +37,7 @@ public function delete($entity) /** * エンティティの登録/保存します。 * - * @param $entity|AbstractEntity エンティティ + * @param AbstractEntity $entity */ public function save($entity) { From 31a7bff32e14dd494d359c77b68ca82761afb319 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Mon, 12 Oct 2020 18:39:32 +0900 Subject: [PATCH 018/207] refs #4678 --- src/Eccube/Controller/Admin/Order/EditController.php | 2 +- src/Eccube/Repository/ProductRepository.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Controller/Admin/Order/EditController.php b/src/Eccube/Controller/Admin/Order/EditController.php index 0fdba5afeee..377dd010f65 100644 --- a/src/Eccube/Controller/Admin/Order/EditController.php +++ b/src/Eccube/Controller/Admin/Order/EditController.php @@ -629,7 +629,7 @@ public function searchProduct(Request $request, $page_no = null, Paginator $pagi foreach ($Products as $Product) { /* @var $builder \Symfony\Component\Form\FormBuilderInterface */ $builder = $this->formFactory->createNamedBuilder('', AddCartType::class, null, [ - 'product' => $this->productRepository->findWithSortedClassCategories($Product->getId()), + 'product' => $Product, ]); $addCartForm = $builder->getForm(); $forms[$Product->getId()] = $addCartForm->createView(); diff --git a/src/Eccube/Repository/ProductRepository.php b/src/Eccube/Repository/ProductRepository.php index de7d641e6e4..62667001d53 100644 --- a/src/Eccube/Repository/ProductRepository.php +++ b/src/Eccube/Repository/ProductRepository.php @@ -66,7 +66,7 @@ public function __construct( public function findWithSortedClassCategories($productId) { $qb = $this->createQueryBuilder('p'); - $qb + $qb->addSelect(['pc', 'cc1', 'cc2', 'pi', 'pt']) ->innerJoin('p.ProductClasses', 'pc') ->leftJoin('pc.ClassCategory1', 'cc1') ->leftJoin('pc.ClassCategory2', 'cc2') From 97357014a6b0d516100a345930149bd43d7a5570 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Mon, 19 Oct 2020 15:52:40 +0900 Subject: [PATCH 019/207] =?UTF-8?q?=E4=BC=9A=E7=A4=BE=E5=90=8D=E3=82=92?= =?UTF-8?q?=E5=87=BA=E5=8A=9B=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Service/OrderPdfService.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Service/OrderPdfService.php b/src/Eccube/Service/OrderPdfService.php index 1262c1c7cb3..8cad2fb709b 100644 --- a/src/Eccube/Service/OrderPdfService.php +++ b/src/Eccube/Service/OrderPdfService.php @@ -413,8 +413,17 @@ protected function renderOrderData(Shipping $Shipping) $this->lfText(27, 51, $Shipping->getAddr02(), 10); //購入者住所2 // 購入者氏名 - $text = $Shipping->getName01().' '.$Shipping->getName02().' 様'; - $this->lfText(27, 59, $text, 11); + if ($Shipping->getCompanyName()) { + // 会社名 + $text = $Shipping->getCompanyName(); + $this->lfText(27, 57, $text, 11); + // 氏名 + $text = $Shipping->getName01().' '.$Shipping->getName02().' 様'; + $this->lfText(27, 63, $text, 11); + } else { + $text = $Shipping->getName01().' '.$Shipping->getName02().' 様'; + $this->lfText(27, 59, $text, 11); + } // ========================================= // お買い上げ明細部 From 5accbe92feab4afffe85d997882affd8ad6b6731 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Mon, 19 Oct 2020 16:17:49 +0900 Subject: [PATCH 020/207] =?UTF-8?q?scrutinizer=E3=81=AE=E6=8C=87=E6=91=98?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Service/OrderPdfService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Service/OrderPdfService.php b/src/Eccube/Service/OrderPdfService.php index 8cad2fb709b..7281955ffb3 100644 --- a/src/Eccube/Service/OrderPdfService.php +++ b/src/Eccube/Service/OrderPdfService.php @@ -413,7 +413,7 @@ protected function renderOrderData(Shipping $Shipping) $this->lfText(27, 51, $Shipping->getAddr02(), 10); //購入者住所2 // 購入者氏名 - if ($Shipping->getCompanyName()) { + if (null !== $Shipping->getCompanyName()) { // 会社名 $text = $Shipping->getCompanyName(); $this->lfText(27, 57, $text, 11); From 4382e9ac3aabdf4cdf1bd8d4cc42d50671242178 Mon Sep 17 00:00:00 2001 From: Kiyoshi Yamamura Date: Sat, 24 Oct 2020 04:33:00 +0900 Subject: [PATCH 021/207] =?UTF-8?q?html=E3=83=A1=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E3=82=92=E5=87=BA=E5=8A=9B=E3=81=99=E3=82=8B=E9=9A=9B=E3=81=AB?= =?UTF-8?q?=E3=80=81=E9=80=94=E4=B8=AD=E3=81=AE=E3=83=87=E3=82=A3=E3=83=AC?= =?UTF-8?q?=E3=82=AF=E3=83=88=E3=83=AA=E5=90=8D=E3=81=AA=E3=81=A9=E3=81=AB?= =?UTF-8?q?.=E3=81=8C=E5=90=AB=E3=81=BE=E3=82=8C=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=9F=E3=82=89=E6=AD=A3=E5=B8=B8=E3=81=AB=E5=87=BA=E5=8A=9B?= =?UTF-8?q?=E3=81=95=E3=82=8C=E3=81=AA=E3=81=84=E4=B8=8D=E5=85=B7=E5=90=88?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/Admin/Setting/Shop/MailController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Controller/Admin/Setting/Shop/MailController.php b/src/Eccube/Controller/Admin/Setting/Shop/MailController.php index d8fc1731617..b8ed5035537 100644 --- a/src/Eccube/Controller/Admin/Setting/Shop/MailController.php +++ b/src/Eccube/Controller/Admin/Setting/Shop/MailController.php @@ -177,9 +177,9 @@ public function preview(Request $request) protected function getHtmlFileName($fileName) { // HTMLテンプレートファイルの取得 - $targetTemplate = explode('.', $fileName); + $targetTemplate = pathinfo($fileName); $suffix = '.html'; - return $targetTemplate[0].$suffix.'.'.$targetTemplate[1]; + return $targetTemplate['dirname'].DIRECTORY_SEPARATOR.$targetTemplate['filename'].$suffix.'.'.$targetTemplate['extension']; } } From 2942142b6bd9552d39d14ee1a46eb2a18db16b3c Mon Sep 17 00:00:00 2001 From: Kiyoshi Yamamura Date: Sat, 24 Oct 2020 06:29:21 +0900 Subject: [PATCH 022/207] =?UTF-8?q?=E3=83=9A=E3=83=BC=E3=82=B8=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E4=B8=80=E8=A6=A7=E7=94=BB=E9=9D=A2=E3=81=A7=E3=83=AB?= =?UTF-8?q?=E3=83=BC=E3=83=88=E5=90=8D=E3=80=81URL=E3=80=81=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=A4=E3=83=AB=E5=90=8D=E3=82=92=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Content/PageController.php | 3 +- src/Eccube/Resource/locale/messages.ja.yaml | 1 + .../Resource/template/admin/Content/page.twig | 34 ++++++++++++++----- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/src/Eccube/Controller/Admin/Content/PageController.php b/src/Eccube/Controller/Admin/Content/PageController.php index 13bf8cfe0fb..4b22bf005b7 100644 --- a/src/Eccube/Controller/Admin/Content/PageController.php +++ b/src/Eccube/Controller/Admin/Content/PageController.php @@ -68,7 +68,7 @@ public function __construct( * @Route("/%eccube_admin_route%/content/page", name="admin_content_page") * @Template("@admin/Content/page.twig") */ - public function index(Request $request) + public function index(Request $request, RouterInterface $router) { $Pages = $this->pageRepository->getPageList(); @@ -82,6 +82,7 @@ public function index(Request $request) return [ 'Pages' => $Pages, + 'router' => $router, ]; } diff --git a/src/Eccube/Resource/locale/messages.ja.yaml b/src/Eccube/Resource/locale/messages.ja.yaml index ea35edcc335..5d23ae19f88 100644 --- a/src/Eccube/Resource/locale/messages.ja.yaml +++ b/src/Eccube/Resource/locale/messages.ja.yaml @@ -992,6 +992,7 @@ admin.content.layout_section__drawer: '#drawer' admin.content.layout_section__close_body_before: 'タグ直前' admin.content.page_name: ページ名 admin.content.page__card_title: ページ設定 +admin.content.page_route_name: ルート名 admin.content.page_url: URL admin.content.page_url_exists: 既にURLが存在しています。 admin.content.page_file_name: ファイル名 diff --git a/src/Eccube/Resource/template/admin/Content/page.twig b/src/Eccube/Resource/template/admin/Content/page.twig index 3473f356f97..f060360a42e 100644 --- a/src/Eccube/Resource/template/admin/Content/page.twig +++ b/src/Eccube/Resource/template/admin/Content/page.twig @@ -16,12 +16,12 @@ file that was distributed with this source code. {% block sub_title %}{{ 'admin.content.contents_management'|trans }}{% endblock %} {% block javascript %} - + {% endblock javascript %} {% block main %} @@ -52,6 +52,9 @@ file that was distributed with this source code. + + + @@ -60,8 +63,21 @@ file that was distributed with this source code. + + + {# TODO レイアウトの数にかかわらず高さを揃えたい #} - {# TODO レイアウトの数にかかわらず高さを揃えたい #} - +
{{ 'admin.content.page_name'|trans }}{{ 'admin.content.page_route_name'|trans }}{{ 'admin.content.page_url'|trans }}{{ 'admin.content.page_file_name'|trans }} {{ 'admin.content.layout_name'|trans }}
{{ Page.name }} + {{ Page.url }} + + {% if router.routecollection.get(Page.url) %} + {{ router.routecollection.get(Page.url).path }} + {% else %} + {{ Page.url }} + {% endif %} + + {{ Page.file_name }} + + {% for Layout in Page.layouts %} {% if Layout.device_type.id == constant('Eccube\\Entity\\Master\\DeviceType::DEVICE_TYPE_PC') %} {% set icon = 'fa-desktop' %} @@ -83,7 +99,7 @@ file that was distributed with this source code. - {{ Page.file_name }} + {% if Page.file_name %}{{ Page.file_name }}.twig{% endif %} From 0314df339c00b3f9a77f11f014864d04da413264 Mon Sep 17 00:00:00 2001 From: Kiyoshi Yamamura Date: Sat, 24 Oct 2020 06:59:29 +0900 Subject: [PATCH 025/207] =?UTF-8?q?=E9=83=B5=E4=BE=BF=E7=95=AA=E5=8F=B7?= =?UTF-8?q?=E3=80=81=E9=9B=BB=E8=A9=B1=E7=95=AA=E5=8F=B7=E3=81=AE=E5=85=A5?= =?UTF-8?q?=E5=8A=9B=E5=BD=A2=E5=BC=8F=E3=82=92TelType=E3=81=AB=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Form/Type/PhoneNumberType.php | 6 +++--- src/Eccube/Form/Type/PostalType.php | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Eccube/Form/Type/PhoneNumberType.php b/src/Eccube/Form/Type/PhoneNumberType.php index dc8e4a19510..a19ac0b0ce6 100644 --- a/src/Eccube/Form/Type/PhoneNumberType.php +++ b/src/Eccube/Form/Type/PhoneNumberType.php @@ -15,7 +15,7 @@ use Eccube\Common\EccubeConfig; use Symfony\Component\Form\AbstractType; -use Symfony\Component\Form\Extension\Core\Type\TextType; +use Symfony\Component\Form\Extension\Core\Type\TelType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\Options; use Symfony\Component\OptionsResolver\OptionsResolver; @@ -57,7 +57,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) public function configureOptions(OptionsResolver $resolver) { $eccubeConfig = $this->eccubeConfig; - $constraints = function (Options $options) use ($eccubeConfig) { + $constraints = function(Options $options) use ($eccubeConfig) { $constraints = []; // requiredがtrueに指定されている場合, NotBlankを追加 if (isset($options['required']) && true === $options['required']) { @@ -91,7 +91,7 @@ public function configureOptions(OptionsResolver $resolver) */ public function getParent() { - return TextType::class; + return TelType::class; } /** diff --git a/src/Eccube/Form/Type/PostalType.php b/src/Eccube/Form/Type/PostalType.php index 1c7434e5b0a..765f8f18e9c 100644 --- a/src/Eccube/Form/Type/PostalType.php +++ b/src/Eccube/Form/Type/PostalType.php @@ -15,7 +15,7 @@ use Eccube\Common\EccubeConfig; use Symfony\Component\Form\AbstractType; -use Symfony\Component\Form\Extension\Core\Type\TextType; +use Symfony\Component\Form\Extension\Core\Type\TelType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\Options; use Symfony\Component\OptionsResolver\OptionsResolver; @@ -56,7 +56,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) public function configureOptions(OptionsResolver $resolver) { $eccubeConfig = $this->eccubeConfig; - $constraints = function (Options $options) use ($eccubeConfig) { + $constraints = function(Options $options) use ($eccubeConfig) { $constraints = []; // requiredがtrueに指定されている場合, NotBlankを追加 if (isset($options['required']) && true === $options['required']) { @@ -91,7 +91,7 @@ public function configureOptions(OptionsResolver $resolver) */ public function getParent() { - return TextType::class; + return TelType::class; } /** From 942284e79fbefd059d469c1c40415176eabf0fca Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Tue, 27 Oct 2020 10:57:39 +0900 Subject: [PATCH 026/207] =?UTF-8?q?Composer1=20=E3=81=AB=E5=9B=BA=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 89e718fa24a..bf45ab1e8c8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,6 +62,7 @@ WORKDIR ${APACHE_DOCUMENT_ROOT} RUN curl -sS https://getcomposer.org/installer \ | php \ && mv composer.phar /usr/bin/composer \ + && composer selfupdate --1 \ && composer config -g repos.packagist composer https://packagist.jp \ && composer global require hirak/prestissimo \ && chown www-data:www-data /var/www \ From 84fb854fe19b81a198512b7c0c726451f5366c3f Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Tue, 27 Oct 2020 11:09:24 +0900 Subject: [PATCH 027/207] =?UTF-8?q?appveyor=20=E3=82=82=20Composer1=20?= =?UTF-8?q?=E3=81=AB=E5=9B=BA=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appveyor.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/appveyor.yml b/appveyor.yml index aba72cf58d7..bfc4f3d4f24 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -58,6 +58,7 @@ install: - echo memory_limit = 512M >> C:\tools\php72\php.ini - echo APP_ENV=codeception >> .env - php -r "readfile('http://getcomposer.org/installer');" | php + - php composer.phar selfupdate --1 - php composer.phar install --dev --no-interaction -o # Don't actually build. From 4a85f643ca575de3bd8512b5779b0057e388dd9d Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Tue, 27 Oct 2020 11:34:43 +0900 Subject: [PATCH 028/207] =?UTF-8?q?travis=20=E3=82=82=20Composer1=20?= =?UTF-8?q?=E3=81=AB=E5=9B=BA=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c7c3d6553d2..5d891879242 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,8 +57,12 @@ package_api_setup: &package_api_setup | mkdir ${PWD}/repos docker run -d --rm -v ${PWD}/repos:/repos -e MOCK_REPO_DIR=/repos -p 8080:8080 eccube/mock-package-api +composer_install: &composer_install | + composer selfupdate --1 + composer install --dev --no-interaction -o --apcu-autoloader + install: - - &composer_install composer install --dev --no-interaction -o --apcu-autoloader + - *composer_install - echo "APP_ENV=test" > .env - *eccube_setup From 4f5ed36976632d2ba54792f6b9ab6e9df94af876 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Tue, 27 Oct 2020 11:47:19 +0900 Subject: [PATCH 029/207] refs #4725 Allow wrapper classes in supportsClass --- src/Eccube/Security/Core/User/CustomerProvider.php | 2 +- src/Eccube/Security/Core/User/MemberProvider.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Security/Core/User/CustomerProvider.php b/src/Eccube/Security/Core/User/CustomerProvider.php index 1643488451f..8b50eee32ce 100644 --- a/src/Eccube/Security/Core/User/CustomerProvider.php +++ b/src/Eccube/Security/Core/User/CustomerProvider.php @@ -89,6 +89,6 @@ public function refreshUser(UserInterface $user) */ public function supportsClass($class) { - return Customer::class === $class; + return Customer::class === $class || is_subclass_of($class, Customer::class); } } diff --git a/src/Eccube/Security/Core/User/MemberProvider.php b/src/Eccube/Security/Core/User/MemberProvider.php index b27af2322cd..5b6a70da1f8 100644 --- a/src/Eccube/Security/Core/User/MemberProvider.php +++ b/src/Eccube/Security/Core/User/MemberProvider.php @@ -86,6 +86,6 @@ public function refreshUser(UserInterface $user) */ public function supportsClass($class) { - return Member::class === $class || is_subclass_of($class,Member::class); + return Member::class === $class || is_subclass_of($class, Member::class); } } From 9690879c384e4f7dddf471fde7d7133fc0054a6a Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Tue, 27 Oct 2020 11:35:02 +0900 Subject: [PATCH 030/207] =?UTF-8?q?GitHub=20Actions=20=E3=82=82=20Composer?= =?UTF-8?q?1=20=E3=81=AB=E5=9B=BA=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 4 +++- .github/workflows/e2e-test.yml | 4 +++- .github/workflows/plugin-test.yml | 4 +++- .github/workflows/unit-test.yml | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9baf0f27d16..7ab918f973c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -27,7 +27,9 @@ jobs: ${{ runner.os }}-composer- - name: Install to Composer - run: composer install --no-scripts --no-dev --no-interaction --optimize-autoloader + run: | + sudo composer selfupdate --1 + composer install --no-scripts --no-dev --no-interaction --optimize-autoloader - name: Translate to templates run: php bin/template_jp.php diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index 696272c667b..dfa52e1f453 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -75,7 +75,9 @@ jobs: php-version: ${{ matrix.php }} - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader + run: | + sudo composer selfupdate --1 + composer install --dev --no-interaction -o --apcu-autoloader - name: Setup to EC-CUBE env: APP_ENV: ${{ matrix.app_env }} diff --git a/.github/workflows/plugin-test.yml b/.github/workflows/plugin-test.yml index 9777dcf5c00..e7cd47d6ff0 100644 --- a/.github/workflows/plugin-test.yml +++ b/.github/workflows/plugin-test.yml @@ -83,7 +83,9 @@ jobs: php-version: ${{ matrix.php }} - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader + run: | + sudo composer selfupdate --1 + composer install --dev --no-interaction -o --apcu-autoloader - name: Setup to EC-CUBE env: diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index a95f4fc2e40..432cd846773 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -72,7 +72,9 @@ jobs: php-version: ${{ matrix.php }} - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader + run: | + sudo composer selfupdate --1 + composer install --dev --no-interaction -o --apcu-autoloader - name: Setup EC-CUBE env: From dcd792b36d046a0e46f7bc9097edf476d3613792 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Tue, 27 Oct 2020 13:27:17 +0900 Subject: [PATCH 031/207] =?UTF-8?q?=E5=8B=95=E4=BD=9C=E7=A2=BA=E8=AA=8D?= =?UTF-8?q?=E7=92=B0=E5=A2=83=E3=82=92=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0?= =?UTF-8?q?=E8=A6=81=E4=BB=B6=E3=81=A8=E4=BA=8B=E5=AE=9F=E3=81=AB=E5=90=88?= =?UTF-8?q?=E3=82=8F=E3=81=9B=E3=81=A6=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1f73abc71ae..c72dabca7f9 100644 --- a/README.md +++ b/README.md @@ -39,9 +39,9 @@ npm run build # Sass のビルド ### 動作確認環境 * Apache/2.4.x (mod_rewrite / mod_ssl 必須) -* PHP7.1.20 -* PostgreSQL 9.2.1 -* ブラウザー:Google Chrome +* PHP7.2 +* PostgreSQL 9.6 / MySQL 5.6 +* ブラウザー:Google Chrome 詳しくは開発ドキュメントの [システム要件](https://doc4.ec-cube.net/quickstart_requirement) をご確認ください。 From f3e69aec03ac22b457b3f42342850d635a3f01e4 Mon Sep 17 00:00:00 2001 From: tatsuishi Date: Wed, 28 Oct 2020 00:40:57 +0900 Subject: [PATCH 032/207] =?UTF-8?q?=E4=BC=9A=E5=93=A1=E4=B8=80=E8=A6=A7=20?= =?UTF-8?q?=E8=B3=BC=E5=85=A5=E5=95=86=E5=93=81=E6=A4=9C=E7=B4=A2=E3=81=A7?= =?UTF-8?q?=E8=B3=BC=E5=85=A5=E5=87=A6=E7=90=86=E4=B8=AD=E3=83=BB=E6=B1=BA?= =?UTF-8?q?=E6=B8=88=E5=87=A6=E7=90=86=E4=B8=AD=E3=82=92=E9=99=A4=E5=A4=96?= =?UTF-8?q?=20=20#4735?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Repository/CustomerRepository.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Repository/CustomerRepository.php b/src/Eccube/Repository/CustomerRepository.php index e6ef242ee2f..f9299c602c7 100644 --- a/src/Eccube/Repository/CustomerRepository.php +++ b/src/Eccube/Repository/CustomerRepository.php @@ -18,6 +18,7 @@ use Eccube\Doctrine\Query\Queries; use Eccube\Entity\Customer; use Eccube\Entity\Master\CustomerStatus; +use Eccube\Entity\Master\OrderStatus; use Eccube\Util\StringUtil; use Symfony\Bridge\Doctrine\RegistryInterface; use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface; @@ -273,7 +274,9 @@ public function getQueryBuilderBySearchData($searchData) ->leftJoin('c.Orders', 'o') ->leftJoin('o.OrderItems', 'oi') ->andWhere('oi.product_name LIKE :buy_product_name') - ->setParameter('buy_product_name', '%'.$searchData['buy_product_name'].'%'); + ->andWhere($qb->expr()->notIn('o.OrderStatus', ':order_status')) + ->setParameter('buy_product_name', '%'.$searchData['buy_product_name'].'%') + ->setParameter('order_status', [OrderStatus::PROCESSING, OrderStatus::PENDING]); } // Order By From 533fe8864bca0b724ae87ee96c4c45585e0e83d0 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Wed, 28 Oct 2020 16:01:13 +0900 Subject: [PATCH 033/207] =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E3=81=AE=E3=83=A1?= =?UTF-8?q?=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=81=AB=20Route=20Name=20=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/locale/messages.en.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Eccube/Resource/locale/messages.en.yaml b/src/Eccube/Resource/locale/messages.en.yaml index 652266bb9cd..0be04642f36 100644 --- a/src/Eccube/Resource/locale/messages.en.yaml +++ b/src/Eccube/Resource/locale/messages.en.yaml @@ -992,6 +992,7 @@ admin.content.layout_section__drawer: '#drawer' admin.content.layout_section__close_body_before: 'Right before the tags' admin.content.page_name: Page Name admin.content.page__card_title: Page Settings +admin.content.page_route_name: Route Name admin.content.page_url: URL admin.content.page_url_exists: The URL already exists. admin.content.page_file_name: File Name From 66985e03ef8d139660f8738a4c0c1789b0f991dd Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Wed, 28 Oct 2020 18:00:45 +0900 Subject: [PATCH 034/207] =?UTF-8?q?=E4=BC=9A=E5=93=A1=E4=B8=80=E8=A6=A7=20?= =?UTF-8?q?=E8=B3=BC=E5=85=A5=E5=95=86=E5=93=81=E6=A4=9C=E7=B4=A2=E3=81=A7?= =?UTF-8?q?=E5=8F=97=E6=B3=A8=E3=82=B9=E3=83=86=E3=83=BC=E3=82=BF=E3=82=B9?= =?UTF-8?q?=E3=81=94=E3=81=A8=E3=81=AE=E3=83=86=E3=82=B9=E3=83=88=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Customer/CustomerControllerTest.php | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php b/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php index 335ebd2ef79..0b30a3ca7f9 100644 --- a/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php @@ -14,8 +14,10 @@ namespace Eccube\Tests\Web\Admin\Customer; use Eccube\Entity\Master\CsvType; +use Eccube\Entity\Master\OrderStatus; use Eccube\Repository\BaseInfoRepository; use Eccube\Repository\CustomerRepository; +use Eccube\Repository\Master\OrderStatusRepository; use Eccube\Tests\Web\Admin\AbstractAdminWebTestCase; /** @@ -148,11 +150,19 @@ public function testIndexWithPostSearchById() /** * testIndexWithPostSearchByProductName + * + * @dataProvider indexWithPostSearchByProductNameProvider */ - public function testIndexWithPostSearchByProductName() + public function testIndexWithPostSearchByProductName(int $orderStatusId, string $expected) { $Customer = $this->container->get(CustomerRepository::class)->findOneBy([], ['id' => 'DESC']); $Order = $this->createOrder($Customer); + + /** @var OrderStatus $OrderStatus */ + $OrderStatus = $this->container->get(OrderStatusRepository::class)->find($orderStatusId); + $Order->setOrderStatus($OrderStatus); + $this->entityManager->flush(); + $ProductName = $Order->getOrderItems()->filter(function ($OrderItems) { return $OrderItems->isProduct(); })->first()->getProductName(); @@ -163,11 +173,28 @@ public function testIndexWithPostSearchByProductName() ); $this->assertTrue($this->client->getResponse()->isSuccessful()); - $this->expected = '検索結果:1件が該当しました'; + $this->expected = $expected; $this->actual = $crawler->filter('div.c-outsideBlock__contents.mb-5 > span')->text(); $this->verify(); } + /** + * @return array[] + */ + public function indexWithPostSearchByProductNameProvider() + { + return [ + [OrderStatus::NEW, '検索結果:1件が該当しました'], // 新規受付 + [OrderStatus::CANCEL, '検索結果:1件が該当しました'], // 注文取消し + [OrderStatus::IN_PROGRESS, '検索結果:1件が該当しました'], // 対応中 + [OrderStatus::DELIVERED, '検索結果:1件が該当しました'], // 発送済み + [OrderStatus::PAID, '検索結果:1件が該当しました'], // 入金済み + [OrderStatus::PENDING, '検索結果:0件が該当しました'], // 決済処理中 + [OrderStatus::PROCESSING, '検索結果:0件が該当しました'], // 購入処理中 + [OrderStatus::RETURNED, '検索結果:1件が該当しました'], // 返品 + ]; + } + /** * testResend */ From 1553db7f8fe88ea98af044d4667a6431ee3d97f3 Mon Sep 17 00:00:00 2001 From: m-pyon23 Date: Fri, 30 Oct 2020 13:53:08 +0900 Subject: [PATCH 035/207] =?UTF-8?q?Docker=E3=83=AA=E3=83=93=E3=83=AB?= =?UTF-8?q?=E3=83=89=E6=99=82=E3=81=AE=E5=8A=B9=E7=8E=87=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - composer.json及びcomposer.lock以外の編集でキャッシュが利用できる利用するようにした - 上記タイミング調整に伴うパーミッション・所有者設定手順の調整 --- Dockerfile | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index bf45ab1e8c8..352749f9aae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -55,31 +55,39 @@ RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" # Override with custom configuration settings COPY dockerbuild/php.ini $PHP_INI_DIR/conf.d/ -COPY . ${APACHE_DOCUMENT_ROOT} - -WORKDIR ${APACHE_DOCUMENT_ROOT} +RUN chown www-data:www-data /var/www RUN curl -sS https://getcomposer.org/installer \ | php \ && mv composer.phar /usr/bin/composer \ && composer selfupdate --1 \ && composer config -g repos.packagist composer https://packagist.jp \ - && composer global require hirak/prestissimo \ - && chown www-data:www-data /var/www \ - && mkdir -p ${APACHE_DOCUMENT_ROOT}/var \ - && chown -R www-data:www-data ${APACHE_DOCUMENT_ROOT} \ - && find ${APACHE_DOCUMENT_ROOT} -type d -print0 \ - | xargs -0 chmod g+s \ - ; + && composer global require hirak/prestissimo +# 全体コピー前にcomposer installを先行完了させる(docker cache利用によるリビルド速度向上) USER www-data - +COPY composer.json ${APACHE_DOCUMENT_ROOT}/composer.json +COPY composer.lock ${APACHE_DOCUMENT_ROOT}/composer.lock RUN composer install \ --no-scripts \ --no-autoloader \ -d ${APACHE_DOCUMENT_ROOT} \ ; +################################################################## +# ファイル変更時、以後のステップにはキャッシュが効かなくなる +USER root +COPY . ${APACHE_DOCUMENT_ROOT} +WORKDIR ${APACHE_DOCUMENT_ROOT} + +RUN mkdir -p ${APACHE_DOCUMENT_ROOT}/var \ + && find ${APACHE_DOCUMENT_ROOT} \( -path ${APACHE_DOCUMENT_ROOT}/vendor -prune \) -or -print0 \ + | xargs -0 chown www-data:www-data \ + && find ${APACHE_DOCUMENT_ROOT} -type d -print0 \ + | xargs -0 chmod g+s \ + ; + +USER www-data RUN composer dumpautoload -o --apcu RUN if [ ! -f ${APACHE_DOCUMENT_ROOT}/.env ]; then \ From 74eaea95b96471b5609a8d2ede87652f404d7500 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Fri, 30 Oct 2020 16:13:09 +0900 Subject: [PATCH 036/207] =?UTF-8?q?GitHub=20Actions=20=E3=82=92=20Composer?= =?UTF-8?q?1=20=E3=81=AB=E5=9B=BA=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/plugin-test.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/plugin-test.yml b/.github/workflows/plugin-test.yml index e7cd47d6ff0..f34a4e3dc00 100644 --- a/.github/workflows/plugin-test.yml +++ b/.github/workflows/plugin-test.yml @@ -227,7 +227,10 @@ jobs: php-version: ${{ matrix.php }} - name: Install to Composer - run: composer install --dev --no-interaction -o --apcu-autoloader + run: | + sudo composer selfupdate --1 + composer install --dev --no-interaction -o --apcu-autoloader + - name: Setup to EC-CUBE env: APP_ENV: 'codeception' @@ -368,7 +371,10 @@ jobs: php-version: ${{ matrix.php }} - name: Install to Composer - run: composer install --dev --no-interaction -o --apcu-autoloader + run: | + sudo composer selfupdate --1 + composer install --dev --no-interaction -o --apcu-autoloader + - name: Setup to EC-CUBE env: APP_ENV: 'codeception' @@ -512,7 +518,10 @@ jobs: php-version: ${{ matrix.php }} - name: Install to Composer - run: composer install --dev --no-interaction -o --apcu-autoloader + run: | + sudo composer selfupdate --1 + composer install --dev --no-interaction -o --apcu-autoloader + - name: Setup to EC-CUBE env: APP_ENV: 'codeception' From c2f106ebede1adc095ff18691858e54f21466a53 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Fri, 30 Oct 2020 15:42:19 +0900 Subject: [PATCH 037/207] =?UTF-8?q?=E6=B0=B8=E7=B6=9A=E5=8C=96=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=81=9F=E3=82=AB=E3=83=BC=E3=83=88=E3=81=A8=E3=82=BB?= =?UTF-8?q?=E3=83=83=E3=82=B7=E3=83=A7=E3=83=B3=E3=81=AE=E3=82=AB=E3=83=BC?= =?UTF-8?q?=E3=83=88=E3=81=8C=E5=90=8C=E4=B8=80=E3=81=AE=E5=A0=B4=E5=90=88?= =?UTF-8?q?=E3=81=AF=E3=83=9E=E3=83=BC=E3=82=B8=E3=81=97=E3=81=AA=E3=81=84?= =?UTF-8?q?=20refs=20#4574?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Service/CartService.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Service/CartService.php b/src/Eccube/Service/CartService.php index 5e97449e9fc..52a89964489 100644 --- a/src/Eccube/Service/CartService.php +++ b/src/Eccube/Service/CartService.php @@ -193,13 +193,22 @@ public function getSessionCarts() */ public function mergeFromPersistedCart() { + $persistedCarts = $this->getPersistedCarts(); + $sessionCarts = $this->getSessionCarts(); + + // 永続化されたカートとセッションのカートが同一の場合はマージしない #4574 + $cartKeys = $this->session->get('cart_keys', []); + if (in_array($persistedCarts[0]->getCartKey(), $cartKeys)) { + return; + }; + $CartItems = []; - foreach ($this->getPersistedCarts() as $Cart) { + foreach ($persistedCarts as $Cart) { $CartItems = $this->mergeCartItems($Cart->getCartItems(), $CartItems); } // セッションにある非会員カートとDBから取得した会員カートをマージする. - foreach ($this->getSessionCarts() as $Cart) { + foreach ($sessionCarts as $Cart) { $CartItems = $this->mergeCartItems($Cart->getCartItems(), $CartItems); } From 28b85c542629b0010ee54df94a529371b4917636 Mon Sep 17 00:00:00 2001 From: m-pyon23 Date: Fri, 30 Oct 2020 17:19:56 +0900 Subject: [PATCH 038/207] =?UTF-8?q?Docker=E5=88=9D=E5=9B=9E=E3=83=93?= =?UTF-8?q?=E3=83=AB=E3=83=89=E5=87=A6=E7=90=86=E6=99=82=E9=96=93=E3=81=AE?= =?UTF-8?q?=E7=9F=AD=E7=B8=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - vendor以下のchmod設定を先行実施し、後続のchmod処理時間を低減 --- Dockerfile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 352749f9aae..90476b436cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -55,7 +55,11 @@ RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" # Override with custom configuration settings COPY dockerbuild/php.ini $PHP_INI_DIR/conf.d/ -RUN chown www-data:www-data /var/www +RUN chown www-data:www-data /var/www \ + && mkdir -p ${APACHE_DOCUMENT_ROOT}/vendor \ + && mkdir -p ${APACHE_DOCUMENT_ROOT}/var \ + && chown www-data:www-data ${APACHE_DOCUMENT_ROOT}/vendor \ + && chmod g+s ${APACHE_DOCUMENT_ROOT}/vendor RUN curl -sS https://getcomposer.org/installer \ | php \ @@ -80,10 +84,9 @@ USER root COPY . ${APACHE_DOCUMENT_ROOT} WORKDIR ${APACHE_DOCUMENT_ROOT} -RUN mkdir -p ${APACHE_DOCUMENT_ROOT}/var \ - && find ${APACHE_DOCUMENT_ROOT} \( -path ${APACHE_DOCUMENT_ROOT}/vendor -prune \) -or -print0 \ +RUN find ${APACHE_DOCUMENT_ROOT} \( -path ${APACHE_DOCUMENT_ROOT}/vendor -prune \) -or -print0 \ | xargs -0 chown www-data:www-data \ - && find ${APACHE_DOCUMENT_ROOT} -type d -print0 \ + && find ${APACHE_DOCUMENT_ROOT} \( -path ${APACHE_DOCUMENT_ROOT}/vendor -prune \) -or \( -type d -print0 \) \ | xargs -0 chmod g+s \ ; From 04bf89e780c69fb678fdc4838c2f7411d17ba13e Mon Sep 17 00:00:00 2001 From: morry48 Date: Sun, 8 Nov 2020 01:10:33 +0900 Subject: [PATCH 039/207] =?UTF-8?q?=E5=8F=97=E6=B3=A8=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=9E=E5=8F=97=E6=B3=A8=E6=A4=9C=E7=B4=A2=E3=81=AE=E3=81=8A?= =?UTF-8?q?=E5=90=8D=E5=89=8D=E3=80=81=E6=B3=A8=E6=96=87=E8=80=85=E5=90=8D?= =?UTF-8?q?=E6=A4=9C=E7=B4=A2=E3=81=AE=E3=83=AD=E3=82=B8=E3=83=83=E3=82=AF?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20=E3=81=8A=E5=90=8D=E5=89=8D=E3=83=BB?= =?UTF-8?q?=E6=B3=A8=E6=96=87=E8=80=85=E5=90=8D=E3=83=BB=E3=82=AB=E3=83=8A?= =?UTF-8?q?=E3=81=AB=E3=81=8A=E3=81=84=E3=81=A6=E3=83=95=E3=83=AB=E3=83=8D?= =?UTF-8?q?=E3=83=BC=E3=83=A0=E6=A4=9C=E7=B4=A2=E3=81=AB=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Repository/OrderRepository.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Eccube/Repository/OrderRepository.php b/src/Eccube/Repository/OrderRepository.php index f80ee50e8d8..e1984e7e63f 100644 --- a/src/Eccube/Repository/OrderRepository.php +++ b/src/Eccube/Repository/OrderRepository.php @@ -106,16 +106,18 @@ public function getQueryBuilderBySearchDataForAdmin($searchData) } // multi if (isset($searchData['multi']) && StringUtil::isNotBlank($searchData['multi'])) { - $multi = preg_match('/^\d{0,10}$/', $searchData['multi']) ? $searchData['multi'] : null; - if ($multi && $multi > '2147483647' && $this->isPostgreSQL()) { - $multi = null; + //スペース除去 + $clean_key_multi = preg_replace('/\s+|[ ]+/u', '', $searchData['multi']); + $id = preg_match('/^\d{0,10}$/', $clean_key_multi) ? $clean_key_multi : null; + if ($id && $id > '2147483647' && $this->isPostgreSQL()) { + $id = null; } $qb - ->andWhere('o.id = :multi OR o.name01 LIKE :likemulti OR o.name02 LIKE :likemulti OR '. - 'o.kana01 LIKE :likemulti OR o.kana02 LIKE :likemulti OR o.company_name LIKE :likemulti OR '. + ->andWhere('o.id = :order_id OR CONCAT(o.name01, o.name02) LIKE :likemulti OR '. + 'CONCAT(o.kana01, o.kana02) LIKE :likemulti OR o.company_name LIKE :likemulti OR '. 'o.order_no LIKE :likemulti OR o.email LIKE :likemulti OR o.phone_number LIKE :likemulti') - ->setParameter('multi', $multi) - ->setParameter('likemulti', '%'.$searchData['multi'].'%'); + ->setParameter('order_id', $id) + ->setParameter('likemulti', '%'.$clean_key_multi.'%'); } // order_id_end From 57a22bcc23fc05a1e9affdb94b5d00b714e899b4 Mon Sep 17 00:00:00 2001 From: morry48 Date: Sun, 8 Nov 2020 01:29:23 +0900 Subject: [PATCH 040/207] =?UTF-8?q?=E5=8F=97=E6=B3=A8=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=9E=E5=8F=97=E6=B3=A8=E6=A4=9C=E7=B4=A2=E3=81=AE=E3=81=8A?= =?UTF-8?q?=E5=90=8D=E5=89=8D=E3=80=81=E6=B3=A8=E6=96=87=E8=80=85=E5=90=8D?= =?UTF-8?q?=E6=A4=9C=E7=B4=A2=E3=81=AE=E3=83=AD=E3=82=B8=E3=83=83=E3=82=AF?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20=E8=A9=B3=E7=B4=B0=E6=A4=9C=E7=B4=A2?= =?UTF-8?q?=EF=BC=88=E6=B3=A8=E6=96=87=E8=80=85=E5=90=8D=E3=83=BB=E6=B3=A8?= =?UTF-8?q?=E6=96=87=E8=80=85=E5=90=8D-=E3=82=AB=E3=83=8A=EF=BC=89?= =?UTF-8?q?=E3=81=AB=E3=81=8A=E3=81=84=E3=81=A6=E3=83=95=E3=83=AB=E3=83=8D?= =?UTF-8?q?=E3=83=BC=E3=83=A0=E6=A4=9C=E7=B4=A2=E3=82=92=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E3=81=AB=E3=81=99=E3=82=8B=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Repository/OrderRepository.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Repository/OrderRepository.php b/src/Eccube/Repository/OrderRepository.php index e1984e7e63f..c6fbcc94ec0 100644 --- a/src/Eccube/Repository/OrderRepository.php +++ b/src/Eccube/Repository/OrderRepository.php @@ -151,16 +151,18 @@ public function getQueryBuilderBySearchDataForAdmin($searchData) // name if (isset($searchData['name']) && StringUtil::isNotBlank($searchData['name'])) { + $clean_name = preg_replace('/\s+|[ ]+/u', '', $searchData['name']); $qb ->andWhere('CONCAT(o.name01, o.name02) LIKE :name') - ->setParameter('name', '%'.$searchData['name'].'%'); + ->setParameter('name', '%'.$clean_name.'%'); } // kana if (isset($searchData['kana']) && StringUtil::isNotBlank($searchData['kana'])) { + $clean_kana = preg_replace('/\s+|[ ]+/u', '', $searchData['kana']); $qb ->andWhere('CONCAT(o.kana01, o.kana02) LIKE :kana') - ->setParameter('kana', '%'.$searchData['kana'].'%'); + ->setParameter('kana', '%'.$clean_kana.'%'); } // email From 42609b52eca225faa8ae8d9bcad398f6983ba315 Mon Sep 17 00:00:00 2001 From: morry48 Date: Thu, 12 Nov 2020 00:23:01 +0900 Subject: [PATCH 041/207] =?UTF-8?q?issues=20#4716=20getQueryBuilderBySearc?= =?UTF-8?q?hDataForAdmin()=E3=81=AE$order=5Fid=E3=82=92$id=E3=81=AB?= =?UTF-8?q?=E6=88=BB=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Repository/OrderRepository.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Eccube/Repository/OrderRepository.php b/src/Eccube/Repository/OrderRepository.php index c6fbcc94ec0..9ebd838d93d 100644 --- a/src/Eccube/Repository/OrderRepository.php +++ b/src/Eccube/Repository/OrderRepository.php @@ -108,15 +108,15 @@ public function getQueryBuilderBySearchDataForAdmin($searchData) if (isset($searchData['multi']) && StringUtil::isNotBlank($searchData['multi'])) { //スペース除去 $clean_key_multi = preg_replace('/\s+|[ ]+/u', '', $searchData['multi']); - $id = preg_match('/^\d{0,10}$/', $clean_key_multi) ? $clean_key_multi : null; - if ($id && $id > '2147483647' && $this->isPostgreSQL()) { - $id = null; + $multi = preg_match('/^\d{0,10}$/', $clean_key_multi) ? $clean_key_multi : null; + if ($multi && $multi > '2147483647' && $this->isPostgreSQL()) { + $multi = null; } $qb - ->andWhere('o.id = :order_id OR CONCAT(o.name01, o.name02) LIKE :likemulti OR '. + ->andWhere('o.id = :multi OR CONCAT(o.name01, o.name02) LIKE :likemulti OR '. 'CONCAT(o.kana01, o.kana02) LIKE :likemulti OR o.company_name LIKE :likemulti OR '. 'o.order_no LIKE :likemulti OR o.email LIKE :likemulti OR o.phone_number LIKE :likemulti') - ->setParameter('order_id', $id) + ->setParameter('multi', $multi) ->setParameter('likemulti', '%'.$clean_key_multi.'%'); } From da8d122c1c6682f26dca4f5429aba72e10ccfaef Mon Sep 17 00:00:00 2001 From: kurozumi Date: Thu, 12 Nov 2020 15:33:15 +0900 Subject: [PATCH 042/207] =?UTF-8?q?=E8=B3=BC=E5=85=A5=E6=89=8B=E7=B6=9A?= =?UTF-8?q?=E3=81=8D=E4=B8=AD=E3=81=A7=E3=82=82PurchaseContext=E3=81=A7?= =?UTF-8?q?=E3=83=A6=E3=83=BC=E3=82=B6=E3=83=BC=E6=83=85=E5=A0=B1=E3=82=92?= =?UTF-8?q?=E5=8F=96=E5=BE=97=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/ShippingMultipleController.php | 2 +- src/Eccube/Controller/ShoppingController.php | 4 ++-- src/Eccube/Service/PurchaseFlow/PurchaseContext.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Eccube/Controller/ShippingMultipleController.php b/src/Eccube/Controller/ShippingMultipleController.php index d0a2c63ebd2..2044f86a47d 100644 --- a/src/Eccube/Controller/ShippingMultipleController.php +++ b/src/Eccube/Controller/ShippingMultipleController.php @@ -343,7 +343,7 @@ public function index(Request $request) } } - $this->cartPurchaseFlow->validate($Cart, new PurchaseContext()); + $this->cartPurchaseFlow->validate($Cart, new PurchaseContext($Cart, $this->getUser())); $this->cartService->save(); } diff --git a/src/Eccube/Controller/ShoppingController.php b/src/Eccube/Controller/ShoppingController.php index 2f841a003e4..457b58548b5 100644 --- a/src/Eccube/Controller/ShoppingController.php +++ b/src/Eccube/Controller/ShoppingController.php @@ -124,7 +124,7 @@ public function index(PurchaseFlow $cartPurchaseFlow) log_info('[注文手続] Warningが発生しました.', [$flowResult->getWarning()]); // 受注明細と同期をとるため, CartPurchaseFlowを実行する - $cartPurchaseFlow->validate($Cart, new PurchaseContext()); + $cartPurchaseFlow->validate($Cart, new PurchaseContext($Cart, $this->getUser())); $this->cartService->save(); } @@ -685,7 +685,7 @@ public function error(Request $request, PurchaseFlow $cartPurchaseFlow) // 受注とカートのずれを合わせるため, カートのPurchaseFlowをコールする. $Cart = $this->cartService->getCart(); if (null !== $Cart) { - $cartPurchaseFlow->validate($Cart, new PurchaseContext()); + $cartPurchaseFlow->validate($Cart, new PurchaseContext($Cart, $this->getUser())); $this->cartService->setPreOrderId(null); $this->cartService->save(); } diff --git a/src/Eccube/Service/PurchaseFlow/PurchaseContext.php b/src/Eccube/Service/PurchaseFlow/PurchaseContext.php index 68ba672db07..6b4544ede48 100644 --- a/src/Eccube/Service/PurchaseFlow/PurchaseContext.php +++ b/src/Eccube/Service/PurchaseFlow/PurchaseContext.php @@ -33,7 +33,7 @@ class PurchaseContext extends \SplObjectStorage const CART_FLOW = 'cart'; - public function __construct(ItemHolderInterface $originHolder = null, Customer $user = null) + public function __construct(ItemHolderInterface $originHolder = null, ?Customer $user = null) { $this->originHolder = $originHolder; $this->user = $user; From a8592c45987afdb1192009c54292b1da16aa4966 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Thu, 12 Nov 2020 16:45:57 +0900 Subject: [PATCH 043/207] =?UTF-8?q?=E5=8F=97=E6=B3=A8=E3=81=AE=E3=83=9E?= =?UTF-8?q?=E3=83=AB=E3=83=81=E6=A4=9C=E7=B4=A2=E3=81=A7=E3=80=81=E4=BC=9A?= =?UTF-8?q?=E7=A4=BE=E5=90=8D=E3=81=AF=E3=82=B9=E3=83=9A=E3=83=BC=E3=82=B9?= =?UTF-8?q?=E3=82=92=E9=99=A4=E5=8E=BB=E3=81=9B=E3=81=9A=E6=A4=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Repository/OrderRepository.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Eccube/Repository/OrderRepository.php b/src/Eccube/Repository/OrderRepository.php index 9ebd838d93d..3105015e9de 100644 --- a/src/Eccube/Repository/OrderRepository.php +++ b/src/Eccube/Repository/OrderRepository.php @@ -114,10 +114,11 @@ public function getQueryBuilderBySearchDataForAdmin($searchData) } $qb ->andWhere('o.id = :multi OR CONCAT(o.name01, o.name02) LIKE :likemulti OR '. - 'CONCAT(o.kana01, o.kana02) LIKE :likemulti OR o.company_name LIKE :likemulti OR '. + 'CONCAT(o.kana01, o.kana02) LIKE :likemulti OR o.company_name LIKE :company_name OR '. 'o.order_no LIKE :likemulti OR o.email LIKE :likemulti OR o.phone_number LIKE :likemulti') ->setParameter('multi', $multi) - ->setParameter('likemulti', '%'.$clean_key_multi.'%'); + ->setParameter('likemulti', '%'.$clean_key_multi.'%') + ->setParameter('company_name', '%'.$searchData['multi'].'%'); // 会社名はスペースを除去せず検索 } // order_id_end From 8b42ca6e5405e6f42c2adbf77fecde95e5a1e8fd Mon Sep 17 00:00:00 2001 From: hama Date: Thu, 12 Nov 2020 16:47:24 +0900 Subject: [PATCH 044/207] =?UTF-8?q?=E5=95=86=E5=93=81=E7=94=BB=E5=83=8F?= =?UTF-8?q?=E5=89=8A=E9=99=A4=E6=99=82=E3=80=81=E4=BB=96=E3=81=AE=E5=95=86?= =?UTF-8?q?=E5=93=81=E7=94=BB=E5=83=8F=E3=81=8C=E5=8F=82=E7=85=A7=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AF=E5=89=8A?= =?UTF-8?q?=E9=99=A4=E3=81=97=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Product/CsvImportController.php | 13 ++++++ .../Admin/Product/ProductController.php | 9 ++-- .../Admin/Product/CsvImportControllerTest.php | 36 +++++++++++++++ .../Admin/Product/ProductContorllerTest.php | 44 +++++++++++++++++++ 4 files changed, 99 insertions(+), 3 deletions(-) diff --git a/src/Eccube/Controller/Admin/Product/CsvImportController.php b/src/Eccube/Controller/Admin/Product/CsvImportController.php index 902e60d825f..815b9a141e8 100644 --- a/src/Eccube/Controller/Admin/Product/CsvImportController.php +++ b/src/Eccube/Controller/Admin/Product/CsvImportController.php @@ -31,6 +31,7 @@ use Eccube\Repository\DeliveryDurationRepository; use Eccube\Repository\Master\ProductStatusRepository; use Eccube\Repository\Master\SaleTypeRepository; +use Eccube\Repository\ProductImageRepository; use Eccube\Repository\ProductRepository; use Eccube\Repository\TagRepository; use Eccube\Repository\TaxRuleRepository; @@ -74,6 +75,11 @@ class CsvImportController extends AbstractCsvImportController */ protected $classCategoryRepository; + /** + * @var ProductImageRepository + */ + protected $productImageRepository; + /** * @var ProductStatusRepository */ @@ -109,6 +115,7 @@ class CsvImportController extends AbstractCsvImportController * @param TagRepository $tagRepository * @param CategoryRepository $categoryRepository * @param ClassCategoryRepository $classCategoryRepository + * @param ProductImageRepository $productImageRepository * @param ProductStatusRepository $productStatusRepository * @param ProductRepository $productRepository * @param TaxRuleRepository $taxRuleRepository @@ -122,6 +129,7 @@ public function __construct( TagRepository $tagRepository, CategoryRepository $categoryRepository, ClassCategoryRepository $classCategoryRepository, + ProductImageRepository $productImageRepository, ProductStatusRepository $productStatusRepository, ProductRepository $productRepository, TaxRuleRepository $taxRuleRepository, @@ -133,6 +141,7 @@ public function __construct( $this->tagRepository = $tagRepository; $this->categoryRepository = $categoryRepository; $this->classCategoryRepository = $classCategoryRepository; + $this->productImageRepository = $productImageRepository; $this->productStatusRepository = $productStatusRepository; $this->productRepository = $productRepository; $this->taxRuleRepository = $taxRuleRepository; @@ -629,7 +638,11 @@ public function csvProduct(Request $request, CacheUtil $cacheUtil) // 画像ファイルの削除(commit後に削除させる) foreach ($deleteImages as $images) { + /** @var ProductImage $image */ foreach ($images as $image) { + if ($this->productImageRepository->findOneBy(['file_name' => $image->getFileName()])) { + continue; + } try { $fs = new Filesystem(); $fs->remove($this->eccubeConfig['eccube_save_image_dir'].'/'.$image); diff --git a/src/Eccube/Controller/Admin/Product/ProductController.php b/src/Eccube/Controller/Admin/Product/ProductController.php index b77dc83f781..16531d9f4c9 100644 --- a/src/Eccube/Controller/Admin/Product/ProductController.php +++ b/src/Eccube/Controller/Admin/Product/ProductController.php @@ -545,10 +545,13 @@ public function edit(Request $request, $id = null, RouterInterface $router, Cach $this->entityManager->remove($ProductImage); } $this->entityManager->persist($Product); + $this->entityManager->flush(); - // 削除 - $fs = new Filesystem(); - $fs->remove($this->eccubeConfig['eccube_save_image_dir'].'/'.$delete_image); + if (!$this->productImageRepository->findOneBy(['file_name' => $delete_image])) { + // 削除 + $fs = new Filesystem(); + $fs->remove($this->eccubeConfig['eccube_save_image_dir'] . '/' . $delete_image); + } } $this->entityManager->persist($Product); $this->entityManager->flush(); diff --git a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php index db0e65faf05..5456d3fb04d 100644 --- a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php @@ -16,6 +16,7 @@ use Eccube\Entity\BaseInfo; use Eccube\Entity\Product; use Eccube\Entity\ProductClass; +use Eccube\Entity\ProductImage; use Eccube\Repository\CategoryRepository; use Eccube\Repository\ProductRepository; use Eccube\Tests\Web\Admin\AbstractAdminWebTestCase; @@ -928,4 +929,39 @@ public function dataTaxRuleProvider() [false, '', null], ]; } + + /** + * 商品を削除する際に、他の商品画像が参照しているファイルは削除せず、それ以外は削除することをテスト + */ + public function testDeleteImage() + { + /** @var \Eccube\Tests\Fixture\Generator $generator */ + $generator = $this->container->get(\Eccube\Tests\Fixture\Generator::class); + $Product1 = $generator->createProduct(null, 0, 'abstract'); + $Product2 = $generator->createProduct(null, 0, 'abstract'); + + $DuplicatedImage = $Product1->getProductImage()->first(); + assert($DuplicatedImage instanceof ProductImage); + + $NotDuplicatedImage = $Product1->getProductImage()->last(); + assert($NotDuplicatedImage instanceof ProductImage); + + $NewProduct2Image = new ProductImage(); + $NewProduct2Image + ->setProduct($Product2) + ->setFileName($DuplicatedImage->getFileName()) + ->setSortNo(999); + $Product2->addProductImage($NewProduct2Image); + $this->entityManager->persist($NewProduct2Image); + $this->entityManager->flush(); + + $csv[] = ['商品ID', '公開ステータス(ID)', '商品名', '商品削除フラグ', '販売種別(ID)', '販売価格']; + $csv[] = [$Product1->getId(), '1', 'hoge', '1', '1', '1000']; + $this->filepath = $this->createCsvFromArray($csv); + $this->scenario(); + + $dir = __DIR__ . '/../../../../../../html/upload/save_image/'; + $this->assertTrue(file_exists($dir . $DuplicatedImage->getFileName())); + $this->assertFalse(file_exists($dir . $NotDuplicatedImage->getFileName())); + } } diff --git a/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php index bb9c19361e6..ddd4e1b1435 100644 --- a/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php @@ -17,9 +17,11 @@ use Eccube\Entity\Master\ProductStatus; use Eccube\Entity\Master\RoundingType; use Eccube\Entity\ProductClass; +use Eccube\Entity\ProductImage; use Eccube\Entity\ProductTag; use Eccube\Entity\Tag; use Eccube\Entity\TaxRule; +use Eccube\Tests\Fixture\Generator; use Eccube\Tests\Web\Admin\AbstractAdminWebTestCase; use Eccube\Util\StringUtil; use Symfony\Component\DomCrawler\Crawler; @@ -1049,4 +1051,46 @@ private function createSearchForm() return $post; } + + /** + * 商品画像を削除する際に、他の商品画像が参照しているファイルは削除せず、それ以外は削除することをテスト + */ + public function testDeleteImage() + { + /** @var Generator $generator */ + $generator = $this->container->get(Generator::class); + $Product1 = $generator->createProduct(null, 0, 'abstract'); + $Product2 = $generator->createProduct(null, 0, 'abstract'); + + $DuplicatedImage = $Product1->getProductImage()->first(); + assert($DuplicatedImage instanceof ProductImage); + + $NotDuplicatedImage = $Product1->getProductImage()->last(); + assert($NotDuplicatedImage instanceof ProductImage); + + $NewProduct2Image = new ProductImage(); + $NewProduct2Image + ->setProduct($Product2) + ->setFileName($DuplicatedImage->getFileName()) + ->setSortNo(999) + ; + $Product2->addProductImage($NewProduct2Image); + $this->entityManager->persist($NewProduct2Image); + $this->entityManager->flush(); + + $data = $this->createFormData(); + $data['delete_images'] = $Product1->getProductImage()->map(static function (ProductImage $ProductImage) { + return $ProductImage->getFileName(); + })->toArray(); + $this->client->request( + 'POST', + $this->generateUrl('admin_product_product_edit', ['id' => $Product1->getId()]), + ['admin_product' => $data] + ); + $this->assertTrue($this->client->getResponse()->isRedirect()); + + $dir = __DIR__.'/../../../../../../html/upload/save_image/'; + $this->assertTrue(file_exists($dir . $DuplicatedImage->getFileName())); + $this->assertFalse(file_exists($dir . $NotDuplicatedImage->getFileName())); + } } From 328bacddb9f7854be2652e41422864718dc639fd Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Thu, 12 Nov 2020 17:46:02 +0900 Subject: [PATCH 045/207] =?UTF-8?q?OrderRepository=20=E3=81=AE=E5=90=8D?= =?UTF-8?q?=E5=89=8D=E3=81=AE=E6=A4=9C=E7=B4=A2=E3=81=AB=E9=96=A2=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=83=86=E3=82=B9=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tests/Repository/OrderRepositoryTest.php | 73 ++++++++++++++++++- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/tests/Eccube/Tests/Repository/OrderRepositoryTest.php b/tests/Eccube/Tests/Repository/OrderRepositoryTest.php index c13a5eac521..1537878094d 100644 --- a/tests/Eccube/Tests/Repository/OrderRepositoryTest.php +++ b/tests/Eccube/Tests/Repository/OrderRepositoryTest.php @@ -14,8 +14,8 @@ namespace Eccube\Tests\Repository; use Eccube\Entity\Customer; -use Eccube\Entity\Order; use Eccube\Entity\Master\OrderStatus; +use Eccube\Entity\Order; use Eccube\Repository\OrderRepository; use Eccube\Tests\EccubeTestCase; @@ -125,7 +125,7 @@ public function testGetQueryBuilderBySearchDataForAdmin_multi_2147483648() $Order = $this->createOrder($this->createCustomer('2147483648@example.com')); $Order->setOrderStatus($this->entityManager->find(OrderStatus::class, OrderStatus::NEW)); $this->orderRepository->save($Order); - $this->entityManager->flush();; + $this->entityManager->flush(); $actual = $this->orderRepository->getQueryBuilderBySearchDataForAdmin(['multi' => '2147483648']) ->getQuery() @@ -133,4 +133,73 @@ public function testGetQueryBuilderBySearchDataForAdmin_multi_2147483648() self::assertEquals($Order, $actual[0]); } + + /** + * @dataProvider dataGetQueryBuilderBySearchDataForAdmin_nameProvider + */ + public function testGetQueryBuilderBySearchDataForAdmin_name(string $formName, string $searchWord, int $expected) + { + $this->Order + ->setOrderStatus($this->entityManager->find(OrderStatus::class, OrderStatus::NEW)) + ->setName01('姓') + ->setName02('名') + ->setKana01('セイ') + ->setKana02('メイ') + ->setCompanyName('株式会社 会社名'); // 全角スペース + $this->orderRepository->save($this->Order); + $this->entityManager->flush(); + + $actual = $this->orderRepository->getQueryBuilderBySearchDataForAdmin([$formName => $searchWord]) + ->getQuery() + ->getResult(); + + self::assertCount($expected, $actual); + } + + public function dataGetQueryBuilderBySearchDataForAdmin_nameProvider() + { + return [ + ['multi', '姓', 1], + ['multi', '名', 1], + ['multi', '姓名', 1], + ['multi', '姓 名', 1], + ['multi', '姓 名', 1], + ['multi', 'セイ', 1], + ['multi', 'メイ', 1], + ['multi', 'セイメイ', 1], + ['multi', 'セイ メイ', 1], + ['multi', 'セイ メイ', 1], + ['multi', '株式会社', 1], + ['multi', '会社名', 1], + ['multi', '株式会社会社名', 0], + ['multi', '株式会社 会社名', 0], // 半角スペース + ['multi', '株式会社 会社名', 1], // 全角スペース + ['multi', '石', 0], + ['multi', 'キューブ', 0], + ['multi', '姓 球部', 0], + ['multi', 'セイ 名', 0], + ['multi', '姓 メイ', 0], + ['name', '姓', 1], + ['name', '名', 1], + ['name', '姓名', 1], + ['name', '姓 名', 1], + ['name', '姓 名', 1], + ['name', 'セイ', 0], + ['name', '株式会社 会社名', 0], + ['kana', 'セイ', 1], + ['kana', 'メイ', 1], + ['kana', 'セイメイ', 1], + ['kana', 'セイ メイ', 1], + ['kana', 'セイ メイ', 1], + ['kana', '姓', 0], + ['kana', '株式会社 会社名', 0], + ['company_name', '株式会社', 1], + ['company_name', '会社名', 1], + ['company_name', '株式会社会社名', 0], + ['company_name', '株式会社 会社名', 0], // 半角スペース + ['company_name', '株式会社 会社名', 1], // 全角スペース + ['company_name', '姓', 0], + ['company_name', 'セイ', 0], + ]; + } } From 0da4c71aa14c4d03ab29a16950ddd80a02d69f6c Mon Sep 17 00:00:00 2001 From: hama Date: Fri, 13 Nov 2020 11:07:06 +0900 Subject: [PATCH 046/207] =?UTF-8?q?=E5=AF=BE=E5=BF=9C=E6=BC=8F=E3=82=8C?= =?UTF-8?q?=E5=88=86=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Product/ProductController.php | 4 ++ .../Admin/Product/ProductContorllerTest.php | 39 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/src/Eccube/Controller/Admin/Product/ProductController.php b/src/Eccube/Controller/Admin/Product/ProductController.php index 16531d9f4c9..f9043ff4a15 100644 --- a/src/Eccube/Controller/Admin/Product/ProductController.php +++ b/src/Eccube/Controller/Admin/Product/ProductController.php @@ -722,7 +722,11 @@ public function delete(Request $request, $id = null, CacheUtil $cacheUtil) $deleteImages = $event->getArgument('deleteImages'); // 画像ファイルの削除(commit後に削除させる) + /** @var ProductImage $deleteImage */ foreach ($deleteImages as $deleteImage) { + if ($this->productImageRepository->findOneBy(['file_name' => $deleteImage->getFileName()])) { + continue; + } try { $fs = new Filesystem(); $fs->remove($this->eccubeConfig['eccube_save_image_dir'].'/'.$deleteImage); diff --git a/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php index ddd4e1b1435..47f9db18e88 100644 --- a/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php @@ -1093,4 +1093,43 @@ public function testDeleteImage() $this->assertTrue(file_exists($dir . $DuplicatedImage->getFileName())); $this->assertFalse(file_exists($dir . $NotDuplicatedImage->getFileName())); } + + public function testDeleteAndDeleteProductImage() + { + /** @var Generator $generator */ + $generator = $this->container->get(Generator::class); + $Product1 = $generator->createProduct(null, 0, 'abstract'); + $Product2 = $generator->createProduct(null, 0, 'abstract'); + + $DuplicatedImage = $Product1->getProductImage()->first(); + assert($DuplicatedImage instanceof ProductImage); + + $NotDuplicatedImage = $Product1->getProductImage()->last(); + assert($NotDuplicatedImage instanceof ProductImage); + + $NewProduct2Image = new ProductImage(); + $NewProduct2Image + ->setProduct($Product2) + ->setFileName($DuplicatedImage->getFileName()) + ->setSortNo(999) + ; + $Product2->addProductImage($NewProduct2Image); + $this->entityManager->persist($NewProduct2Image); + $this->entityManager->flush(); + + $params = [ + 'id' => $Product1->getId(), + Constant::TOKEN_NAME => 'dummy', + ]; + + $this->client->request('DELETE', $this->generateUrl('admin_product_product_delete', $params)); + + $rUrl = $this->generateUrl('admin_product_page', ['page_no' => 1]).'?resume=1'; + + $this->assertTrue($this->client->getResponse()->isRedirect($rUrl)); + + $dir = __DIR__.'/../../../../../../html/upload/save_image/'; + $this->assertTrue(file_exists($dir . $DuplicatedImage->getFileName())); + $this->assertFalse(file_exists($dir . $NotDuplicatedImage->getFileName())); + } } From f52c4dc8ed974a5642c0772b5f870ec40b7efac4 Mon Sep 17 00:00:00 2001 From: Yuki Okuno Date: Sun, 15 Nov 2020 00:11:18 +0900 Subject: [PATCH 047/207] =?UTF-8?q?fix:HTML=E3=81=AE=E5=B1=9E=E6=80=A7maxl?= =?UTF-8?q?ength=E3=81=AEtype=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Form/Type/Admin/LoginType.php | 4 ++-- src/Eccube/Form/Type/Front/CustomerLoginType.php | 4 ++-- src/Eccube/Form/Type/Front/ForgotType.php | 2 +- src/Eccube/Form/Type/Front/PasswordResetType.php | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Eccube/Form/Type/Admin/LoginType.php b/src/Eccube/Form/Type/Admin/LoginType.php index df8c18d95eb..5f7152619f1 100644 --- a/src/Eccube/Form/Type/Admin/LoginType.php +++ b/src/Eccube/Form/Type/Admin/LoginType.php @@ -40,7 +40,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('login_id', TextType::class, [ 'attr' => [ - 'max_length' => 50, + 'maxlength' => 50, ], 'constraints' => [ new Assert\NotBlank(), @@ -49,7 +49,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) ]); $builder->add('password', PasswordType::class, [ 'attr' => [ - 'max_length' => 50, + 'maxlength' => 50, ], 'constraints' => [ new Assert\NotBlank(), diff --git a/src/Eccube/Form/Type/Front/CustomerLoginType.php b/src/Eccube/Form/Type/Front/CustomerLoginType.php index adbdc3f2a86..a60121c82aa 100644 --- a/src/Eccube/Form/Type/Front/CustomerLoginType.php +++ b/src/Eccube/Form/Type/Front/CustomerLoginType.php @@ -48,7 +48,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('login_email', EmailType::class, [ 'attr' => [ - 'max_length' => $this->eccubeConfig['eccube_stext_len'], + 'maxlength' => $this->eccubeConfig['eccube_stext_len'], ], 'constraints' => [ new Assert\NotBlank(), @@ -61,7 +61,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) ]); $builder->add('login_pass', PasswordType::class, [ 'attr' => [ - 'max_length' => $this->eccubeConfig['eccube_stext_len'], + 'maxlength' => $this->eccubeConfig['eccube_stext_len'], ], 'constraints' => [ new Assert\NotBlank(), diff --git a/src/Eccube/Form/Type/Front/ForgotType.php b/src/Eccube/Form/Type/Front/ForgotType.php index b82f572b555..48a1423be4e 100644 --- a/src/Eccube/Form/Type/Front/ForgotType.php +++ b/src/Eccube/Form/Type/Front/ForgotType.php @@ -47,7 +47,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('login_email', EmailType::class, [ 'attr' => [ - 'max_length' => $this->eccubeConfig['eccube_stext_len'], + 'maxlength' => $this->eccubeConfig['eccube_stext_len'], ], 'constraints' => [ new Assert\NotBlank(), diff --git a/src/Eccube/Form/Type/Front/PasswordResetType.php b/src/Eccube/Form/Type/Front/PasswordResetType.php index 30068fc405d..588a2c979e4 100644 --- a/src/Eccube/Form/Type/Front/PasswordResetType.php +++ b/src/Eccube/Form/Type/Front/PasswordResetType.php @@ -49,7 +49,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('login_email', EmailType::class, [ 'attr' => [ - 'max_length' => $this->eccubeConfig['eccube_stext_len'], + 'maxlength' => $this->eccubeConfig['eccube_stext_len'], ], 'constraints' => [ new Assert\NotBlank(), From 8bef45912488cfe61e324ebbc5f04329c7f231a2 Mon Sep 17 00:00:00 2001 From: hama Date: Wed, 25 Nov 2020 16:45:32 +0900 Subject: [PATCH 048/207] =?UTF-8?q?=E7=89=B9=E5=AE=9A=E3=81=AEPDF=E3=83=86?= =?UTF-8?q?=E3=83=B3=E3=83=97=E3=83=AC=E3=83=BC=E3=83=88=E3=81=A7=E8=A1=A8?= =?UTF-8?q?=E3=81=8C=E6=AD=A3=E5=B8=B8=E3=81=AB=E5=87=BA=E5=8A=9B=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=81=AA=E3=81=84=E4=B8=8D=E5=85=B7=E5=90=88=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Service/OrderPdfService.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Eccube/Service/OrderPdfService.php b/src/Eccube/Service/OrderPdfService.php index 7281955ffb3..c0031fd1fb3 100644 --- a/src/Eccube/Service/OrderPdfService.php +++ b/src/Eccube/Service/OrderPdfService.php @@ -287,6 +287,7 @@ protected function addPdfPage() // テンプレートに使うテンプレートファイルのページ番号を指定 $this->useTemplate($tplIdx, null, null, null, null, true); + $this->setPageMark(); } /** From 65ab823e3334eed60dc880ca967f75ee935365a7 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Mon, 30 Nov 2020 14:58:43 +0900 Subject: [PATCH 049/207] =?UTF-8?q?CSV=E3=81=A7=E5=95=86=E5=93=81=E8=A6=8F?= =?UTF-8?q?=E6=A0=BC=E3=82=92=E7=99=BB=E9=8C=B2=E6=99=82=E3=81=AB=E4=BB=BB?= =?UTF-8?q?=E6=84=8F=E9=A0=85=E7=9B=AE=E3=81=AE=E9=A0=85=E7=9B=AE=E3=81=8C?= =?UTF-8?q?=E3=81=AA=E3=81=84=E5=A0=B4=E5=90=88=E3=81=AE=E3=82=A8=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Product/CsvImportController.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Eccube/Controller/Admin/Product/CsvImportController.php b/src/Eccube/Controller/Admin/Product/CsvImportController.php index 902e60d825f..fbd372d67ba 100644 --- a/src/Eccube/Controller/Admin/Product/CsvImportController.php +++ b/src/Eccube/Controller/Admin/Product/CsvImportController.php @@ -1202,7 +1202,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod $ProductClass->setProduct($Product); $line = $data->key() + 1; - if ($row[$headerByKey['sale_type']] == '') { + if (!isset($row[$headerByKey['sale_type']]) || $row[$headerByKey['sale_type']] == '') { $message = trans('admin.common.csv_invalid_required', ['%line%' => $line, '%name%' => $headerByKey['sale_type']]); $this->addErrors($message); } else { @@ -1221,7 +1221,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod } // 規格分類1、2をそれぞれセットし作成 - if ($row[$headerByKey['class_category1']] != '') { + if (isset($row[$headerByKey['class_category1']]) && $row[$headerByKey['class_category1']] != '') { if (preg_match('/^\d+$/', $row[$headerByKey['class_category1']])) { $ClassCategory = $this->classCategoryRepository->find($row[$headerByKey['class_category1']]); if (!$ClassCategory) { @@ -1236,7 +1236,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod } } - if ($row[$headerByKey['class_category2']] != '') { + if (isset($row[$headerByKey['class_category2']]) && $row[$headerByKey['class_category2']] != '') { if (preg_match('/^\d+$/', $row[$headerByKey['class_category2']])) { $ClassCategory = $this->classCategoryRepository->find($row[$headerByKey['class_category2']]); if (!$ClassCategory) { @@ -1251,7 +1251,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod } } - if ($row[$headerByKey['delivery_date']] != '') { + if (isset($row[$headerByKey['delivery_date']]) && $row[$headerByKey['delivery_date']] != '') { if (preg_match('/^\d+$/', $row[$headerByKey['delivery_date']])) { $DeliveryDuration = $this->deliveryDurationRepository->find($row[$headerByKey['delivery_date']]); if (!$DeliveryDuration) { @@ -1266,7 +1266,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod } } - if (StringUtil::isNotBlank($row[$headerByKey['product_code']])) { + if (isset($row[$headerByKey['product_code']]) && StringUtil::isNotBlank($row[$headerByKey['product_code']])) { $ProductClass->setCode(StringUtil::trimAll($row[$headerByKey['product_code']])); } else { $ProductClass->setCode(null); @@ -1298,7 +1298,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod $this->addErrors($message); } - if ($row[$headerByKey['sale_limit']] != '') { + if (isset($row[$headerByKey['sale_limit']]) && $row[$headerByKey['sale_limit']] != '') { $saleLimit = str_replace(',', '', $row[$headerByKey['sale_limit']]); if (preg_match('/^\d+$/', $saleLimit) && $saleLimit >= 0) { $ProductClass->setSaleLimit($saleLimit); @@ -1308,7 +1308,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod } } - if ($row[$headerByKey['price01']] != '') { + if (isset($row[$headerByKey['price01']]) && $row[$headerByKey['price01']] != '') { $price01 = str_replace(',', '', $row[$headerByKey['price01']]); $errors = $this->validator->validate($price01, new GreaterThanOrEqual(['value' => 0])); if ($errors->count() === 0) { @@ -1319,7 +1319,7 @@ protected function updateProductClass($row, Product $Product, ProductClass $Prod } } - if ($row[$headerByKey['price02']] == '') { + if (!isset($row[$headerByKey['price02']]) || $row[$headerByKey['price02']] == '') { $message = trans('admin.common.csv_invalid_required', ['%line%' => $line, '%name%' => $headerByKey['price02']]); $this->addErrors($message); } else { From a5055185e573d99824442c95366f3ec084b3915f Mon Sep 17 00:00:00 2001 From: ouyou Date: Sun, 12 Jan 2020 21:45:34 +0900 Subject: [PATCH 050/207] =?UTF-8?q?=E3=83=9A=E3=83=BC=E3=82=B8=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E3=81=AE=E7=B7=A8=E9=9B=86=E5=AF=BE=E8=B1=A1=E3=81=AB?= =?UTF-8?q?=E4=BC=9A=E5=93=A1=E7=99=BB=E9=8C=B2(=E7=A2=BA=E8=AA=8D?= =?UTF-8?q?=E3=83=9A=E3=83=BC=E3=82=B8)=E3=82=92=E5=8A=A0=E3=81=88?= =?UTF-8?q?=E3=82=8B=20#4428?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Content/LayoutController.php | 2 +- .../Admin/Content/PageController.php | 3 +- src/Eccube/Entity/Page.php | 1 + src/Eccube/Form/Type/Admin/MainEditType.php | 9 +- src/Eccube/Repository/PageRepository.php | 5 +- .../doctrine/import_csv/en/dtb_page.csv | 21 ++- .../doctrine/import_csv/ja/dtb_page.csv | 3 + .../template/admin/Content/page_edit.twig | 178 +++++++++--------- 8 files changed, 120 insertions(+), 102 deletions(-) diff --git a/src/Eccube/Controller/Admin/Content/LayoutController.php b/src/Eccube/Controller/Admin/Content/LayoutController.php index f5e32e07be6..c5b34f0660e 100644 --- a/src/Eccube/Controller/Admin/Content/LayoutController.php +++ b/src/Eccube/Controller/Admin/Content/LayoutController.php @@ -207,7 +207,7 @@ public function edit(Request $request, $id = null, $previewPageId = null, CacheU throw new NotFoundHttpException(); } - if ($Page->getEditType() == \Eccube\Entity\Page::EDIT_TYPE_DEFAULT) { + if ($Page->getEditType() >= \Eccube\Entity\Page::EDIT_TYPE_DEFAULT) { if ($Page->getUrl() === 'product_detail') { $product = $this->productRepository->findOneBy(['Status' => ProductStatus::DISPLAY_SHOW]); if (is_null($product)) { diff --git a/src/Eccube/Controller/Admin/Content/PageController.php b/src/Eccube/Controller/Admin/Content/PageController.php index 4b22bf005b7..d9f5b358388 100644 --- a/src/Eccube/Controller/Admin/Content/PageController.php +++ b/src/Eccube/Controller/Admin/Content/PageController.php @@ -120,7 +120,7 @@ public function edit(Request $request, $id = null, Environment $twig, RouterInte $namespace = '@user_data/'; if ($id) { // 編集不可ページはURL、ページ名、ファイル名を保持 - if ($Page->getEditType() == Page::EDIT_TYPE_DEFAULT) { + if ($Page->getEditType() >= Page::EDIT_TYPE_DEFAULT) { $isUserDataPage = false; $namespace = ''; $PrevPage = clone $Page; @@ -245,6 +245,7 @@ public function edit(Request $request, $id = null, Environment $twig, RouterInte 'form' => $form->createView(), 'page_id' => $Page->getId(), 'is_user_data_page' => $isUserDataPage, + 'is_confirm_page' => $Page->getEditType() == Page::EDIT_TYPE_DEFAULT_CONFIRM, 'template_path' => $templatePath, 'url' => $url, ]; diff --git a/src/Eccube/Entity/Page.php b/src/Eccube/Entity/Page.php index 44dc489d700..8df1344f2eb 100644 --- a/src/Eccube/Entity/Page.php +++ b/src/Eccube/Entity/Page.php @@ -31,6 +31,7 @@ class Page extends \Eccube\Entity\AbstractEntity const EDIT_TYPE_USER = 0; const EDIT_TYPE_PREVIEW = 1; const EDIT_TYPE_DEFAULT = 2; + const EDIT_TYPE_DEFAULT_CONFIRM = 3; // 特定商取引法ページID const TRADELAW_PAGE_ID = 21; diff --git a/src/Eccube/Form/Type/Admin/MainEditType.php b/src/Eccube/Form/Type/Admin/MainEditType.php index ac08f687788..9a41ef7bfea 100644 --- a/src/Eccube/Form/Type/Admin/MainEditType.php +++ b/src/Eccube/Form/Type/Admin/MainEditType.php @@ -221,6 +221,13 @@ public function buildForm(FormBuilderInterface $builder, array $options) ->setParameter('page_id', $Page->getId()); } + //確認ページの編集ページ存在している場合 + if ($Page->getEditType() == Page::EDIT_TYPE_DEFAULT_CONFIRM && $Page->getMasterPage()) { + $qb + ->andWhere('p.id <> :master_page_id') + ->setParameter('master_page_id', $Page->getMasterPage()->getId()); + } + $count = $qb->getQuery()->getSingleScalarResult(); if ($count > 0) { $form['url']->addError(new FormError(trans('admin.content.page_url_exists'))); @@ -253,7 +260,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) $qb->select('count(p)') ->from('Eccube\\Entity\\Page', 'p') ->where('p.file_name = :file_name') - ->andWhere('p.edit_type = :edit_type') + ->andWhere('p.edit_type >= :edit_type') ->setParameter('file_name', $Page->getFileName()) ->setParameter('edit_type', Page::EDIT_TYPE_DEFAULT); diff --git a/src/Eccube/Repository/PageRepository.php b/src/Eccube/Repository/PageRepository.php index 5f34d053bf9..c64169a1d34 100644 --- a/src/Eccube/Repository/PageRepository.php +++ b/src/Eccube/Repository/PageRepository.php @@ -138,8 +138,9 @@ public function getPageList($where = null, $parameters = []) { $qb = $this->createQueryBuilder('p') ->andWhere('p.id <> 0') - ->andWhere('p.MasterPage is null') - ->orderBy('p.id', 'ASC'); + ->andWhere('(p.MasterPage is null OR p.edit_type = :edit_type)') + ->orderBy('p.id', 'ASC') + ->setParameter('edit_type', Page::EDIT_TYPE_DEFAULT_CONFIRM); if (!is_null($where)) { $qb->andWhere($where); foreach ($parameters as $key => $val) { diff --git a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv index b13f8486e28..6f7485eac29 100644 --- a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv +++ b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv @@ -2,15 +2,15 @@ id,page_name,url,file_name,edit_type,author,description,keyword,create_date,upda 0,Preview,preview,,1,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,,,page, 1,Home,homepage,index,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,,,page, 2,All Products,product_list,Product/list,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,,,page, -3,Product Details,product_detail,Product/detail,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,,,page," - - - - - - - -" +3,Product Details,product_detail,Product/detail,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,,,page, + + + + + + + + 4,My Account,mypage,Mypage/index,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,noindex,,page, 5,My Account / Edit Customer Info (Form),mypage_change,Mypage/change,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,noindex,,page, 6,My Account / Edit Customer Info (Thank-you),mypage_change_complete,Mypage/change_complete,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,noindex,,page, @@ -47,3 +47,6 @@ id,page_name,url,file_name,edit_type,author,description,keyword,create_date,upda 42,Shopping / Change Delivery Address,shopping_shipping_edit_change,Shopping/index,2,,,,2017-03-07 01:15:03,2017-03-07 01:15:03,noindex,,page, 44,My Account / Edit Delivery Address,mypage_delivery_edit,Mypage/delivery_edit,2,,,,2017-03-07 01:15:05,2017-03-07 01:15:05,noindex,8,page, 45,Shopping / Review,shopping_confirm,Shopping/confirm,2,,,,2017-03-07 01:15:03,2017-03-07 01:15:03,noindex,,page, +46,Registration (Form) Review,entry,Entry/confirm,3,,,,2020-01-12 01:15:03,2020-01-12 01:15:03,noindex,18,page, +47,My Account / Membership Cancellation (Form) Review,mypage_withdraw,Mypage/withdraw_confirm,3,,,,2020-01-12 10:14:52,2020-01-12 10:14:52,noindex,12,page, +48,Inquiry (Form) Review,contact,Contact/confirm,3,,,,2020-01-12 10:14:52,2020-01-12 10:14:52,,16,page, diff --git a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv index cf0294d41af..474a2f5426f 100644 --- a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv +++ b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv @@ -47,3 +47,6 @@ id,page_name,url,file_name,edit_type,author,description,keyword,create_date,upda "42","商品購入/遷移","shopping_redirect_to","Shopping/index","2",,,,"2017-03-07 01:15:03","2017-03-07 01:15:03","noindex",,"page", "44","MYページ/お届け先編集","mypage_delivery_edit","Mypage/delivery_edit","2",,,,"2017-03-07 01:15:05","2017-03-07 01:15:05","noindex",8,"page", "45","商品購入/ご注文確認","shopping_confirm","Shopping/confirm","2",,,,"2017-03-07 01:15:03","2017-03-07 01:15:03","noindex",,"page", +"46","会員登録(確認ページ)","entry","Entry/confirm","3",,,,"2020-01-12 01:15:03","2020-01-12 01:15:03","noindex",18,"page", +"47","MYページ/退会手続き(確認ページ)","mypage_withdraw","Mypage/withdraw_confirm","3",,,,"2020-01-12 10:14:52","2020-01-12 10:14:52","noindex",12,"page", +"48","お問い合わせ(確認ページ)","contact","Contact/confirm","3",,,,"2020-01-12 10:14:52","2020-01-12 10:14:52",,16,"page", diff --git a/src/Eccube/Resource/template/admin/Content/page_edit.twig b/src/Eccube/Resource/template/admin/Content/page_edit.twig index 9ad2fdf76d4..3d33dec3776 100644 --- a/src/Eccube/Resource/template/admin/Content/page_edit.twig +++ b/src/Eccube/Resource/template/admin/Content/page_edit.twig @@ -173,114 +173,116 @@ file that was distributed with this source code. - -
-
-
-
-
- - {{ 'admin.content.page_layout__card_title'|trans }} - - + {%- if not is_confirm_page %} + +
+
+
+
+
+ + {{ 'admin.content.page_layout__card_title'|trans }} + + +
+
+ -
-
-
-
-
- -
-
{{ 'admin.content.page_pc'|trans }}
-
- {{ form_widget(form.PcLayout) }} - {{ form_errors(form.PcLayout) }} +
+
+ +
+
{{ 'admin.content.page_pc'|trans }}
+
+ {{ form_widget(form.PcLayout) }} + {{ form_errors(form.PcLayout) }} +
-
- -
-
{{ 'admin.content.page_mobile'|trans }}
-
- {{ form_widget(form.SpLayout) }} - {{ form_errors(form.SpLayout) }} + +
+
{{ 'admin.content.page_mobile'|trans }}
+
+ {{ form_widget(form.SpLayout) }} + {{ form_errors(form.SpLayout) }} +
-
- -
-
-
-
-
- {{ 'admin.content.page_meta__card_title'|trans }} - + +
+
+
+
+
+ {{ 'admin.content.page_meta__card_title'|trans }} + +
-
-
- -
-
-
-
-
- -
-
{{ 'admin.content.page_meta_author'|trans }}
-
- {{ form_widget(form.author) }} - {{ form_errors(form.author) }} +
- -
-
{{ 'admin.content.page_meta_description'|trans }}
-
- {{ form_widget(form.description) }} - {{ form_errors(form.description) }} +
+
+
+ +
+
{{ 'admin.content.page_meta_author'|trans }}
+
+ {{ form_widget(form.author) }} + {{ form_errors(form.author) }} +
-
- -
-
{{ 'admin.content.page_meta_keyword'|trans }}
-
- {{ form_widget(form.keyword) }} - {{ form_errors(form.keyword) }} + +
+
{{ 'admin.content.page_meta_description'|trans }}
+
+ {{ form_widget(form.description) }} + {{ form_errors(form.description) }} +
-
- -
-
{{ 'admin.content.page_meta_robot'|trans }}
-
- {{ form_widget(form.meta_robots) }} - {{ form_errors(form.meta_robots) }} + +
+
{{ 'admin.content.page_meta_keyword'|trans }}
+
+ {{ form_widget(form.keyword) }} + {{ form_errors(form.keyword) }} +
-
- -
-
-
- {{ 'admin.content.page_meta_metatag'|trans }} - + +
+
{{ 'admin.content.page_meta_robot'|trans }}
+
+ {{ form_widget(form.meta_robots) }} + {{ form_errors(form.meta_robots) }}
-
- {{ form_widget(form.meta_tags, { attr : { placeholder : 'admin.content.page_meta_metatag_placeholder'|trans, rows : '10' }}) }} - {{ form_errors(form.meta_tags) }} + +
+
+
+ {{ 'admin.content.page_meta_metatag'|trans }} + +
+
+
+ {{ form_widget(form.meta_tags, { attr : { placeholder : 'admin.content.page_meta_metatag_placeholder'|trans, rows : '10' }}) }} + {{ form_errors(form.meta_tags) }} +
-
+ {% endif -%}
From 06946f34aff6e205bd02683d69a224709a050fb6 Mon Sep 17 00:00:00 2001 From: ouyou Date: Tue, 14 Jan 2020 10:34:30 +0900 Subject: [PATCH 051/207] =?UTF-8?q?csv=E4=B8=80=E9=83=A8=E6=88=BB=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doctrine/import_csv/en/dtb_page.csv | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv index 6f7485eac29..f1bbaa6271a 100644 --- a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv +++ b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv @@ -2,15 +2,15 @@ id,page_name,url,file_name,edit_type,author,description,keyword,create_date,upda 0,Preview,preview,,1,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,,,page, 1,Home,homepage,index,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,,,page, 2,All Products,product_list,Product/list,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,,,page, -3,Product Details,product_detail,Product/detail,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,,,page, - - - - - - - - +3,Product Details,product_detail,Product/detail,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,,,page," + + + + + + + +" 4,My Account,mypage,Mypage/index,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,noindex,,page, 5,My Account / Edit Customer Info (Form),mypage_change,Mypage/change,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,noindex,,page, 6,My Account / Edit Customer Info (Thank-you),mypage_change_complete,Mypage/change_complete,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,noindex,,page, From 148f22712548fb710a6c761b711034e5196d073c Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Tue, 1 Dec 2020 08:42:28 +0900 Subject: [PATCH 052/207] =?UTF-8?q?=E3=83=AC=E3=82=A4=E3=82=A2=E3=82=A6?= =?UTF-8?q?=E3=83=88=E3=81=A8=E9=80=A3=E5=8B=95=E3=81=99=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3=E3=80=81=E3=83=9E=E3=82=A4?= =?UTF-8?q?=E3=82=B0=E3=83=AC=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Version20201127000000.php | 77 +++++++++++++++++++ src/Eccube/Controller/ContactController.php | 13 +++- src/Eccube/Controller/EntryController.php | 12 ++- .../Controller/Mypage/WithdrawController.php | 13 +++- .../doctrine/import_csv/ja/dtb_page.csv | 6 +- .../import_csv/ja/dtb_page_layout.csv | 3 + 6 files changed, 118 insertions(+), 6 deletions(-) create mode 100644 app/DoctrineMigrations/Version20201127000000.php diff --git a/app/DoctrineMigrations/Version20201127000000.php b/app/DoctrineMigrations/Version20201127000000.php new file mode 100644 index 00000000000..8a10e377667 --- /dev/null +++ b/app/DoctrineMigrations/Version20201127000000.php @@ -0,0 +1,77 @@ +connection->fetchColumn("SELECT COUNT(*) FROM dtb_page WHERE url = 'entry_confirm'"); + if ($count > 0) { + return; + } + $pageId = $this->connection->fetchColumn('SELECT MAX(id) FROM dtb_page'); + $sortNo = $this->connection->fetchColumn('SELECT MAX(sort_no) FROM dtb_page_layout'); + + $pageId++; + $this->addSql("INSERT INTO dtb_page ( + id, master_page_id, page_name, url, file_name, edit_type, create_date, update_date, meta_robots, discriminator_type + ) VALUES( + $pageId, 18, '会員登録(確認ページ)', 'entry_confirm', 'Entry/confirm', 3, '2020-01-12 01:15:03', '2020-01-12 01:15:03', 'noindex', 'page' + )"); + + $sortNo++; + $this->addSql("INSERT INTO dtb_page_layout (page_id, layout_id, sort_no, discriminator_type) VALUES ($pageId, 2, , $sortNo, 'pagelayout')"); + + $pageId++; + $this->addSql("INSERT INTO dtb_page ( + id, master_page_id, page_name, url, file_name, edit_type, create_date, update_date, meta_robots, discriminator_type + ) VALUES( + $pageId, 12, 'MYページ/退会手続き(確認ページ)', 'mypage_withdraw_confirm', 'Mypage/withdraw_confirm', 3, '2020-01-12 01:15:03', '2020-01-12 01:15:03', 'noindex', 'page' + )"); + + $sortNo++; + $this->addSql("INSERT INTO dtb_page_layout (page_id, layout_id, sort_no, discriminator_type) VALUES ($pageId, 2, , $sortNo, 'pagelayout')"); + + $pageId++; + $this->addSql("INSERT INTO dtb_page ( + id, master_page_id, page_name, url, file_name, edit_type, create_date, update_date, meta_robots, discriminator_type + ) VALUES( + $pageId, 16, 'お問い合わせ(確認ページ)', 'contact_confirm', 'Contact/confirm', 3, '2020-01-12 01:15:03', '2020-01-12 01:15:03', 'noindex', 'page' + )"); + + $sortNo++; + $this->addSql("INSERT INTO dtb_page_layout (page_id, layout_id, sort_no, discriminator_type) VALUES ($pageId, 2, , $sortNo, 'pagelayout')"); + + if ($this->platform->getName() === 'postgresql') { + $this->addSql("SELECT setval('dtb_page_id_seq', $pageId)"); + } + } + + public function down(Schema $schema) : void + { + // this down() migration is auto-generated, please modify it to your needs + + } +} diff --git a/src/Eccube/Controller/ContactController.php b/src/Eccube/Controller/ContactController.php index 63a2da3a199..3a60fe13cab 100644 --- a/src/Eccube/Controller/ContactController.php +++ b/src/Eccube/Controller/ContactController.php @@ -17,6 +17,7 @@ use Eccube\Event\EccubeEvents; use Eccube\Event\EventArgs; use Eccube\Form\Type\Front\ContactType; +use Eccube\Repository\PageRepository; use Eccube\Service\MailService; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Component\HttpFoundation\Request; @@ -29,21 +30,30 @@ class ContactController extends AbstractController */ protected $mailService; + /** + * @var PageRepository + */ + private $pageRepository; + /** * ContactController constructor. * * @param MailService $mailService + * @param PageRepository $pageRepository */ public function __construct( - MailService $mailService) + MailService $mailService, + PageRepository $pageRepository) { $this->mailService = $mailService; + $this->pageRepository = $pageRepository; } /** * お問い合わせ画面. * * @Route("/contact", name="contact") + * @Route("/contact", name="contact_confirm") * @Template("Contact/index.twig") */ public function index(Request $request) @@ -86,6 +96,7 @@ public function index(Request $request) case 'confirm': return $this->render('Contact/confirm.twig', [ 'form' => $form->createView(), + 'Page' => $this->pageRepository->getPageByRoute('') ]); case 'complete': diff --git a/src/Eccube/Controller/EntryController.php b/src/Eccube/Controller/EntryController.php index cc068746b2c..4cc7b80ae4c 100644 --- a/src/Eccube/Controller/EntryController.php +++ b/src/Eccube/Controller/EntryController.php @@ -21,6 +21,7 @@ use Eccube\Repository\BaseInfoRepository; use Eccube\Repository\CustomerRepository; use Eccube\Repository\Master\CustomerStatusRepository; +use Eccube\Repository\PageRepository; use Eccube\Service\MailService; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Component\HttpFoundation\Request; @@ -76,6 +77,11 @@ class EntryController extends AbstractController */ protected $cartService; + /** + * @var PageRepository + */ + protected $pageRepository; + /** * EntryController constructor. * @@ -96,7 +102,8 @@ public function __construct( CustomerRepository $customerRepository, EncoderFactoryInterface $encoderFactory, ValidatorInterface $validatorInterface, - TokenStorageInterface $tokenStorage + TokenStorageInterface $tokenStorage, + PageRepository $pageRepository ) { $this->customerStatusRepository = $customerStatusRepository; $this->mailService = $mailService; @@ -106,12 +113,14 @@ public function __construct( $this->recursiveValidator = $validatorInterface; $this->tokenStorage = $tokenStorage; $this->cartService = $cartService; + $this->pageRepository = $pageRepository; } /** * 会員登録画面. * * @Route("/entry", name="entry") + * @Route("/entry", name="entry_confirm") * @Template("Entry/index.twig") */ public function index(Request $request) @@ -152,6 +161,7 @@ public function index(Request $request) 'Entry/confirm.twig', [ 'form' => $form->createView(), + 'Page' => $this->pageRepository->getPageByRoute('entry_confirm') ] ); diff --git a/src/Eccube/Controller/Mypage/WithdrawController.php b/src/Eccube/Controller/Mypage/WithdrawController.php index 796a0b943e9..8afca2a8d41 100644 --- a/src/Eccube/Controller/Mypage/WithdrawController.php +++ b/src/Eccube/Controller/Mypage/WithdrawController.php @@ -18,6 +18,7 @@ use Eccube\Event\EccubeEvents; use Eccube\Event\EventArgs; use Eccube\Repository\Master\CustomerStatusRepository; +use Eccube\Repository\PageRepository; use Eccube\Service\CartService; use Eccube\Service\MailService; use Eccube\Service\OrderHelper; @@ -55,6 +56,11 @@ class WithdrawController extends AbstractController */ private $orderHelper; + /** + * @var PageRepository + */ + private $pageRepository; + /** * WithdrawController constructor. * @@ -63,25 +69,29 @@ class WithdrawController extends AbstractController * @param TokenStorageInterface $tokenStorage * @param CartService $cartService * @param OrderHelper $orderHelper + * @param PageRepository $pageRepository */ public function __construct( MailService $mailService, CustomerStatusRepository $customerStatusRepository, TokenStorageInterface $tokenStorage, CartService $cartService, - OrderHelper $orderHelper + OrderHelper $orderHelper, + PageRepository $pageRepository ) { $this->mailService = $mailService; $this->customerStatusRepository = $customerStatusRepository; $this->tokenStorage = $tokenStorage; $this->cartService = $cartService; $this->orderHelper = $orderHelper; + $this->pageRepository = $pageRepository; } /** * 退会画面. * * @Route("/mypage/withdraw", name="mypage_withdraw") + * @Route("/mypage/withdraw", name="mypage_withdraw_confirm") * @Template("Mypage/withdraw.twig") */ public function index(Request $request) @@ -109,6 +119,7 @@ public function index(Request $request) 'Mypage/withdraw_confirm.twig', [ 'form' => $form->createView(), + 'Page' => $this->pageRepository->getPageByRoute('mypage_withdraw_confirm') ] ); diff --git a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv index 474a2f5426f..51fa4c5302d 100644 --- a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv +++ b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page.csv @@ -47,6 +47,6 @@ id,page_name,url,file_name,edit_type,author,description,keyword,create_date,upda "42","商品購入/遷移","shopping_redirect_to","Shopping/index","2",,,,"2017-03-07 01:15:03","2017-03-07 01:15:03","noindex",,"page", "44","MYページ/お届け先編集","mypage_delivery_edit","Mypage/delivery_edit","2",,,,"2017-03-07 01:15:05","2017-03-07 01:15:05","noindex",8,"page", "45","商品購入/ご注文確認","shopping_confirm","Shopping/confirm","2",,,,"2017-03-07 01:15:03","2017-03-07 01:15:03","noindex",,"page", -"46","会員登録(確認ページ)","entry","Entry/confirm","3",,,,"2020-01-12 01:15:03","2020-01-12 01:15:03","noindex",18,"page", -"47","MYページ/退会手続き(確認ページ)","mypage_withdraw","Mypage/withdraw_confirm","3",,,,"2020-01-12 10:14:52","2020-01-12 10:14:52","noindex",12,"page", -"48","お問い合わせ(確認ページ)","contact","Contact/confirm","3",,,,"2020-01-12 10:14:52","2020-01-12 10:14:52",,16,"page", +"46","会員登録(確認ページ)","entry_confirm","Entry/confirm","3",,,,"2020-01-12 01:15:03","2020-01-12 01:15:03","noindex",18,"page", +"47","MYページ/退会手続き(確認ページ)","mypage_withdraw_confirm","Mypage/withdraw_confirm","3",,,,"2020-01-12 10:14:52","2020-01-12 10:14:52","noindex",12,"page", +"48","お問い合わせ(確認ページ)","contact_confirm","Contact/confirm","3",,,,"2020-01-12 10:14:52","2020-01-12 10:14:52","noindex",16,"page", diff --git a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page_layout.csv b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page_layout.csv index fa133883048..2b6c4f57492 100644 --- a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page_layout.csv +++ b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_page_layout.csv @@ -39,3 +39,6 @@ page_id,layout_id,sort_no,discriminator_type "38","2","39","pagelayout" "44","2","40","pagelayout" "45","2","41","pagelayout" +"46","2","42","pagelayout" +"47","2","43","pagelayout" +"48","2","44","pagelayout" From cc5023512e240bcab03c14b596270d79134d22ec Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Tue, 1 Dec 2020 09:51:56 +0900 Subject: [PATCH 053/207] =?UTF-8?q?en=E3=81=AEimport=20csv=E3=81=AB?= =?UTF-8?q?=E3=82=82=E5=8F=8D=E6=98=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv | 2 +- src/Eccube/Resource/doctrine/import_csv/en/dtb_page_layout.csv | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv index f1bbaa6271a..f0a825c2d5c 100644 --- a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv +++ b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv @@ -49,4 +49,4 @@ id,page_name,url,file_name,edit_type,author,description,keyword,create_date,upda 45,Shopping / Review,shopping_confirm,Shopping/confirm,2,,,,2017-03-07 01:15:03,2017-03-07 01:15:03,noindex,,page, 46,Registration (Form) Review,entry,Entry/confirm,3,,,,2020-01-12 01:15:03,2020-01-12 01:15:03,noindex,18,page, 47,My Account / Membership Cancellation (Form) Review,mypage_withdraw,Mypage/withdraw_confirm,3,,,,2020-01-12 10:14:52,2020-01-12 10:14:52,noindex,12,page, -48,Inquiry (Form) Review,contact,Contact/confirm,3,,,,2020-01-12 10:14:52,2020-01-12 10:14:52,,16,page, +48,Inquiry (Form) Review,contact,Contact/confirm,3,,,,2020-01-12 10:14:52,2020-01-12 10:14:52,noindex,16,page, diff --git a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page_layout.csv b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page_layout.csv index fa133883048..2b6c4f57492 100644 --- a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page_layout.csv +++ b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page_layout.csv @@ -39,3 +39,6 @@ page_id,layout_id,sort_no,discriminator_type "38","2","39","pagelayout" "44","2","40","pagelayout" "45","2","41","pagelayout" +"46","2","42","pagelayout" +"47","2","43","pagelayout" +"48","2","44","pagelayout" From 72fcdef2a92678646f09102a8087c0444ac5800c Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Tue, 1 Dec 2020 09:58:46 +0900 Subject: [PATCH 054/207] =?UTF-8?q?=E3=83=9A=E3=83=BC=E3=82=B8=E3=81=AE?= =?UTF-8?q?=E5=8F=96=E5=BE=97=E5=87=A6=E7=90=86=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/ContactController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Controller/ContactController.php b/src/Eccube/Controller/ContactController.php index 3a60fe13cab..48ea762ae2c 100644 --- a/src/Eccube/Controller/ContactController.php +++ b/src/Eccube/Controller/ContactController.php @@ -96,7 +96,7 @@ public function index(Request $request) case 'confirm': return $this->render('Contact/confirm.twig', [ 'form' => $form->createView(), - 'Page' => $this->pageRepository->getPageByRoute('') + 'Page' => $this->pageRepository->getPageByRoute('contact_confirm') ]); case 'complete': From 501ccb0862888aa79df414ed4a219f7a6e0771cc Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Tue, 1 Dec 2020 10:08:15 +0900 Subject: [PATCH 055/207] =?UTF-8?q?en=E3=81=AE=E4=BF=AE=E6=AD=A3=E6=BC=8F?= =?UTF-8?q?=E3=82=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv index f0a825c2d5c..fe3584d5f38 100644 --- a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv +++ b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv @@ -47,6 +47,6 @@ id,page_name,url,file_name,edit_type,author,description,keyword,create_date,upda 42,Shopping / Change Delivery Address,shopping_shipping_edit_change,Shopping/index,2,,,,2017-03-07 01:15:03,2017-03-07 01:15:03,noindex,,page, 44,My Account / Edit Delivery Address,mypage_delivery_edit,Mypage/delivery_edit,2,,,,2017-03-07 01:15:05,2017-03-07 01:15:05,noindex,8,page, 45,Shopping / Review,shopping_confirm,Shopping/confirm,2,,,,2017-03-07 01:15:03,2017-03-07 01:15:03,noindex,,page, -46,Registration (Form) Review,entry,Entry/confirm,3,,,,2020-01-12 01:15:03,2020-01-12 01:15:03,noindex,18,page, -47,My Account / Membership Cancellation (Form) Review,mypage_withdraw,Mypage/withdraw_confirm,3,,,,2020-01-12 10:14:52,2020-01-12 10:14:52,noindex,12,page, -48,Inquiry (Form) Review,contact,Contact/confirm,3,,,,2020-01-12 10:14:52,2020-01-12 10:14:52,noindex,16,page, +46,Registration (Form) Review,entry_confirm,Entry/confirm,3,,,,2020-01-12 01:15:03,2020-01-12 01:15:03,noindex,18,page, +47,My Account / Membership Cancellation (Form) Review,mypage_withdraw_confirm,Mypage/withdraw_confirm,3,,,,2020-01-12 10:14:52,2020-01-12 10:14:52,noindex,12,page, +48,Inquiry (Form) Review,contact_confirm,Contact/confirm,3,,,,2020-01-12 10:14:52,2020-01-12 10:14:52,noindex,16,page, From 187668a91e85e2302a00a02fd2fb910340ccd419 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Wed, 2 Dec 2020 14:03:00 +0900 Subject: [PATCH 056/207] =?UTF-8?q?=E3=83=9E=E3=82=A4=E3=82=B0=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=81=AEsyntax=20error?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/DoctrineMigrations/Version20201127000000.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/DoctrineMigrations/Version20201127000000.php b/app/DoctrineMigrations/Version20201127000000.php index 8a10e377667..47455db826c 100644 --- a/app/DoctrineMigrations/Version20201127000000.php +++ b/app/DoctrineMigrations/Version20201127000000.php @@ -42,7 +42,7 @@ public function up(Schema $schema) : void )"); $sortNo++; - $this->addSql("INSERT INTO dtb_page_layout (page_id, layout_id, sort_no, discriminator_type) VALUES ($pageId, 2, , $sortNo, 'pagelayout')"); + $this->addSql("INSERT INTO dtb_page_layout (page_id, layout_id, sort_no, discriminator_type) VALUES ($pageId, 2, $sortNo, 'pagelayout')"); $pageId++; $this->addSql("INSERT INTO dtb_page ( @@ -52,7 +52,7 @@ public function up(Schema $schema) : void )"); $sortNo++; - $this->addSql("INSERT INTO dtb_page_layout (page_id, layout_id, sort_no, discriminator_type) VALUES ($pageId, 2, , $sortNo, 'pagelayout')"); + $this->addSql("INSERT INTO dtb_page_layout (page_id, layout_id, sort_no, discriminator_type) VALUES ($pageId, 2, $sortNo, 'pagelayout')"); $pageId++; $this->addSql("INSERT INTO dtb_page ( @@ -62,7 +62,7 @@ public function up(Schema $schema) : void )"); $sortNo++; - $this->addSql("INSERT INTO dtb_page_layout (page_id, layout_id, sort_no, discriminator_type) VALUES ($pageId, 2, , $sortNo, 'pagelayout')"); + $this->addSql("INSERT INTO dtb_page_layout (page_id, layout_id, sort_no, discriminator_type) VALUES ($pageId, 2, $sortNo, 'pagelayout')"); if ($this->platform->getName() === 'postgresql') { $this->addSql("SELECT setval('dtb_page_id_seq', $pageId)"); From 957db275c62a3e3eab1bc82ef52223808ac2170a Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Wed, 2 Dec 2020 14:04:20 +0900 Subject: [PATCH 057/207] =?UTF-8?q?=E4=B8=8D=E8=A6=81=E3=81=AA=E5=AE=9A?= =?UTF-8?q?=E6=95=B0=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/DoctrineMigrations/Version20201127000000.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/DoctrineMigrations/Version20201127000000.php b/app/DoctrineMigrations/Version20201127000000.php index 47455db826c..b22190aee90 100644 --- a/app/DoctrineMigrations/Version20201127000000.php +++ b/app/DoctrineMigrations/Version20201127000000.php @@ -23,8 +23,6 @@ */ final class Version20201127000000 extends AbstractMigration { - const NAME = 'dtb_page'; - public function up(Schema $schema) : void { $count = $this->connection->fetchColumn("SELECT COUNT(*) FROM dtb_page WHERE url = 'entry_confirm'"); From 58ebb337eb9b5c65bad11d1fd3ff10264ada5b76 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Wed, 2 Dec 2020 14:42:11 +0900 Subject: [PATCH 058/207] =?UTF-8?q?=E3=83=9E=E3=83=BC=E3=82=B8=E3=83=9F?= =?UTF-8?q?=E3=82=B9=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv index fe3584d5f38..6614b1f00c8 100644 --- a/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv +++ b/src/Eccube/Resource/doctrine/import_csv/en/dtb_page.csv @@ -10,7 +10,7 @@ id,page_name,url,file_name,edit_type,author,description,keyword,create_date,upda -" +" 4,My Account,mypage,Mypage/index,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,noindex,,page, 5,My Account / Edit Customer Info (Form),mypage_change,Mypage/change,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,noindex,,page, 6,My Account / Edit Customer Info (Thank-you),mypage_change_complete,Mypage/change_complete,2,,,,2017-03-07 10:14:52,2017-03-07 10:14:52,noindex,,page, From 65bc130d61ff1abb0afc8544bb00dd30d065c488 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Wed, 2 Dec 2020 17:13:18 +0900 Subject: [PATCH 059/207] =?UTF-8?q?=E6=A9=9F=E7=A8=AE=E4=BE=9D=E5=AD=98?= =?UTF-8?q?=E6=96=87=E5=AD=97=E3=81=8C=E6=96=87=E5=AD=97=E5=8C=96=E3=81=91?= =?UTF-8?q?=E3=81=99=E3=82=8B=E4=B8=8D=E5=85=B7=E5=90=88=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/AbstractCsvImportController.php | 2 +- .../Admin/Product/CsvImportControllerTest.php | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/Eccube/Controller/Admin/AbstractCsvImportController.php b/src/Eccube/Controller/Admin/AbstractCsvImportController.php index 8a695b84330..6587c7e7254 100644 --- a/src/Eccube/Controller/Admin/AbstractCsvImportController.php +++ b/src/Eccube/Controller/Admin/AbstractCsvImportController.php @@ -54,7 +54,7 @@ protected function getImportData(UploadedFile $formFile) } } else { // アップロードされたファイルがUTF-8以外は文字コード変換を行う - $encode = StringUtil::characterEncoding($file); + $encode = StringUtil::characterEncoding($file, ['UTF-8', 'sjis-win', 'SJIS', 'EUC-JP', 'ASCII', 'JIS']); if (!empty($encode) && $encode != 'UTF-8') { $file = mb_convert_encoding($file, 'UTF-8', $encode); } diff --git a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php index 5456d3fb04d..8d9c7c76029 100644 --- a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php @@ -964,4 +964,30 @@ public function testDeleteImage() $this->assertTrue(file_exists($dir . $DuplicatedImage->getFileName())); $this->assertFalse(file_exists($dir . $NotDuplicatedImage->getFileName())); } + + /** + * @see https://github.com/EC-CUBE/ec-cube/issues/4781 + */ + public function testSjisWinCsvTest() + { + // CSV生成 + $csv = $this->createCsvAsArray(); + $csv[1][2] = 'テスト①'; // 商品名:機種依存文字で設定 + $csv[1][3] = 'sjis-win-test'; + $this->filepath = $this->createCsvFromArray($csv); + + // sjis-winに変換 + $content = file_get_contents($this->filepath); + $content = mb_convert_encoding($content, 'sjis-win', 'UTF-8'); + file_put_contents($this->filepath, $content); + + $this->scenario(); + + $Product = $this->productRepo->findOneBy(['note' => 'sjis-win-test']); + + // 文字化けしないことを確認 + $this->expected = 'テスト①'; + $this->actual = $Product->getName(); + $this->verify(); + } } From 87ef07e07d802ca837934bae2bcc04954d30648e Mon Sep 17 00:00:00 2001 From: Tao Sasaki <485749+tao-s@users.noreply.github.com> Date: Fri, 4 Dec 2020 01:14:20 +0900 Subject: [PATCH 060/207] =?UTF-8?q?=E4=BE=A1=E6=A0=BC=E3=80=81=E3=82=AB?= =?UTF-8?q?=E3=83=BC=E3=83=88=E3=83=9C=E3=82=BF=E3=83=B3=E3=81=AE=E6=96=87?= =?UTF-8?q?=E8=A8=80=E3=82=92text=E3=81=8B=E3=82=89html=E3=81=AB=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit カートボタンにアイコンなどhtmlを追加している場合に、規格選択によってそれが消えてしまう不具合の対応 --- html/template/default/assets/js/eccube.js | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/html/template/default/assets/js/eccube.js b/html/template/default/assets/js/eccube.js index 258a761635d..67f7d8a5544 100644 --- a/html/template/default/assets/js/eccube.js +++ b/html/template/default/assets/js/eccube.js @@ -92,26 +92,26 @@ var $cartbtn = $form.parent().find('.add-cart').first(); if (typeof this.product_cart_origin === 'undefined') { // 初期値を保持しておく - this.product_cart_origin = $cartbtn.text(); + this.product_cart_origin = $cartbtn.html(); } $cartbtn.prop('disabled', false); - $cartbtn.text(this.product_cart_origin); + $cartbtn.html(this.product_cart_origin); // 通常価格 var $price01 = $form.parent().find('.price01-default').first(); if (typeof this.price01_origin === 'undefined') { // 初期値を保持しておく - this.price01_origin = $price01.text(); + this.price01_origin = $price01.html(); } - $price01.text(this.price01_origin); + $price01.html(this.price01_origin); // 販売価格 var $price02 = $form.parent().find('.price02-default').first(); if (typeof price02_origin[product_id] === 'undefined') { // 初期値を保持しておく - price02_origin[product_id] = $price02.text(); + price02_origin[product_id] = $price02.html(); } - $price02.text(price02_origin[product_id]); + $price02.html(price02_origin[product_id]); // 商品規格 var $product_class_id_dynamic = $form.find('[id^=ProductClass]'); @@ -130,38 +130,38 @@ var $cartbtn = $form.parent().find('.add-cart').first(); if (typeof this.product_cart_origin === 'undefined') { // 初期値を保持しておく - this.product_cart_origin = $cartbtn.text(); + this.product_cart_origin = $cartbtn.html(); } if (classcat2 && classcat2.stock_find === false) { $cartbtn.prop('disabled', true); $cartbtn.text('ただいま品切れ中です'); } else { $cartbtn.prop('disabled', false); - $cartbtn.text(this.product_cart_origin); + $cartbtn.html(this.product_cart_origin); } // 通常価格 var $price01 = $form.parent().find('.price01-default').first(); if (typeof this.price01_origin === 'undefined') { // 初期値を保持しておく - this.price01_origin = $price01.text(); + this.price01_origin = $price01.html(); } if (classcat2 && typeof classcat2.price01_inc_tax !== 'undefined' && String(classcat2.price01_inc_tax).length >= 1) { $price01.text('¥' + classcat2.price01_inc_tax); } else { - $price01.text(this.price01_origin); + $price01.html(this.price01_origin); } // 販売価格 var $price02 = $form.parent().find('.price02-default').first(); if (typeof price02_origin[product_id] === 'undefined') { // 初期値を保持しておく - price02_origin[product_id] = $price02.text(); + price02_origin[product_id] = $price02.html(); } if (classcat2 && typeof classcat2.price02_inc_tax !== 'undefined' && String(classcat2.price02_inc_tax).length >= 1) { $price02.text('¥' + classcat2.price02_inc_tax); } else { - $price02.text(price02_origin[product_id]); + $price02.html(price02_origin[product_id]); } // ポイント From f3aedc8bc2e622fa0ab7d20ab8ed832d4d22764d Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Tue, 8 Dec 2020 15:49:21 +0900 Subject: [PATCH 061/207] =?UTF-8?q?=E3=82=A8=E3=83=B3=E3=82=B3=E3=83=BC?= =?UTF-8?q?=E3=83=87=E3=82=A3=E3=83=B3=E3=82=B0=E6=8C=87=E5=AE=9A=E3=82=92?= =?UTF-8?q?=E3=83=91=E3=83=A9=E3=83=A1=E3=83=BC=E3=82=BF=E3=81=AB=E8=A8=AD?= =?UTF-8?q?=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/packages/eccube.yaml | 2 ++ src/Eccube/Controller/Admin/AbstractCsvImportController.php | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/config/eccube/packages/eccube.yaml b/app/config/eccube/packages/eccube.yaml index 907d1c51d27..68964166558 100644 --- a/app/config/eccube/packages/eccube.yaml +++ b/app/config/eccube/packages/eccube.yaml @@ -73,6 +73,8 @@ parameters: eccube_csv_export_separator: , # 出力エンコーディング eccube_csv_export_encoding: SJIS-win + # 入力エンコーディング + eccube_csv_import_encoding: ['UTF-8', 'sjis-win', 'SJIS', 'EUC-JP', 'ASCII', 'JIS'] # 日付のフォーマット eccube_csv_export_date_format: 'Y-m-d H:i:s' # 複数データの区切り文字 diff --git a/src/Eccube/Controller/Admin/AbstractCsvImportController.php b/src/Eccube/Controller/Admin/AbstractCsvImportController.php index 6587c7e7254..32afaac8fb7 100644 --- a/src/Eccube/Controller/Admin/AbstractCsvImportController.php +++ b/src/Eccube/Controller/Admin/AbstractCsvImportController.php @@ -54,7 +54,7 @@ protected function getImportData(UploadedFile $formFile) } } else { // アップロードされたファイルがUTF-8以外は文字コード変換を行う - $encode = StringUtil::characterEncoding($file, ['UTF-8', 'sjis-win', 'SJIS', 'EUC-JP', 'ASCII', 'JIS']); + $encode = StringUtil::characterEncoding($file, $this->eccubeConfig['eccube_csv_import_encoding']); if (!empty($encode) && $encode != 'UTF-8') { $file = mb_convert_encoding($file, 'UTF-8', $encode); } From 6ed468ad6214ee7a29806323e0a5d3c2928dd2e6 Mon Sep 17 00:00:00 2001 From: kiy0taka Date: Tue, 8 Dec 2020 20:02:02 +0900 Subject: [PATCH 062/207] =?UTF-8?q?SJIS-win=E3=81=A7=E7=B5=B1=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/packages/eccube.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/eccube/packages/eccube.yaml b/app/config/eccube/packages/eccube.yaml index 68964166558..620cc8851df 100644 --- a/app/config/eccube/packages/eccube.yaml +++ b/app/config/eccube/packages/eccube.yaml @@ -74,7 +74,7 @@ parameters: # 出力エンコーディング eccube_csv_export_encoding: SJIS-win # 入力エンコーディング - eccube_csv_import_encoding: ['UTF-8', 'sjis-win', 'SJIS', 'EUC-JP', 'ASCII', 'JIS'] + eccube_csv_import_encoding: ['UTF-8', 'SJIS-win', 'SJIS', 'EUC-JP', 'ASCII', 'JIS'] # 日付のフォーマット eccube_csv_export_date_format: 'Y-m-d H:i:s' # 複数データの区切り文字 From b3cc4f76afe5a903406ede02515439ef49d8380c Mon Sep 17 00:00:00 2001 From: Kiyoshi Yamamura Date: Thu, 10 Dec 2020 18:15:23 +0900 Subject: [PATCH 063/207] =?UTF-8?q?.gitignore=E3=81=AE=E8=A6=8B=E7=9B=B4?= =?UTF-8?q?=E3=81=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 13 +++---------- html/user_data/.gitkeep | 0 2 files changed, 3 insertions(+), 10 deletions(-) create mode 100644 html/user_data/.gitkeep diff --git a/.gitignore b/.gitignore index 6910581b4ad..7502edb41b0 100644 --- a/.gitignore +++ b/.gitignore @@ -2,16 +2,12 @@ !.gitmodule composer.phar /vendor/ -/node_modules/ +node_modules /var/* !/var/.gitkeep -/app/cache/* -!/app/cache/.gitkeep -/app/log/* -!/app/log/.gitkeep +!/var/.htaccess /app/Plugin/* !/app/Plugin/.gitkeep -!/app/Plugin/ExamplePlugin /app/PluginData/* !/app/PluginData/.gitkeep /app/template/* @@ -23,21 +19,18 @@ composer.phar !/app/proxy/entity/.gitkeep /html/plugin/* !/html/plugin/.gitkeep -/html/install/temp/* /html/upload/save_image/* !/html/upload/save_image/.gitkeep /html/upload/temp_image/* !/html/upload/temp_image/.gitkeep -/html/upload/temp_plugin/* /html/template/* !/html/template/admin !/html/template/default !/html/template/install /html/user_data/* +!/html/user_data/.gitkeep !/html/user_data/assets/css/customize.css !/html/user_data/assets/js/customize.js -!/html/user_data/.gitkeep -/src/Eccube/Resource/config/*.dist.php /tests/tmp/* /reports/* .idea diff --git a/html/user_data/.gitkeep b/html/user_data/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d From 0c3e672e2496ed09d8360c4a64148644bab5a5be Mon Sep 17 00:00:00 2001 From: Kiyoshi Yamamura Date: Fri, 11 Dec 2020 00:42:46 +0900 Subject: [PATCH 064/207] =?UTF-8?q?.gitignore=E3=81=AE=E8=A6=8B=E7=9B=B4?= =?UTF-8?q?=E3=81=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 7502edb41b0..8e4f5aae4f4 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ node_modules !/html/plugin/.gitkeep /html/upload/save_image/* !/html/upload/save_image/.gitkeep +!/html/upload/save_image/no_image_product.png /html/upload/temp_image/* !/html/upload/temp_image/.gitkeep /html/template/* From 0180c8faaf04e6f919cc1b8649d641eb527f121e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Dec 2020 23:56:58 +0000 Subject: [PATCH 065/207] Bump ini from 1.3.5 to 1.3.7 Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7) Signed-off-by: dependabot[bot] --- package-lock.json | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4c00632800f..433d388aaa9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2363,12 +2363,6 @@ "dev": true, "optional": true }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, @@ -3604,9 +3598,9 @@ "dev": true }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true }, "interpret": { From f6e4e3d963a34504c80da3db2b0f8d5d2ace5f0b Mon Sep 17 00:00:00 2001 From: Kiyoshi Yamamura Date: Sat, 12 Dec 2020 04:32:06 +0900 Subject: [PATCH 066/207] =?UTF-8?q?=E5=AE=9A=E7=BE=A9=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=81=AA=E3=81=84=E4=B8=8D=E8=A6=81=E3=81=AA?= =?UTF-8?q?=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E5=87=BA=E5=8A=9B?= =?UTF-8?q?=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Controller/Mypage/DeliveryController.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Eccube/Controller/Mypage/DeliveryController.php b/src/Eccube/Controller/Mypage/DeliveryController.php index f3ecbc1ed05..af8dd653a6f 100644 --- a/src/Eccube/Controller/Mypage/DeliveryController.php +++ b/src/Eccube/Controller/Mypage/DeliveryController.php @@ -141,8 +141,6 @@ public function edit(Request $request, $id = null) ); $this->eventDispatcher->dispatch(EccubeEvents::FRONT_MYPAGE_DELIVERY_EDIT_COMPLETE, $event); - $this->addSuccess('mypage.delivery.add.complete'); - return $this->redirect($this->generateUrl('mypage_delivery')); } @@ -180,8 +178,6 @@ public function delete(Request $request, CustomerAddress $CustomerAddress) ); $this->eventDispatcher->dispatch(EccubeEvents::FRONT_MYPAGE_DELIVERY_DELETE_COMPLETE, $event); - $this->addSuccess('mypage.address.delete.complete'); - log_info('お届け先削除完了', [$CustomerAddress->getId()]); return $this->redirect($this->generateUrl('mypage_delivery')); From 2a7769659e98a87b6b001645fa101a41b76f75b8 Mon Sep 17 00:00:00 2001 From: Kiyoshi Yamamura Date: Sat, 12 Dec 2020 07:21:15 +0900 Subject: [PATCH 067/207] =?UTF-8?q?Bootstrap4.2=E3=81=8B=E3=82=89=E3=83=9C?= =?UTF-8?q?=E3=82=BF=E3=83=B3=E5=86=85=E3=81=AE=E6=8A=98=E3=82=8A=E8=BF=94?= =?UTF-8?q?=E3=81=97=E3=81=8C=E3=81=95=E3=82=8C=E3=81=AA=E3=81=8F=E3=81=AA?= =?UTF-8?q?=E3=81=A3=E3=81=9F=E3=81=9F=E3=82=81=E6=98=8E=E7=A4=BA=E7=9A=84?= =?UTF-8?q?=E3=81=AB=E8=A8=AD=E5=AE=9A=E3=80=81=E3=83=97=E3=83=A9=E3=82=B0?= =?UTF-8?q?=E3=82=A4=E3=83=B3=E4=B8=80=E8=A6=A7=E7=94=BB=E9=9D=A2=E3=81=A7?= =?UTF-8?q?=E3=83=96=E3=83=A9=E3=82=A6=E3=82=B6=E5=B9=85=E3=81=8C=E5=B0=8F?= =?UTF-8?q?=E3=81=95=E3=81=91=E3=82=8C=E3=81=B0=E5=89=8A=E9=99=A4=E3=80=81?= =?UTF-8?q?=E6=9C=89=E5=8A=B9=E3=83=9C=E3=82=BF=E3=83=B3=E3=81=8C=E9=87=8D?= =?UTF-8?q?=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84=E3=81=9F=E3=81=9F=E3=82=81?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/admin/Setting/Shop/mail.twig | 2 +- .../template/admin/Setting/Shop/tax_rule.twig | 4 +- .../admin/Store/plugin_table_official.twig | 84 +++++++++---------- 3 files changed, 44 insertions(+), 46 deletions(-) diff --git a/src/Eccube/Resource/template/admin/Setting/Shop/mail.twig b/src/Eccube/Resource/template/admin/Setting/Shop/mail.twig index fba3766717c..49befea1ce2 100644 --- a/src/Eccube/Resource/template/admin/Setting/Shop/mail.twig +++ b/src/Eccube/Resource/template/admin/Setting/Shop/mail.twig @@ -166,7 +166,7 @@ file that was distributed with this source code.
-
diff --git a/src/Eccube/Resource/template/admin/Setting/Shop/tax_rule.twig b/src/Eccube/Resource/template/admin/Setting/Shop/tax_rule.twig index 178fef358b8..6f4910a4d89 100644 --- a/src/Eccube/Resource/template/admin/Setting/Shop/tax_rule.twig +++ b/src/Eccube/Resource/template/admin/Setting/Shop/tax_rule.twig @@ -160,8 +160,8 @@ file that was distributed with this source code.
- - + +
diff --git a/src/Eccube/Resource/template/admin/Store/plugin_table_official.twig b/src/Eccube/Resource/template/admin/Store/plugin_table_official.twig index e15ee228249..095f1a138be 100644 --- a/src/Eccube/Resource/template/admin/Store/plugin_table_official.twig +++ b/src/Eccube/Resource/template/admin/Store/plugin_table_official.twig @@ -68,7 +68,7 @@ $(function() { {{ Plugin.name }} {{ Plugin.version }}{{ Plugin.version }}

{{ Plugin.code }}

{% if Plugin.id %} @@ -107,48 +107,46 @@ $(function() { {% if Plugin.id %} -
-
-
- {% if Plugin.enabled == false %} - - - +
+
+ {% if Plugin.enabled == false %} + + + - {% endif %} -
-
- {% if Plugin.enabled %} - - - - {% else %} - - - - {% endif %} -
-
- {% if configPages[Plugin.code] is defined %} - - - - {% endif %} -
+ {% endif %} +
+
+ {% if Plugin.enabled %} + + + + {% else %} + + + + {% endif %} +
+
+ {% if configPages[Plugin.code] is defined %} + + + + {% endif %}
{% endif %} @@ -159,7 +157,7 @@ $(function() {
{% if officialPluginsDetail|length == 0 %} -

{{ 'admin.store.plugin.help'|trans }}

+

{{ 'admin.store.plugin.help'|trans }}

{% endif %} {% else %}
From a55ea14154c5c3634695a8d0d6458d4ccb21dedd Mon Sep 17 00:00:00 2001 From: Kiyoshi Yamamura Date: Sun, 13 Dec 2020 17:04:39 +0900 Subject: [PATCH 068/207] =?UTF-8?q?=E4=BC=9A=E5=93=A1CSV=E9=A0=85=E7=9B=AE?= =?UTF-8?q?=E3=81=AB=E3=83=9D=E3=82=A4=E3=83=B3=E3=83=88=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Eccube/Resource/doctrine/import_csv/en/dtb_csv.csv | 1 + src/Eccube/Resource/doctrine/import_csv/ja/dtb_csv.csv | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Eccube/Resource/doctrine/import_csv/en/dtb_csv.csv b/src/Eccube/Resource/doctrine/import_csv/en/dtb_csv.csv index c318f12e47b..ff4e67c4bf5 100644 --- a/src/Eccube/Resource/doctrine/import_csv/en/dtb_csv.csv +++ b/src/Eccube/Resource/doctrine/import_csv/en/dtb_csv.csv @@ -203,3 +203,4 @@ id,csv_type_id,creator_id,entity_name,field_name,reference_field_name,disp_name, 202,5,,Eccube\\Entity\\Category,Parent,id,Parent Category ID,4,1,2017-03-07 10:14:00,2017-03-07 10:14:00,csv 203,5,,Eccube\\Entity\\Category,level,,Level,5,1,2017-03-07 10:14:00,2017-03-07 10:14:00,csv 204,1,,Eccube\\Entity\\ProductClass,TaxRule,tax_rate,Tax Rate,"31","0","2017-03-07 10:14:00","2017-03-07 10:14:00","csv" +205,2,,Eccube\\Entity\\Customer,point,,Point,32,1,2017-03-07 10:14:00,2017-03-07 10:14:00,csv diff --git a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_csv.csv b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_csv.csv index 5052c153023..3ff0973ce08 100644 --- a/src/Eccube/Resource/doctrine/import_csv/ja/dtb_csv.csv +++ b/src/Eccube/Resource/doctrine/import_csv/ja/dtb_csv.csv @@ -203,3 +203,4 @@ "202","5",,"Eccube\\Entity\\Category","Parent","id","親カテゴリID","4","1","2017-03-07 10:14:00","2017-03-07 10:14:00","csv" "203","5",,"Eccube\\Entity\\Category","level",,"階層","5","1","2017-03-07 10:14:00","2017-03-07 10:14:00","csv" "204","1",,"Eccube\\Entity\\ProductClass","TaxRule","tax_rate","税率","31","0","2017-03-07 10:14:00","2017-03-07 10:14:00","csv" +"205","2",,"Eccube\\Entity\\Customer","point",,"保有ポイント","33","1","2017-03-07 10:14:00","2017-03-07 10:14:00","csv" From 8606b748711adcd70c709adbd8b63a67d2dd96d9 Mon Sep 17 00:00:00 2001 From: Chihiro Adachi <8196725+chihiro-adachi@users.noreply.github.com> Date: Mon, 14 Dec 2020 16:39:44 +0900 Subject: [PATCH 069/207] =?UTF-8?q?CSV=E3=81=AE=E5=88=86=E5=89=B2=E3=82=A2?= =?UTF-8?q?=E3=83=83=E3=83=97=E3=83=AD=E3=83=BC=E3=83=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/eccube/packages/eccube.yaml | 1 + .../Admin/Product/CsvImportController.php | 144 +++++++++++- src/Eccube/Form/Type/Admin/CsvImportType.php | 12 + src/Eccube/Resource/locale/messages.en.yaml | 9 + src/Eccube/Resource/locale/messages.ja.yaml | 9 + .../template/admin/Product/csv_product.twig | 208 +++++++++++++++--- 6 files changed, 349 insertions(+), 34 deletions(-) diff --git a/app/config/eccube/packages/eccube.yaml b/app/config/eccube/packages/eccube.yaml index 620cc8851df..ff19b84b601 100644 --- a/app/config/eccube/packages/eccube.yaml +++ b/app/config/eccube/packages/eccube.yaml @@ -42,6 +42,7 @@ parameters: eccube_temp_image_dir: '%kernel.project_dir%/html/upload/temp_image' eccube_csv_size: 5 # post_max_size, upload_max_filesize に任せればよい? eccube_csv_temp_realdir: '%kernel.cache_dir%/%kernel.environment%/eccube' # upload_tmp_dir に任せればよい? + eccube_csv_split_lines: 100 eccube_default_password: '**********' eccube_deliv_addr_max: 20 eccube_deliv_date_end_max: 21 diff --git a/src/Eccube/Controller/Admin/Product/CsvImportController.php b/src/Eccube/Controller/Admin/Product/CsvImportController.php index bea93d69515..200cacac016 100644 --- a/src/Eccube/Controller/Admin/Product/CsvImportController.php +++ b/src/Eccube/Controller/Admin/Product/CsvImportController.php @@ -40,11 +40,15 @@ use Eccube\Util\StringUtil; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Component\Filesystem\Filesystem; +use Symfony\Component\Finder\Finder; use Symfony\Component\Form\FormInterface; +use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\StreamedResponse; +use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; use Symfony\Component\Validator\Constraints\GreaterThanOrEqual; use Symfony\Component\Validator\Validator\ValidatorInterface; @@ -107,6 +111,12 @@ class CsvImportController extends AbstractCsvImportController private $errors = []; + protected $isXmlHttpRequest = false; + + protected $csvFileNo = 1; + + protected $currentLineNo = 1; + /** * CsvImportController constructor. * @@ -167,6 +177,9 @@ public function csvProduct(Request $request, CacheUtil $cacheUtil) if ('POST' === $request->getMethod()) { $form->handleRequest($request); if ($form->isValid()) { + $this->isXmlHttpRequest = $form['is_xml_http_request']->getData(); + $this->csvFileNo = $form['csv_file_no']->getData(); + $formFile = $form['import_file']->getData(); if (!empty($formFile)) { log_info('商品CSV登録開始'); @@ -207,7 +220,8 @@ public function csvProduct(Request $request, CacheUtil $cacheUtil) $this->entityManager->getConnection()->beginTransaction(); // CSVファイルの登録処理 foreach ($data as $row) { - $line = $data->key() + 1; + $line = $this->convertLineNo($data->key() + 1); + $this->currentLineNo = $line; if ($headerSize != count($row)) { $message = trans('admin.common.csv_invalid_format_line', ['%line%' => $line]); $this->addErrors($message); @@ -653,8 +667,10 @@ public function csvProduct(Request $request, CacheUtil $cacheUtil) } log_info('商品CSV登録完了'); - $message = 'admin.common.csv_upload_complete'; - $this->session->getFlashBag()->add('eccube.admin.success', $message); + if (!$this->isXmlHttpRequest) { + $message = 'admin.common.csv_upload_complete'; + $this->session->getFlashBag()->add('eccube.admin.success', $message); + } $cacheUtil->clearDoctrineCache(); } @@ -869,6 +885,19 @@ protected function renderWithError($form, $headers, $rollback = true) $this->removeUploadedFile(); + if ($this->isXmlHttpRequest) { + return $this->json([ + 'success' => !$this->hasErrors(), + 'success_message' => trans('admin.common.csv_upload_line_success', [ + '%from%' => $this->convertLineNo(2), + '%to%' => $this->currentLineNo]), + 'errors' => $this->errors, + 'error_message' => trans('admin.common.csv_upload_line_error',[ + '%from%' => $this->convertLineNo(2), + '%to%' => $this->currentLineNo]) + ]); + } + return [ 'form' => $form->createView(), 'headers' => $headers, @@ -1561,4 +1590,113 @@ private function makeProductCategory($Product, $Category, $sortNo) return $ProductCategory; } + + /** + * @Route("/%eccube_admin_route%/product/csv_split", name="admin_product_csv_split") + * @param Request $request + * @return \Symfony\Component\HttpFoundation\JsonResponse + */ + public function splitCsv(Request $request) + { + $this->isTokenValid(); + + if (!$request->isXmlHttpRequest()) { + throw new BadRequestHttpException(); + } + + $form = $this->formFactory->createBuilder(CsvImportType::class)->getForm(); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + + $dir = $this->eccubeConfig['eccube_csv_temp_realdir']; + if (!file_exists($dir)) { + $fs = new Filesystem(); + $fs->mkdir($dir); + } + + $data = $form['import_file']->getData(); + $src = new \SplFileObject($data->getRealPath()); + $src->setFlags(\SplFileObject::READ_CSV | \SplFileObject::READ_AHEAD | \SplFileObject::SKIP_EMPTY | \SplFileObject::DROP_NEW_LINE); + + $fileNo = 1; + $fileName = StringUtil::random(8); + + $dist = new \SplFileObject($dir.'/'.$fileName.$fileNo.'.csv', 'w'); + $header = $src->current(); + $src->next(); + $dist->fputcsv($header); + + while ($row = $src->current()) { + $dist->fputcsv($row); + if (($src->key() + $fileNo) % $this->eccubeConfig['eccube_csv_split_lines'] === 0) { + \error_log($dir.'/'.$fileName.$fileNo.'.csv'); + $fileNo++; + $dist = new \SplFileObject($dir.'/'.$fileName.$fileNo.'.csv', 'w'); + $dist->fputcsv($header); + } + $src->next(); + } + + return $this->json(['success' => true, 'file_name' => $fileName, 'max_file_no' => $fileNo]); + } + + return $this->json(['success' => false, 'message' => $form->getErrors(true ,true)]); + } + + /** + * @Route("/%eccube_admin_route%/product/csv_split_import", name="admin_product_csv_split_import") + * @param Request $request + * @return \Symfony\Component\HttpFoundation\JsonResponse + */ + public function importCsv(Request $request, CsrfTokenManagerInterface $tokenManager) + { + $this->isTokenValid(); + + if (!$request->isXmlHttpRequest()) { + throw new BadRequestHttpException(); + } + + $files = Finder::create() + ->in($this->eccubeConfig['eccube_csv_temp_realdir']) + ->name('*.csv') + ->files(); + + $choices = []; + foreach ($files as $file) { + $choices[$file->getBaseName()] = true; + } + + $filename = $request->get('file_name'); + if (!isset($choices[$filename])) { + throw new BadRequestHttpException(); + } + + $path = $this->eccubeConfig['eccube_csv_temp_realdir'].'/'.$filename; + $request->files->set('admin_csv_import', ['import_file' => new UploadedFile( + $path, + 'import.csv', + 'text/csv', + filesize($path), + null, + true + )]); + + $request->setMethod('POST'); + $request->request->set('admin_csv_import', [ + Constant::TOKEN_NAME => $tokenManager->getToken('admin_csv_import')->getValue(), + 'is_xml_http_request' => true, + 'csv_file_no' => $request->get('file_no'), + ]); + + return $this->forwardToRoute('admin_product_csv_import'); + } + + protected function convertLineNo($currentLineNo) { + if ($this->isXmlHttpRequest) { + return ($this->eccubeConfig['eccube_csv_split_lines'] - 1) * ($this->csvFileNo - 1) + $currentLineNo; + } + + return $currentLineNo; + } } diff --git a/src/Eccube/Form/Type/Admin/CsvImportType.php b/src/Eccube/Form/Type/Admin/CsvImportType.php index f0cf98307a4..3acf1a4c44b 100644 --- a/src/Eccube/Form/Type/Admin/CsvImportType.php +++ b/src/Eccube/Form/Type/Admin/CsvImportType.php @@ -15,7 +15,9 @@ use Eccube\Common\EccubeConfig; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\FileType; +use Symfony\Component\Form\Extension\Core\Type\IntegerType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Validator\Constraints as Assert; @@ -52,6 +54,16 @@ public function buildForm(FormBuilderInterface $builder, array $options) 'maxSize' => $this->csvMaxSize.'M', ]), ], + ]) + ->add('is_xml_http_request', CheckboxType::class, [ + 'label' => false, + 'mapped' => false, + 'required' => false, + ]) + ->add('csv_file_no', IntegerType::class, [ + 'label' => false, + 'mapped' => false, + 'required' => false, ]); } diff --git a/src/Eccube/Resource/locale/messages.en.yaml b/src/Eccube/Resource/locale/messages.en.yaml index 0be04642f36..407fa14f12a 100644 --- a/src/Eccube/Resource/locale/messages.en.yaml +++ b/src/Eccube/Resource/locale/messages.en.yaml @@ -428,6 +428,8 @@ admin.common.next: Next admin.common.first: Go to First admin.common.last: Go to Last admin.common.back: Go back +admin.common.open_detail: 'Show details' +admin.common.close_detail: 'Close details' # Generic Labels, Messages admin.common.show: Display @@ -469,6 +471,9 @@ admin.common.csv_invalid_can_not: '%name% is invalid in the line %line%' admin.common.csv_invalid_image: 'Your are not allowed to use "/" or "../" as suffix in %name% in the %line%' admin.common.csv_invalid_foreign_key: 'You are unable to delete %name% in the line %line% because it has related data' admin.common.csv_invalid_description_detail_upper_limit: '%name% should be less than %max% characters in the line %line%.' +admin.common.csv_upload_in_progress: 'Uploading CSV file ...' +admin.common.csv_upload_line_success: 'The %from% to %to% lines have been registered.' +admin.common.csv_upload_line_error: 'An error occurred on lines %from% to %to%.' admin.common.drag_and_drop_description: You can change the order of the items by drag & drop. admin.common.drag_and_drop_image_description: Drag & drop the images or admin.common.delete_modal__title: Delete @@ -744,6 +749,10 @@ admin.product.category_csv.parent_category_id_description: '' admin.product.category_csv.delete_flag_col: Category Deletion Flag admin.product.category_csv.delete_flag_description: 'Specify 0: Upload or 1: Delete. If unspecified, it is set to 0.' +# Product CSV +admin.product.product_csv_upload__title: 'Upload product CSV' +admin.product.product_csv_upload__message: 'Upload the product CSV file. Is it OK?' + #------------------------------------------------------------------------------------ # Orders #------------------------------------------------------------------------------------ diff --git a/src/Eccube/Resource/locale/messages.ja.yaml b/src/Eccube/Resource/locale/messages.ja.yaml index 4b88d36091b..ea8de786636 100644 --- a/src/Eccube/Resource/locale/messages.ja.yaml +++ b/src/Eccube/Resource/locale/messages.ja.yaml @@ -428,6 +428,8 @@ admin.common.next: 次へ admin.common.first: 最初へ admin.common.last: 最後へ admin.common.back: 戻る +admin.common.open_detail: '詳細を表示' +admin.common.close_detail: '詳細を閉じる' # 汎用ラベル, メッセージ admin.common.show: 表示 @@ -469,6 +471,9 @@ admin.common.csv_invalid_can_not: '%line%行目の%name%は設定できません admin.common.csv_invalid_image: '%line%行目の%name%には末尾に"/"や"../"を使用できません' admin.common.csv_invalid_foreign_key: '%line%行目の%name%は関連するデータがあるため削除できません' admin.common.csv_invalid_description_detail_upper_limit: '%line%行目の%name%は%max%文字以下の文字列を指定してください。' +admin.common.csv_upload_in_progress: 'CSVファイルのアップロード中...' +admin.common.csv_upload_line_success: '%from%行目〜%to%行目を登録しました。' +admin.common.csv_upload_line_error: '%from%行目〜%to%行目でエラーが発生しました。' admin.common.drag_and_drop_description: 項目の順番はドラッグ&ドロップでも変更可能です。 admin.common.drag_and_drop_image_description: 画像をドラッグ&ドロップまたは admin.common.delete_modal__title: 削除します @@ -744,6 +749,10 @@ admin.product.category_csv.parent_category_id_description: '' admin.product.category_csv.delete_flag_col: カテゴリ削除フラグ admin.product.category_csv.delete_flag_description: 0:登録 1:削除を指定します。未指定の場合、0として扱います。 +# 商品CSV +admin.product.product_csv_upload__title: '商品CSVをアップロードします' +admin.product.product_csv_upload__message: '商品CSVファイルをアップロードします。よろしいですか?' + #------------------------------------------------------------------------------------ # 受注 #------------------------------------------------------------------------------------ diff --git a/src/Eccube/Resource/template/admin/Product/csv_product.twig b/src/Eccube/Resource/template/admin/Product/csv_product.twig index 4689db6d614..73cd25f234e 100644 --- a/src/Eccube/Resource/template/admin/Product/csv_product.twig +++ b/src/Eccube/Resource/template/admin/Product/csv_product.twig @@ -18,34 +18,156 @@ file that was distributed with this source code. {% form_theme form '@admin/Form/bootstrap_4_horizontal_layout.html.twig' %} {% block javascript %} - + + diff --git a/src/Eccube/Resource/template/admin/login_frame.twig b/src/Eccube/Resource/template/admin/login_frame.twig index 810c5b4c200..cc9c4be5b9e 100644 --- a/src/Eccube/Resource/template/admin/login_frame.twig +++ b/src/Eccube/Resource/template/admin/login_frame.twig @@ -19,7 +19,7 @@ file that was distributed with this source code. - +
- +
@@ -73,6 +73,19 @@ file that was distributed with this source code.

{{ 'admin.setting.system.security.ip_limit_description'|trans|nl2br }}

+ +
+
+
+ {{ 'admin.setting.system.security.ip_limit_deny'|trans }} +
+
+
+ {{ form_widget(form.admin_deny_hosts, { 'attr': { 'rows': '8', 'placeholder': 'admin.setting.system.security.ip_limit_sample'|trans }}) }} + {{ form_errors(form.admin_deny_hosts) }} +

{{ 'admin.setting.system.security.ip_limit_description_deny'|trans|nl2br }}

+
+
diff --git a/tests/Eccube/Tests/EccubeTestCase.php b/tests/Eccube/Tests/EccubeTestCase.php index 080c94a9f68..ab9d7668526 100644 --- a/tests/Eccube/Tests/EccubeTestCase.php +++ b/tests/Eccube/Tests/EccubeTestCase.php @@ -225,6 +225,16 @@ public function createPage() return $this->container->get(Generator::class)->createPage(); } + /** + * LoginHistory オブジェクトを生成して返す + * + * @return \Eccube\Entity\LoginHistory + */ + public function createLoginHistory($user_name, $client_ip = null, $status = 0, $Member = null) + { + return $this->container->get(Generator::class)->createLoginHistory($user_name, $client_ip , $status, $Member); + } + /** * テーブルのデータを全て削除する. * diff --git a/tests/Eccube/Tests/EventListener/LoginHistoryListenerTest.php b/tests/Eccube/Tests/EventListener/LoginHistoryListenerTest.php new file mode 100644 index 00000000000..5bdd4324a09 --- /dev/null +++ b/tests/Eccube/Tests/EventListener/LoginHistoryListenerTest.php @@ -0,0 +1,61 @@ +client->request( + 'POST', $this->generateUrl('admin_login'), + [ + 'login_id' => 'admin', + 'password' => 'password', + '_csrf_token' => 'dummy', + ] + ); + + $LoginHistory = $this->entityManager->getRepository(LoginHistory::class) + ->findOneBy([ + 'user_name' => 'admin', + 'Status' => LoginHistoryStatus::SUCCESS, + ]); + + $this->assertNotNull($LoginHistory); + } + + public function testOnAuthenticationFailure() + { + $this->client->request( + 'POST', $this->generateUrl('admin_login'), + [ + 'login_id' => 'admin', + 'password' => 'password2', + '_csrf_token' => 'dummy', + ] + ); + + $LoginHistory = $this->entityManager->getRepository(LoginHistory::class) + ->findOneBy([ + 'user_name' => 'admin', + 'Status' => LoginHistoryStatus::FAILURE, + ]); + + $this->assertNotNull($LoginHistory); + } +} diff --git a/tests/Eccube/Tests/Fixture/Generator.php b/tests/Eccube/Tests/Fixture/Generator.php index 19b05c61acb..5abc38035d9 100644 --- a/tests/Eccube/Tests/Fixture/Generator.php +++ b/tests/Eccube/Tests/Fixture/Generator.php @@ -20,7 +20,9 @@ use Eccube\Entity\Delivery; use Eccube\Entity\DeliveryFee; use Eccube\Entity\DeliveryTime; +use Eccube\Entity\LoginHistory; use Eccube\Entity\Master\CustomerStatus; +use Eccube\Entity\Master\LoginHistoryStatus; use Eccube\Entity\Master\OrderItemType; use Eccube\Entity\Master\TaxDisplayType; use Eccube\Entity\Master\TaxType; @@ -821,6 +823,34 @@ public function createPage() return $Page; } + /** + * ログイン履歴を生成する + * + * @param string $user_name + * @param string|null $client_ip + * @param int|null $status + * @param Member|null $Member + * @return LoginHistory + */ + public function createLoginHistory($user_name, $client_ip = null, $status = null, $Member = null) + { + $faker = $this->getFaker(); + $LoginHistory = new LoginHistory(); + $LoginHistory + ->setUserName($user_name) + ->setClientIp($client_ip ?? $faker->ipv4) + ->setLoginUser($Member); + + $LoginHistory->setStatus( + $this->entityManager->find(LoginHistoryStatus::class, $status ?? LoginHistoryStatus::FAILURE) + ); + + $this->entityManager->persist($LoginHistory); + $this->entityManager->flush(); + + return $LoginHistory; + } + /** * Faker を生成する. * diff --git a/tests/Eccube/Tests/Form/Type/Admin/SearchLoginHistoryTypeTest.php b/tests/Eccube/Tests/Form/Type/Admin/SearchLoginHistoryTypeTest.php new file mode 100644 index 00000000000..5ea70739d6c --- /dev/null +++ b/tests/Eccube/Tests/Form/Type/Admin/SearchLoginHistoryTypeTest.php @@ -0,0 +1,67 @@ +form = $this->formFactory + ->createBuilder(SearchLoginHistoryType::class, null, ['csrf_protection' => false]) + ->getForm(); + } + + /** + * @dataProvider dataFormDateTimeProvider + * + * @param string $formName + */ + public function testDateTimeSearch(string $formName) + { + $formData = [ + $formName => '2020-07-09 09:00:00', + ]; + + $this->form->submit($formData); + $this->assertTrue($this->form->isValid()); + } + + /** + * Data provider datetime form test. + * + * @return array + */ + public function dataFormDateTimeProvider() + { + return [ + ['create_datetime_start'], + ['create_datetime_end'], + ]; + } +} diff --git a/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php b/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php index e5e4291059b..842c4496892 100644 --- a/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php +++ b/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php @@ -29,6 +29,7 @@ class SecurityTypeTest extends AbstractTypeTestCase protected $formData = [ 'admin_route_dir' => 'admin', 'admin_allow_hosts' => '', + 'admin_deny_hosts' => '', ]; public function setUp() @@ -68,6 +69,27 @@ public function testValidAdminAllowHost_NotIp() $this->assertFalse($this->form->isValid()); } + public function testValidAdminDenyHost_OneLineIp() + { + $this->formData['admin_deny_hosts'] = '127.0.0.1'; + $this->form->submit($this->formData); + $this->assertTrue($this->form->isValid()); + } + + public function testValidAdminDenyHost_MultiLineIps() + { + $this->formData['admin_deny_hosts'] = "127.0.0.1\n1.1.1.1"; + $this->form->submit($this->formData); + $this->assertTrue($this->form->isValid()); + } + + public function testValidAdminDenyHost_NotIp() + { + $this->formData['admin_deny_hosts'] = '255.255.255,256'; + $this->form->submit($this->formData); + $this->assertFalse($this->form->isValid()); + } + /** * Over ltext_len = 3000 */ diff --git a/tests/Eccube/Tests/Repository/LoginHistoryRepositoryGetQueryBuilderBySearchDataAdminTest.php b/tests/Eccube/Tests/Repository/LoginHistoryRepositoryGetQueryBuilderBySearchDataAdminTest.php new file mode 100644 index 00000000000..7710e8cc299 --- /dev/null +++ b/tests/Eccube/Tests/Repository/LoginHistoryRepositoryGetQueryBuilderBySearchDataAdminTest.php @@ -0,0 +1,193 @@ +loginHistoryRepository = $this->container->get(LoginHistoryRepository::class); + $this->Member1 = $this->createMember('member1'); + $this->LoginHistory1 = $this->createLoginHistory('member1', '127.0.0.1', LoginHistoryStatus::SUCCESS, $this->Member1); + $this->LoginHistory2 = $this->createLoginHistory('member1', '127.0.0.1', LoginHistoryStatus::FAILURE, $this->Member1); + $this->LoginHistory3 = $this->createLoginHistory('member2', '127.0.0.2', LoginHistoryStatus::FAILURE); + } + + public function scenario() + { + $this->Results = $this->loginHistoryRepository->getQueryBuilderBySearchDataForAdmin($this->searchData) + ->getQuery() + ->getResult(); + } + + public function testMulti() + { + $this->searchData = [ + 'multi' => 'member1', + ]; + $this->scenario(); + + $this->expected = 2; + $this->actual = count($this->Results); + $this->verify(); + } + + public function testUserName() + { + $this->searchData = [ + 'user_name' => 'member1', + ]; + $this->scenario(); + + $this->expected = 2; + $this->actual = count($this->Results); + $this->verify(); + } + + public function testClientIp() + { + $this->searchData = [ + 'client_ip' => '127.0.0.1', + ]; + $this->scenario(); + + $this->expected = 2; + $this->actual = count($this->Results); + $this->verify(); + } + + /** + * @dataProvider dataStatusProvider + * + * @param $status + * @param $expected + */ + public function testStatus($status, $expected) + { + $this->searchData = [ + 'Status' => $status, + ]; + $this->scenario(); + + $this->expected = $expected; + $this->actual = count($this->Results); + $this->verify(); + } + + /** + * @return array[] + */ + public function dataStatusProvider() + { + return [ + [[LoginHistoryStatus::SUCCESS], 1], + [[LoginHistoryStatus::FAILURE], 2], + [[LoginHistoryStatus::SUCCESS, LoginHistoryStatus::FAILURE], 3], + ]; + } + + /** + * @dataProvider dataFormDateProvider + */ + public function testDate(string $formName, string $time, int $expected) + { + $this->searchData = [ + $formName => new \DateTime($time), + ]; + + $this->scenario(); + + $this->expected = $expected; + $this->actual = count($this->Results); + $this->verify(); + } + + /** + * Data provider date form test. + * + * time: + * - today: 今日の00:00:00 + * - tomorrow: 明日の00:00:00 + * - yesterday: 昨日の00:00:00 + * + * @return array + */ + public function dataFormDateProvider() + { + return [ + ['create_date_start', 'today', 3], + ['create_date_start', 'tomorrow', 0], + ['create_date_end', 'today', 3], + ['create_date_end', 'yesterday', 0], + ]; + } + + /** + * @dataProvider dataFormDateTimeProvider + */ + public function testDateTime(string $formName, string $time, int $expected) + { + $this->searchData = [ + $formName => new \DateTime($time), + ]; + + $this->scenario(); + + $this->expected = $expected; + $this->actual = count($this->Results); + $this->verify(); + } + + /** + * Data provider datetime form test. + * + * @return array + */ + public function dataFormDateTimeProvider() + { + return [ + ['create_datetime_start', '- 1 hour', 3], + ['create_datetime_start', '+ 1 hour', 0], + ['create_datetime_end', '+ 1 hour', 3], + ['create_datetime_end', '- 1 hour', 0], + ]; + } +} diff --git a/tests/Eccube/Tests/Web/Admin/Setting/System/LoginHistoryControllerTest.php b/tests/Eccube/Tests/Web/Admin/Setting/System/LoginHistoryControllerTest.php new file mode 100644 index 00000000000..45c65379a2f --- /dev/null +++ b/tests/Eccube/Tests/Web/Admin/Setting/System/LoginHistoryControllerTest.php @@ -0,0 +1,168 @@ +container->get(LoginHistoryStatusRepository::class); + + // 履歴を10個生成しておく + for ($i = 0; $i < 10; $i++) { + $userName = 'member'.$i; + + $clientIp = $i % 2 === 1 ? '127.0.0.1' : '127.0.0.2'; + $LoginHistoryStatus = $loginHistoryStatusRepository->find($i % 2 === 1 ? LoginHistoryStatus::SUCCESS : LoginHistoryStatus::FAILURE); + $Member = $this->createMember($userName); + $this->createLoginHistory($userName, $clientIp, $LoginHistoryStatus, $Member); + } + } + + /** + * {@inheritdoc} + */ + public function tearDown() + { + } + + public function testIndex() + { + $crawler = $this->client->request('GET', $this->generateUrl('admin_setting_system_login_history')); + $this->assertTrue($this->client->getResponse()->isSuccessful()); + + $this->expected = '検索結果:10件が該当しました'; + $this->actual = $crawler->filter('div.c-outsideBlock__contents.mb-5 > span')->text(); + $this->verify('表示件数テスト'); + } + + public function testIndexPage() + { + // 表示件数100件テスト + $crawler = $this->client->request('GET', $this->generateUrl('admin_setting_system_login_history_page', ['page_no' => 1]), ['page_count' => 100]); + $this->expected = '100件'; + $this->actual = $crawler->filter('select.custom-select > option:selected')->text(); + $this->verify('表示件数100件テスト'); + + // 表示件数入力値は正しくない場合はデフォルトの表示件数になるテスト + $crawler = $this->client->request('GET', $this->generateUrl('admin_setting_system_login_history_page', ['page_no' => 1]), ['page_count' => 999999]); + $this->expected = '検索結果:10件が該当しました'; + $this->actual = $crawler->filter('div.c-outsideBlock__contents.mb-5 > span')->text(); + $this->verify('表示件数入力値は正しくない場合はデフォルトの表示件数になるテスト'); + + // 表示件数はSESSIONから取得するテスト + $crawler = $this->client->request('GET', $this->generateUrl('admin_setting_system_login_history_page', ['page_no' => 1]), ['status' => 1]); + $this->expected = '100件'; + $this->actual = $crawler->filter('select.custom-select > option:selected')->text(); + $this->verify('表示件数はSESSIONから取得するテスト'); + } + + /** + * testIndexWithPost + */ + public function testIndexWithPost() + { + $post = [ + 'admin_search_login_history' => ['_token' => 'dummy'], + ]; + + $crawler = $this->client->request( + 'POST', + $this->generateUrl('admin_setting_system_login_history'), $post + ); + $this->assertTrue($this->client->getResponse()->isSuccessful()); + + $this->expected = '検索結果:10件が該当しました'; + $this->actual = $crawler->filter('div.c-outsideBlock__contents.mb-5 > span')->text(); + $this->verify(); + + // デフォルトの表示件数確認テスト + $this->expected = '50件'; + $this->actual = $crawler->filter('select.custom-select > option:selected')->text(); + $this->verify('デフォルトの表示件数確認テスト'); + } + + public function testIndexWithPostSearchByUserName() + { + $post = [ + 'admin_search_login_history' => ['_token' => 'dummy', 'user_name' => 'member1'], + ]; + + $crawler = $this->client->request( + 'POST', + $this->generateUrl('admin_setting_system_login_history'), $post + ); + + $this->expected = '検索結果:1件が該当しました'; + $this->actual = $crawler->filter('div.c-outsideBlock__contents.mb-5 > span')->text(); + $this->verify('検索結果件数の確認テスト'); + } + + public function testIndexWithPostSearchByClientIp() + { + $post = [ + 'admin_search_login_history' => ['_token' => 'dummy', 'client_ip' => '127.0.0.1'], + ]; + + $crawler = $this->client->request( + 'POST', + $this->generateUrl('admin_setting_system_login_history'), $post + ); + + $this->expected = '検索結果:5件が該当しました'; + $this->actual = $crawler->filter('div.c-outsideBlock__contents.mb-5 > span')->text(); + $this->verify('検索結果件数の確認テスト'); + } + + /** + * @dataProvider dataStatusProvider + */ + public function testIndexWithPostSearchByStatus($status, $count) + { + $post = [ + 'admin_search_login_history' => ['_token' => 'dummy', 'Status' => $status], + ]; + + $crawler = $this->client->request( + 'POST', + $this->generateUrl('admin_setting_system_login_history'), + $post + ); + + $this->expected = sprintf('検索結果:%d件が該当しました', $count); + $this->actual = $crawler->filter('div.c-outsideBlock__contents.mb-5 > span')->text(); + $this->verify('検索結果件数の確認テスト'); + } + + /** + * @return array[] + */ + public function dataStatusProvider() + { + return [ + [[LoginHistoryStatus::SUCCESS], 5], + [[LoginHistoryStatus::FAILURE], 5], + [[LoginHistoryStatus::SUCCESS, LoginHistoryStatus::FAILURE], 10], + ]; + } +} diff --git a/tests/Eccube/Tests/Web/Admin/Setting/System/SecurityControllerTest.php b/tests/Eccube/Tests/Web/Admin/Setting/System/SecurityControllerTest.php index eb2407b6985..be7f8e6700a 100644 --- a/tests/Eccube/Tests/Web/Admin/Setting/System/SecurityControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Setting/System/SecurityControllerTest.php @@ -88,6 +88,7 @@ public function testSubmitEmpty() $formData = $this->createFormData(); $formData['admin_route_dir'] = null; $formData['admin_allow_hosts'] = null; + $formData['admin_deny_hosts'] = null; $formData['force_ssl'] = null; $this->client->request( @@ -115,6 +116,7 @@ public function createFormData() '_token' => 'dummy', 'admin_route_dir' => 'admintest', 'admin_allow_hosts' => '127.0.0.1', + 'admin_deny_hosts' => '127.0.0.1', ]; return $formData; From fb06bb389a1b03944a884637d536985e3f11e827 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Mon, 22 Mar 2021 09:31:35 +0900 Subject: [PATCH 193/207] Remove .travis.yml --- .github/workflows/deploy.yml | 1 - .travis.yml | 426 ----------------------------------- 2 files changed, 427 deletions(-) delete mode 100644 .travis.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index f71564ac3d3..e4dc0c34e6f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -46,7 +46,6 @@ jobs: rm -rf $GITHUB_WORKSPACE/.buildpath rm -rf $GITHUB_WORKSPACE/.gitmodules rm -rf $GITHUB_WORKSPACE/.scrutinizer.yml - rm -rf $GITHUB_WORKSPACE/.travis.yml rm -rf $GITHUB_WORKSPACE/appveyor.yml rm -rf $GITHUB_WORKSPACE/.coveralls.yml rm -rf $GITHUB_WORKSPACE/.php_cs.dist diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5d891879242..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,426 +0,0 @@ -# for travis-ci -# see also. https://travis-ci.org -dist: xenial -git: - submodules: false - -language: php -services: - - docker - - mysql - - postgresql - - xvfb - -addons: - chrome: stable - -cache: - directories: - - $HOME/.composer/cache - - bin/.phpunit - -php: - - 7.1 - - 7.2 - - 7.3 - - 7.4 - -env: - global: - - SYMFONY_DEPRECATIONS_HELPER=weak - matrix: - - DATABASE_URL=mysql://root:@localhost/cube4_dev DATABASE_SERVER_VERSION=5 - - DATABASE_URL=postgres://postgres:password@localhost/cube4_dev DATABASE_SERVER_VERSION=9 - - DATABASE_URL=sqlite:///var/eccube.db DATABASE_SERVER_VERSION=3 COVERAGE=1 - -matrix: - allow_failures: - - env: DATABASE_URL=sqlite:///var/eccube.db DATABASE_SERVER_VERSION=3 COVERAGE=1 - - env: APP_ENV=codeception - -## see https://github.com/symfony/symfony/blob/e0bdc0c35e9afdb3bee8af172f90e9648c4012fc/.travis.yml#L92-L97 -before_install: &php_setup | - phpenv config-rm xdebug.ini || true - echo "opcache.enable_cli=1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - echo "extension = apcu.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - echo "apc.enabled=1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - echo "apc.enable_cli=1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - echo "date.timezone=Asia/Tokyo" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - -eccube_setup: &eccube_setup | - bin/console doctrine:database:create --env=dev - bin/console doctrine:schema:create --env=dev - bin/console eccube:fixtures:load --env=dev - -package_api_setup: &package_api_setup | - mkdir ${PWD}/repos - docker run -d --rm -v ${PWD}/repos:/repos -e MOCK_REPO_DIR=/repos -p 8080:8080 eccube/mock-package-api - -composer_install: &composer_install | - composer selfupdate --1 - composer install --dev --no-interaction -o --apcu-autoloader - -install: - - *composer_install - - echo "APP_ENV=test" > .env - - *eccube_setup - -script: - - ./bin/phpunit --exclude-group cache-clear,cache-clear-install,update-schema-doctrine - - ./bin/phpunit --group cache-clear - - ./bin/phpunit --group cache-clear-install - - ./bin/phpunit --group update-schema-doctrine --exclude-group update-schema-doctrine-install - - ./bin/phpunit --group update-schema-doctrine-install --filter=testInstallPluginWithNoProxy - - ./bin/phpunit --group update-schema-doctrine-install --filter=testInstallPluginWithProxy - - ./bin/phpunit --group update-schema-doctrine-install --filter=testEnablePluginWithNoProxy - - ./bin/phpunit --group update-schema-doctrine-install --filter=testEnablePluginWithProxy - - ./bin/phpunit --group update-schema-doctrine-install --filter=testDisablePluginWithNoProxy - - ./bin/phpunit --group update-schema-doctrine-install --filter=testDisablePluginWithProxy - - ./bin/phpunit --group update-schema-doctrine-install --filter=testCreateEntityAndTrait - -jobs: - fast_finish: true - include: - # - &unit_test - # stage: Unit Test - # before_install: - # - *php_setup - # - gem install mailcatcher - # install: - # - *composer_install - # - *eccube_setup - # env: DATABASE_URL=mysql://root:@localhost/cube4_dev DATABASE_SERVER_VERSION=5 - # script: - # - ./bin/phpunit --exclude-group cache-clear,cache-clear-install - # - ./bin/phpunit --group cache-clear - # - ./bin/phpunit --group cache-clear-install - # - <<: *unit_test - # env: DATABASE_URL=postgres://postgres:password@localhost/cube4_dev DATABASE_SERVER_VERSION=9 - - &e2e_test - stage: E2E Test - before_install: - - *php_setup - - wget -c -nc --retry-connrefused --tries=0 http://chromedriver.storage.googleapis.com/2.43/chromedriver_linux64.zip - - unzip -o -q chromedriver_linux64.zip - - docker pull schickling/mailcatcher - - docker run -d -p 1080:1080 -p 1025:1025 --name mailcatcher schickling/mailcatcher - install: - - *composer_install - - echo "APP_ENV=codeception" > .env - - *eccube_setup - php: 7.3 - env: GROUP=admin01 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 - script: ./codeception.sh -g ${GROUP} - - <<: *e2e_test - php: 7.3 - env: GROUP=admin02 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 - - <<: *e2e_test - php: 7.3 - env: GROUP=admin03 APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 - - <<: *e2e_test - php: 7.3 - env: GROUP=front APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 - - <<: *e2e_test - php: 7.3 - env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - - | - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_remove_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_remove_local - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_enable_disable_remove_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_enable_disable_remove_local - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_remove_local - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_remove_store - - <<: *e2e_test - php: 7.3 - env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - - | - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_update_remove_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_update_remove_local - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_update_enable_disable_remove_local - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_update_enable_disable_remove_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_update_disable_remove_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_update_disable_remove_local - - <<: *e2e_test - php: 7.3 - env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - - | - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_update_enable_disable_remove_local - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_update_enable_disable_remove_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_enable - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_disable_disable - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_assets_local - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_assets_store - - <<: *e2e_test - php: 7.3 - env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - - | - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_disabled_remove_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_local - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_disabled_remove_local - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_crossed_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_crossed_local - - <<: *e2e_test - php: 7.3 - env: APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - - | - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_dependency_each_install_plugin - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_dependency_plugin_install - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_dependency_plugin_update - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_error - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" - ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store - - | - ./codeception.sh --reset - psql eccube_db -h 127.0.0.1 -U postgres -c "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" - ./codeception.sh EA10PluginCest:test_enhance_plugin_entity - - <<: *e2e_test - php: 7.3 - env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - - | - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_remove_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_remove_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_enable_disable_remove_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_enable_disable_remove_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_remove_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_remove_store - - <<: *e2e_test - php: 7.3 - env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - - | - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_update_remove_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_update_remove_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_update_enable_disable_remove_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_disable_update_enable_disable_remove_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_update_disable_remove_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_update_disable_remove_local - - <<: *e2e_test - php: 7.3 - env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - - | - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_update_enable_disable_remove_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_update_enable_disable_remove_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_enable_enable - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_disable_disable - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_assets_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_install_assets_store - - <<: *e2e_test - php: 7.3 - env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - - | - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_disabled_remove_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_disabled_remove_local - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_crossed_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_extend_same_table_crossed_local - - <<: *e2e_test - php: 7.3 - env: APP_ENV=codeception DATABASE_URL=mysql://root:@localhost/eccube_db DATABASE_SERVER_VERSION=5 MAILER_URL=smtp://localhost:1025 ECCUBE_PACKAGE_API_URL=http://localhost:8080 NO_FIXTURES=1 - script: - - *package_api_setup - - | - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_dependency_each_install_plugin - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" - ./codeception.sh EA10PluginCest:test_dependency_plugin_install -# - | -# ./codeception.sh --reset -# mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test';" -# ./codeception.sh EA10PluginCest:test_dependency_plugin_update - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" - ./codeception.sh EA10PluginCest:install_enable_disable_enable_disable_remove_store - - | - ./codeception.sh --reset - mysql -h 127.0.0.1 -u root eccube_db -e "update dtb_base_info set authentication_key='test', php_path = '$(which php)';" - ./codeception.sh EA10PluginCest:test_enhance_plugin_entity - - # インストーラのテスト - - <<: *e2e_test - # codeceptionのbootstrapでデータ投入を行っているので、本来は不要だけどコマンドラインからのインストールを実行させる - php: 7.3 - env: GROUP=installer APP_ENV=codeception DATABASE_URL=postgres://postgres:password@localhost/eccube_db DATABASE_SERVER_VERSION=9 MAILER_URL=smtp://localhost:1025 - script: - - echo "APP_ENV=install" >> .env - - ./codeception.sh -g ${GROUP} - - # - stage: Code Coverage - # if: type != pull_request - # env: DATABASE_URL=sqlite:///%kernel.project_dir%/var/eccube.db DATABASE_SERVER_VERSION=3 COVERAGE=1 - # before_install: - # - *php_setup - # - gem install mailcatcher - # install: - # - *composer_install - # - *eccube_setup - # script: - # - docker run -e DATABASE_URL=sqlite:////usr/src/myapp/var/eccube.db -v "$PWD":/usr/src/myapp:cached -w /usr/src/myapp --rm nanasess/phpdbg phpdbg -qrr -dmemory_limit=-1 ./bin/phpunit --exclude-group cache-clear --coverage-clover=coverage.clover - # after_success: - # - sed -i.bak -e 's|/usr/src/myapp/||g' coverage.clover - # - php vendor/bin/php-coveralls -v -x coverage.clover - # after_script: - # - wget https://scrutinizer-ci.com/ocular.phar - # - php ocular.phar code-coverage:upload --format=php-clover coverage.clover From 592d0811cc635ee360a925a9b896fee896e09156 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Mon, 22 Mar 2021 09:32:24 +0900 Subject: [PATCH 194/207] Remove obsolete ymls --- .github/workflows/deploy.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e4dc0c34e6f..1658401d3e8 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -45,9 +45,6 @@ jobs: rm -rf $GITHUB_WORKSPACE/.gitignore rm -rf $GITHUB_WORKSPACE/.buildpath rm -rf $GITHUB_WORKSPACE/.gitmodules - rm -rf $GITHUB_WORKSPACE/.scrutinizer.yml - rm -rf $GITHUB_WORKSPACE/appveyor.yml - rm -rf $GITHUB_WORKSPACE/.coveralls.yml rm -rf $GITHUB_WORKSPACE/.php_cs.dist rm -rf $GITHUB_WORKSPACE/phpunit.xml.dist rm -rf $GITHUB_WORKSPACE/phpstan.neon.dist From bc553e82024b6940b75b8a8c4831a9f4be66b16e Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Mon, 22 Mar 2021 16:46:02 +0900 Subject: [PATCH 195/207] =?UTF-8?q?docker-php-entrypoint=20=E3=81=A7=20APP?= =?UTF-8?q?=5FENV=20=E3=82=92=E8=A8=AD=E5=AE=9A=E3=81=99=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 5 +---- dockerbuild/docker-php-entrypoint | 13 +++++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100755 dockerbuild/docker-php-entrypoint diff --git a/Dockerfile b/Dockerfile index bad78213487..7b5454caf2e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,6 @@ FROM php:7.3-apache-stretch ENV APACHE_DOCUMENT_ROOT /var/www/html -ENV APP_ENV prod RUN apt-get update \ && apt-get install --no-install-recommends -y \ @@ -55,6 +54,7 @@ EXPOSE 443 RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" # Override with custom configuration settings COPY dockerbuild/php.ini $PHP_INI_DIR/conf.d/ +COPY dockerbuild/docker-php-entrypoint /usr/local/bin/ RUN chown www-data:www-data /var/www \ && mkdir -p ${APACHE_DOCUMENT_ROOT}/vendor \ @@ -67,9 +67,6 @@ RUN curl -sS https://getcomposer.org/installer \ && mv composer.phar /usr/bin/composer \ && composer selfupdate --1 -# 環境変数 APP_ENV は Docker コンテナ経由で渡せるようにする(.env より優先される) -RUN echo 'SetEnv APP_ENV ${APP_ENV}' >> /etc/apache2/conf-enabled/environment.conf - # 全体コピー前にcomposer installを先行完了させる(docker cache利用によるリビルド速度向上) USER www-data RUN composer config -g repos.packagist composer https://packagist.jp \ diff --git a/dockerbuild/docker-php-entrypoint b/dockerbuild/docker-php-entrypoint new file mode 100755 index 00000000000..f11dcfba8b3 --- /dev/null +++ b/dockerbuild/docker-php-entrypoint @@ -0,0 +1,13 @@ +#!/bin/sh +set -e + +if [ -n "${APP_ENV}" ]; then + echo "SetEnv APP_ENV ${APP_ENV}" >> /etc/apache2/conf-enabled/app_env.conf +fi + +# first arg is `-f` or `--some-option` +if [ "${1#-}" != "$1" ]; then + set -- apache2-foreground "$@" +fi + +exec "$@" From b898cc92e703fee279e2816c3e6c760f737d0c32 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Tue, 23 Mar 2021 10:21:56 +0900 Subject: [PATCH 196/207] =?UTF-8?q?=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E5=B1=A5=E6=AD=B4=E6=A9=9F=E8=83=BD=E3=81=AE=E6=96=87=E8=A8=80?= =?UTF-8?q?=E3=81=AA=E3=81=A9=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Setting/System/LoginHistoryController.php | 6 +++--- src/Eccube/Entity/LoginHistory.php | 20 +++++++++---------- .../Entity/Master/LoginHistoryStatus.php | 2 +- .../Type/Admin/SearchLoginHistoryType.php | 6 ++++++ src/Eccube/Resource/locale/messages.en.yaml | 2 +- src/Eccube/Resource/locale/messages.ja.yaml | 2 +- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/Eccube/Controller/Admin/Setting/System/LoginHistoryController.php b/src/Eccube/Controller/Admin/Setting/System/LoginHistoryController.php index 540739aa0d9..474bb7f76d4 100644 --- a/src/Eccube/Controller/Admin/Setting/System/LoginHistoryController.php +++ b/src/Eccube/Controller/Admin/Setting/System/LoginHistoryController.php @@ -18,7 +18,7 @@ use Eccube\Repository\LoginHistoryRepository; use Eccube\Repository\Master\PageMaxRepository; use Eccube\Util\FormUtil; -use Knp\Component\Pager\Paginator; +use Knp\Component\Pager\PaginatorInterface; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Annotation\Route; @@ -61,7 +61,7 @@ public function __construct( * * @return \Symfony\Component\HttpFoundation\Response|array */ - public function index(Request $request, Paginator $paginator, $page_no = null) + public function index(Request $request, PaginatorInterface $paginator, $page_no = null) { $session = $request->getSession(); $pageNo = $page_no; @@ -85,7 +85,7 @@ public function index(Request $request, Paginator $paginator, $page_no = null) if ('POST' === $request->getMethod()) { $searchForm->handleRequest($request); - if ($searchForm->isValid()) { + if ($searchForm->isSubmitted() && $searchForm->isValid()) { $searchData = $searchForm->getData(); $pageNo = 1; $session->set('eccube.admin.login_history.search', FormUtil::getViewData($searchForm)); diff --git a/src/Eccube/Entity/LoginHistory.php b/src/Eccube/Entity/LoginHistory.php index 522b81c9db4..c2bb66e5d0f 100644 --- a/src/Eccube/Entity/LoginHistory.php +++ b/src/Eccube/Entity/LoginHistory.php @@ -39,13 +39,13 @@ class LoginHistory extends AbstractEntity /** * @var string - * @ORM\Column( type="text",nullable=true) + * @ORM\Column(type="text",nullable=true) */ private $user_name; /** * @var string - * @ORM\Column( type="text",nullable=true) + * @ORM\Column(type="text",nullable=true) */ private $client_ip; @@ -115,14 +115,6 @@ public function getUserName() return $this->user_name; } - /** - * @return LoginHistoryStatus - */ - public function getStatus() - { - return $this->Status; - } - /** * @param LoginHistoryStatus $Status * @@ -135,6 +127,14 @@ public function setStatus($Status) return $this; } + /** + * @return LoginHistoryStatus + */ + public function getStatus() + { + return $this->Status; + } + /** * Set client_ip * diff --git a/src/Eccube/Entity/Master/LoginHistoryStatus.php b/src/Eccube/Entity/Master/LoginHistoryStatus.php index 04cf91e9634..19ee61f18b9 100644 --- a/src/Eccube/Entity/Master/LoginHistoryStatus.php +++ b/src/Eccube/Entity/Master/LoginHistoryStatus.php @@ -17,7 +17,7 @@ if (!class_exists(LoginHistoryStatus::class, false)) { /** - * Work + * LoginHistoryStatus * * @ORM\Table(name="mtb_login_history_status") * @ORM\InheritanceType("SINGLE_TABLE") diff --git a/src/Eccube/Form/Type/Admin/SearchLoginHistoryType.php b/src/Eccube/Form/Type/Admin/SearchLoginHistoryType.php index 093421701c5..ebfb51d25d4 100644 --- a/src/Eccube/Form/Type/Admin/SearchLoginHistoryType.php +++ b/src/Eccube/Form/Type/Admin/SearchLoginHistoryType.php @@ -54,10 +54,16 @@ public function buildForm(FormBuilderInterface $builder, array $options) ->add('user_name', TextType::class, [ 'label' => 'admin.setting.system.login_history.user_name', 'required' => false, + 'constraints' => [ + new Assert\Length(['max' => $this->eccubeConfig['eccube_stext_len']]), + ], ]) ->add('client_ip', TextType::class, [ 'label' => 'admin.setting.system.login_history.client_ip', 'required' => false, + 'constraints' => [ + new Assert\Length(['max' => $this->eccubeConfig['eccube_stext_len']]), + ], ]) ->add('Status', LoginHistoryStatusType::class, [ 'label' => 'admin.setting.system.login_history.status', diff --git a/src/Eccube/Resource/locale/messages.en.yaml b/src/Eccube/Resource/locale/messages.en.yaml index 0557ae2aaf8..b60e0dd0e98 100644 --- a/src/Eccube/Resource/locale/messages.en.yaml +++ b/src/Eccube/Resource/locale/messages.en.yaml @@ -1245,7 +1245,7 @@ admin.setting.system.security__card_title: Security Settings admin.setting.system.security.admin_url: Admin Console URL admin.setting.system.security.admin_url_description: It is recommended to set the URL which would NOT be easily guessed. admin.setting.system.security.admin_url_changed: The URL of Admin Console has been changed. Please sign in again. -admin.setting.system.security.ip_limit: IP Restrictions +admin.setting.system.security.ip_limit: IP Restrictions(Allow List) admin.setting.system.security.ip_limit_description: | This will restrict the access to the Admin Console to specified IP addresses. Please enter the URLs one by one which you allow the access to. If no URLs are entered, any URL can access your Admin Console. diff --git a/src/Eccube/Resource/locale/messages.ja.yaml b/src/Eccube/Resource/locale/messages.ja.yaml index a51f41516ee..402f96f7c8e 100644 --- a/src/Eccube/Resource/locale/messages.ja.yaml +++ b/src/Eccube/Resource/locale/messages.ja.yaml @@ -1245,7 +1245,7 @@ admin.setting.system.security__card_title: セキュリティ設定 admin.setting.system.security.admin_url: 管理画面URL admin.setting.system.security.admin_url_description: 推測されにくいURLを設定することを推奨します。 admin.setting.system.security.admin_url_changed: 管理画面のURLを変更しました。再度ログインを行ってください。 -admin.setting.system.security.ip_limit: IP制限 +admin.setting.system.security.ip_limit: IP制限(許可リスト) admin.setting.system.security.ip_limit_description: | 管理機能へのアクセスを特定のIPアドレスからの接続のみに制限します。 アクセスを許可するIPアドレスを1行ずつ入力してください。何も入力しない場合は全てを許可します。 From 17438a7daa9c7dc347205c542a846e38f1d6f81f Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Tue, 23 Mar 2021 11:04:02 +0900 Subject: [PATCH 197/207] =?UTF-8?q?=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=82=B9=E3=83=86=E3=83=BC=E3=82=BF=E3=82=B9=E3=81=AE=E3=83=9E?= =?UTF-8?q?=E3=82=A4=E3=82=B0=E3=83=AC=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3?= =?UTF-8?q?=E3=81=A7=E7=92=B0=E5=A2=83=E5=A4=89=E6=95=B0=20ECCUBE=5FLOCALE?= =?UTF-8?q?=20=E3=81=8C=E6=9C=AA=E8=A8=AD=E5=AE=9A=E3=81=AE=E5=A0=B4?= =?UTF-8?q?=E5=90=88=E3=81=AF=E6=97=A5=E6=9C=AC=E8=AA=9E=E3=81=A7=E7=99=BB?= =?UTF-8?q?=E9=8C=B2=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/DoctrineMigrations/Version20210319122142.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/DoctrineMigrations/Version20210319122142.php b/app/DoctrineMigrations/Version20210319122142.php index dcdb3498cc0..90a320c2d22 100644 --- a/app/DoctrineMigrations/Version20210319122142.php +++ b/app/DoctrineMigrations/Version20210319122142.php @@ -28,8 +28,8 @@ public function up(Schema $schema): void { $lang = env('ECCUBE_LOCALE'); $statuses = [ - LoginHistoryStatus::FAILURE => $lang === 'ja' ? '失敗' : 'Failure', - LoginHistoryStatus::SUCCESS => $lang === 'ja' ? '成功' : 'Success', + LoginHistoryStatus::FAILURE => $lang === 'en' ? 'Failure' : '失敗', + LoginHistoryStatus::SUCCESS => $lang === 'en' ? 'Success' : '成功', ]; $sortNo = $this->connection->fetchColumn('SELECT MAX(sort_no) + 1 FROM mtb_login_history_status'); From ac53139698dd46ec8125e158ea9165164cf83647 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Tue, 23 Mar 2021 16:21:16 +0900 Subject: [PATCH 198/207] =?UTF-8?q?Badge=20=E3=82=92=20GitHub=20Actions=20?= =?UTF-8?q?=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 683b47e08f7..a8c602d0506 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # EC-CUBE 4.0 -[![Build Status](https://travis-ci.com/EC-CUBE/ec-cube.svg?branch=4.0)](https://travis-ci.com/EC-CUBE/ec-cube) +[![Unit test for EC-CUBE](https://github.com/EC-CUBE/ec-cube/actions/workflows/unit-test.yml/badge.svg?branch=4.0)](https://github.com/EC-CUBE/ec-cube/actions/workflows/unit-test.yml) +[![E2E test for EC-CUBE](https://github.com/EC-CUBE/ec-cube/actions/workflows/e2e-test.yml/badge.svg?branch=4.0)](https://github.com/EC-CUBE/ec-cube/actions/workflows/e2e-test.yml) +[![Plugin test for EC-CUBE](https://github.com/EC-CUBE/ec-cube/actions/workflows/plugin-test.yml/badge.svg?branch=4.0)](https://github.com/EC-CUBE/ec-cube/actions/workflows/plugin-test.yml) +[![PHPStan](https://github.com/EC-CUBE/ec-cube/actions/workflows/phpstan.yml/badge.svg?branch=4.0)](https://github.com/EC-CUBE/ec-cube/actions/workflows/phpstan.yml) [![codecov](https://codecov.io/gh/EC-CUBE/ec-cube/branch/4.0/graph/badge.svg?token=BhnPjjvfwd)](https://codecov.io/gh/EC-CUBE/ec-cube) [![Slack](https://img.shields.io/badge/slack-join%5fchat-brightgreen.svg?style=flat)](https://join.slack.com/t/ec-cube/shared_invite/enQtNDA1MDYzNDQxMTIzLTY5MTRhOGQ2MmZhMjQxYTAwMmVlMDc5MDU2NjJlZmFiM2E3M2Q0M2Y3OTRlMGY4NTQzN2JiZDBkNmQwNTUzYzc) From fa1dfb7caece09f446c56fe760d322ff0f7264d8 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Wed, 24 Mar 2021 10:50:00 +0900 Subject: [PATCH 199/207] =?UTF-8?q?Travis=20CI=20=E9=80=A3=E6=90=BA?= =?UTF-8?q?=E5=BB=83=E6=AD=A2=E3=81=AB=E4=BC=B4=E3=81=84=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 1 - codeception.sh | 26 -------------------------- 2 files changed, 27 deletions(-) delete mode 100755 codeception.sh diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1658401d3e8..60671393d42 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -52,7 +52,6 @@ jobs: rm -rf $GITHUB_WORKSPACE/Procfile rm -rf $GITHUB_WORKSPACE/LICENSE.txt rm -rf $GITHUB_WORKSPACE/README.md - rm -rf $GITHUB_WORKSPACE/codeception.sh rm -rf $GITHUB_WORKSPACE/codeception.yml rm -rf $GITHUB_WORKSPACE/app/Plugin/* rm -rf $GITHUB_WORKSPACE/codeception diff --git a/codeception.sh b/codeception.sh deleted file mode 100755 index 6deed80848c..00000000000 --- a/codeception.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -if [[ $1 == '--reset' ]]; then - rm -rf app/Plugin/* html - git checkout app/Plugin html - find app/proxy/entity -name '*.php' -delete - if [[ -f ".maintenance" ]]; then - rm .maintenance - fi - rm -rf var/cache - git checkout composer.json composer.lock - composer install --dev --no-interaction -o --apcu-autoloader - bin/console doctrine:schema:drop --force --full-database --env=dev - bin/console doctrine:schema:create --env=dev - bin/console eccube:fixtures:load --env=dev - exit -fi - -./chromedriver --url-base=/wd/hub & -CDPID="$!" -trap "kill ${CDPID}" exit - -mailcatcher -php -S localhost:8000 & - -vendor/bin/codecept -vvv run acceptance --env chrome,travis "$@" From f3c187faaa0a2e2e613c643f458f91dfdec48e95 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Thu, 25 Mar 2021 21:01:08 +0900 Subject: [PATCH 200/207] =?UTF-8?q?IP=E5=88=B6=E9=99=90=EF=BC=88=E6=8B=92?= =?UTF-8?q?=E5=90=A6=E3=83=AA=E3=82=B9=E3=83=88=EF=BC=89=E3=81=A8=E3=83=AD?= =?UTF-8?q?=E3=82=B0=E3=82=A4=E3=83=B3=E5=B1=A5=E6=AD=B4=E3=81=A8E2E?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/_support/AcceptanceTester.php | 2 +- .../_support/Page/Admin/LoginHistoryPage.php | 63 ++++++++++++++++ codeception/acceptance/EA08SysteminfoCest.php | 73 ++++++++++++++++++- 3 files changed, 135 insertions(+), 3 deletions(-) create mode 100644 codeception/_support/Page/Admin/LoginHistoryPage.php diff --git a/codeception/_support/AcceptanceTester.php b/codeception/_support/AcceptanceTester.php index e13b11a4a88..21c47be3675 100644 --- a/codeception/_support/AcceptanceTester.php +++ b/codeception/_support/AcceptanceTester.php @@ -66,7 +66,7 @@ public function logoutAsAdmin() $isLogin = $I->grabTextFrom('header.c-headerBar div.c-headerBar__container a.c-headerBar__userMenu span'); if ($isLogin == '管理者 様') { $I->click('header.c-headerBar div.c-headerBar__container a.c-headerBar__userMenu'); - $I->click('#page_admin_homepage div.popover .popover-body a:last-child'); + $I->click('body div.popover .popover-body a:last-child'); $config = Fixtures::get('config'); $I->amOnPage('/'.$config['eccube_admin_route'].'/logout'); $I->see('ログイン', '#form1 > button'); diff --git a/codeception/_support/Page/Admin/LoginHistoryPage.php b/codeception/_support/Page/Admin/LoginHistoryPage.php new file mode 100644 index 00000000000..efa69da86fd --- /dev/null +++ b/codeception/_support/Page/Admin/LoginHistoryPage.php @@ -0,0 +1,63 @@ + 'admin_search_login_history_multi']; + public static $検索ボタン = '#search_form .c-outsideBlock__contents button'; + public static $詳細検索ボタン = '//*[@id="search_form"]/div[1]/div[1]/div/div/div[2]/a/span'; + public static $検索結果_メッセージ = '//*[@id="search_form"]/div[2]/span'; + + public function __construct(\AcceptanceTester $I) + { + parent::__construct($I); + } + + public static function go(\AcceptanceTester $I) + { + $page = new self($I); + + return $page->goPage(self::$URL, 'ログイン履歴システム設定'); + } + + /** + * 指定したログインID/IPアドレスで検索する。 + * + * @param string $multi ログインID/IPアドレス + * + * @return $this + */ + public function 検索($multi = '') + { + $this->tester->fillField(self::$検索条件, $multi); + $this->tester->click(self::$検索ボタン); + $this->tester->see('ログイン履歴システム設定', '.c-pageTitle'); + + return $this; + } + + public function 詳細検索_ステータス($value) + { + $this->tester->click(self::$詳細検索ボタン); + $this->tester->wait(1); + $this->tester->checkOption(['id' => 'admin_search_login_history_Status_'.$value]); + $this->tester->click(self::$検索ボタン); + $this->tester->see('ログイン履歴システム設定', '.c-pageTitle'); + + return $this; + } +} diff --git a/codeception/acceptance/EA08SysteminfoCest.php b/codeception/acceptance/EA08SysteminfoCest.php index bd6dfae2e40..e9962d4db8e 100644 --- a/codeception/acceptance/EA08SysteminfoCest.php +++ b/codeception/acceptance/EA08SysteminfoCest.php @@ -13,6 +13,7 @@ use Codeception\Util\Fixtures; use Page\Admin\AuthorityManagePage; +use Page\Admin\LoginHistoryPage; /** * @group admin @@ -308,6 +309,30 @@ public function systeminfo_セキュリティ管理SSL(\AcceptanceTester $I) $I->click('#page_admin_setting_system_security form div.c-contentsArea__cols > div.c-conversionArea > div > div > div:nth-child(2) > div > div > button'); } + /** + * GitHub Actions は IPv6で実行されており、アクセス拒否のテストはできない + */ + public function systeminfo_セキュリティ管理IP制限_拒否リスト(\AcceptanceTester $I) + { + $I->wantTo('EA0804-UC01-T05 セキュリティ管理 - IP制限(拒否リスト)'); + + $findPlugins = Fixtures::get('findPlugins'); + $Plugins = $findPlugins(); + if (is_array($Plugins) && count($Plugins) > 0) { + $I->getScenario()->skip('プラグインのアンインストールが必要なため、テストをスキップします'); + } + + // 表示 + $config = Fixtures::get('config'); + $I->amOnPage('/'.$config['eccube_admin_route'].'/setting/system/security'); + $I->see('セキュリティ管理システム設定', '#page_admin_setting_system_security .c-pageTitle__titles'); + + $I->fillField(['id' => 'admin_security_admin_deny_hosts'], '1.1.1.1'); + $I->click('#page_admin_setting_system_security form div.c-contentsArea__cols > div.c-conversionArea > div > div > div:nth-child(2) > div > div > button'); + + $I->see('保存しました', AuthorityManagePage::$完了メッセージ); + } + public function systeminfo_権限管理追加(\AcceptanceTester $I) { $I->wantTo('EA0805-UC01-T01 権限管理 - 追加'); @@ -377,12 +402,56 @@ public function systeminfo_マスターデータ管理(\AcceptanceTester $I) $I->see('無回答', '#customer_form #admin_customer_sex'); } + public function systeminfo_ログイン履歴検索(\AcceptanceTester $I) + { + $I->wantTo('EA0807-UC01-T01 ログイン履歴 - 検索'); + + LoginHistoryPage::go($I)->検索('admin'); + + // 1項目目をチェック + $I->see('admin', '//*[@id="search_form"]/div[4]/div/div/div[2]/div/table/tbody/tr[1]/td[2]'); + $I->see('成功', '//*[@id="search_form"]/div[4]/div/div/div[2]/div/table/tbody/tr[1]/td[5]/span'); + + LoginHistoryPage::go($I)->検索('admin-failure'); + + $I->see('検索結果:0件が該当しました', LoginHistoryPage::$検索結果_メッセージ); + + $I->logoutAsAdmin(); + + // ログインに失敗する + $I->submitForm('#form1', [ + 'login_id' => 'admin-failure', + 'password' => 'password', + ]); + + $I->loginAsAdmin(); + + LoginHistoryPage::go($I)->検索('admin-failure'); + + // 1項目目をチェック + $I->see('admin-failure', '//*[@id="search_form"]/div[4]/div/div/div[2]/div/table/tbody/tr[1]/td[2]'); + $I->see('失敗', '//*[@id="search_form"]/div[4]/div/div/div[2]/div/table/tbody/tr[1]/td[5]/span'); + + + // ステータスで詳細検索 + + LoginHistoryPage::go($I)->検索(); + + $I->see('失敗', '//*[@id="search_form"]/div[4]/div/div/div[2]/div/table/tbody'); + $I->see('成功', '//*[@id="search_form"]/div[4]/div/div/div[2]/div/table/tbody'); + + LoginHistoryPage::go($I)->詳細検索_ステータス('0'); + + $I->see('失敗', '//*[@id="search_form"]/div[4]/div/div/div[2]/div/table/tbody'); + $I->dontSee('成功', '//*[@id="search_form"]/div[4]/div/div/div[2]/div/table/tbody'); + } + /** * ATTENTION 後続のテストが失敗するため、最後に実行する必要がある */ - public function systeminfo_セキュリティ管理IP制限(\AcceptanceTester $I) + public function systeminfo_セキュリティ管理IP制限_許可リスト(\AcceptanceTester $I) { - $I->wantTo('EA0804-UC01-T03 セキュリティ管理 - IP制限'); + $I->wantTo('EA0804-UC01-T03 セキュリティ管理 - IP制限(許可リスト)'); $findPlugins = Fixtures::get('findPlugins'); $Plugins = $findPlugins(); From 2cf0b535754db76350b619d14d8f350231f3bd38 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Fri, 26 Mar 2021 09:31:48 +0900 Subject: [PATCH 201/207] =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=94=BB=E9=9D=A2?= =?UTF-8?q?=E3=81=AE=E3=81=8A=E7=9F=A5=E3=82=89=E3=81=9B=E3=81=AEE2E?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=82=92=E3=83=AA=E3=83=80=E3=82=A4?= =?UTF-8?q?=E3=83=AC=E3=82=AF=E3=83=88=E3=81=AB=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EA01TopCest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codeception/acceptance/EA01TopCest.php b/codeception/acceptance/EA01TopCest.php index f6493f617fb..0214ac88b47 100644 --- a/codeception/acceptance/EA01TopCest.php +++ b/codeception/acceptance/EA01TopCest.php @@ -82,10 +82,10 @@ public function top_001(\AcceptanceTester $I) // お知らせの記事をクリックすると設定されたURLに遷移することを確認 $I->switchToIFrame('information'); $selector = '.news_area .link_list .tableish a:nth-child(1)'; - $url = $I->grabAttributeFrom($selector, 'href'); + $url = $I->executeJS('return location.href'); $I->click(['css' => $selector]); $I->switchToNewWindow(); - $I->assertEquals($url, $I->executeJS('return location.href'), $url.' が一致しません'); + $I->assertNotEquals($url, $I->executeJS('return location.href'), $url.' から遷移していません。'); $I->switchToWindow(); // ショップ情報の在庫切れ商品をクリックすると商品管理ページに遷移することを確認 From 91bee5a62198fd50c8b39f0db6432fe534963a64 Mon Sep 17 00:00:00 2001 From: hideki_okajima Date: Fri, 26 Mar 2021 10:42:09 +0900 Subject: [PATCH 202/207] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=82=B1?= =?UTF-8?q?=E3=83=BC=E3=82=B9=E3=81=AEID=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codeception/acceptance/EA08SysteminfoCest.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/codeception/acceptance/EA08SysteminfoCest.php b/codeception/acceptance/EA08SysteminfoCest.php index e9962d4db8e..0463fd44745 100644 --- a/codeception/acceptance/EA08SysteminfoCest.php +++ b/codeception/acceptance/EA08SysteminfoCest.php @@ -316,12 +316,6 @@ public function systeminfo_セキュリティ管理IP制限_拒否リスト(\Acc { $I->wantTo('EA0804-UC01-T05 セキュリティ管理 - IP制限(拒否リスト)'); - $findPlugins = Fixtures::get('findPlugins'); - $Plugins = $findPlugins(); - if (is_array($Plugins) && count($Plugins) > 0) { - $I->getScenario()->skip('プラグインのアンインストールが必要なため、テストをスキップします'); - } - // 表示 $config = Fixtures::get('config'); $I->amOnPage('/'.$config['eccube_admin_route'].'/setting/system/security'); @@ -404,7 +398,7 @@ public function systeminfo_マスターデータ管理(\AcceptanceTester $I) public function systeminfo_ログイン履歴検索(\AcceptanceTester $I) { - $I->wantTo('EA0807-UC01-T01 ログイン履歴 - 検索'); + $I->wantTo('EA0808-UC01-T01 ログイン履歴 - 検索'); LoginHistoryPage::go($I)->検索('admin'); From 3f40c76333bbe3dd67fd6435b8440ec6a105222d Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Fri, 26 Mar 2021 15:59:28 +0900 Subject: [PATCH 203/207] =?UTF-8?q?nginx.conf.sample=20=E3=81=AB=20bin=20?= =?UTF-8?q?=E3=83=87=E3=82=A3=E3=83=AC=E3=82=AF=E3=83=88=E3=83=AA=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nginx.conf.sample | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nginx.conf.sample b/nginx.conf.sample index 30fdb66cb3a..46da70e797b 100644 --- a/nginx.conf.sample +++ b/nginx.conf.sample @@ -65,7 +65,7 @@ server { location ~ /\. { deny all; } - location ~^/(var|test|vendor|app|src) { + location ~^/(var|test|vendor|app|src|bin) { deny all; } } From b5d1bb1d691dbce733cc1699a50a4e7a54c1ab9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Mar 2021 15:27:47 +0000 Subject: [PATCH 204/207] Bump y18n from 3.2.1 to 3.2.2 Bumps [y18n](https://github.com/yargs/y18n) from 3.2.1 to 3.2.2. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/commits) Signed-off-by: dependabot[bot] --- package-lock.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 894c9d7f19f..96982a5be90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3021,6 +3021,12 @@ "yargs": "^7.1.0" } }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, "yargs": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", @@ -4474,12 +4480,6 @@ "strip-ansi": "^6.0.0" } }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -5240,9 +5240,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yargs": { @@ -7687,9 +7687,9 @@ "dev": true }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", "dev": true }, "yallist": { From a8f481b2f7256e0a84c5597fa3bae77f73dc11d9 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Mon, 5 Apr 2021 10:05:10 +0900 Subject: [PATCH 205/207] Fix testcase --- codeception/acceptance/EA08SysteminfoCest.php | 2 +- composer.lock | 145 ++++++++---------- tests/Eccube/Tests/EccubeTestCase.php | 2 +- .../Form/Type/Shopping/OrderTypeTest.php | 2 +- ...ryGetQueryBuilderBySearchDataAdminTest.php | 3 +- .../Admin/Customer/CustomerControllerTest.php | 2 +- .../Admin/Product/CsvImportControllerTest.php | 2 +- .../Admin/Product/ProductContorllerTest.php | 4 +- .../System/LoginHistoryControllerTest.php | 2 +- 9 files changed, 71 insertions(+), 93 deletions(-) diff --git a/codeception/acceptance/EA08SysteminfoCest.php b/codeception/acceptance/EA08SysteminfoCest.php index 88e0982db23..8224c1389c0 100644 --- a/codeception/acceptance/EA08SysteminfoCest.php +++ b/codeception/acceptance/EA08SysteminfoCest.php @@ -443,7 +443,7 @@ public function systeminfo_ログイン履歴検索(\AcceptanceTester $I) /** * ATTENTION 後続のテストが失敗するため、最後に実行する必要がある */ -n public function systeminfo_セキュリティ管理IP制限_許可リスト(AcceptanceTester $I) + public function systeminfo_セキュリティ管理IP制限_許可リスト(AcceptanceTester $I) { $I->wantTo('EA0804-UC01-T03 セキュリティ管理 - IP制限(許可リスト)'); diff --git a/composer.lock b/composer.lock index 7b77806c19d..c959ce340dc 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "31acec37e3345fca7ffab9808662f7b4", + "content-hash": "0404d3935ec872bb06ecc78baaceecf8", "packages": [ { "name": "composer/ca-bundle", @@ -10529,89 +10529,6 @@ }, "time": "2018-07-08T19:19:57+00:00" }, - { - "name": "php-coveralls/php-coveralls", - "version": "v2.4.1", - "source": { - "type": "git", - "url": "https://github.com/php-coveralls/php-coveralls.git", - "reference": "c3f682e7cd50191ce0a9c396bc4dee8cbcf05383" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/c3f682e7cd50191ce0a9c396bc4dee8cbcf05383", - "reference": "c3f682e7cd50191ce0a9c396bc4dee8cbcf05383", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-simplexml": "*", - "guzzlehttp/guzzle": "^6.0 || ^7.0", - "php": "^5.5 || ^7.0 || ^8.0", - "psr/log": "^1.0", - "symfony/config": "^2.1 || ^3.0 || ^4.0 || ^5.0", - "symfony/console": "^2.1 || ^3.0 || ^4.0 || ^5.0", - "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0 || ^5.0", - "symfony/yaml": "^2.0.5 || ^3.0 || ^4.0 || ^5.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0", - "sanmai/phpunit-legacy-adapter": "^6.1 || ^8.0" - }, - "suggest": { - "symfony/http-kernel": "Allows Symfony integration" - }, - "bin": [ - "bin/php-coveralls" - ], - "type": "library", - "autoload": { - "psr-4": { - "PhpCoveralls\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kitamura Satoshi", - "email": "with.no.parachute@gmail.com", - "homepage": "https://www.facebook.com/satooshi.jp", - "role": "Original creator" - }, - { - "name": "Takashi Matsuo", - "email": "tmatsuo@google.com" - }, - { - "name": "Google Inc" - }, - { - "name": "Dariusz Ruminski", - "email": "dariusz.ruminski@gmail.com", - "homepage": "https://github.com/keradus" - }, - { - "name": "Contributors", - "homepage": "https://github.com/php-coveralls/php-coveralls/graphs/contributors" - } - ], - "description": "PHP client library for Coveralls API", - "homepage": "https://github.com/php-coveralls/php-coveralls", - "keywords": [ - "ci", - "coverage", - "github", - "test" - ], - "support": { - "issues": "https://github.com/php-coveralls/php-coveralls/issues", - "source": "https://github.com/php-coveralls/php-coveralls/tree/v2.4.1" - }, - "time": "2020-10-05T23:08:28+00:00" - }, { "name": "php-webdriver/webdriver", "version": "1.10.0", @@ -10910,6 +10827,66 @@ }, "time": "2020-03-05T15:02:03+00:00" }, + { + "name": "phpstan/phpstan", + "version": "0.12.83", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan.git", + "reference": "4a967cec6efb46b500dd6d768657336a3ffe699f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/4a967cec6efb46b500dd6d768657336a3ffe699f", + "reference": "4a967cec6efb46b500dd6d768657336a3ffe699f", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" + }, + "bin": [ + "phpstan", + "phpstan.phar" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.12-dev" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", + "support": { + "issues": "https://github.com/phpstan/phpstan/issues", + "source": "https://github.com/phpstan/phpstan/tree/0.12.83" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpstan", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", + "type": "tidelift" + } + ], + "time": "2021-04-03T15:35:45+00:00" + }, { "name": "phpunit/php-code-coverage", "version": "6.1.4", diff --git a/tests/Eccube/Tests/EccubeTestCase.php b/tests/Eccube/Tests/EccubeTestCase.php index 34933e6ee66..b9f3bca25c5 100644 --- a/tests/Eccube/Tests/EccubeTestCase.php +++ b/tests/Eccube/Tests/EccubeTestCase.php @@ -226,7 +226,7 @@ public function createPage() */ public function createLoginHistory($user_name, $client_ip = null, $status = 0, $Member = null) { - return $this->container->get(Generator::class)->createLoginHistory($user_name, $client_ip , $status, $Member); + return self::$container->get(Generator::class)->createLoginHistory($user_name, $client_ip , $status, $Member); } /** diff --git a/tests/Eccube/Tests/Form/Type/Shopping/OrderTypeTest.php b/tests/Eccube/Tests/Form/Type/Shopping/OrderTypeTest.php index 0298f78f0e6..073f02649e0 100644 --- a/tests/Eccube/Tests/Form/Type/Shopping/OrderTypeTest.php +++ b/tests/Eccube/Tests/Form/Type/Shopping/OrderTypeTest.php @@ -29,7 +29,7 @@ public function setUp() { parent::setUp(); $this->paymentRepository = $this->entityManager->getRepository(Payment::class); - $this->orderType = $this->container->get(OrderType::class); + $this->orderType = self::$container->get(OrderType::class); } /** diff --git a/tests/Eccube/Tests/Repository/LoginHistoryRepositoryGetQueryBuilderBySearchDataAdminTest.php b/tests/Eccube/Tests/Repository/LoginHistoryRepositoryGetQueryBuilderBySearchDataAdminTest.php index 7710e8cc299..cb002c0e965 100644 --- a/tests/Eccube/Tests/Repository/LoginHistoryRepositoryGetQueryBuilderBySearchDataAdminTest.php +++ b/tests/Eccube/Tests/Repository/LoginHistoryRepositoryGetQueryBuilderBySearchDataAdminTest.php @@ -13,6 +13,7 @@ namespace Eccube\Tests\Repository; +use Eccube\Entity\LoginHistory; use Eccube\Entity\Master\LoginHistoryStatus; use Eccube\Repository\LoginHistoryRepository; use Eccube\Tests\EccubeTestCase; @@ -44,7 +45,7 @@ public function setUp() { parent::setUp(); - $this->loginHistoryRepository = $this->container->get(LoginHistoryRepository::class); + $this->loginHistoryRepository = $this->entityManager->getRepository(LoginHistory::class); $this->Member1 = $this->createMember('member1'); $this->LoginHistory1 = $this->createLoginHistory('member1', '127.0.0.1', LoginHistoryStatus::SUCCESS, $this->Member1); $this->LoginHistory2 = $this->createLoginHistory('member1', '127.0.0.1', LoginHistoryStatus::FAILURE, $this->Member1); diff --git a/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php b/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php index f1475d83904..06cffbd9a02 100644 --- a/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php @@ -159,7 +159,7 @@ public function testIndexWithPostSearchByProductName(int $orderStatusId, string $Order = $this->createOrder($Customer); /** @var OrderStatus $OrderStatus */ - $OrderStatus = $this->container->get(OrderStatusRepository::class)->find($orderStatusId); + $OrderStatus = self::$container->get(OrderStatusRepository::class)->find($orderStatusId); $Order->setOrderStatus($OrderStatus); $this->entityManager->flush(); diff --git a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php index 497cdfc6270..08ac89caa9e 100644 --- a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php @@ -949,7 +949,7 @@ public function dataTaxRuleProvider() public function testDeleteImage() { /** @var \Eccube\Tests\Fixture\Generator $generator */ - $generator = $this->container->get(\Eccube\Tests\Fixture\Generator::class); + $generator = self::$container->get(\Eccube\Tests\Fixture\Generator::class); $Product1 = $generator->createProduct(null, 0, 'abstract'); $Product2 = $generator->createProduct(null, 0, 'abstract'); diff --git a/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php index c9f897eb5d6..eaa152bcc30 100644 --- a/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php @@ -1059,7 +1059,7 @@ private function createSearchForm() public function testDeleteImage() { /** @var Generator $generator */ - $generator = $this->container->get(Generator::class); + $generator = self::$container->get(Generator::class); $Product1 = $generator->createProduct(null, 0, 'abstract'); $Product2 = $generator->createProduct(null, 0, 'abstract'); @@ -1098,7 +1098,7 @@ public function testDeleteImage() public function testDeleteAndDeleteProductImage() { /** @var Generator $generator */ - $generator = $this->container->get(Generator::class); + $generator = self::$container->get(Generator::class); $Product1 = $generator->createProduct(null, 0, 'abstract'); $Product2 = $generator->createProduct(null, 0, 'abstract'); diff --git a/tests/Eccube/Tests/Web/Admin/Setting/System/LoginHistoryControllerTest.php b/tests/Eccube/Tests/Web/Admin/Setting/System/LoginHistoryControllerTest.php index 45c65379a2f..704d695ccb1 100644 --- a/tests/Eccube/Tests/Web/Admin/Setting/System/LoginHistoryControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Setting/System/LoginHistoryControllerTest.php @@ -26,7 +26,7 @@ public function setUp() { parent::setUp(); - $loginHistoryStatusRepository = $this->container->get(LoginHistoryStatusRepository::class); + $loginHistoryStatusRepository = $this->entityManager->getRepository(LoginHistoryStatus::class); // 履歴を10個生成しておく for ($i = 0; $i < 10; $i++) { From 9101b77894bb59a317f6dbdd879e9839831d68f8 Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Mon, 5 Apr 2021 10:42:26 +0900 Subject: [PATCH 206/207] Apply php-cs-fixer --- .../Version20201127000000.php | 5 ++--- .../Version20201218044542.php | 19 ++++++++++++++++--- codeception/acceptance/EA07BasicinfoCest.php | 4 ++-- codeception/acceptance/EA08SysteminfoCest.php | 5 ++--- .../Admin/Content/FileController.php | 2 +- .../Admin/Product/CsvImportController.php | 18 ++++++++++++------ .../Admin/Product/ProductController.php | 5 ++--- .../Admin/Setting/Shop/DeliveryController.php | 2 ++ .../Admin/Setting/Shop/MailController.php | 1 - src/Eccube/Controller/ContactController.php | 2 +- src/Eccube/Controller/EntryController.php | 4 ++-- .../Controller/Mypage/WithdrawController.php | 2 +- src/Eccube/Entity/Master/Authority.php | 2 +- src/Eccube/Entity/Master/CustomerStatus.php | 2 +- src/Eccube/Form/Type/Admin/MasterdataType.php | 2 +- src/Eccube/Form/Type/PhoneNumberType.php | 2 +- src/Eccube/Form/Type/PostalType.php | 2 +- src/Eccube/Form/Type/Shopping/OrderType.php | 2 +- .../Repository/LoginHistoryRepository.php | 1 + src/Eccube/Service/EntityProxyService.php | 1 + tests/Eccube/Tests/EccubeTestCase.php | 2 +- tests/Eccube/Tests/Fixture/Generator.php | 1 + .../Form/Type/Admin/SecurityTypeTest.php | 6 +++--- .../Form/Type/Admin/ShopMasterTypeTest.php | 8 ++++---- .../Form/Type/Shopping/OrderTypeTest.php | 1 - .../Tests/Repository/OrderRepositoryTest.php | 2 +- .../Tests/Service/CsvImportServiceTest.php | 2 +- .../Tests/Service/EntityProxyServiceTest.php | 4 ++-- .../Admin/Customer/CustomerControllerTest.php | 2 -- .../Admin/Product/CsvImportControllerTest.php | 8 ++++---- .../Admin/Product/ProductContorllerTest.php | 8 ++++---- .../Setting/Shop/DeliveryControllerTest.php | 7 ++++--- .../System/LoginHistoryControllerTest.php | 1 - .../Tests/Web/AuthenticationHandlerTest.php | 2 +- 34 files changed, 77 insertions(+), 60 deletions(-) diff --git a/app/DoctrineMigrations/Version20201127000000.php b/app/DoctrineMigrations/Version20201127000000.php index b22190aee90..fd5f8ebf01c 100644 --- a/app/DoctrineMigrations/Version20201127000000.php +++ b/app/DoctrineMigrations/Version20201127000000.php @@ -23,7 +23,7 @@ */ final class Version20201127000000 extends AbstractMigration { - public function up(Schema $schema) : void + public function up(Schema $schema): void { $count = $this->connection->fetchColumn("SELECT COUNT(*) FROM dtb_page WHERE url = 'entry_confirm'"); if ($count > 0) { @@ -67,9 +67,8 @@ public function up(Schema $schema) : void } } - public function down(Schema $schema) : void + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs - } } diff --git a/app/DoctrineMigrations/Version20201218044542.php b/app/DoctrineMigrations/Version20201218044542.php index c33e6ccf2e9..3c9fb1dc66d 100644 --- a/app/DoctrineMigrations/Version20201218044542.php +++ b/app/DoctrineMigrations/Version20201218044542.php @@ -1,4 +1,17 @@ -connection->fetchColumn("SELECT COUNT(*) FROM dtb_csv WHERE csv_type_id = 2 AND field_name = 'point'"); @@ -25,7 +38,7 @@ public function up(Schema $schema) : void } } - public function down(Schema $schema) : void + public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs } diff --git a/codeception/acceptance/EA07BasicinfoCest.php b/codeception/acceptance/EA07BasicinfoCest.php index a61559cde55..13029500861 100644 --- a/codeception/acceptance/EA07BasicinfoCest.php +++ b/codeception/acceptance/EA07BasicinfoCest.php @@ -273,7 +273,7 @@ public function basicinfo_CSV出力項目(AcceptanceTester $I) $I->see('保存しました', CsvSettingsPage::$登録完了メッセージ); } - public function basicinfo_受注対応状況設定(\AcceptanceTester $I) + public function basicinfo_受注対応状況設定(AcceptanceTester $I) { $I->wantTo('EA0711-UC01-T01 受注対応状況設定'); @@ -281,7 +281,7 @@ public function basicinfo_受注対応状況設定(\AcceptanceTester $I) OrderStatusSettingsPage::go($I) ->入力_名称_管理('新規受付') ->入力_名称_マイページ('注文受付') - ->入力_色("#19406C") + ->入力_色('#19406C') ->登録(); $I->see('保存しました', OrderStatusSettingsPage::$登録完了メッセージ); diff --git a/codeception/acceptance/EA08SysteminfoCest.php b/codeception/acceptance/EA08SysteminfoCest.php index 8224c1389c0..5a25379f221 100644 --- a/codeception/acceptance/EA08SysteminfoCest.php +++ b/codeception/acceptance/EA08SysteminfoCest.php @@ -327,7 +327,7 @@ public function systeminfo_セキュリティ管理IP制限_拒否リスト(Acce $I->see('保存しました', AuthorityManagePage::$完了メッセージ); } - public function systeminfo_権限管理追加(\AcceptanceTester $I) + public function systeminfo_権限管理追加(AcceptanceTester $I) { $I->wantTo('EA0805-UC01-T01 権限管理 - 追加'); @@ -396,7 +396,7 @@ public function systeminfo_マスターデータ管理(AcceptanceTester $I) $I->see('無回答', '#customer_form #admin_customer_sex'); } - public function systeminfo_ログイン履歴検索(\AcceptanceTester $I) + public function systeminfo_ログイン履歴検索(AcceptanceTester $I) { $I->wantTo('EA0808-UC01-T01 ログイン履歴 - 検索'); @@ -426,7 +426,6 @@ public function systeminfo_ログイン履歴検索(\AcceptanceTester $I) $I->see('admin-failure', '//*[@id="search_form"]/div[4]/div/div/div[2]/div/table/tbody/tr[1]/td[2]'); $I->see('失敗', '//*[@id="search_form"]/div[4]/div/div/div[2]/div/table/tbody/tr[1]/td[5]/span'); - // ステータスで詳細検索 LoginHistoryPage::go($I)->検索(); diff --git a/src/Eccube/Controller/Admin/Content/FileController.php b/src/Eccube/Controller/Admin/Content/FileController.php index 8fd00a2f6b6..187be1bece6 100644 --- a/src/Eccube/Controller/Admin/Content/FileController.php +++ b/src/Eccube/Controller/Admin/Content/FileController.php @@ -180,7 +180,7 @@ public function create(Request $request) : $topDir; $newFilePath = $nowDir.'/'.$filename; if (file_exists($newFilePath)) { - throw new IOException(trans('admin.content.file.dir_exists', [ '%file_name%' => $filename, ])); + throw new IOException(trans('admin.content.file.dir_exists', ['%file_name%' => $filename])); } $fs->mkdir($newFilePath); diff --git a/src/Eccube/Controller/Admin/Product/CsvImportController.php b/src/Eccube/Controller/Admin/Product/CsvImportController.php index a0676666d9d..f786f8446b3 100644 --- a/src/Eccube/Controller/Admin/Product/CsvImportController.php +++ b/src/Eccube/Controller/Admin/Product/CsvImportController.php @@ -891,10 +891,10 @@ protected function renderWithError($form, $headers, $rollback = true) 'success' => !$this->hasErrors(), 'success_message' => trans('admin.common.csv_upload_line_success', [ '%from%' => $this->convertLineNo(2), - '%to%' => $this->currentLineNo]), + '%to%' => $this->currentLineNo, ]), 'errors' => $this->errors, - 'error_message' => trans('admin.common.csv_upload_line_error',[ - '%from%' => $this->convertLineNo(2)]) + 'error_message' => trans('admin.common.csv_upload_line_error', [ + '%from%' => $this->convertLineNo(2), ]), ]); } @@ -1593,7 +1593,9 @@ private function makeProductCategory($Product, $Category, $sortNo) /** * @Route("/%eccube_admin_route%/product/csv_split", name="admin_product_csv_split") + * * @param Request $request + * * @return \Symfony\Component\HttpFoundation\JsonResponse */ public function splitCsv(Request $request) @@ -1608,7 +1610,6 @@ public function splitCsv(Request $request) $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $dir = $this->eccubeConfig['eccube_csv_temp_realdir']; if (!file_exists($dir)) { $fs = new Filesystem(); @@ -1642,12 +1643,14 @@ public function splitCsv(Request $request) return $this->json(['success' => true, 'file_name' => $fileName, 'max_file_no' => $fileNo]); } - return $this->json(['success' => false, 'message' => $form->getErrors(true ,true)]); + return $this->json(['success' => false, 'message' => $form->getErrors(true, true)]); } /** * @Route("/%eccube_admin_route%/product/csv_split_import", name="admin_product_csv_split_import") + * * @param Request $request + * * @return \Symfony\Component\HttpFoundation\JsonResponse */ public function importCsv(Request $request, CsrfTokenManagerInterface $tokenManager) @@ -1687,7 +1690,9 @@ public function importCsv(Request $request, CsrfTokenManagerInterface $tokenMana /** * @Route("/%eccube_admin_route%/product/csv_split_cleanup", name="admin_product_csv_split_cleanup") + * * @param Request $request + * * @return \Symfony\Component\HttpFoundation\JsonResponse */ public function cleanupSplitCsv(Request $request) @@ -1727,7 +1732,8 @@ protected function getCsvTempFiles() return $choices; } - protected function convertLineNo($currentLineNo) { + protected function convertLineNo($currentLineNo) + { if ($this->isSplitCsv) { return ($this->eccubeConfig['eccube_csv_split_lines']) * ($this->csvFileNo - 1) + $currentLineNo; } diff --git a/src/Eccube/Controller/Admin/Product/ProductController.php b/src/Eccube/Controller/Admin/Product/ProductController.php index ff40b5f3da8..0d341ae5e95 100644 --- a/src/Eccube/Controller/Admin/Product/ProductController.php +++ b/src/Eccube/Controller/Admin/Product/ProductController.php @@ -551,12 +551,11 @@ public function edit(Request $request, $id = null, RouterInterface $router, Cach // 他に同じ画像を参照する商品がなければ画像ファイルを削除 if (!$this->productImageRepository->findOneBy(['file_name' => $delete_image])) { - $fs->remove($this->eccubeConfig['eccube_save_image_dir'] . '/' . $delete_image); + $fs->remove($this->eccubeConfig['eccube_save_image_dir'].'/'.$delete_image); } - } else { // 追加してすぐに削除した画像は、Entityに追加されない - $fs->remove($this->eccubeConfig['eccube_temp_image_dir'] . '/' . $delete_image); + $fs->remove($this->eccubeConfig['eccube_temp_image_dir'].'/'.$delete_image); } } diff --git a/src/Eccube/Controller/Admin/Setting/Shop/DeliveryController.php b/src/Eccube/Controller/Admin/Setting/Shop/DeliveryController.php index 7ad04694c5b..cac1c04e4cd 100644 --- a/src/Eccube/Controller/Admin/Setting/Shop/DeliveryController.php +++ b/src/Eccube/Controller/Admin/Setting/Shop/DeliveryController.php @@ -386,6 +386,7 @@ public function moveSortNo(Request $request) * 利用条件の金額範囲を生成する. * * @param Payment[] $PaymentsData + * * @return array */ private function getMergeRules(array $PaymentsData) @@ -431,6 +432,7 @@ private function getMergeRules(array $PaymentsData) if ($a['min'] == $b['min']) { return 0; } + return ($a['min'] < $b['min']) ? -1 : 1; }); diff --git a/src/Eccube/Controller/Admin/Setting/Shop/MailController.php b/src/Eccube/Controller/Admin/Setting/Shop/MailController.php index efe3ebb5d9c..909a555deb4 100644 --- a/src/Eccube/Controller/Admin/Setting/Shop/MailController.php +++ b/src/Eccube/Controller/Admin/Setting/Shop/MailController.php @@ -28,7 +28,6 @@ use Symfony\Component\Routing\Annotation\Route; use Twig\Environment; - /** * Class MailController */ diff --git a/src/Eccube/Controller/ContactController.php b/src/Eccube/Controller/ContactController.php index 33115ec874d..a115d248de4 100644 --- a/src/Eccube/Controller/ContactController.php +++ b/src/Eccube/Controller/ContactController.php @@ -96,7 +96,7 @@ public function index(Request $request) case 'confirm': return $this->render('Contact/confirm.twig', [ 'form' => $form->createView(), - 'Page' => $this->pageRepository->getPageByRoute('contact_confirm') + 'Page' => $this->pageRepository->getPageByRoute('contact_confirm'), ]); case 'complete': diff --git a/src/Eccube/Controller/EntryController.php b/src/Eccube/Controller/EntryController.php index 04c782aa6aa..076ac0a9916 100644 --- a/src/Eccube/Controller/EntryController.php +++ b/src/Eccube/Controller/EntryController.php @@ -21,8 +21,8 @@ use Eccube\Repository\BaseInfoRepository; use Eccube\Repository\CustomerRepository; use Eccube\Repository\Master\CustomerStatusRepository; -use Eccube\Service\CartService; use Eccube\Repository\PageRepository; +use Eccube\Service\CartService; use Eccube\Service\MailService; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Component\HttpFoundation\Request; @@ -161,7 +161,7 @@ public function index(Request $request) 'Entry/confirm.twig', [ 'form' => $form->createView(), - 'Page' => $this->pageRepository->getPageByRoute('entry_confirm') + 'Page' => $this->pageRepository->getPageByRoute('entry_confirm'), ] ); diff --git a/src/Eccube/Controller/Mypage/WithdrawController.php b/src/Eccube/Controller/Mypage/WithdrawController.php index 8afca2a8d41..9decc9226b8 100644 --- a/src/Eccube/Controller/Mypage/WithdrawController.php +++ b/src/Eccube/Controller/Mypage/WithdrawController.php @@ -119,7 +119,7 @@ public function index(Request $request) 'Mypage/withdraw_confirm.twig', [ 'form' => $form->createView(), - 'Page' => $this->pageRepository->getPageByRoute('mypage_withdraw_confirm') + 'Page' => $this->pageRepository->getPageByRoute('mypage_withdraw_confirm'), ] ); diff --git a/src/Eccube/Entity/Master/Authority.php b/src/Eccube/Entity/Master/Authority.php index 93f9b08b04b..d3a7a1048f8 100644 --- a/src/Eccube/Entity/Master/Authority.php +++ b/src/Eccube/Entity/Master/Authority.php @@ -38,4 +38,4 @@ class Authority extends \Eccube\Entity\Master\AbstractMasterEntity */ const OWNER = 1; } -} \ No newline at end of file +} diff --git a/src/Eccube/Entity/Master/CustomerStatus.php b/src/Eccube/Entity/Master/CustomerStatus.php index 4455381b6d4..6aeb6f47d30 100644 --- a/src/Eccube/Entity/Master/CustomerStatus.php +++ b/src/Eccube/Entity/Master/CustomerStatus.php @@ -57,4 +57,4 @@ class CustomerStatus extends \Eccube\Entity\Master\AbstractMasterEntity */ const WITHDRAWING = 3; } -} \ No newline at end of file +} diff --git a/src/Eccube/Form/Type/Admin/MasterdataType.php b/src/Eccube/Form/Type/Admin/MasterdataType.php index 87293ebbc8a..e9761567953 100644 --- a/src/Eccube/Form/Type/Admin/MasterdataType.php +++ b/src/Eccube/Form/Type/Admin/MasterdataType.php @@ -66,7 +66,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) // OrderStatus/OrderStatusColorは対象外 // @see https://github.com/EC-CUBE/ec-cube/pull/4844 - if (in_array($meta->getName(), [OrderStatus::class, OrderStatusColor::class, CustomerOrderStatus::class,])) { + if (in_array($meta->getName(), [OrderStatus::class, OrderStatusColor::class, CustomerOrderStatus::class])) { continue; } diff --git a/src/Eccube/Form/Type/PhoneNumberType.php b/src/Eccube/Form/Type/PhoneNumberType.php index a19ac0b0ce6..3dc1f1f99db 100644 --- a/src/Eccube/Form/Type/PhoneNumberType.php +++ b/src/Eccube/Form/Type/PhoneNumberType.php @@ -57,7 +57,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) public function configureOptions(OptionsResolver $resolver) { $eccubeConfig = $this->eccubeConfig; - $constraints = function(Options $options) use ($eccubeConfig) { + $constraints = function (Options $options) use ($eccubeConfig) { $constraints = []; // requiredがtrueに指定されている場合, NotBlankを追加 if (isset($options['required']) && true === $options['required']) { diff --git a/src/Eccube/Form/Type/PostalType.php b/src/Eccube/Form/Type/PostalType.php index 765f8f18e9c..7401ac70444 100644 --- a/src/Eccube/Form/Type/PostalType.php +++ b/src/Eccube/Form/Type/PostalType.php @@ -56,7 +56,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) public function configureOptions(OptionsResolver $resolver) { $eccubeConfig = $this->eccubeConfig; - $constraints = function(Options $options) use ($eccubeConfig) { + $constraints = function (Options $options) use ($eccubeConfig) { $constraints = []; // requiredがtrueに指定されている場合, NotBlankを追加 if (isset($options['required']) && true === $options['required']) { diff --git a/src/Eccube/Form/Type/Shopping/OrderType.php b/src/Eccube/Form/Type/Shopping/OrderType.php index b7566c12766..7409d9bd2b9 100644 --- a/src/Eccube/Form/Type/Shopping/OrderType.php +++ b/src/Eccube/Form/Type/Shopping/OrderType.php @@ -296,7 +296,7 @@ private function filterPayments(ArrayCollection $Payments, $total) return false; } - if (null !== $max && ($total + $charge) > $max) { + if (null !== $max && ($total + $charge) > $max) { return false; } diff --git a/src/Eccube/Repository/LoginHistoryRepository.php b/src/Eccube/Repository/LoginHistoryRepository.php index a7f23192c88..268839ff38d 100644 --- a/src/Eccube/Repository/LoginHistoryRepository.php +++ b/src/Eccube/Repository/LoginHistoryRepository.php @@ -44,6 +44,7 @@ public function __construct( /** * @param $searchData + * * @return \Doctrine\ORM\QueryBuilder */ public function getQueryBuilderBySearchDataForAdmin($searchData) diff --git a/src/Eccube/Service/EntityProxyService.php b/src/Eccube/Service/EntityProxyService.php index 2db80a3bf1b..f3dfc18707e 100644 --- a/src/Eccube/Service/EntityProxyService.php +++ b/src/Eccube/Service/EntityProxyService.php @@ -135,6 +135,7 @@ private function originalEntityPath(string $entityClassName): string } $rc = new ClassReflection($entityClassName); + return str_replace('\\', '/', $rc->getFileName()); } diff --git a/tests/Eccube/Tests/EccubeTestCase.php b/tests/Eccube/Tests/EccubeTestCase.php index b9f3bca25c5..44fce2065ae 100644 --- a/tests/Eccube/Tests/EccubeTestCase.php +++ b/tests/Eccube/Tests/EccubeTestCase.php @@ -226,7 +226,7 @@ public function createPage() */ public function createLoginHistory($user_name, $client_ip = null, $status = 0, $Member = null) { - return self::$container->get(Generator::class)->createLoginHistory($user_name, $client_ip , $status, $Member); + return self::$container->get(Generator::class)->createLoginHistory($user_name, $client_ip, $status, $Member); } /** diff --git a/tests/Eccube/Tests/Fixture/Generator.php b/tests/Eccube/Tests/Fixture/Generator.php index 5abc38035d9..d94442da784 100644 --- a/tests/Eccube/Tests/Fixture/Generator.php +++ b/tests/Eccube/Tests/Fixture/Generator.php @@ -830,6 +830,7 @@ public function createPage() * @param string|null $client_ip * @param int|null $status * @param Member|null $Member + * * @return LoginHistory */ public function createLoginHistory($user_name, $client_ip = null, $status = null, $Member = null) diff --git a/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php b/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php index 8fd37af12d0..06ab932ea67 100644 --- a/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php +++ b/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php @@ -69,21 +69,21 @@ public function testValidAdminAllowHostNotIp() $this->assertFalse($this->form->isValid()); } - public function testValidAdminDenyHost_OneLineIp() + public function testValidAdminDenyHostOneLineIp() { $this->formData['admin_deny_hosts'] = '127.0.0.1'; $this->form->submit($this->formData); $this->assertTrue($this->form->isValid()); } - public function testValidAdminDenyHost_MultiLineIps() + public function testValidAdminDenyHostMultiLineIps() { $this->formData['admin_deny_hosts'] = "127.0.0.1\n1.1.1.1"; $this->form->submit($this->formData); $this->assertTrue($this->form->isValid()); } - public function testValidAdminDenyHost_NotIp() + public function testValidAdminDenyHostNotIp() { $this->formData['admin_deny_hosts'] = '255.255.255,256'; $this->form->submit($this->formData); diff --git a/tests/Eccube/Tests/Form/Type/Admin/ShopMasterTypeTest.php b/tests/Eccube/Tests/Form/Type/Admin/ShopMasterTypeTest.php index 8bad4746711..0f741c1ed3c 100644 --- a/tests/Eccube/Tests/Form/Type/Admin/ShopMasterTypeTest.php +++ b/tests/Eccube/Tests/Form/Type/Admin/ShopMasterTypeTest.php @@ -129,28 +129,28 @@ public function testInValidDeliveryFreeQuantityHasMinus() $this->assertFalse($this->form->isValid()); } - public function testValidBasicPointRateRange_Min() + public function testValidBasicPointRateRangeMin() { $this->formData['basic_point_rate'] = '0'; $this->form->submit($this->formData); $this->assertTrue($this->form->isValid()); } - public function testValidBasicPointRateRange_Max() + public function testValidBasicPointRateRangeMax() { $this->formData['basic_point_rate'] = '100'; $this->form->submit($this->formData); $this->assertTrue($this->form->isValid()); } - public function testInValidBasicPointRateRange_Min() + public function testInValidBasicPointRateRangeMin() { $this->formData['basic_point_rate'] = '-1'; $this->form->submit($this->formData); $this->assertFalse($this->form->isValid()); } - public function testInValidBasicPointRateRange_Max() + public function testInValidBasicPointRateRangeMax() { $this->formData['basic_point_rate'] = '101'; $this->form->submit($this->formData); diff --git a/tests/Eccube/Tests/Form/Type/Shopping/OrderTypeTest.php b/tests/Eccube/Tests/Form/Type/Shopping/OrderTypeTest.php index 073f02649e0..471e1d58082 100644 --- a/tests/Eccube/Tests/Form/Type/Shopping/OrderTypeTest.php +++ b/tests/Eccube/Tests/Form/Type/Shopping/OrderTypeTest.php @@ -13,7 +13,6 @@ namespace Eccube\Tests\Form\Type\Shopping; - use Doctrine\Common\Collections\ArrayCollection; use Eccube\Entity\Payment; use Eccube\Form\Type\Shopping\OrderType; diff --git a/tests/Eccube/Tests/Repository/OrderRepositoryTest.php b/tests/Eccube/Tests/Repository/OrderRepositoryTest.php index 5c041df7931..a05a8bcfc04 100644 --- a/tests/Eccube/Tests/Repository/OrderRepositoryTest.php +++ b/tests/Eccube/Tests/Repository/OrderRepositoryTest.php @@ -137,7 +137,7 @@ public function testGetQueryBuilderBySearchDataForAdminMulti2147483648() /** * @dataProvider dataGetQueryBuilderBySearchDataForAdmin_nameProvider */ - public function testGetQueryBuilderBySearchDataForAdmin_name(string $formName, string $searchWord, int $expected) + public function testGetQueryBuilderBySearchDataForAdminName(string $formName, string $searchWord, int $expected) { $this->Order ->setOrderStatus($this->entityManager->find(OrderStatus::class, OrderStatus::NEW)) diff --git a/tests/Eccube/Tests/Service/CsvImportServiceTest.php b/tests/Eccube/Tests/Service/CsvImportServiceTest.php index 84be2a421f2..c6e82aa13f2 100644 --- a/tests/Eccube/Tests/Service/CsvImportServiceTest.php +++ b/tests/Eccube/Tests/Service/CsvImportServiceTest.php @@ -92,7 +92,7 @@ public function testReadCsvFileWithTrailingBlankLines() $file = new \SplFileObject(__DIR__.'/../../../Fixtures/data_blank_lines.csv'); $CsvImportService = new CsvImportService($file); $CsvImportService->setColumnHeaders(['id', 'number', 'description']); - $blank_line = [ 0 => null ]; + $blank_line = [0 => null]; foreach ($CsvImportService as $row) { if ($row === $blank_line) { continue; diff --git a/tests/Eccube/Tests/Service/EntityProxyServiceTest.php b/tests/Eccube/Tests/Service/EntityProxyServiceTest.php index 9a0d78b4059..944977a7d8e 100644 --- a/tests/Eccube/Tests/Service/EntityProxyServiceTest.php +++ b/tests/Eccube/Tests/Service/EntityProxyServiceTest.php @@ -107,12 +107,12 @@ public function testGenerateFromOriginalFile() // private $hoge;を挿入 $additionalVariableTokens = [ - new Token([T_WHITESPACE, PHP_EOL . ' ']), + new Token([T_WHITESPACE, PHP_EOL.' ']), new Token([T_PRIVATE, 'private']), new Token([T_WHITESPACE, ' ']), new Token([T_VARIABLE, '$hoge']), new Token(';'), - new Token([T_WHITESPACE, PHP_EOL]) + new Token([T_WHITESPACE, PHP_EOL]), ]; $classTokens = $tokens->findSequence([[T_CLASS], [T_STRING]]); diff --git a/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php b/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php index 06cffbd9a02..c465766f108 100644 --- a/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php @@ -15,8 +15,6 @@ use Eccube\Entity\Master\CsvType; use Eccube\Entity\Master\OrderStatus; -use Eccube\Repository\BaseInfoRepository; -use Eccube\Repository\CustomerRepository; use Eccube\Repository\Master\OrderStatusRepository; use Eccube\Tests\Web\Admin\AbstractAdminWebTestCase; diff --git a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php index 08ac89caa9e..e90622f3494 100644 --- a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php @@ -973,9 +973,9 @@ public function testDeleteImage() $this->filepath = $this->createCsvFromArray($csv); $this->scenario(); - $dir = __DIR__ . '/../../../../../../html/upload/save_image/'; - $this->assertTrue(file_exists($dir . $DuplicatedImage->getFileName())); - $this->assertFalse(file_exists($dir . $NotDuplicatedImage->getFileName())); + $dir = __DIR__.'/../../../../../../html/upload/save_image/'; + $this->assertTrue(file_exists($dir.$DuplicatedImage->getFileName())); + $this->assertFalse(file_exists($dir.$NotDuplicatedImage->getFileName())); } /** @@ -1057,7 +1057,7 @@ public function testImportCsv() $this->generateUrl('admin_product_csv_split_import'), [ 'file_name' => $fileName, - 'file_no' => $fileNo + 'file_no' => $fileNo, ], [], ['HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest'] diff --git a/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php index eaa152bcc30..3e316450eb1 100644 --- a/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Product/ProductContorllerTest.php @@ -1091,8 +1091,8 @@ public function testDeleteImage() $this->assertTrue($this->client->getResponse()->isRedirect()); $dir = __DIR__.'/../../../../../../html/upload/save_image/'; - $this->assertTrue(file_exists($dir . $DuplicatedImage->getFileName())); - $this->assertFalse(file_exists($dir . $NotDuplicatedImage->getFileName())); + $this->assertTrue(file_exists($dir.$DuplicatedImage->getFileName())); + $this->assertFalse(file_exists($dir.$NotDuplicatedImage->getFileName())); } public function testDeleteAndDeleteProductImage() @@ -1130,7 +1130,7 @@ public function testDeleteAndDeleteProductImage() $this->assertTrue($this->client->getResponse()->isRedirect($rUrl)); $dir = __DIR__.'/../../../../../../html/upload/save_image/'; - $this->assertTrue(file_exists($dir . $DuplicatedImage->getFileName())); - $this->assertFalse(file_exists($dir . $NotDuplicatedImage->getFileName())); + $this->assertTrue(file_exists($dir.$DuplicatedImage->getFileName())); + $this->assertFalse(file_exists($dir.$NotDuplicatedImage->getFileName())); } } diff --git a/tests/Eccube/Tests/Web/Admin/Setting/Shop/DeliveryControllerTest.php b/tests/Eccube/Tests/Web/Admin/Setting/Shop/DeliveryControllerTest.php index 0c85a93f0b2..ca6e87382e6 100644 --- a/tests/Eccube/Tests/Web/Admin/Setting/Shop/DeliveryControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Setting/Shop/DeliveryControllerTest.php @@ -288,6 +288,7 @@ public function testGetMergeRules($rules, $expected) $Payment->setRuleMin($rule['min']); $Payment->setRuleMax($rule['max']); $Payment->setCharge($rule['charge']); + return $Payment; }, $rules); @@ -311,7 +312,7 @@ public function getMergeRulesProvider() ['min' => 1001, 'max' => 2000, 'charge' => 0], ['min' => 2001, 'max' => 3000, 'charge' => 0], ], - 1 + 1, ], // 利用不可の金額帯あり(2001〜2499) [ @@ -320,8 +321,8 @@ public function getMergeRulesProvider() ['min' => 1001, 'max' => 2000, 'charge' => 0], ['min' => 2500, 'max' => 2000, 'charge' => 0], ], - 2 - ] + 2, + ], ]; } } diff --git a/tests/Eccube/Tests/Web/Admin/Setting/System/LoginHistoryControllerTest.php b/tests/Eccube/Tests/Web/Admin/Setting/System/LoginHistoryControllerTest.php index 704d695ccb1..9fd8b980eff 100644 --- a/tests/Eccube/Tests/Web/Admin/Setting/System/LoginHistoryControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Setting/System/LoginHistoryControllerTest.php @@ -14,7 +14,6 @@ namespace Eccube\Tests\Web\Admin\Setting\System; use Eccube\Entity\Master\LoginHistoryStatus; -use Eccube\Repository\Master\LoginHistoryStatusRepository; use Eccube\Tests\Web\Admin\AbstractAdminWebTestCase; class LoginHistoryControllerTest extends AbstractAdminWebTestCase diff --git a/tests/Eccube/Tests/Web/AuthenticationHandlerTest.php b/tests/Eccube/Tests/Web/AuthenticationHandlerTest.php index 449095ee1b0..15cc8e8e921 100644 --- a/tests/Eccube/Tests/Web/AuthenticationHandlerTest.php +++ b/tests/Eccube/Tests/Web/AuthenticationHandlerTest.php @@ -18,7 +18,7 @@ final class AuthenticationHandlerTest extends AbstractWebTestCase { - /** @var Entity\Customer */ + /** @var Entity\Customer */ private $Customer; public function setUp() From 7542ae3e0ffa767d4e550f8e7b5c1be39e81535e Mon Sep 17 00:00:00 2001 From: Kentaro Ohkouchi Date: Mon, 5 Apr 2021 14:09:28 +0900 Subject: [PATCH 207/207] Use composer2 --- .github/workflows/coverage.yml | 4 +--- .github/workflows/deploy.yml | 4 +--- .github/workflows/e2e-bc-test.yml | 4 +--- .github/workflows/e2e-test.yml | 4 +--- .github/workflows/phpstan.yml | 4 +--- .github/workflows/plugin-test.yml | 16 ++++------------ .github/workflows/unit-test.yml | 4 +--- 7 files changed, 10 insertions(+), 30 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b2ed1e285c1..c5ab68b2adb 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -58,9 +58,7 @@ jobs: php-version: ${{ matrix.php }} - name: composer install - run: | - sudo composer selfupdate --1 - composer install --dev --no-interaction -o --apcu-autoloader + run: composer install --dev --no-interaction -o --apcu-autoloader - name: Setup EC-CUBE env: diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 701b143f2c3..0433990859a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -37,9 +37,7 @@ jobs: ${{ runner.os }}-composer- - name: Install to Composer - run: | - sudo composer selfupdate --1 - composer install --no-scripts --no-dev --no-interaction --optimize-autoloader + run: composer install --no-scripts --no-dev --no-interaction --optimize-autoloader - name: Translate to templates run: php bin/template_jp.php diff --git a/.github/workflows/e2e-bc-test.yml b/.github/workflows/e2e-bc-test.yml index ba161d14920..a1319377c55 100644 --- a/.github/workflows/e2e-bc-test.yml +++ b/.github/workflows/e2e-bc-test.yml @@ -78,9 +78,7 @@ jobs: php-version: ${{ matrix.php }} - name: composer install - run: | - sudo composer selfupdate --1 - composer install --dev --no-interaction -o --apcu-autoloader + run: composer install --dev --no-interaction -o --apcu-autoloader - name: Setup to EC-CUBE env: APP_ENV: ${{ matrix.app_env }} diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index dfa52e1f453..696272c667b 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -75,9 +75,7 @@ jobs: php-version: ${{ matrix.php }} - name: composer install - run: | - sudo composer selfupdate --1 - composer install --dev --no-interaction -o --apcu-autoloader + run: composer install --dev --no-interaction -o --apcu-autoloader - name: Setup to EC-CUBE env: APP_ENV: ${{ matrix.app_env }} diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 60724eeceb5..72f3b87fc5d 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -27,8 +27,6 @@ jobs: with: php-version: '7.4' - name: composer install - run: | - sudo composer selfupdate --1 - composer install --dev --no-interaction -o --apcu-autoloader + run: composer install --dev --no-interaction -o --apcu-autoloader - name: PHPStan run: vendor/bin/phpstan analyze src/ --error-format=github diff --git a/.github/workflows/plugin-test.yml b/.github/workflows/plugin-test.yml index 289738b6342..385918acef8 100644 --- a/.github/workflows/plugin-test.yml +++ b/.github/workflows/plugin-test.yml @@ -83,9 +83,7 @@ jobs: php-version: ${{ matrix.php }} - name: composer install - run: | - sudo composer selfupdate --1 - composer install --dev --no-interaction -o --apcu-autoloader + run: composer install --dev --no-interaction -o --apcu-autoloader - name: Setup to EC-CUBE env: @@ -227,9 +225,7 @@ jobs: php-version: ${{ matrix.php }} - name: Install to Composer - run: | - sudo composer selfupdate --1 - composer install --dev --no-interaction -o --apcu-autoloader + run: composer install --dev --no-interaction -o --apcu-autoloader - name: Setup to EC-CUBE env: @@ -371,9 +367,7 @@ jobs: php-version: ${{ matrix.php }} - name: Install to Composer - run: | - sudo composer selfupdate --1 - composer install --dev --no-interaction -o --apcu-autoloader + run: composer install --dev --no-interaction -o --apcu-autoloader - name: Setup to EC-CUBE env: @@ -518,9 +512,7 @@ jobs: php-version: ${{ matrix.php }} - name: Install to Composer - run: | - sudo composer selfupdate --1 - composer install --dev --no-interaction -o --apcu-autoloader + run: composer install --dev --no-interaction -o --apcu-autoloader - name: Setup to EC-CUBE env: diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 432cd846773..a95f4fc2e40 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -72,9 +72,7 @@ jobs: php-version: ${{ matrix.php }} - name: composer install - run: | - sudo composer selfupdate --1 - composer install --dev --no-interaction -o --apcu-autoloader + run: composer install --dev --no-interaction -o --apcu-autoloader - name: Setup EC-CUBE env: