moving security from status-im ns to root utils (#14567)

making a lint a fix

update old decision doc

fixing issues while poorly rebasing

fix incorrect ns imports
This commit is contained in:
Siddarth Kumar 2022-12-20 17:56:21 +05:30 committed by GitHub
parent 8cf95cdb30
commit b074e9c58e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 51 additions and 49 deletions

View File

@ -20,6 +20,8 @@ printed out by mistake in a log entry (see https://github.com/status-im/status-m
To minimize the risk of leaking passwords through logs, we should not pass To minimize the risk of leaking passwords through logs, we should not pass
passwords as strings in our codebase. We introduced a new type `MaskedData` in passwords as strings in our codebase. We introduced a new type `MaskedData` in
`status-im.utils.security`. `status-im.utils.security`.
update (16-Dec-2022) `status-im.utils.security` is now moved over to `utils.security.core`
We use `(security/mask-data <data to hide>` to wrap sensitive data into this We use `(security/mask-data <data to hide>` to wrap sensitive data into this
type and then use `(security/unmask <masked-data>)` to get the plaintext back. type and then use `(security/unmask <masked-data>)` to get the plaintext back.

View File

@ -6,7 +6,7 @@
status-im.events status-im.events
status-im2.navigation.core status-im2.navigation.core
[status-im.chat.models :as chat.models] [status-im.chat.models :as chat.models]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.multiaccounts.logout.core :as logout] [status-im.multiaccounts.logout.core :as logout]
[status-im.transport.core :as transport] [status-im.transport.core :as transport]
status-im2.subs.root ;;so integration tests can run independently status-im2.subs.root ;;so integration tests can run independently

View File

@ -5,7 +5,7 @@
[status-im.utils.fx :as fx] [status-im.utils.fx :as fx]
[taoensso.timbre :as log] [taoensso.timbre :as log]
[status-im.keycard.common :as common] [status-im.keycard.common :as common]
[status-im.utils.security :as security])) [utils.security.core :as security]))
(fx/defn change-credentials-pressed (fx/defn change-credentials-pressed
{:events [:keycard-settings.ui/change-credentials-pressed]} {:events [:keycard-settings.ui/change-credentials-pressed]}

View File

@ -17,7 +17,7 @@
[status-im.native-module.core :as status] [status-im.native-module.core :as status]
[status-im.popover.core :as popover] [status-im.popover.core :as popover]
[status-im.utils.types :as types] [status-im.utils.types :as types]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.utils.keychain.core :as keychain] [status-im.utils.keychain.core :as keychain]
[status-im.utils.platform :as platform])) [status-im.utils.platform :as platform]))

View File

@ -10,7 +10,7 @@
[quo.design-system.colors :as colors] [quo.design-system.colors :as colors]
[status-im.utils.config :as config] [status-im.utils.config :as config]
[status-im.utils.fx :as fx] [status-im.utils.fx :as fx]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.utils.signing-phrase.core :as signing-phrase] [status-im.utils.signing-phrase.core :as signing-phrase]
[status-im.utils.types :as types])) [status-im.utils.types :as types]))

View File

@ -11,7 +11,7 @@
[status-im2.navigation.events :as navigation] [status-im2.navigation.events :as navigation]
[status-im.popover.core :as popover] [status-im.popover.core :as popover]
[status-im.utils.fx :as fx] [status-im.utils.fx :as fx]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.ethereum.core :as ethereum] [status-im.ethereum.core :as ethereum]
[status-im.i18n.i18n :as i18n] [status-im.i18n.i18n :as i18n]
[status-im.utils.types :as types] [status-im.utils.types :as types]

View File

