define( [ "qunit", "jquery", "lib/helper", "ui/widgets/checkboxradio" ], function( QUnit, $, helper ) { "use strict"; QUnit.module( "Checkboxradio: options", { afterEach: helper.moduleAfterEach } ); function assertDisabled( checkbox, assert ) { assert.hasClasses( checkbox.checkboxradio( "widget" ), "ui-state-disabled", "label gets ui-state-disabled" ); assert.strictEqual( checkbox.is( ":disabled" ), true, "checkbox is disabled" ); } function assertEnabled( checkbox, assert ) { assert.lacksClasses( checkbox.checkboxradio( "widget" ), "ui-state-disabled", "label has ui-state-disabled removed when disabled set to false" ); assert.strictEqual( checkbox.is( ":disabled" ), false, "checkbox has disabled prop removed when disabled set to false" ); } QUnit.test( "disabled", function( assert ) { assert.expect( 6 ); var checkbox = $( "#checkbox-option-disabled" ); checkbox.checkboxradio( { disabled: true } ); assertDisabled( checkbox, assert ); checkbox.checkboxradio( "option", "disabled", false ); assertEnabled( checkbox, assert ); checkbox.checkboxradio( "option", "disabled", true ); assertDisabled( checkbox, assert ); } ); QUnit.test( "disabled - prop true on init", function( assert ) { assert.expect( 2 ); var checkbox = $( "#checkbox-option-disabled" ); checkbox.prop( "disabled", true ); checkbox.checkboxradio(); assertDisabled( checkbox, assert ); } ); QUnit.test( "disabled - explicit null value, checks the DOM", function( assert ) { assert.expect( 2 ); var checkbox = $( "#checkbox-option-disabled" ); checkbox.prop( "disabled", true ); checkbox.checkboxradio( { disabled: null } ); assertDisabled( checkbox, assert ); } ); function assertNoIcon( assert, checkbox ) { assert.strictEqual( checkbox.checkboxradio( "widget" ).find( "span.ui-icon" ).length, 0, "Label does not contain an icon" ); } function assertIcon( checkbox, icon, assert ) { var iconElement = checkbox.checkboxradio( "widget" ).find( ".ui-icon" ); icon = icon || "blank"; assert.strictEqual( iconElement.length, 1, "Label contains icon" ); assert.hasClasses( iconElement, "ui-checkboxradio-icon ui-corner-all ui-icon " + "ui-icon-background ui-icon-" + icon, "Icon has proper classes" ); if ( icon === "blank" ) { assert.lacksClasses( iconElement, "ui-icon-check ui-state-checked" ); } } QUnit.test( "icon - false on init", function( assert ) { var checkbox = $( "#checkbox-option-icon" ); assert.expect( 1 ); checkbox.checkboxradio( { icon: false } ); assertNoIcon( assert, checkbox ); } ); QUnit.test( "icon - default unchecked", function( assert ) { var checkbox = $( "#checkbox-option-icon" ); assert.expect( 3 ); checkbox.checkboxradio(); assertIcon( checkbox, false, assert ); } ); QUnit.test( "icon - default checked", function( assert ) { var checkbox = $( "#checkbox-option-icon" ).attr( "checked", true ); assert.expect( 2 ); checkbox.checkboxradio(); assertIcon( checkbox, "check ui-state-checked", assert ); } ); QUnit.test( "icon", function( assert ) { var checkbox = $( "#checkbox-option-icon" ); assert.expect( 9 ); checkbox.prop( "checked", true ); checkbox.checkboxradio(); assertIcon( checkbox, "check ui-state-checked", assert ); checkbox.checkboxradio( "option", "icon", false ); assertNoIcon( assert, checkbox ); checkbox.checkboxradio( "option", "icon", true ); assertIcon( checkbox, "check ui-state-checked", assert ); checkbox.checkboxradio( "option", "icon", false ); assertNoIcon( assert, checkbox ); checkbox.checkboxradio( "option", "icon", true ); checkbox.prop( "checked", false ).checkboxradio( "refresh" ); assertIcon( checkbox, false, assert ); } ); QUnit.test( "label - default", function( assert ) { var checkbox = $( "#checkbox-option-label" ), widget; assert.expect( 2 ); checkbox.checkboxradio(); widget = checkbox.checkboxradio( "widget" ); assert.strictEqual( checkbox.checkboxradio( "option", "label" ), "checkbox label", "When no value passed on create text from dom is used for option" ); assert.strictEqual( String.prototype.trim.call( widget.text() ), "checkbox label", "When no value passed on create text from dom is used in dom" ); } ); QUnit.test( "label - explicit value", function( assert ) { assert.expect( 5 ); var checkbox = $( "#checkbox-option-label" ).checkboxradio( { label: "foo" } ), widget = checkbox.checkboxradio( "widget" ), icon = widget.find( ".ui-icon" ), iconSpace = widget.find( ".ui-checkboxradio-icon-space" ); assert.strictEqual( checkbox.checkboxradio( "option", "label" ), "foo", "When value is passed on create value is used for option" ); assert.strictEqual( String.prototype.trim.call( widget.text() ), "foo", "When value is passed on create value is used in dom" ); assert.strictEqual( icon.length, 1, "Icon is preserved when label is set on init when wrapped in label" ); assert.strictEqual( iconSpace.length, 1, "Icon space is preserved when label is set on init when wrapped in label" ); assert.strictEqual( $( "#checkbox-option-label" ).length, 1, "Element is preserved when label is set on init when wrapped in label" ); } ); QUnit.test( "label - explicit null value", function( assert ) { var checkbox = $( "#checkbox-option-label" ), widget; assert.expect( 2 ); // The default null is a special value which means to check the DOM. // We need to make sure that the option never return null. // It should always be true or false after initialization. checkbox.checkboxradio( { label: null } ); widget = checkbox.checkboxradio( "widget" ); assert.strictEqual( checkbox.checkboxradio( "option", "label" ), "checkbox label", "When null is passed on create text from dom is used for option" ); assert.strictEqual( String.prototype.trim.call( widget.text() ), "checkbox label", "When null is passed on create text from dom is used in dom" ); } ); QUnit.test( "label", function( assert ) { assert.expect( 4 ); var checkbox = $( "#checkbox-option-label" ), widget; checkbox.checkboxradio(); widget = checkbox.checkboxradio( "widget" ); checkbox.checkboxradio( "option", "label", "bar" ); assert.strictEqual( checkbox.checkboxradio( "option", "label" ), "bar", "When value is passed value is used for option" ); assert.strictEqual( String.prototype.trim.call( widget.text() ), "bar", "When value is passed value is used in dom" ); checkbox.checkboxradio( "option", "label", null ); assert.strictEqual( checkbox.checkboxradio( "option", "label" ), "bar", "When null is passed text from dom is used for option" ); assert.strictEqual( String.prototype.trim.call( widget.text() ), "bar", "When null is passed text from dom is used in dom" ); } ); } ); onge/fix/access_list_unaccepted_shares'>artonge/fix/access_list_unaccepted_shares Nextcloud server, a safe home for all your data: https://github.com/nextcloud/serverwww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Encryption/File.php
blob: 26e643d10066a34da96d401c6454959cf2723c81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
<?php
/**
 * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

namespace Test\Files\ObjectStore;

use OC\Files\Cache\Scanner;
use OC\Files\ObjectStore\ObjectStoreScanner;
use OC\Files\Storage\Temporary;
use OCP\Files\Cache\ICache;
use OCP\Files\Storage\IStorage;
use Test\TestCase;

/**
 * @group DB
 */
class ObjectStoreScannerTest extends TestCase {
	private IStorage $storage;
	private ICache $cache;
	private ObjectStoreScanner $scanner;
	private Scanner $realScanner;

	protected function setUp(): void {
		parent::setUp();

		$this->storage = new Temporary([]);
		$this->cache = $this->storage->getCache();
		$this->scanner = new ObjectStoreScanner($this->storage);
		$this->realScanner = new Scanner($this->storage);
	}

	public function testFile(): void {
		$data = "dummy file data\n";
		$this->storage->file_put_contents('foo.txt', $data);

		$this->assertNull($this->scanner->scanFile('foo.txt'),
			'Asserting that no error occurred while scanFile()'
		);
	}

	private function fillTestFolders() {
		$textData = "dummy file data\n";
		$imgData = file_get_contents(\OC::$SERVERROOT . '/core/img/logo/logo.png');
		$this->storage->mkdir('folder');
		$this->storage->file_put_contents('foo.txt', $textData);
		$this->storage->file_put_contents('foo.png', $imgData);
		$this->storage->file_put_contents('folder/bar.txt', $textData);
	}

	public function testFolder(): void {
		$this->fillTestFolders();

		$this->assertNull(
			$this->scanner->scan(''),
			'Asserting that no error occurred while scan()'
		);
	}

	public function testBackgroundScan(): void {
		$this->fillTestFolders();
		$this->storage->mkdir('folder2');
		$this->storage->file_put_contents('folder2/bar.txt', 'foobar');

		$this->realScanner->scan('');

		$this->assertEquals(6, $this->cache->get('folder2')->getSize());

		$this->cache->put('folder2', ['size' => -1]);

		$this->assertEquals(-1, $this->cache->get('folder2')->getSize());

		$this->scanner->backgroundScan();

		$this->assertEquals(6, $this->cache->get('folder2')->getSize());
	}
}