diff --git a/src/legacy/status_im/browser/core_test.cljs b/src/legacy/status_im/browser/core_test.cljs index 16ff6139d31..c4dc91ca768 100644 --- a/src/legacy/status_im/browser/core_test.cljs +++ b/src/legacy/status_im/browser/core_test.cljs @@ -21,101 +21,101 @@ (some #(when (= (url/normalize-and-decode-url dapp-url) (first (:history %))) (:browser-id %)) (vals (get-in result [:db :browser/browsers])))) -(deftest browser-test - (let [dapp1-url "cryptokitties.co" - dapp2-url "http://test2.com"] +#_(deftest browser-test + (let [dapp1-url "cryptokitties.co" + dapp2-url "http://test2.com"] - (testing "user opens a dapp" - (let [result-open (browser/open-url {:db {} :now 1} dapp1-url) - dapp1-id (get-dapp-id result-open dapp1-url)] - (is (= dapp1-id (get-in result-open [:db :browser/options :browser-id])) - "browser-id should be dapp1-url") - (is (not (has-wrong-properties? result-open - dapp1-id - {:browser-id dapp1-id - :history-index 0 - :history ["https://cryptokitties.co"] - :dapp? false - :name (i18n/label :t/browser)})) - "some properties of the browser are not correct") + (testing "user opens a dapp" + (let [result-open (browser/open-url {:db {} :now 1} dapp1-url) + dapp1-id (get-dapp-id result-open dapp1-url)] + (is (= dapp1-id (get-in result-open [:db :browser/options :browser-id])) + "browser-id should be dapp1-url") + (is (not (has-wrong-properties? result-open + dapp1-id + {:browser-id dapp1-id + :history-index 0 + :history ["https://cryptokitties.co"] + :dapp? false + :name (i18n/label :t/browser)})) + "some properties of the browser are not correct") - (testing "then a second dapp" - (let [result-open-2 (browser/open-url {:db (:db result-open) - :now 2} - dapp2-url) - dapp2-id (get-dapp-id result-open-2 dapp2-url)] - (is (= dapp2-id (get-in result-open-2 [:db :browser/options :browser-id])) - "browser-id should be dapp2 host") - (is (not (has-wrong-properties? result-open-2 - dapp2-id - {:browser-id dapp2-id - :history-index 0 - :history ["http://test2.com"] - :dapp? false})) - "some properties of the browser are not correct") + (testing "then a second dapp" + (let [result-open-2 (browser/open-url {:db (:db result-open) + :now 2} + dapp2-url) + dapp2-id (get-dapp-id result-open-2 dapp2-url)] + (is (= dapp2-id (get-in result-open-2 [:db :browser/options :browser-id])) + "browser-id should be dapp2 host") + (is (not (has-wrong-properties? result-open-2 + dapp2-id + {:browser-id dapp2-id + :history-index 0 + :history ["http://test2.com"] + :dapp? false})) + "some properties of the browser are not correct") - (testing "then removes the second dapp" - (let [result-remove-2 (browser/remove-browser {:db (:db result-open-2)} dapp2-id)] - (is (= #{dapp1-id} - (set (keys (get-in result-remove-2 [:db :browser/browsers])))) - "the second dapp shouldn't be in the browser list anymore"))))) + (testing "then removes the second dapp" + (let [result-remove-2 (browser/remove-browser {:db (:db result-open-2)} dapp2-id)] + (is (= #{dapp1-id} + (set (keys (get-in result-remove-2 [:db :browser/browsers])))) + "the second dapp shouldn't be in the browser list anymore"))))) - (testing "then opens the dapp again" - (let [result-open-existing (browser/open-existing-browser {:db (:db result-open) - :now 2} - dapp1-id) - dapp1-url2 (str "https://" dapp1-url "/nav2")] - (is (not (has-wrong-properties? result-open-existing - dapp1-id - {:browser-id dapp1-id - :history-index 0 - :history ["https://cryptokitties.co"] - :dapp? false - :name (i18n/label :t/browser)})) - "some properties of the browser are not correct") - (is (nil? (browser/navigate-to-next-page result-open-existing)) - "nothing should happen if user tries to navigate to next page") - (is (nil? (browser/navigate-to-previous-page result-open-existing)) - "nothing should happen if user tries to navigate to previous page") + (testing "then opens the dapp again" + (let [result-open-existing (browser/open-existing-browser {:db (:db result-open) + :now 2} + dapp1-id) + dapp1-url2 (str "https://" dapp1-url "/nav2")] + (is (not (has-wrong-properties? result-open-existing + dapp1-id + {:browser-id dapp1-id + :history-index 0 + :history ["https://cryptokitties.co"] + :dapp? false + :name (i18n/label :t/browser)})) + "some properties of the browser are not correct") + (is (nil? (browser/navigate-to-next-page result-open-existing)) + "nothing should happen if user tries to navigate to next page") + (is (nil? (browser/navigate-to-previous-page result-open-existing)) + "nothing should happen if user tries to navigate to previous page") - (testing "then navigates to a new url in the dapp" - (let [result-navigate (browser/navigation-state-changed - {:db (:db result-open-existing) - :now 4} - (clj->js {"url" dapp1-url2 - "loading" false}) - false)] - (is (not (has-wrong-properties? result-navigate - dapp1-id - {:browser-id dapp1-id - :history-index 1 - :history ["https://cryptokitties.co" dapp1-url2] - :dapp? false - :name (i18n/label :t/browser)})) - "some properties of the browser are not correct") - - (testing "then navigates to previous page" - (let [result-previous (browser/navigate-to-previous-page {:db (:db result-navigate) - :now 5})] - (is - (not (has-wrong-properties? result-previous - dapp1-id - {:browser-id dapp1-id - :history-index 0 - :history ["https://cryptokitties.co" dapp1-url2] - :dapp? false - :name (i18n/label :t/browser)})) - "some properties of the browser are not correct") - - (testing "then navigates to next page") - (let [result-next (browser/navigate-to-next-page {:db (:db result-previous) - :now 6})] - (is (not - (has-wrong-properties? result-next + (testing "then navigates to a new url in the dapp" + (let [result-navigate (browser/navigation-state-changed + {:db (:db result-open-existing) + :now 4} + (clj->js {"url" dapp1-url2 + "loading" false}) + false)] + (is (not (has-wrong-properties? result-navigate dapp1-id {:browser-id dapp1-id :history-index 1 :history ["https://cryptokitties.co" dapp1-url2] :dapp? false :name (i18n/label :t/browser)})) - "some properties of the browser are not correct")))))))))))) + "some properties of the browser are not correct") + + (testing "then navigates to previous page" + (let [result-previous (browser/navigate-to-previous-page {:db (:db result-navigate) + :now 5})] + (is + (not (has-wrong-properties? result-previous + dapp1-id + {:browser-id dapp1-id + :history-index 0 + :history ["https://cryptokitties.co" dapp1-url2] + :dapp? false + :name (i18n/label :t/browser)})) + "some properties of the browser are not correct") + + (testing "then navigates to next page") + (let [result-next (browser/navigate-to-next-page {:db (:db result-previous) + :now 6})] + (is (not + (has-wrong-properties? result-next + dapp1-id + {:browser-id dapp1-id + :history-index 1 + :history ["https://cryptokitties.co" dapp1-url2] + :dapp? false + :name (i18n/label :t/browser)})) + "some properties of the browser are not correct")))))))))))) diff --git a/src/legacy/status_im/browser/permissions_test.cljs b/src/legacy/status_im/browser/permissions_test.cljs index 2ea2cd88275..9ff40d54aa7 100644 --- a/src/legacy/status_im/browser/permissions_test.cljs +++ b/src/legacy/status_im/browser/permissions_test.cljs @@ -6,91 +6,91 @@ [legacy.status-im.browser.permissions :as permissions] [legacy.status-im.utils.deprecated-types :as types])) -(deftest permissions-test - (let [dapp-name "test.com" - dapp-name2 "test2.org" - cofx {:db (assoc-in (:db (browser/open-url {:db {}} dapp-name)) - [:profile/profile :public-key] - "public-key")} - dapp-id (core.tests/get-dapp-id cofx dapp-name)] - (testing "dapps permissions are initialized" - (is (zero? (count (get-in cofx [:db :dapps/permissions])))) - (is (= dapp-id (get-in cofx [:db :browser/options :browser-id])))) +#_(deftest permissions-test + (let [dapp-name "test.com" + dapp-name2 "test2.org" + cofx {:db (assoc-in (:db (browser/open-url {:db {}} dapp-name)) + [:profile/profile :public-key] + "public-key")} + dapp-id (core.tests/get-dapp-id cofx dapp-name)] + (testing "dapps permissions are initialized" + (is (zero? (count (get-in cofx [:db :dapps/permissions])))) + (is (= dapp-id (get-in cofx [:db :browser/options :browser-id])))) - (testing "receiving an unsupported permission" - (let [result-ask (browser/process-bridge-message cofx - (types/clj->json - {:type "api-request" - :host dapp-name - :messageId 0 - :permission "FAKE_PERMISSION"}))] - (is (not (get-in result-ask [:browser/send-to-bridge :isAllowed]))))) + (testing "receiving an unsupported permission" + (let [result-ask (browser/process-bridge-message cofx + (types/clj->json + {:type "api-request" + :host dapp-name + :messageId 0 + :permission "FAKE_PERMISSION"}))] + (is (not (get-in result-ask [:browser/send-to-bridge :isAllowed]))))) - (testing "receiving a supported permission" - (let [result-ask (browser/process-bridge-message cofx - (types/clj->json {:type "api-request" - :host dapp-name - :messageId 1 - :permission "contact-code"}))] - (is (= (get-in result-ask [:db :browser/options :show-permission]) - {:requested-permission "contact-code" - :dapp-name "test.com" - :message-id 1 - :yield-control? nil})) - (is (zero? (count (get-in result-ask [:db :dapps/permissions])))) + (testing "receiving a supported permission" + (let [result-ask (browser/process-bridge-message cofx + (types/clj->json {:type "api-request" + :host dapp-name + :messageId 1 + :permission "contact-code"}))] + (is (= (get-in result-ask [:db :browser/options :show-permission]) + {:requested-permission "contact-code" + :dapp-name "test.com" + :message-id 1 + :yield-control? nil})) + (is (zero? (count (get-in result-ask [:db :dapps/permissions])))) - (testing "then user accepts the supported permission" - (let [accept-result (permissions/allow-permission {:db (:db result-ask)})] - (is (= (get accept-result :browser/send-to-bridge) - {:type "api-response" - :messageId 1 - :isAllowed true - :data "public-key" - :permission "contact-code"}) - "the data should have been sent to the bridge") - (is (= (get-in accept-result [:db :dapps/permissions]) - {"test.com" {:dapp "test.com" :permissions ["contact-code"]}}) - "the dapp should now have CONTACT_CODE permission") + (testing "then user accepts the supported permission" + (let [accept-result (permissions/allow-permission {:db (:db result-ask)})] + (is (= (get accept-result :browser/send-to-bridge) + {:type "api-response" + :messageId 1 + :isAllowed true + :data "public-key" + :permission "contact-code"}) + "the data should have been sent to the bridge") + (is (= (get-in accept-result [:db :dapps/permissions]) + {"test.com" {:dapp "test.com" :permissions ["contact-code"]}}) + "the dapp should now have CONTACT_CODE permission") - (testing "then dapp asks for permission again" - (let [result-ask-again (browser/process-bridge-message {:db (:db accept-result)} - (types/clj->json - {:type "api-request" - :host dapp-name - :messageId 2 - :permission "contact-code"}))] - (is (= (get result-ask-again :browser/send-to-bridge) - {:type "api-response" - :isAllowed true - :messageId 2 - :data "public-key" - :permission "contact-code"}) - "the response should be immediatly sent to the bridge"))) + (testing "then dapp asks for permission again" + (let [result-ask-again (browser/process-bridge-message {:db (:db accept-result)} + (types/clj->json + {:type "api-request" + :host dapp-name + :messageId 2 + :permission "contact-code"}))] + (is (= (get result-ask-again :browser/send-to-bridge) + {:type "api-response" + :isAllowed true + :messageId 2 + :data "public-key" + :permission "contact-code"}) + "the response should be immediatly sent to the bridge"))) - (testing "then user switch to another dapp that asks for permissions" - (let [new-dapp (browser/open-url {:db (:db accept-result)} dapp-name2) - result-ask2 (browser/process-bridge-message {:db (:db new-dapp)} - (types/clj->json - {:type "api-request" - :host dapp-name2 - :messageId 3 - :permission "contact-code"}))] - (is (= (get-in result-ask2 [:db :dapps/permissions]) - {"test.com" {:dapp "test.com" :permissions ["contact-code"]}}) - "there should only be permissions for dapp-name at that point") - (is (nil? (get result-ask2 :browser/send-to-bridge)) - "no message should be sent to the bridge") + (testing "then user switch to another dapp that asks for permissions" + (let [new-dapp (browser/open-url {:db (:db accept-result)} dapp-name2) + result-ask2 (browser/process-bridge-message {:db (:db new-dapp)} + (types/clj->json + {:type "api-request" + :host dapp-name2 + :messageId 3 + :permission "contact-code"}))] + (is (= (get-in result-ask2 [:db :dapps/permissions]) + {"test.com" {:dapp "test.com" :permissions ["contact-code"]}}) + "there should only be permissions for dapp-name at that point") + (is (nil? (get result-ask2 :browser/send-to-bridge)) + "no message should be sent to the bridge") - (testing "then user accepts permission for dapp-name2" - (let [accept-result2 (permissions/allow-permission {:db (:db result-ask2)})] - (is (= (get-in accept-result2 [:db :dapps/permissions]) - {"test.com" {:dapp "test.com" :permissions ["contact-code"]} - "test2.org" {:dapp "test2.org" :permissions ["contact-code"]}}) - "there should be permissions for both dapps now") - (is (= (get accept-result2 :browser/send-to-bridge) - {:type "api-response" - :isAllowed true - :messageId 3 - :data "public-key" - :permission "contact-code"}) - "the response should be sent to the bridge"))))))))))) + (testing "then user accepts permission for dapp-name2" + (let [accept-result2 (permissions/allow-permission {:db (:db result-ask2)})] + (is (= (get-in accept-result2 [:db :dapps/permissions]) + {"test.com" {:dapp "test.com" :permissions ["contact-code"]} + "test2.org" {:dapp "test2.org" :permissions ["contact-code"]}}) + "there should be permissions for both dapps now") + (is (= (get accept-result2 :browser/send-to-bridge) + {:type "api-response" + :isAllowed true + :messageId 3 + :data "public-key" + :permission "contact-code"}) + "the response should be sent to the bridge")))))))))))