@ -2,7 +2,7 @@
(:require [cljs.test :refer-macros [deftest is testing]] (:require [cljs.test :refer-macros [deftest is testing]]
[clojure.string :as string] [clojure.string :as string]
[status-im.multiaccounts.key-storage.core :as models] [status-im.multiaccounts.key-storage.core :as models]
[status-im.utils.security :as security])) [utils.security.core :as security]))
(deftest move-keystore-checked (deftest move-keystore-checked
(testing "Checks checkbox on-press" (testing "Checks checkbox on-press"

View File

@ -21,7 +21,7 @@
[status-im.utils.fx :as fx] [status-im.utils.fx :as fx]
[status-im.utils.keychain.core :as keychain] [status-im.utils.keychain.core :as keychain]
[status-im2.setup.log :as logging] [status-im2.setup.log :as logging]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.utils.types :as types] [status-im.utils.types :as types]
[status-im.utils.utils :as utils] [status-im.utils.utils :as utils]
[status-im.wallet.core :as wallet] [status-im.wallet.core :as wallet]

View File

@ -12,7 +12,7 @@
[status-im.popover.core :as popover] [status-im.popover.core :as popover]
[status-im2.navigation.events :as navigation] [status-im2.navigation.events :as navigation]
[status-im.utils.fx :as fx] [status-im.utils.fx :as fx]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.utils.types :as types] [status-im.utils.types :as types]
[status-im.utils.utils :as utils] [status-im.utils.utils :as utils]
[status-im.bottom-sheet.core :as bottom-sheet] [status-im.bottom-sheet.core :as bottom-sheet]

View File

@ -2,7 +2,7 @@
(:require [cljs.test :refer-macros [deftest is testing]] (:require [cljs.test :refer-macros [deftest is testing]]
[status-im.multiaccounts.recover.core :as models] [status-im.multiaccounts.recover.core :as models]
[status-im.multiaccounts.create.core :as multiaccounts.create] [status-im.multiaccounts.create.core :as multiaccounts.create]
[status-im.utils.security :as security])) [utils.security.core :as security]))
;;;; helpers ;;;; helpers

View File

@ -3,7 +3,7 @@
[status-im.utils.fx :as fx] [status-im.utils.fx :as fx]
[status-im.utils.types :as types] [status-im.utils.types :as types]
[clojure.string :as string] [clojure.string :as string]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.utils.keychain.core :as keychain] [status-im.utils.keychain.core :as keychain]
[status-im.popover.core :as popover] [status-im.popover.core :as popover]
[status-im.native-module.core :as status] [status-im.native-module.core :as status]

View File

@ -10,7 +10,7 @@
[status-im.ethereum.stateofus :as stateofus] [status-im.ethereum.stateofus :as stateofus]
[status-im.utils.db :as utils.db] [status-im.utils.db :as utils.db]
[status-im.utils.http :as http] [status-im.utils.http :as http]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.utils.wallet-connect :as wallet-connect] [status-im.utils.wallet-connect :as wallet-connect]
[status-im.constants :as constants] [status-im.constants :as constants]
[taoensso.timbre :as log])) [taoensso.timbre :as log]))

View File

@ -14,7 +14,7 @@
[status-im.utils.fx :as fx] [status-im.utils.fx :as fx]
[status-im.utils.hex :as utils.hex] [status-im.utils.hex :as utils.hex]
[status-im.utils.money :as money] [status-im.utils.money :as money]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.utils.types :as types] [status-im.utils.types :as types]
[status-im.utils.utils :as utils] [status-im.utils.utils :as utils]
[status-im.wallet.prices :as prices] [status-im.wallet.prices :as prices]

View File

@ -3,7 +3,7 @@
[quo.core :as quo] [quo.core :as quo]
[re-frame.core :as re-frame] [re-frame.core :as re-frame]
[status-im.ui.components.react :as react] [status-im.ui.components.react :as react]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.i18n.i18n :as i18n] [status-im.i18n.i18n :as i18n]
[status-im.ui.screens.chat.message.styles :as styles] [status-im.ui.screens.chat.message.styles :as styles]
[status-im.react-native.resources :as resources] [status-im.react-native.resources :as resources]

View File

@ -14,7 +14,7 @@
[status-im.ui.screens.chat.message.gap :as message.gap] [status-im.ui.screens.chat.message.gap :as message.gap]
[status-im.ui.screens.chat.styles.message.message-old :as style] [status-im.ui.screens.chat.styles.message.message-old :as style]
[status-im.ui.screens.chat.utils :as chat.utils] [status-im.ui.screens.chat.utils :as chat.utils]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.ui.screens.chat.message.reactions-old :as reactions] [status-im.ui.screens.chat.message.reactions-old :as reactions]
[status-im.ui.screens.chat.image.preview.views :as preview] [status-im.ui.screens.chat.image.preview.views :as preview]
[quo.core :as quo] [quo.core :as quo]

