mirror of
https://github.com/PrivateBin/PrivateBin.git
synced 2026-04-19 21:58:08 -04:00
Merge remote-tracking branch 'origin/js-unit-readability' into eslint
This commit is contained in:
@@ -1,2 +0,0 @@
|
|||||||
js/*.js
|
|
||||||
!js/privatebin.js
|
|
||||||
@@ -1,236 +0,0 @@
|
|||||||
---
|
|
||||||
parserOptions:
|
|
||||||
ecmaVersion: 2017
|
|
||||||
|
|
||||||
ecmaFeatures:
|
|
||||||
modules: true
|
|
||||||
jsx: true
|
|
||||||
|
|
||||||
env:
|
|
||||||
amd: true
|
|
||||||
browser: true
|
|
||||||
es6: true
|
|
||||||
jquery: true
|
|
||||||
node: true
|
|
||||||
mocha: true
|
|
||||||
|
|
||||||
globals:
|
|
||||||
DOMPurify: readonly
|
|
||||||
cleanup: writable
|
|
||||||
describe: readonly
|
|
||||||
jsc: readonly
|
|
||||||
jsdom: writable
|
|
||||||
kjua: writable
|
|
||||||
WebCrypto: writable
|
|
||||||
|
|
||||||
# http://eslint.org/docs/rules/
|
|
||||||
rules:
|
|
||||||
# Possible Errors
|
|
||||||
comma-dangle:
|
|
||||||
- error
|
|
||||||
- never
|
|
||||||
no-cond-assign: 2
|
|
||||||
no-console: 0
|
|
||||||
no-constant-condition: 2
|
|
||||||
no-control-regex: 2
|
|
||||||
no-debugger: 2
|
|
||||||
no-dupe-args: 2
|
|
||||||
no-dupe-keys: 2
|
|
||||||
no-duplicate-case: 2
|
|
||||||
no-empty: 2
|
|
||||||
no-empty-character-class: 2
|
|
||||||
no-ex-assign: 2
|
|
||||||
no-extra-boolean-cast: 2
|
|
||||||
no-extra-parens: 0
|
|
||||||
no-extra-semi: 2
|
|
||||||
no-func-assign: 2
|
|
||||||
no-inner-declarations:
|
|
||||||
- error
|
|
||||||
- functions
|
|
||||||
no-invalid-regexp: 2
|
|
||||||
no-irregular-whitespace: 2
|
|
||||||
no-negated-in-lhs: 2
|
|
||||||
no-obj-calls: 2
|
|
||||||
no-regex-spaces: 2
|
|
||||||
no-sparse-arrays: 2
|
|
||||||
no-unexpected-multiline: 2
|
|
||||||
no-unreachable: 2
|
|
||||||
use-isnan: 2
|
|
||||||
valid-jsdoc: 0
|
|
||||||
valid-typeof: 2
|
|
||||||
|
|
||||||
# Best Practices
|
|
||||||
accessor-pairs: 2
|
|
||||||
block-scoped-var: 0
|
|
||||||
complexity:
|
|
||||||
- error
|
|
||||||
- 20
|
|
||||||
consistent-return: 0
|
|
||||||
curly: 0
|
|
||||||
default-case: 0
|
|
||||||
dot-location: 0
|
|
||||||
dot-notation: 0
|
|
||||||
eqeqeq: 2
|
|
||||||
guard-for-in: 2
|
|
||||||
no-alert: 0
|
|
||||||
no-caller: 2
|
|
||||||
no-case-declarations: 2
|
|
||||||
no-div-regex: 2
|
|
||||||
no-else-return: 0
|
|
||||||
no-empty-pattern: 2
|
|
||||||
no-eq-null: 2
|
|
||||||
no-eval: 2
|
|
||||||
no-extend-native: 2
|
|
||||||
no-extra-bind: 2
|
|
||||||
no-fallthrough: 2
|
|
||||||
no-floating-decimal: 0
|
|
||||||
no-implicit-coercion: 0
|
|
||||||
no-implied-eval: 2
|
|
||||||
no-invalid-this: 0
|
|
||||||
no-iterator: 2
|
|
||||||
no-labels: 0
|
|
||||||
no-lone-blocks: 2
|
|
||||||
no-loop-func: 2
|
|
||||||
no-magic-number: 0
|
|
||||||
no-multi-spaces: 0
|
|
||||||
no-multi-str: 0
|
|
||||||
no-native-reassign: 2
|
|
||||||
no-new-func: 2
|
|
||||||
no-new-wrappers: 2
|
|
||||||
no-new: 2
|
|
||||||
no-octal-escape: 2
|
|
||||||
no-octal: 2
|
|
||||||
no-proto: 2
|
|
||||||
no-redeclare: 0
|
|
||||||
no-return-assign: 2
|
|
||||||
no-script-url: 2
|
|
||||||
no-self-compare: 2
|
|
||||||
no-sequences: 0
|
|
||||||
no-throw-literal: 0
|
|
||||||
no-unused-expressions: 2
|
|
||||||
no-useless-call: 2
|
|
||||||
no-useless-concat: 2
|
|
||||||
no-void: 2
|
|
||||||
no-warning-comments: 0
|
|
||||||
no-with: 2
|
|
||||||
radix: 2
|
|
||||||
vars-on-top: 0
|
|
||||||
wrap-iife: 0
|
|
||||||
yoda: 0
|
|
||||||
|
|
||||||
# Strict
|
|
||||||
strict: 0
|
|
||||||
|
|
||||||
# Variables
|
|
||||||
init-declarations: 0
|
|
||||||
no-catch-shadow: 2
|
|
||||||
no-delete-var: 2
|
|
||||||
no-label-var: 2
|
|
||||||
no-shadow-restricted-names: 2
|
|
||||||
no-shadow: 0
|
|
||||||
no-undef-init: 2
|
|
||||||
no-undef: 0
|
|
||||||
no-undefined: 0
|
|
||||||
no-unused-vars: 0
|
|
||||||
no-use-before-define: 0
|
|
||||||
|
|
||||||
# Node.js and CommonJS
|
|
||||||
callback-return: 2
|
|
||||||
global-require: 2
|
|
||||||
handle-callback-err: 2
|
|
||||||
no-mixed-requires: 0
|
|
||||||
no-new-require: 0
|
|
||||||
no-path-concat: 2
|
|
||||||
no-process-exit: 2
|
|
||||||
no-restricted-modules: 0
|
|
||||||
no-sync: 0
|
|
||||||
|
|
||||||
# Stylistic Issues
|
|
||||||
array-bracket-spacing: 0
|
|
||||||
block-spacing: 0
|
|
||||||
brace-style: 0
|
|
||||||
camelcase: 0
|
|
||||||
comma-spacing: 0
|
|
||||||
comma-style: 0
|
|
||||||
computed-property-spacing: 0
|
|
||||||
consistent-this: 0
|
|
||||||
eol-last: 0
|
|
||||||
func-names: 0
|
|
||||||
func-style: 0
|
|
||||||
id-length: 0
|
|
||||||
id-match: 0
|
|
||||||
indent: 0
|
|
||||||
jsx-quotes: 0
|
|
||||||
key-spacing: 0
|
|
||||||
linebreak-style: 0
|
|
||||||
lines-around-comment: 0
|
|
||||||
max-depth: 0
|
|
||||||
max-len: 0
|
|
||||||
max-nested-callbacks: 0
|
|
||||||
max-params: 0
|
|
||||||
max-statements:
|
|
||||||
- error
|
|
||||||
- 60
|
|
||||||
new-cap: 0
|
|
||||||
new-parens: 0
|
|
||||||
newline-after-var: 0
|
|
||||||
no-array-constructor: 0
|
|
||||||
no-bitwise: 0
|
|
||||||
no-continue: 0
|
|
||||||
no-inline-comments: 0
|
|
||||||
no-lonely-if: 0
|
|
||||||
no-mixed-spaces-and-tabs: 0
|
|
||||||
no-multiple-empty-lines: 0
|
|
||||||
no-negated-condition: 0
|
|
||||||
no-nested-ternary: 0
|
|
||||||
no-new-object: 0
|
|
||||||
no-plusplus: 0
|
|
||||||
no-restricted-syntax: 0
|
|
||||||
no-spaced-func: 0
|
|
||||||
no-ternary: 0
|
|
||||||
no-trailing-spaces: 0
|
|
||||||
no-underscore-dangle: 0
|
|
||||||
no-unneeded-ternary: 0
|
|
||||||
object-curly-spacing: 0
|
|
||||||
one-var: 0
|
|
||||||
operator-assignment: 0
|
|
||||||
operator-linebreak: 0
|
|
||||||
padded-blocks: 0
|
|
||||||
quote-props: 0
|
|
||||||
quotes:
|
|
||||||
- error
|
|
||||||
- single
|
|
||||||
require-jsdoc: 0
|
|
||||||
semi-spacing: 0
|
|
||||||
semi: 0
|
|
||||||
sort-vars: 0
|
|
||||||
space-after-keywords: 0
|
|
||||||
space-before-blocks: 0
|
|
||||||
space-before-function-paren: 0
|
|
||||||
space-before-keywords: 0
|
|
||||||
space-in-parens: 0
|
|
||||||
space-infix-ops: 0
|
|
||||||
space-return-throw-case: 0
|
|
||||||
space-unary-ops: 0
|
|
||||||
spaced-comment: 0
|
|
||||||
wrap-regex: 0
|
|
||||||
|
|
||||||
# ECMAScript 6
|
|
||||||
arrow-body-style: 0
|
|
||||||
arrow-parens: 0
|
|
||||||
arrow-spacing: 0
|
|
||||||
constructor-super: 0
|
|
||||||
generator-star-spacing: 0
|
|
||||||
no-arrow-condition: 0
|
|
||||||
no-class-assign: 0
|
|
||||||
no-const-assign: 0
|
|
||||||
no-dupe-class-members: 0
|
|
||||||
no-this-before-super: 0
|
|
||||||
no-var: 0
|
|
||||||
object-shorthand: 0
|
|
||||||
prefer-arrow-callback: 0
|
|
||||||
prefer-const: 0
|
|
||||||
prefer-reflect: 0
|
|
||||||
prefer-spread: 0
|
|
||||||
prefer-template: 0
|
|
||||||
require-yield: 0
|
|
||||||
+1
-2
@@ -12,8 +12,6 @@ js/test/ export-ignore
|
|||||||
.csslintrc export-ignore
|
.csslintrc export-ignore
|
||||||
.devcontainer export-ignore
|
.devcontainer export-ignore
|
||||||
.editorconfig export-ignore
|
.editorconfig export-ignore
|
||||||
.eslintignore export-ignore
|
|
||||||
.eslintrc export-ignore
|
|
||||||
.gitattributes export-ignore
|
.gitattributes export-ignore
|
||||||
.github export-ignore
|
.github export-ignore
|
||||||
.gitignore export-ignore
|
.gitignore export-ignore
|
||||||
@@ -26,6 +24,7 @@ js/test/ export-ignore
|
|||||||
.vscode export-ignore
|
.vscode export-ignore
|
||||||
codacy-analysis.yml export-ignore
|
codacy-analysis.yml export-ignore
|
||||||
crowdin.yml export-ignore
|
crowdin.yml export-ignore
|
||||||
|
eslint.config.mjs export-ignore
|
||||||
BADGES.md export-ignore
|
BADGES.md export-ignore
|
||||||
CODE_OF_CONDUCT.md export-ignore
|
CODE_OF_CONDUCT.md export-ignore
|
||||||
Makefile export-ignore
|
Makefile export-ignore
|
||||||
|
|||||||
@@ -0,0 +1,213 @@
|
|||||||
|
import { defineConfig, globalIgnores } from "eslint/config";
|
||||||
|
import globals from "globals";
|
||||||
|
|
||||||
|
export default defineConfig([globalIgnores(["js/*.js", "!js/privatebin.js"]), {
|
||||||
|
languageOptions: {
|
||||||
|
globals: {
|
||||||
|
...globals.amd,
|
||||||
|
...globals.browser,
|
||||||
|
...globals.jquery,
|
||||||
|
...globals.node,
|
||||||
|
...globals.mocha,
|
||||||
|
DOMPurify: "readonly",
|
||||||
|
cleanup: "writable",
|
||||||
|
describe: "readonly",
|
||||||
|
jsc: "readonly",
|
||||||
|
jsdom: "writable",
|
||||||
|
kjua: "writable",
|
||||||
|
WebCrypto: "writable",
|
||||||
|
},
|
||||||
|
|
||||||
|
ecmaVersion: 2017,
|
||||||
|
sourceType: "commonjs",
|
||||||
|
},
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
"comma-dangle": ["error", "never"],
|
||||||
|
"no-cond-assign": 2,
|
||||||
|
"no-console": 0,
|
||||||
|
"no-constant-condition": 2,
|
||||||
|
"no-control-regex": 2,
|
||||||
|
"no-debugger": 2,
|
||||||
|
"no-dupe-args": 2,
|
||||||
|
"no-dupe-keys": 2,
|
||||||
|
"no-duplicate-case": 2,
|
||||||
|
"no-empty": 2,
|
||||||
|
"no-empty-character-class": 2,
|
||||||
|
"no-ex-assign": 2,
|
||||||
|
"no-extra-boolean-cast": 2,
|
||||||
|
"no-extra-parens": 0,
|
||||||
|
"no-extra-semi": 2,
|
||||||
|
"no-func-assign": 2,
|
||||||
|
"no-inner-declarations": ["error", "functions"],
|
||||||
|
"no-invalid-regexp": 2,
|
||||||
|
"no-irregular-whitespace": 2,
|
||||||
|
"no-negated-in-lhs": 2,
|
||||||
|
"no-obj-calls": 2,
|
||||||
|
"no-regex-spaces": 2,
|
||||||
|
"no-sparse-arrays": 2,
|
||||||
|
"no-unexpected-multiline": 2,
|
||||||
|
"no-unreachable": 2,
|
||||||
|
"use-isnan": 2,
|
||||||
|
"valid-jsdoc": 0,
|
||||||
|
"valid-typeof": 2,
|
||||||
|
"accessor-pairs": 2,
|
||||||
|
"block-scoped-var": 0,
|
||||||
|
complexity: ["error", 20],
|
||||||
|
"consistent-return": 0,
|
||||||
|
curly: 0,
|
||||||
|
"default-case": 0,
|
||||||
|
"dot-location": 0,
|
||||||
|
"dot-notation": 0,
|
||||||
|
eqeqeq: 2,
|
||||||
|
"guard-for-in": 2,
|
||||||
|
"no-alert": 0,
|
||||||
|
"no-caller": 2,
|
||||||
|
"no-case-declarations": 2,
|
||||||
|
"no-div-regex": 2,
|
||||||
|
"no-else-return": 0,
|
||||||
|
"no-empty-pattern": 2,
|
||||||
|
"no-eq-null": 2,
|
||||||
|
"no-eval": 2,
|
||||||
|
"no-extend-native": 2,
|
||||||
|
"no-extra-bind": 2,
|
||||||
|
"no-fallthrough": 2,
|
||||||
|
"no-floating-decimal": 0,
|
||||||
|
"no-implicit-coercion": 0,
|
||||||
|
"no-implied-eval": 2,
|
||||||
|
"no-invalid-this": 0,
|
||||||
|
"no-iterator": 2,
|
||||||
|
"no-labels": 0,
|
||||||
|
"no-lone-blocks": 2,
|
||||||
|
"no-loop-func": 2,
|
||||||
|
"no-magic-number": 0,
|
||||||
|
"no-multi-spaces": 0,
|
||||||
|
"no-multi-str": 0,
|
||||||
|
"no-native-reassign": 2,
|
||||||
|
"no-new-func": 2,
|
||||||
|
"no-new-wrappers": 2,
|
||||||
|
"no-new": 2,
|
||||||
|
"no-octal-escape": 2,
|
||||||
|
"no-octal": 2,
|
||||||
|
"no-proto": 2,
|
||||||
|
"no-redeclare": 0,
|
||||||
|
"no-return-assign": 2,
|
||||||
|
"no-script-url": 2,
|
||||||
|
"no-self-compare": 2,
|
||||||
|
"no-sequences": 0,
|
||||||
|
"no-throw-literal": 0,
|
||||||
|
"no-unused-expressions": 2,
|
||||||
|
"no-useless-call": 2,
|
||||||
|
"no-useless-concat": 2,
|
||||||
|
"no-void": 2,
|
||||||
|
"no-warning-comments": 0,
|
||||||
|
"no-with": 2,
|
||||||
|
radix: 2,
|
||||||
|
"vars-on-top": 0,
|
||||||
|
"wrap-iife": 0,
|
||||||
|
yoda: 0,
|
||||||
|
strict: 0,
|
||||||
|
"init-declarations": 0,
|
||||||
|
"no-catch-shadow": 2,
|
||||||
|
"no-delete-var": 2,
|
||||||
|
"no-label-var": 2,
|
||||||
|
"no-shadow-restricted-names": 2,
|
||||||
|
"no-shadow": 0,
|
||||||
|
"no-undef-init": 2,
|
||||||
|
"no-undef": 0,
|
||||||
|
"no-undefined": 0,
|
||||||
|
"no-unused-vars": 0,
|
||||||
|
"no-use-before-define": 0,
|
||||||
|
"callback-return": 2,
|
||||||
|
"global-require": 2,
|
||||||
|
"handle-callback-err": 2,
|
||||||
|
"no-mixed-requires": 0,
|
||||||
|
"no-new-require": 0,
|
||||||
|
"no-path-concat": 2,
|
||||||
|
"no-process-exit": 2,
|
||||||
|
"no-restricted-modules": 0,
|
||||||
|
"no-sync": 0,
|
||||||
|
"array-bracket-spacing": 0,
|
||||||
|
"block-spacing": 0,
|
||||||
|
"brace-style": 0,
|
||||||
|
camelcase: 0,
|
||||||
|
"comma-spacing": 0,
|
||||||
|
"comma-style": 0,
|
||||||
|
"computed-property-spacing": 0,
|
||||||
|
"consistent-this": 0,
|
||||||
|
"eol-last": 0,
|
||||||
|
"func-names": 0,
|
||||||
|
"func-style": 0,
|
||||||
|
"id-length": 0,
|
||||||
|
"id-match": 0,
|
||||||
|
indent: 0,
|
||||||
|
"jsx-quotes": 0,
|
||||||
|
"key-spacing": 0,
|
||||||
|
"linebreak-style": 0,
|
||||||
|
"lines-around-comment": 0,
|
||||||
|
"max-depth": 0,
|
||||||
|
"max-len": 0,
|
||||||
|
"max-nested-callbacks": 0,
|
||||||
|
"max-params": 0,
|
||||||
|
"max-statements": ["error", 60],
|
||||||
|
"new-cap": 0,
|
||||||
|
"new-parens": 0,
|
||||||
|
"newline-after-var": 0,
|
||||||
|
"no-array-constructor": 0,
|
||||||
|
"no-bitwise": 0,
|
||||||
|
"no-continue": 0,
|
||||||
|
"no-inline-comments": 0,
|
||||||
|
"no-lonely-if": 0,
|
||||||
|
"no-mixed-spaces-and-tabs": 0,
|
||||||
|
"no-multiple-empty-lines": 0,
|
||||||
|
"no-negated-condition": 0,
|
||||||
|
"no-nested-ternary": 0,
|
||||||
|
"no-new-object": 0,
|
||||||
|
"no-plusplus": 0,
|
||||||
|
"no-restricted-syntax": 0,
|
||||||
|
"no-spaced-func": 0,
|
||||||
|
"no-ternary": 0,
|
||||||
|
"no-trailing-spaces": 0,
|
||||||
|
"no-underscore-dangle": 0,
|
||||||
|
"no-unneeded-ternary": 0,
|
||||||
|
"object-curly-spacing": 0,
|
||||||
|
"one-var": 0,
|
||||||
|
"operator-assignment": 0,
|
||||||
|
"operator-linebreak": 0,
|
||||||
|
"padded-blocks": 0,
|
||||||
|
"quote-props": 0,
|
||||||
|
quotes: ["error", "single"],
|
||||||
|
"require-jsdoc": 0,
|
||||||
|
"semi-spacing": 0,
|
||||||
|
semi: 0,
|
||||||
|
"sort-vars": 0,
|
||||||
|
"space-after-keywords": 0,
|
||||||
|
"space-before-blocks": 0,
|
||||||
|
"space-before-function-paren": 0,
|
||||||
|
"space-before-keywords": 0,
|
||||||
|
"space-in-parens": 0,
|
||||||
|
"space-infix-ops": 0,
|
||||||
|
"space-return-throw-case": 0,
|
||||||
|
"space-unary-ops": 0,
|
||||||
|
"spaced-comment": 0,
|
||||||
|
"wrap-regex": 0,
|
||||||
|
"arrow-body-style": 0,
|
||||||
|
"arrow-parens": 0,
|
||||||
|
"arrow-spacing": 0,
|
||||||
|
"constructor-super": 0,
|
||||||
|
"generator-star-spacing": 0,
|
||||||
|
"no-arrow-condition": 0,
|
||||||
|
"no-class-assign": 0,
|
||||||
|
"no-const-assign": 0,
|
||||||
|
"no-dupe-class-members": 0,
|
||||||
|
"no-this-before-super": 0,
|
||||||
|
"no-var": 0,
|
||||||
|
"object-shorthand": 0,
|
||||||
|
"prefer-arrow-callback": 0,
|
||||||
|
"prefer-const": 0,
|
||||||
|
"prefer-reflect": 0,
|
||||||
|
"prefer-spread": 0,
|
||||||
|
"prefer-template": 0,
|
||||||
|
"require-yield": 0,
|
||||||
|
},
|
||||||
|
}]);
|
||||||
@@ -246,6 +246,11 @@
|
|||||||
*/
|
*/
|
||||||
me.init = function()
|
me.init = function()
|
||||||
{
|
{
|
||||||
|
// prevent early init
|
||||||
|
if (typeof document === 'undefined' || typeof navigator === 'undefined' || typeof window === 'undefined') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// prevent bots from viewing a document and potentially deleting data
|
// prevent bots from viewing a document and potentially deleting data
|
||||||
// when burn-after-reading is set
|
// when burn-after-reading is set
|
||||||
if (isBadBot()) {
|
if (isBadBot()) {
|
||||||
|
|||||||
@@ -10,8 +10,6 @@
|
|||||||
* @namespace
|
* @namespace
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// global Base64, DOMPurify, FileReader, baseX, bootstrap, history, navigator, prettyPrint, prettyPrintOne, showdown, kjua
|
|
||||||
|
|
||||||
jQuery.fn.draghover = function() {
|
jQuery.fn.draghover = function() {
|
||||||
'use strict';
|
'use strict';
|
||||||
return this.each(function() {
|
return this.each(function() {
|
||||||
|
|||||||
+4
-9
@@ -306,10 +306,8 @@ describe('Alert', function () {
|
|||||||
$('body').addClass('loading');
|
$('body').addClass('loading');
|
||||||
$.PrivateBin.Alert.init();
|
$.PrivateBin.Alert.init();
|
||||||
$.PrivateBin.Alert.hideLoading();
|
$.PrivateBin.Alert.hideLoading();
|
||||||
assert.ok(
|
assert.ok(!$('body').hasClass('loading'));
|
||||||
!$('body').hasClass('loading') &&
|
assert.ok($('#loadingindicator').hasClass('hidden'));
|
||||||
$('#loadingindicator').hasClass('hidden')
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -328,10 +326,8 @@ describe('Alert', function () {
|
|||||||
);
|
);
|
||||||
$.PrivateBin.Alert.init();
|
$.PrivateBin.Alert.init();
|
||||||
$.PrivateBin.Alert.hideMessages();
|
$.PrivateBin.Alert.hideMessages();
|
||||||
assert.ok(
|
assert.ok($('#status').hasClass('hidden'));
|
||||||
$('#status').hasClass('hidden') &&
|
assert.ok($('#errormessage').hasClass('hidden'));
|
||||||
$('#errormessage').hasClass('hidden')
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -381,4 +377,3 @@ describe('Alert', function () {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
+10
-3
@@ -50,7 +50,11 @@ describe('Check', function () {
|
|||||||
result2 = isSecureContext === (document.getElementById('insecurecontextnotice').className === 'hidden'),
|
result2 = isSecureContext === (document.getElementById('insecurecontextnotice').className === 'hidden'),
|
||||||
result3 = (document.getElementById('oldnotice').className !== 'hidden');
|
result3 = (document.getElementById('oldnotice').className !== 'hidden');
|
||||||
clean();
|
clean();
|
||||||
return result1 && result2 && result3;
|
if (result1 && result2 && result3) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
console.log(result1, result2, result3);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -74,9 +78,12 @@ describe('Check', function () {
|
|||||||
const result1 = Legacy.Check.getInit() && Legacy.Check.getStatus(),
|
const result1 = Legacy.Check.getInit() && Legacy.Check.getStatus(),
|
||||||
result2 = secureProtocol === (document.getElementById('httpnotice').className === 'hidden');
|
result2 = secureProtocol === (document.getElementById('httpnotice').className === 'hidden');
|
||||||
clean();
|
clean();
|
||||||
return result1 && result2;
|
if (result1 && result2) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
console.log(result1, result2);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -58,9 +58,10 @@ describe('CryptTool', function () {
|
|||||||
'foo', 'bar', cipherMessage
|
'foo', 'bar', cipherMessage
|
||||||
);
|
);
|
||||||
clean();
|
clean();
|
||||||
const result = (message === plaintext);
|
if (message !== plaintext) {
|
||||||
if (!result) console.log(plaintext, cipherMessage);
|
console.log(plaintext, cipherMessage);
|
||||||
assert.ok(result);
|
}
|
||||||
|
assert.strictEqual(message, plaintext);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can en- and decrypt a particular message (#260)', function () {
|
it('can en- and decrypt a particular message (#260)', function () {
|
||||||
|
|||||||
@@ -217,10 +217,8 @@ describe('PasteStatus', function () {
|
|||||||
);
|
);
|
||||||
$.PrivateBin.PasteStatus.init();
|
$.PrivateBin.PasteStatus.init();
|
||||||
$.PrivateBin.PasteStatus.hideMessages();
|
$.PrivateBin.PasteStatus.hideMessages();
|
||||||
assert.ok(
|
assert.ok($('#remainingtime').hasClass('hidden'));
|
||||||
$('#remainingtime').hasClass('hidden') &&
|
assert.ok($('#pastesuccess').hasClass('hidden'));
|
||||||
$('#pastesuccess').hasClass('hidden')
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
+91
-27
@@ -52,7 +52,11 @@ describe('TopNav', function () {
|
|||||||
$('#qrcodelink').hasClass('hidden')
|
$('#qrcodelink').hasClass('hidden')
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -113,7 +117,11 @@ describe('TopNav', function () {
|
|||||||
$('#attach').hasClass('hidden')
|
$('#attach').hasClass('hidden')
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -140,7 +148,11 @@ describe('TopNav', function () {
|
|||||||
!$('#newbutton').hasClass('hidden')
|
!$('#newbutton').hasClass('hidden')
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -169,7 +181,11 @@ describe('TopNav', function () {
|
|||||||
$('#clonebutton').hasClass('hidden')
|
$('#clonebutton').hasClass('hidden')
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -199,7 +215,11 @@ describe('TopNav', function () {
|
|||||||
$('#rawtextbutton').hasClass('hidden')
|
$('#rawtextbutton').hasClass('hidden')
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -233,7 +253,11 @@ describe('TopNav', function () {
|
|||||||
$('#filewrap').hasClass('hidden')
|
$('#filewrap').hasClass('hidden')
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -267,7 +291,11 @@ describe('TopNav', function () {
|
|||||||
!$('#customattachment').hasClass('hidden')
|
!$('#customattachment').hasClass('hidden')
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -318,7 +346,11 @@ describe('TopNav', function () {
|
|||||||
);
|
);
|
||||||
*/
|
*/
|
||||||
clean();
|
clean();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -364,7 +396,11 @@ describe('TopNav', function () {
|
|||||||
!$.PrivateBin.TopNav.getOpenDiscussion()
|
!$.PrivateBin.TopNav.getOpenDiscussion()
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -403,7 +439,11 @@ describe('TopNav', function () {
|
|||||||
!$.PrivateBin.TopNav.getOpenDiscussion()
|
!$.PrivateBin.TopNav.getOpenDiscussion()
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -443,7 +483,11 @@ describe('TopNav', function () {
|
|||||||
$.PrivateBin.TopNav.getOpenDiscussion()
|
$.PrivateBin.TopNav.getOpenDiscussion()
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -462,7 +506,7 @@ describe('TopNav', function () {
|
|||||||
'<option value="never">Never</option></select>'
|
'<option value="never">Never</option></select>'
|
||||||
);
|
);
|
||||||
$.PrivateBin.TopNav.init();
|
$.PrivateBin.TopNav.init();
|
||||||
assert.ok($.PrivateBin.TopNav.getExpiration() === '1day');
|
assert.strictEqual($.PrivateBin.TopNav.getExpiration(), '1day');
|
||||||
cleanup();
|
cleanup();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -491,25 +535,25 @@ describe('TopNav', function () {
|
|||||||
lastModified,
|
lastModified,
|
||||||
type: mime.lookup(file_path) || '',
|
type: mime.lookup(file_path) || '',
|
||||||
}
|
}
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function addFileList(input, file_paths) {
|
function addFileList(input, file_paths) {
|
||||||
if (typeof file_paths === 'string')
|
if (typeof file_paths === 'string') {
|
||||||
file_paths = [file_paths]
|
file_paths = [file_paths];
|
||||||
else if (!Array.isArray(file_paths)) {
|
} else if (!Array.isArray(file_paths)) {
|
||||||
throw new Error('file_paths needs to be a file path string or an Array of file path strings')
|
throw new Error('file_paths needs to be a file path string or an Array of file path strings');
|
||||||
}
|
}
|
||||||
|
|
||||||
const file_list = file_paths.map(fp => createFile(fp))
|
const file_list = file_paths.map(fp => createFile(fp));
|
||||||
file_list.__proto__ = Object.create(FileList.prototype)
|
file_list.__proto__ = Object.create(FileList.prototype);
|
||||||
|
|
||||||
Object.defineProperty(input, 'files', {
|
Object.defineProperty(input, 'files', {
|
||||||
value: file_list,
|
value: file_list,
|
||||||
writeable: false,
|
writeable: false,
|
||||||
})
|
});
|
||||||
|
|
||||||
return input
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
it(
|
it(
|
||||||
@@ -541,7 +585,11 @@ describe('TopNav', function () {
|
|||||||
files[1].name === 'busy.gif'
|
files[1].name === 'busy.gif'
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -574,7 +622,11 @@ describe('TopNav', function () {
|
|||||||
!$.PrivateBin.TopNav.getBurnAfterReading()
|
!$.PrivateBin.TopNav.getBurnAfterReading()
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -607,7 +659,11 @@ describe('TopNav', function () {
|
|||||||
!$.PrivateBin.TopNav.getOpenDiscussion()
|
!$.PrivateBin.TopNav.getOpenDiscussion()
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -642,7 +698,11 @@ describe('TopNav', function () {
|
|||||||
$.PrivateBin.TopNav.getPassword() === ''
|
$.PrivateBin.TopNav.getPassword() === ''
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
return results.every(element => element);
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -676,7 +736,11 @@ describe('TopNav', function () {
|
|||||||
$.PrivateBin.TopNav.getCustomAttachment().hasClass('test')
|
$.PrivateBin.TopNav.getCustomAttachment().hasClass('test')
|
||||||
);
|
);
|
||||||
cleanup();
|
cleanup();
|
||||||
assert.ok(results.every(element => element));
|
const result = results.every(element => element);
|
||||||
|
if (!result) {
|
||||||
|
console.log(results);
|
||||||
|
}
|
||||||
|
assert.ok(result);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -738,7 +802,7 @@ describe('TopNav', function () {
|
|||||||
$.PrivateBin.Helper.reset();
|
$.PrivateBin.Helper.reset();
|
||||||
$.PrivateBin.TopNav.init();
|
$.PrivateBin.TopNav.init();
|
||||||
$('#rawtextbutton').click();
|
$('#rawtextbutton').click();
|
||||||
assert.equal($('pre').text(), sample);
|
assert.strictEqual($('pre').text(), sample);
|
||||||
clean();
|
clean();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ function stubWinOpen($element) {
|
|||||||
|
|
||||||
// Extract and decode the body from a "mailto:?body=..." URL.
|
// Extract and decode the body from a "mailto:?body=..." URL.
|
||||||
function extractMailtoBody(mailtoUrl) {
|
function extractMailtoBody(mailtoUrl) {
|
||||||
assert.ok(/^mailto:\?body=/.test(mailtoUrl), 'expected a mailto:?body= URL');
|
assert.match(mailtoUrl, /^mailto:\?body=/, 'expected a mailto:?body= URL');
|
||||||
return decodeURIComponent(mailtoUrl.replace(/^mailto:\?body=/, ''));
|
return decodeURIComponent(mailtoUrl.replace(/^mailto:\?body=/, ''));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,8 +104,8 @@ describe('Email - mail body content (short URL vs. fallback)', function () {
|
|||||||
assert.ok(openedUrl, 'window.open should have been called');
|
assert.ok(openedUrl, 'window.open should have been called');
|
||||||
|
|
||||||
const body = extractMailtoBody(openedUrl);
|
const body = extractMailtoBody(openedUrl);
|
||||||
assert.ok(body.includes('https://short.example/xYz'), 'email body should include the short URL');
|
assert.match(body, /https:\/\/short\.example\/xYz/, 'email body should include the short URL');
|
||||||
assert.ok(!body.includes('undefined'), 'email body must not contain "undefined"');
|
assert.doesNotMatch(body, /undefined/, 'email body must not contain "undefined"');
|
||||||
} finally {
|
} finally {
|
||||||
restore();
|
restore();
|
||||||
cleanup();
|
cleanup();
|
||||||
@@ -127,8 +127,8 @@ describe('Email - mail body content (short URL vs. fallback)', function () {
|
|||||||
assert.ok(openedUrl, 'window.open should have been called');
|
assert.ok(openedUrl, 'window.open should have been called');
|
||||||
|
|
||||||
const body = extractMailtoBody(openedUrl);
|
const body = extractMailtoBody(openedUrl);
|
||||||
assert.ok(body.includes(win.location.href), 'email body should include the fallback page URL');
|
assert.match(body, new RegExp(win.location.href), 'email body should include the fallback page URL');
|
||||||
assert.ok(!body.includes('undefined'), 'email body must not contain "undefined"');
|
assert.doesNotMatch(body, /undefined/, 'email body must not contain "undefined"');
|
||||||
} finally {
|
} finally {
|
||||||
restore();
|
restore();
|
||||||
cleanup();
|
cleanup();
|
||||||
|
|||||||
@@ -119,9 +119,9 @@ class Configuration
|
|||||||
'js/dark-mode-switch.js' => 'sha512-BhY7dNU14aDN5L+muoUmA66x0CkYUWkQT0nxhKBLP/o2d7jE025+dvWJa4OiYffBGEFgmhrD/Sp+QMkxGMTz2g==',
|
'js/dark-mode-switch.js' => 'sha512-BhY7dNU14aDN5L+muoUmA66x0CkYUWkQT0nxhKBLP/o2d7jE025+dvWJa4OiYffBGEFgmhrD/Sp+QMkxGMTz2g==',
|
||||||
'js/jquery-3.7.1.js' => 'sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==',
|
'js/jquery-3.7.1.js' => 'sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==',
|
||||||
'js/kjua-0.10.0.js' => 'sha512-BYj4xggowR7QD150VLSTRlzH62YPfhpIM+b/1EUEr7RQpdWAGKulxWnOvjFx1FUlba4m6ihpNYuQab51H6XlYg==',
|
'js/kjua-0.10.0.js' => 'sha512-BYj4xggowR7QD150VLSTRlzH62YPfhpIM+b/1EUEr7RQpdWAGKulxWnOvjFx1FUlba4m6ihpNYuQab51H6XlYg==',
|
||||||
'js/legacy.js' => 'sha512-mXAgFn/DonfPANvPO6Kf08zRKCeQ75jXK69gcUUOpPLFkp3KHnDhnvij8nEJxlutD/670Bfi4RNMG6uEjA4nNQ==',
|
'js/legacy.js' => 'sha512-rGXYUpIqbFoHAgBXZ0UlJBdNAIMOC9EQ67MG0X46D5uRB8LvwzgKirbSQRGdYfk8I2jsUcm+tvHXYboUnC6DUg==',
|
||||||
'js/prettify.js' => 'sha512-puO0Ogy++IoA2Pb9IjSxV1n4+kQkKXYAEUtVzfZpQepyDPyXk8hokiYDS7ybMogYlyyEIwMLpZqVhCkARQWLMg==',
|
'js/prettify.js' => 'sha512-puO0Ogy++IoA2Pb9IjSxV1n4+kQkKXYAEUtVzfZpQepyDPyXk8hokiYDS7ybMogYlyyEIwMLpZqVhCkARQWLMg==',
|
||||||
'js/privatebin.js' => 'sha512-Id47n8ZPz6j93KoR7DkaS48MxtwKftVq3RyZw9WRGpRT+6bYKP/ZkU84RscbcW3icxBTS9fQKQpdnmZ3rr00dQ==',
|
'js/privatebin.js' => 'sha512-11h/j/h3QEv2Qt2zJLbmbbThQDuBisAwY/3dygHKx3h/Or1UZFhw+Q7COpCC7erndNtevTvYRqEEIsKw3tOJLQ==',
|
||||||
'js/purify-3.2.6.js' => 'sha512-zqwL4OoBLFx89QPewkz4Lz5CSA2ktU+f31fuECkF0iK3Id5qd3Zpq5dMby8KwHjIEpsUgOqwF58cnmcaNem0EA==',
|
'js/purify-3.2.6.js' => 'sha512-zqwL4OoBLFx89QPewkz4Lz5CSA2ktU+f31fuECkF0iK3Id5qd3Zpq5dMby8KwHjIEpsUgOqwF58cnmcaNem0EA==',
|
||||||
'js/showdown-2.1.0.js' => 'sha512-WYXZgkTR0u/Y9SVIA4nTTOih0kXMEd8RRV6MLFdL6YU8ymhR528NLlYQt1nlJQbYz4EW+ZsS0fx1awhiQJme1Q==',
|
'js/showdown-2.1.0.js' => 'sha512-WYXZgkTR0u/Y9SVIA4nTTOih0kXMEd8RRV6MLFdL6YU8ymhR528NLlYQt1nlJQbYz4EW+ZsS0fx1awhiQJme1Q==',
|
||||||
'js/zlib-1.3.1-1.js' => 'sha512-5bU9IIP4PgBrOKLZvGWJD4kgfQrkTz8Z3Iqeu058mbQzW3mCumOU6M3UVbVZU9rrVoVwaW4cZK8U8h5xjF88eQ==',
|
'js/zlib-1.3.1-1.js' => 'sha512-5bU9IIP4PgBrOKLZvGWJD4kgfQrkTz8Z3Iqeu058mbQzW3mCumOU6M3UVbVZU9rrVoVwaW4cZK8U8h5xjF88eQ==',
|
||||||
|
|||||||
Reference in New Issue
Block a user