2020-10-30 15:34:04 -05:00
<!-- Copyright 2014 - 2020 Signal Messenger, LLC -->
<!-- SPDX - License - Identifier: AGPL - 3.0 - only -->
2014-09-01 11:52:58 -07:00
< html >
< head >
2017-05-11 17:17:49 -07:00
< meta charset = 'utf-8' >
2014-09-01 11:52:58 -07:00
< title > TextSecure test runner< / title >
2018-05-19 20:53:12 -07:00
< link rel = "stylesheet" href = "../node_modules/mocha/mocha.css" / >
2016-09-22 16:37:12 -07:00
< link rel = "stylesheet" href = "../stylesheets/manifest.css" / >
2014-09-01 11:52:58 -07:00
< / head >
2015-01-14 11:21:54 -10:00
< body >
2019-03-20 10:42:28 -07:00
< div id = "mocha" > < / div >
< div id = "tests" > < / div >
2019-01-14 13:49:58 -08:00
2017-07-24 18:43:35 -07:00
< script type = 'text/x-tmpl-mustache' id = 'app-loading-screen' >
< div class = 'content' >
2020-03-05 13:24:51 -08:00
< div class = "module-splash-screen__logo module-img--150" > < / div >
2017-07-24 18:43:35 -07:00
< div class = 'container' >
< span class = 'dot' > < / span >
< span class = 'dot' > < / span >
< span class = 'dot' > < / span >
< / div >
2019-01-14 13:49:58 -08:00
< div class = 'message' > {{ message }}< / div >
2017-07-24 18:43:35 -07:00
< / div >
< / script >
2019-01-14 13:49:58 -08:00
2017-07-24 18:43:35 -07:00
< script type = 'text/x-tmpl-mustache' id = 'conversation-loading-screen' >
< div class = 'content' >
2020-03-05 13:24:51 -08:00
< div class = "module-splash-screen__logo module-img--128" > < / div >
2017-07-24 18:43:35 -07:00
< div class = 'container' >
< span class = 'dot' > < / span >
< span class = 'dot' > < / span >
< span class = 'dot' > < / span >
< / div >
< / div >
< / script >
2019-01-14 13:49:58 -08:00
2016-09-22 16:37:12 -07:00
< script type = 'text/x-tmpl-mustache' id = 'two-column' >
2020-06-04 11:16:19 -07:00
< div class = 'call-manager-placeholder' > < / div >
< div class = 'inbox-container' >
< div class = 'gutter' >
< div class = 'left-pane-placeholder' > < / div >
< / div >
< div class = 'conversation-stack' >
< div class = 'conversation placeholder' >
< div class = 'conversation-header' > < / div >
< div class = 'container' >
< div class = 'content' >
< div class = "module-splash-screen__logo module-img--128 module-logo-blue" > < / div >
< h3 > {{ welcomeToSignal }}< / h3 >
< p > {{ selectAContact }}< / p >
< / div >
2019-01-14 13:49:58 -08:00
< / div >
2016-09-22 16:37:12 -07:00
< / div >
< / div >
2020-06-04 11:16:19 -07:00
< div class = 'lightbox-container' > < / div >
2016-09-22 16:37:12 -07:00
< / div >
< / script >
2019-01-14 13:49:58 -08:00
2017-06-13 17:36:32 -07:00
< script type = 'text/x-tmpl-mustache' id = 'scroll-down-button-view' >
2019-01-14 13:49:58 -08:00
< button class = 'text module-scroll-down__button {{ buttonClass }}' alt = '{{ moreBelow }}' >
< div class = 'module-scroll-down__icon' > < / div >
2017-06-13 17:36:32 -07:00
< / button >
< / script >
2019-01-14 13:49:58 -08:00
2017-06-13 17:36:32 -07:00
< script type = 'text/x-tmpl-mustache' id = 'last-seen-indicator-view' >
2019-01-14 13:49:58 -08:00
< div class = 'module-last-seen-indicator__bar' / >
< div class = 'module-last-seen-indicator__text' >
{{ unreadMessages }}
2017-06-13 17:36:32 -07:00
< / div >
< / script >
2019-01-14 13:49:58 -08:00
2017-06-13 17:36:32 -07:00
< script type = 'text/x-tmpl-mustache' id = 'banner' >
< div class = 'body' >
2017-06-16 14:29:27 -07:00
< span class = 'icon warning' > < / span >
2017-06-13 17:36:32 -07:00
{{ message }}
2017-06-16 14:29:27 -07:00
< span class = 'icon dismiss' > < / span >
2017-06-13 17:36:32 -07:00
< / div >
< / script >
2019-01-14 13:49:58 -08:00
2016-09-22 16:37:12 -07:00
< script type = 'text/x-tmpl-mustache' id = 'toast' >
{{ toastMessage }}
< / script >
2019-01-14 13:49:58 -08:00
2014-09-01 11:52:58 -07:00
< script type = 'text/x-tmpl-mustache' id = 'conversation' >
2018-07-09 14:29:13 -07:00
< div class = 'conversation-header' > < / div >
2016-09-22 16:37:12 -07:00
< div class = 'main panel' >
< div class = 'discussion-container' >
< div class = 'bar-container hide' >
< div class = 'bar active progress-bar-striped progress-bar' > < / div >
< / div >
< / div >
< div class = 'bottom-bar' id = 'footer' >
2019-01-14 13:49:58 -08:00
< div class = 'emoji-panel-container' > < / div >
< div class = 'attachment-list' > < / div >
< div class = 'compose' >
< form class = 'send clearfix file-input' >
2016-09-22 16:37:12 -07:00
< div class = 'flex' >
2019-01-14 13:49:58 -08:00
< button class = 'emoji' > < / button >
2016-09-22 16:37:12 -07:00
< textarea class = 'send-message' placeholder = '{{ send-message }}' rows = '1' dir = 'auto' > < / textarea >
< div class = 'capture-audio' >
2019-01-14 13:49:58 -08:00
< button class = 'microphone' > < / button >
< / div >
< div class = 'choose-file' >
< button class = 'paperclip thumbnail' > < / button >
< input type = 'file' class = 'file-input' multiple = 'multiple' >
2016-09-22 16:37:12 -07:00
< / div >
< / div >
2019-01-14 13:49:58 -08:00
< / form >
< / div >
2016-09-22 16:37:12 -07:00
< / div >
< / div >
< / script >
2019-01-14 13:49:58 -08:00
< script type = 'text/x-tmpl-mustache' id = 'message-list' >
< div class = 'messages' > < / div >
< div class = 'typing-container' > < / div >
< / script >
2016-09-22 16:37:12 -07:00
< script type = 'text/x-tmpl-mustache' id = 'recorder' >
< button class = 'finish' > < span class = 'icon' > < / span > < / button >
< span class = 'time' > 0:00< / span >
< button class = 'close' > < span class = 'icon' > < / span > < / button >
< / script >
2019-01-14 13:49:58 -08:00
2016-09-22 16:37:12 -07:00
< script type = 'text/x-tmpl-mustache' id = 'confirmation-dialog' >
< div class = "content" >
< div class = 'message' > {{ message }}< / div >
< div class = 'buttons' >
2017-07-11 15:54:46 -07:00
{{ #showCancel }}
< button class = 'cancel' tabindex = '2' > {{ cancel }}< / button >
{{ /showCancel }}
< button class = 'ok' tabindex = '1' > {{ ok }}< / button >
2016-09-22 16:37:12 -07:00
< / div >
< / div >
< / script >
2019-01-14 13:49:58 -08:00
2016-09-22 16:37:12 -07:00
< script type = 'text/x-tmpl-mustache' id = 'identicon-svg' >
< svg xmlns = 'http://www.w3.org/2000/svg' width = '100' height = '100' >
< circle cx = '50' cy = '50' r = '40' fill = '{{ color }}' / >
2017-07-07 16:18:29 -04:00
< text text-anchor = 'middle' fill = 'white' font-family = 'sans-serif' font-size = '24px' x = '50' y = '50' baseline-shift = '-8px' >
2016-09-22 16:37:12 -07:00
{{ content }}
< / text >
< / svg >
< / script >
2019-01-14 13:49:58 -08:00
2016-09-22 16:37:12 -07:00
< script type = 'text/x-tmpl-mustache' id = 'phone-number' >
< div class = 'phone-input-form' >
< div class = 'number-container' >
< input type = 'tel' class = 'number' placeholder = "Phone Number" / >
2014-09-01 11:52:58 -07:00
< / div >
< / div >
2016-09-22 16:37:12 -07:00
< / script >
2019-01-14 13:49:58 -08:00
2016-09-22 16:37:12 -07:00
< script type = 'text/x-tmpl-mustache' id = 'file-size-modal' >
{{ file-size-warning }}
({{ limit }}{{ units }})
< / script >
2019-01-14 13:49:58 -08:00
2016-09-22 16:37:12 -07:00
< script type = 'text/x-tmpl-mustache' id = 'attachment-type-modal' >
Sorry, your attachment has a type, {{type}}, that is not currently supported.
< / script >
2019-01-14 13:49:58 -08:00
2016-09-22 16:37:12 -07:00
< script type = 'text/x-tmpl-mustache' id = 'group-member-list' >
2017-06-16 16:48:06 -07:00
< div class = 'container' >
{{ #summary }} < div class = 'summary' > {{ summary }}< / div > {{ /summary }}
< / div >
2016-09-22 16:37:12 -07:00
< / script >
2019-01-14 13:49:58 -08:00
2017-06-08 18:08:41 -07:00
< script type = 'text/x-tmpl-mustache' id = 'key-verification' >
2020-06-25 20:08:58 -04:00
< div class = "container" tabindex = "0" >
< div class = "key-verification-wrapper" > < / div >
2017-06-08 18:08:41 -07:00
< / div >
2016-09-22 16:37:12 -07:00
< / script >
2019-01-14 13:49:58 -08:00
< script type = 'text/x-tmpl-mustache' id = 'clear-data' >
{{#isStep1}}
< div class = 'step' >
< div class = 'inner' >
< div class = 'step-body' >
< span class = 'banner-icon alert-outline-red' > < / span >
< div class = 'header' > {{ header }}< / div >
< div class = 'body-text-wide' > {{ body }}< / div >
2016-09-22 16:37:12 -07:00
< / div >
2019-01-14 13:49:58 -08:00
< div class = 'nav' >
< div >
< a class = 'button neutral cancel' > {{ cancelButton }}< / a >
< a class = 'button destructive delete-all-data' > {{ deleteButton }}< / a >
< / div >
2016-09-22 16:37:12 -07:00
< / div >
< / div >
2019-01-14 13:49:58 -08:00
< / div >
{{/isStep1}}
{{#isStep2}}
< div id = 'step3' class = 'step' >
< div class = 'inner' >
< div class = 'step-body' >
< span class = 'banner-icon delete' > < / span >
< div class = 'header' > {{ deleting }}< / div >
< / div >
< div class = 'progress' >
< div class = 'bar-container' >
< div class = 'bar progress-bar progress-bar-striped active' > < / div >
< / div >
< / div >
2016-09-22 16:37:12 -07:00
< / div >
2019-01-14 13:49:58 -08:00
< / div >
{{/isStep2}}
2016-09-22 16:37:12 -07:00
< / script >
2019-01-14 13:49:58 -08:00
< script type = 'text/x-tmpl-mustache' id = 'link-flow-template' >
{{#isStep3}}
< div id = 'step3' class = 'step' >
< div class = 'inner' >
< div class = 'step-body' >
< div class = 'header' > {{ linkYourPhone }}< / div >
< div id = "qr" >
< div class = 'container' >
< span class = 'dot' > < / span >
< span class = 'dot' > < / span >
< span class = 'dot' > < / span >
< / div >
< / div >
< / div >
< div class = 'nav' >
< div class = 'instructions' >
< div class = 'android' >
< div class = 'label' >
< span class = 'os-icon android' > < / span >
< / div >
< div class = 'body' >
< div > → {{ signalSettings }}< / div >
< div > → {{ linkedDevices }}< / div >
< div > → {{ androidFinalStep }}< / div >
< / div >
< / div >
< div class = 'apple' >
< div class = 'label' >
< span class = 'os-icon apple' > < / span >
< / div >
< div class = 'body' >
< div > → {{ signalSettings }}< / div >
< div > → {{ linkedDevices }}< / div >
< div > → {{ appleFinalStep }}< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
{{/isStep3}}
{{#isStep4}}
< form id = 'link-phone' >
< div id = 'step4' class = 'step' >
< div class = 'inner' >
< div class = 'step-body' >
< span class = 'banner-icon lead-pencil' > < / span >
< div class = 'header' > {{ chooseName }}< / div >
< div >
< input type = 'text' class = 'device-name' spellcheck = 'false' maxlength = '50' / >
< / div >
< / div >
< div class = 'nav' >
< div >
< a class = 'button finish' > {{ finishLinkingPhoneButton }}< / a >
< / div >
< / div >
< / div >
< / div >
< / form >
{{/isStep4}}
{{#isStep5}}
< div id = 'step5' class = 'step' >
< div class = 'inner' >
< div class = 'step-body' >
< span class = 'banner-icon sync' > < / span >
< div class = 'header' > {{ syncing }}< / div >
< / div >
< div class = 'progress' >
< div class = 'bar-container' >
< div class = 'bar progress-bar progress-bar-striped active' > < / div >
< / div >
< / div >
< / div >
< / div >
{{/isStep5}}
{{#isError}}
< div id = 'error' class = 'step' >
< div class = 'inner' >
< div class = 'step-body' >
< span class = 'banner-icon alert-outline' > < / span >
< div class = 'header' > {{ errorHeader }}< / div >
< div class = 'body' > {{ errorMessage }}< / div >
< / div >
< div class = 'nav' >
< a class = 'button try-again' > {{ errorButton }}< / a >
< / div >
< / div >
< / div >
{{/isError}}
< / script >
< script type = 'text/x-tmpl-mustache' id = 'standalone' >
< div class = 'step' >
< div class = 'inner' >
< div class = 'step-body' >
2020-03-05 13:24:51 -08:00
< div class = "banner-image module-splash-screen__logo module-img--128" > < / div >
2019-01-14 13:49:58 -08:00
< div class = 'header' > Create your Signal Account< / div >
< div id = 'phone-number-input' >
< div class = 'phone-input-form' >
< div id = 'number-container' class = 'number-container' >
< input type = 'tel' class = 'number' placeholder = 'Phone Number' / >
< / div >
< / div >
< / div >
< div class = 'clearfix' >
< a class = 'button' id = 'request-sms' > Send SMS< / a >
< a class = 'link' id = 'request-voice' tabindex = -1 > Call< / a >
< / div >
< input class = 'form-control' type = 'text' pattern = '\s*[0-9]{3}-?[0-9]{3}\s*' title = 'Enter your 6-digit verification code. If you did not receive a code, click Call or Send SMS to request a new one' id = 'code' placeholder = 'Verification Code' autocomplete = 'off' >
< div id = 'error' class = 'collapse' > < / div >
< div id = status > < / div >
< / div >
< div class = 'nav' >
< a class = 'button' id = 'verifyCode' data-loading-text = 'Please wait...' > Register< / a >
< / div >
< / div >
2017-05-09 14:28:21 -07:00
< / div >
2017-04-18 16:03:23 -07:00
< / script >
2017-01-03 21:37:56 -06:00
2018-05-25 18:01:56 -07:00
< script type = "text/javascript" src = "../libtextsecure/test/fake_web_api.js" > < / script >
2017-04-13 11:59:33 -07:00
< script type = "text/javascript" src = "../js/components.js" > < / script >
2020-09-24 13:57:54 -07:00
< script type = 'text/javascript' src = '../ts/backboneJquery.js' > < / script >
2017-07-19 11:59:08 -07:00
< script type = "text/javascript" src = "../js/reliable_trigger.js" data-cover > < / script >
2015-01-06 14:46:33 -08:00
< script type = "text/javascript" src = "test.js" > < / script >
2014-10-29 13:46:09 -07:00
2017-07-03 15:08:10 -07:00
< script type = "text/javascript" src = "../js/chromium.js" data-cover > < / script >
< script type = "text/javascript" src = "../js/database.js" data-cover > < / script >
< script type = "text/javascript" src = "../js/storage.js" data-cover > < / script >
< script type = "text/javascript" src = "../js/signal_protocol_store.js" data-cover > < / script >
< script type = "text/javascript" src = "../js/libtextsecure.js" data-cover > < / script >
2015-01-13 14:09:32 -10:00
< script type = "text/javascript" src = "../js/libphonenumber-util.js" > < / script >
2015-01-06 14:46:33 -08:00
< script type = "text/javascript" src = "../js/models/messages.js" data-cover > < / script >
< script type = "text/javascript" src = "../js/models/conversations.js" data-cover > < / script >
2017-05-18 12:28:06 -07:00
< script type = "text/javascript" src = "../js/models/blockedNumbers.js" data-cover > < / script >
2019-03-25 18:10:30 -07:00
< script type = "text/javascript" src = "../js/message_controller.js" data-cover > < / script >
2017-07-03 15:08:10 -07:00
< script type = "text/javascript" src = "../js/keychange_listener.js" data-cover > < / script >
< script type = 'text/javascript' src = '../js/expiring_messages.js' data-cover > < / script >
2019-06-26 12:33:13 -07:00
< script type = 'text/javascript' src = '../js/expiring_tap_to_view_messages.js' data-cover > < / script >
2017-07-03 15:08:10 -07:00
< script type = 'text/javascript' src = '../js/notifications.js' data-cover > < / script >
2014-09-01 11:52:58 -07:00
2017-07-03 15:08:10 -07:00
< script type = "text/javascript" src = "../js/chromium.js" data-cover > < / script >
2014-09-04 00:16:06 -07:00
2018-04-19 16:10:08 -07:00
< script type = 'text/javascript' src = '../js/views/react_wrapper_view.js' > < / script >
2016-09-22 16:37:12 -07:00
< script type = 'text/javascript' src = '../js/views/whisper_view.js' data-cover > < / script >
< script type = 'text/javascript' src = '../js/views/debug_log_view.js' data-cover > < / script >
< script type = 'text/javascript' src = '../js/views/toast_view.js' data-cover > < / script >
< script type = 'text/javascript' src = '../js/views/list_view.js' data-cover > < / script >
< script type = 'text/javascript' src = '../js/views/contact_list_view.js' data-cover > < / script >
< script type = 'text/javascript' src = '../js/views/key_verification_view.js' data-cover > < / script >
< script type = 'text/javascript' src = '../js/views/group_member_list_view.js' data-cover > < / script >
< script type = 'text/javascript' src = '../js/views/recorder_view.js' data-cover > < / script >
< script type = 'text/javascript' src = '../js/views/conversation_view.js' data-cover > < / script >
< script type = 'text/javascript' src = '../js/views/inbox_view.js' data-cover > < / script >
< script type = 'text/javascript' src = '../js/views/confirmation_dialog_view.js' data-cover > < / script >
< script type = 'text/javascript' src = '../js/views/identicon_svg_view.js' data-cover > < / script >
2017-06-13 17:36:32 -07:00
< script type = 'text/javascript' src = '../js/views/banner_view.js' data-cover > < / script >
2018-07-03 15:33:50 -07:00
< script type = 'text/javascript' src = '../js/views/clear_data_view.js' > < / script >
2014-09-04 00:16:06 -07:00
2018-10-17 18:01:21 -07:00
< script type = "text/javascript" src = "metadata/SecretSessionCipher_test.js" > < / script >
2015-03-05 15:25:49 -08:00
< script type = "text/javascript" src = "views/whisper_view_test.js" > < / script >
2014-10-18 15:08:57 +01:00
< script type = "text/javascript" src = "views/list_view_test.js" > < / script >
2017-05-18 18:33:35 -07:00
2020-10-20 19:26:58 -04:00
< script type = "text/javascript" src = "models/conversations_test.js" > < / script >
2017-05-18 18:33:35 -07:00
< script type = "text/javascript" src = "libphonenumber_util_test.js" > < / script >
2015-04-01 13:08:09 -07:00
< script type = "text/javascript" src = "storage_test.js" > < / script >
2017-05-07 14:18:22 -07:00
< script type = "text/javascript" src = "keychange_listener_test.js" > < / script >
2017-07-19 11:59:08 -07:00
< script type = "text/javascript" src = "reliable_trigger_test.js" > < / script >
2017-09-06 18:20:42 -07:00
< script type = "text/javascript" src = "backup_test.js" > < / script >
2018-03-19 12:42:12 -07:00
< script type = "text/javascript" src = "crypto_test.js" > < / script >
2018-03-07 16:16:03 -08:00
< script type = "text/javascript" src = "database_test.js" > < / script >
2017-05-15 14:48:19 -07:00
< script type = "text/javascript" src = "i18n_test.js" > < / script >
2020-07-10 13:48:42 -04:00
< script type = "text/javascript" src = "protobuf_test.js" > < / script >
2020-08-17 14:59:46 -05:00
< script type = "text/javascript" src = "stickers_test.js" > < / script >
2016-09-22 16:37:12 -07:00
2017-07-05 16:31:06 -07:00
<!-- Comment out to turn off code coverage. Useful for getting real callstacks. -->
2018-05-25 18:01:56 -07:00
<!-- NOTE: blanket doesn't support modern syntax and will choke until we find a replacement. :0( -->
2017-07-05 16:31:06 -07:00
<!-- <script type="text/javascript" src="blanket_mocha.js"></script> -->
<!-- Uncomment to start tests without code coverage enabled -->
2017-05-18 11:10:52 -07:00
< script type = "text/javascript" >
2020-07-10 11:28:49 -07:00
window.Signal.conversationControllerStart();
2020-09-28 18:46:31 -05:00
window.test.pendingDescribeCalls.forEach(args => {
describe(...args);
});
2017-05-18 11:10:52 -07:00
mocha.run();
< / script >
2014-09-01 11:52:58 -07:00
< / body >
< / html >