View File

@ -3,7 +3,7 @@
[reagent.core :as reagent] [reagent.core :as reagent]
[status-im.ui.components.toolbar :as toolbar] [status-im.ui.components.toolbar :as toolbar]
[status-im.i18n.i18n :as i18n] [status-im.i18n.i18n :as i18n]
[status-im.utils.security :as security] [utils.security.core :as security]
[quo.react-native :as rn] [quo.react-native :as rn]
[quo.core :as quo])) [quo.core :as quo]))

View File

@ -16,7 +16,7 @@
[status-im.ui.components.accordion :as accordion] [status-im.ui.components.accordion :as accordion]
[status-im.ui.screens.multiaccounts.views :as multiaccounts.views] [status-im.ui.screens.multiaccounts.views :as multiaccounts.views]
[status-im.ui.screens.multiaccounts.key-storage.styles :as styles] [status-im.ui.screens.multiaccounts.key-storage.styles :as styles]
[status-im.utils.security])) [utils.security.core]))
(defn local-topbar [subtitle action] (defn local-topbar [subtitle action]
[topbar/topbar (merge {:title (i18n/label :t/key-managment) [topbar/topbar (merge {:title (i18n/label :t/key-managment)
@ -214,7 +214,7 @@
[quo/text-input [quo/text-input
{:secure-text-entry true {:secure-text-entry true
:placeholder (i18n/label :t/current-password) :placeholder (i18n/label :t/current-password)
:on-change-text #(re-frame/dispatch [::multiaccounts.key-storage/password-changed (status-im.utils.security/mask-data %)]) :on-change-text #(re-frame/dispatch [::multiaccounts.key-storage/password-changed (utils.security.core/mask-data %)])
:accessibility-label :enter-password-input :accessibility-label :enter-password-input
:auto-capitalize :none :auto-capitalize :none
:error migration-password-error :error migration-password-error
@ -325,20 +325,20 @@
;; Enter seed phrase ;; Enter seed phrase
;; invalid seed shape ;; invalid seed shape
#_(re-frame/dispatch [::multiaccounts.key-storage/seed-phrase-input-changed (status-im.utils.security/mask-data "h h h h h h h h h h h h")]) #_(re-frame/dispatch [::multiaccounts.key-storage/seed-phrase-input-changed (utils.security.core/mask-data "h h h h h h h h h h h h")])
;; valid seed for Trusty Candid Bighornedsheep ;; valid seed for Trusty Candid Bighornedsheep
;; If you try to select Dim Venerated Yaffle, but use this seed instead, validate-seed-against-key-uid will fail miserably ;; If you try to select Dim Venerated Yaffle, but use this seed instead, validate-seed-against-key-uid will fail miserably
#_(re-frame/dispatch [::multiaccounts.key-storage/seed-phrase-input-changed #_(re-frame/dispatch [::multiaccounts.key-storage/seed-phrase-input-changed
(status-im.utils.security/mask-data "disease behave roof exile ghost head carry item tumble census rocket champion")]) (utils.security.core/mask-data "disease behave roof exile ghost head carry item tumble census rocket champion")])
;; valid seed for Swiffy Warlike Seagull ;; valid seed for Swiffy Warlike Seagull
#_(re-frame/dispatch [::multiaccounts.key-storage/seed-phrase-input-changed #_(re-frame/dispatch [::multiaccounts.key-storage/seed-phrase-input-changed
(status-im.utils.security/mask-data "dirt agent garlic merge tuna leaf congress hedgehog absent dish pizza scrap")]) (utils.security.core/mask-data "dirt agent garlic merge tuna leaf congress hedgehog absent dish pizza scrap")])
;; valid seed for Dim Venerated Yaffle (this is just a test account, okay to leak seed) ;; valid seed for Dim Venerated Yaffle (this is just a test account, okay to leak seed)
(re-frame/dispatch [::multiaccounts.key-storage/seed-phrase-input-changed (re-frame/dispatch [::multiaccounts.key-storage/seed-phrase-input-changed
(status-im.utils.security/mask-data "rocket mixed rebel affair umbrella legal resemble scene virus park deposit cargo")]) (utils.security.core/mask-data "rocket mixed rebel affair umbrella legal resemble scene virus park deposit cargo")])
;; Click choose storage ;; Click choose storage
(re-frame/dispatch [::multiaccounts.key-storage/choose-storage-pressed]) (re-frame/dispatch [::multiaccounts.key-storage/choose-storage-pressed])

View File

@ -8,7 +8,7 @@
[status-im.ui.screens.multiaccounts.login.styles :as styles] [status-im.ui.screens.multiaccounts.login.styles :as styles]
[status-im.ui.screens.multiaccounts.styles :as ast] [status-im.ui.screens.multiaccounts.styles :as ast]
[status-im.utils.platform :as platform] [status-im.utils.platform :as platform]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.utils.utils :as utils] [status-im.utils.utils :as utils]
[quo.core :as quo] [quo.core :as quo]
[status-im.ui.components.icons.icons :as icons] [status-im.ui.components.icons.icons :as icons]

View File

@ -7,7 +7,7 @@
[status-im.keycard.recovery :as keycard] [status-im.keycard.recovery :as keycard]
[status-im.i18n.i18n :as i18n] [status-im.i18n.i18n :as i18n]
[status-im2.setup.config :as config] [status-im2.setup.config :as config]
[status-im.utils.security] [utils.security.core]
[quo.design-system.colors :as colors] [quo.design-system.colors :as colors]
[quo.core :as quo] [quo.core :as quo]
[status-im.qr-scanner.core :as qr-scanner] [status-im.qr-scanner.core :as qr-scanner]
@ -114,7 +114,7 @@
;; Enter seed phrase for Dim Venerated Yaffle ;; Enter seed phrase for Dim Venerated Yaffle
(re-frame/dispatch [:multiaccounts.recover/enter-phrase-input-changed (re-frame/dispatch [:multiaccounts.recover/enter-phrase-input-changed
(status-im.utils.security/mask-data "rocket mixed rebel affair umbrella legal resemble scene virus park deposit cargo")]) (utils.security.core/mask-data "rocket mixed rebel affair umbrella legal resemble scene virus park deposit cargo")])
;; Recover multiaccount ;; Recover multiaccount
(re-frame/dispatch [:multiaccounts.recover/enter-phrase-next-pressed]) (re-frame/dispatch [:multiaccounts.recover/enter-phrase-next-pressed])

View File

@ -6,7 +6,7 @@
[status-im.ui.screens.multiaccounts.styles :as styles] [status-im.ui.screens.multiaccounts.styles :as styles]
[status-im.ui.components.list.views :as list] [status-im.ui.components.list.views :as list]
[status-im.ui.components.react :as react] [status-im.ui.components.react :as react]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.i18n.i18n :as i18n] [status-im.i18n.i18n :as i18n]
[quo.design-system.colors :as colors] [quo.design-system.colors :as colors]
[status-im.ui.components.toolbar :as toolbar] [status-im.ui.components.toolbar :as toolbar]

View File

@ -4,7 +4,7 @@
[status-im.ui.components.toolbar :as toolbar] [status-im.ui.components.toolbar :as toolbar]
[status-im.i18n.i18n :as i18n] [status-im.i18n.i18n :as i18n]
[status-im.constants :as const] [status-im.constants :as const]
[status-im.utils.security :as security] [utils.security.core :as security]
[quo.react-native :as rn] [quo.react-native :as rn]
[quo.core :as quo])) [quo.core :as quo]))

View File

@ -4,7 +4,7 @@
[quo.design-system.colors :as colors] [quo.design-system.colors :as colors]
[status-im.i18n.i18n :as i18n] [status-im.i18n.i18n :as i18n]
[re-frame.core :as re-frame] [re-frame.core :as re-frame]
[status-im.utils.security :as security] [utils.security.core :as security]
[quo.core :as quo] [quo.core :as quo]
[status-im.utils.datetime :as datetime] [status-im.utils.datetime :as datetime]
[status-im.ui.screens.onboarding.views :as ui] [status-im.ui.screens.onboarding.views :as ui]

View File

@ -6,7 +6,7 @@
[re-frame.core :as re-frame] [re-frame.core :as re-frame]
[status-im.i18n.i18n :as i18n] [status-im.i18n.i18n :as i18n]
[reagent.core :as reagent] [reagent.core :as reagent]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.ui.screens.privacy-and-security-settings.events :as delete-profile] [status-im.ui.screens.privacy-and-security-settings.events :as delete-profile]
status-im.keycard.delete-key)) status-im.keycard.delete-key))

View File

@ -1,7 +1,7 @@
(ns status-im.ui.screens.privacy-and-security-settings.events (ns status-im.ui.screens.privacy-and-security-settings.events
(:require [status-im.utils.fx :as fx] (:require [status-im.utils.fx :as fx]
[re-frame.core :as re-frame] [re-frame.core :as re-frame]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.native-module.core :as status] [status-im.native-module.core :as status]
[status-im.ethereum.core :as ethereum] [status-im.ethereum.core :as ethereum]
[status-im.utils.types :as types] [status-im.utils.types :as types]

View File

@ -6,7 +6,7 @@
[quo.design-system.colors :as colors] [quo.design-system.colors :as colors]
[status-im.ui.components.icons.icons :as icons] [status-im.ui.components.icons.icons :as icons]
[status-im.multiaccounts.reset-password.core :as reset-password] [status-im.multiaccounts.reset-password.core :as reset-password]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.ui.components.toolbar :as toolbar]) [status-im.ui.components.toolbar :as toolbar])
(:require-macros [status-im.utils.views :refer [defview letsubs]])) (:require-macros [status-im.utils.views :refer [defview letsubs]]))

View File

@ -23,7 +23,7 @@
[status-im.ui.screens.signing.styles :as styles] [status-im.ui.screens.signing.styles :as styles]
[status-im.ui.screens.wallet.components.views :as wallet.components] [status-im.ui.screens.wallet.components.views :as wallet.components]
[status-im.utils.platform :as platform] [status-im.utils.platform :as platform]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.utils.types :as types] [status-im.utils.types :as types]
[status-im.utils.utils :as utils] [status-im.utils.utils :as utils]
[status-im.wallet.utils :as wallet.utils])) [status-im.wallet.utils :as wallet.utils]))

View File

@ -10,7 +10,7 @@
[reagent.core :as reagent] [reagent.core :as reagent]
[quo.core :as quo] [quo.core :as quo]
[status-im.ui.components.topbar :as topbar] [status-im.ui.components.topbar :as topbar]
[status-im.utils.security :as security])) [utils.security.core :as security]))
(defn not-valid-password? [password] (defn not-valid-password? [password]
(< (count (security/safe-unmask-data password)) 6)) (< (count (security/safe-unmask-data password)) 6))

View File

@ -13,7 +13,7 @@
[status-im.ui.components.icons.icons :as icons] [status-im.ui.components.icons.icons :as icons]
[status-im.ui.screens.wallet.account-settings.views :as account-settings] [status-im.ui.screens.wallet.account-settings.views :as account-settings]
[status-im.ethereum.core :as ethereum] [status-im.ethereum.core :as ethereum]
[status-im.utils.security :as security] [utils.security.core :as security]
[clojure.string :as string] [clojure.string :as string]
[quo.core :as quo])) [quo.core :as quo]))

View File

@ -4,7 +4,7 @@
[status-im.ui.components.react :as react] [status-im.ui.components.react :as react]
[status-im.i18n.i18n :as i18n] [status-im.i18n.i18n :as i18n]
[status-im.utils.utils :as status.utils] [status-im.utils.utils :as status.utils]
[status-im.utils.security] [utils.security.core]
[quo.design-system.colors :as colors] [quo.design-system.colors :as colors]
[quo.core :as quo] [quo.core :as quo]
[status-im.ui.components.icons.icons :as icons] [status-im.ui.components.icons.icons :as icons]

View File

@ -36,7 +36,7 @@
[status-im.ui2.screens.chat.components.reply :as components.reply] [status-im.ui2.screens.chat.components.reply :as components.reply]
[status-im.utils.config :as config] [status-im.utils.config :as config]
[status-im.utils.datetime :as time] [status-im.utils.datetime :as time]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.utils.utils :as utils] [status-im.utils.utils :as utils]
[status-im2.contexts.chat.home.chat-list-item.view :as home.chat-list-item] [status-im2.contexts.chat.home.chat-list-item.view :as home.chat-list-item]
[utils.re-frame :as rf]) [utils.re-frame :as rf])

View File

@ -2,7 +2,7 @@
(:require [re-frame.core :as re-frame] (:require [re-frame.core :as re-frame]
[taoensso.timbre :as log] [taoensso.timbre :as log]
[status-im.utils.platform :as platform] [status-im.utils.platform :as platform]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.native-module.core :as status] [status-im.native-module.core :as status]
[status-im.utils.fx :as fx] [status-im.utils.fx :as fx]
[clojure.string :as string] [clojure.string :as string]

View File

@ -15,7 +15,7 @@
[status-im.utils.types :as types] [status-im.utils.types :as types]
[status-im.wallet.core :as wallet] [status-im.wallet.core :as wallet]
[clojure.string :as string] [clojure.string :as string]
[status-im.utils.security :as security] [utils.security.core :as security]
[status-im.multiaccounts.core :as multiaccounts] [status-im.multiaccounts.core :as multiaccounts]
[status-im.ethereum.mnemonic :as mnemonic] [status-im.ethereum.mnemonic :as mnemonic]
[taoensso.timbre :as log] [taoensso.timbre :as log]

View File

@ -1,6 +1,6 @@
(ns status-im2.contexts.syncing.events (ns status-im2.contexts.syncing.events
(:require [utils.re-frame :as rf] (:require [utils.re-frame :as rf]
[status-im.utils.security :as security] [utils.security.core :as security]
[taoensso.timbre :as log] [taoensso.timbre :as log]
[status-im.native-module.core :as status] [status-im.native-module.core :as status]
[status-im2.contexts.syncing.sheets.enter-password.view :as sheet])) [status-im2.contexts.syncing.sheets.enter-password.view :as sheet]))

View File

@ -2,7 +2,7 @@
(:require [re-frame.core :as re-frame] (:require [re-frame.core :as re-frame]
[status-im.multiaccounts.core :as multiaccounts] [status-im.multiaccounts.core :as multiaccounts]
[status-im.ethereum.core :as ethereum] [status-im.ethereum.core :as ethereum]
[status-im.utils.security :as security] [utils.security.core :as security]
[cljs.spec.alpha :as spec] [cljs.spec.alpha :as spec]
[status-im.fleet.core :as fleet] [status-im.fleet.core :as fleet]
[clojure.string :as string] [clojure.string :as string]

View File

@ -1,5 +1,5 @@
(ns status-im.utils.security (ns utils.security.core
(:require [status-im.utils.security-html :as h])) (:require [utils.security.security-html :as h]))
(defprotocol Unmaskable (defprotocol Unmaskable
;; Retrieve the stored value. ;; Retrieve the stored value.

View File

@ -1,4 +1,4 @@
(ns status-im.utils.security-html (ns utils.security.security-html
(:require [clojure.string :as string])) (:require [clojure.string :as string]))
; Taken from https://github.com/sindresorhus/is-html ; Taken from https://github.com/sindresorhus/is-html

View File

@ -1,6 +1,6 @@
(ns status-im.utils.security-html-test (ns utils.security.security-html-test
(:require [cljs.test :refer-macros [deftest is testing]] (:require [cljs.test :refer-macros [deftest is testing]]
[status-im.utils.security-html :as s])) [utils.security.security-html :as s]))
(deftest with-doctype (deftest with-doctype
(is (s/is-html? "<!doctype html>")) (is (s/is-html? "<!doctype html>"))

View File

@ -1,6 +1,6 @@
(ns status-im.utils.security-test (ns utils.security.security-test
(:require [cljs.test :refer-macros [deftest is testing]] (:require [cljs.test :refer-macros [deftest is testing]]
[status-im.utils.security :as security])) [utils.security.core :as security]))
(def rtlo-link "http://google.com") (def rtlo-link "http://google.com")
(def rtlo-link-text "blah blah some other blah blah http://google.com blah bash") (def rtlo-link-text "blah blah some other blah blah http://google.com blah bash")