1 | var Assert = require("assert");
|
2 | var Base = require("./../lib/shared/base");
|
3 |
|
4 | var jsDAV_FS_Directory = require("./../lib/DAV/backends/fs/directory");
|
5 | var jsDAV_FS_File = require("./../lib/DAV/backends/fs/file");
|
6 |
|
7 |
|
8 | var jsDAV_Collection = require("./../lib/DAV/collection");
|
9 | var jsDAV_iQuota = require("./../lib/DAV/interfaces/iQuota");
|
10 | var jsDAV_iCollection = require("./../lib/DAV/interfaces/iCollection");
|
11 |
|
12 |
|
13 | var jsDAV_File = require("./../lib/DAV/file");
|
14 | var jsDAV_iFile = require("./../lib/DAV/interfaces/iFile");
|
15 |
|
16 |
|
17 | var jsDAV_iHref = require("./../lib/DAV/interfaces/iHref");
|
18 |
|
19 |
|
20 | var dir = jsDAV_FS_Directory.new("somepath/to/a/dir");
|
21 | Assert.ok(dir.hasFeature(jsDAV_Collection));
|
22 | Assert.ok(dir.hasFeature(jsDAV_iQuota));
|
23 | Assert.ok(dir.hasFeature(jsDAV_iCollection));
|
24 |
|
25 | Assert.ok(dir.UUIDS, dir.UUID & jsDAV_File.UUID, !dir.hasFeature(jsDAV_File));
|
26 | Assert.ok(!dir.hasFeature(jsDAV_iFile));
|
27 | Assert.ok(!dir.hasFeature(jsDAV_iHref));
|
28 |
|
29 |
|
30 | var file = jsDAV_FS_File.new("somepath/to/a/file");
|
31 | Assert.ok(file.hasFeature(jsDAV_File));
|
32 | Assert.ok(file.hasFeature(jsDAV_iFile));
|
33 |
|
34 | Assert.ok(!file.hasFeature(jsDAV_Collection));
|
35 | Assert.ok(!file.hasFeature(jsDAV_iQuota));
|
36 | Assert.ok(!file.hasFeature(jsDAV_iCollection));
|
37 | Assert.ok(!file.hasFeature(jsDAV_iHref));
|
38 |
|
39 |
|
40 | Assert.ok(dir.hasFeature(jsDAV_Collection));
|
41 | Assert.ok(dir.hasFeature(jsDAV_iQuota));
|
42 | Assert.ok(dir.hasFeature(jsDAV_iCollection));
|
43 |
|
44 | Assert.ok(!dir.hasFeature(jsDAV_File));
|
45 | Assert.ok(!dir.hasFeature(jsDAV_iFile));
|
46 | Assert.ok(!dir.hasFeature(jsDAV_iHref));
|
47 |
|
48 |
|
49 |
|
50 |
|
51 | var HEX = Base.extend({
|
52 | hex: function hex() {
|
53 | return "#" + this.color;
|
54 | }
|
55 | });
|
56 |
|
57 | var RGB = Base.extend({
|
58 | red: function red() {
|
59 | return parseInt(this.color.substr(0, 2), 16);
|
60 | },
|
61 | green: function green() {
|
62 | return parseInt(this.color.substr(2, 2), 16);
|
63 | },
|
64 | blue: function blue() {
|
65 | return parseInt(this.color.substr(4, 2), 16);
|
66 | }
|
67 | });
|
68 |
|
69 | var CMYK = Base.extend(RGB, {
|
70 | black: function black() {
|
71 | var color = Math.max(Math.max(this.red(), this.green()), this.blue());
|
72 | return (1 - color / 255).toFixed(4);
|
73 | },
|
74 | cyan: function cyan() {
|
75 | var K = this.black();
|
76 | return (((1 - this.red() / 255).toFixed(4) - K) / (1 - K)).toFixed(4);
|
77 | },
|
78 | magenta: function magenta() {
|
79 | var K = this.black();
|
80 | return (((1 - this.green() / 255).toFixed(4) - K) / (1 - K)).toFixed(4);
|
81 | },
|
82 | yellow: function yellow() {
|
83 | var K = this.black();
|
84 | return (((1 - this.blue() / 255).toFixed(4) - K) / (1 - K)).toFixed(4);
|
85 | }
|
86 | });
|
87 |
|
88 | var Color = Base.extend(HEX, RGB, CMYK, {
|
89 | initialize: function Color(color) {
|
90 | this.color = color;
|
91 | }
|
92 | });
|
93 |
|
94 |
|
95 |
|
96 | var Pixel = Color.extend({
|
97 | initialize: function Pixel(x, y, hex) {
|
98 | Color.initialize.call(this, hex);
|
99 | this.x = x;
|
100 | this.y = y;
|
101 | },
|
102 | toString: function toString() {
|
103 | return this.x + ":" + this.y + "@" + this.hex();
|
104 | }
|
105 | });
|
106 |
|
107 | var pixel = Pixel.new(11, 23, "CC3399");
|
108 | Assert.equal(pixel.toString(), "11:23@#CC3399");
|
109 |
|
110 | Assert.equal(pixel.red(), 204);
|
111 | Assert.equal(pixel.green(), 51);
|
112 | Assert.equal(pixel.blue(), 153);
|
113 |
|
114 | Assert.equal(pixel.cyan(), 0.0000);
|
115 | Assert.equal(pixel.magenta(), 0.7500);
|
116 | Assert.equal(pixel.yellow(), 0.250);
|
117 |
|
118 |
|
119 | var color = Color.new("CC3399");
|
120 | Assert.ok(color.hasFeature(HEX));
|
121 | Assert.ok(color.hasFeature(RGB));
|
122 | Assert.ok(color.hasFeature(CMYK));
|
123 | Assert.ok(color.hasFeature(Color));
|
124 | Assert.ok(!color.hasFeature(Pixel));
|
125 |
|
126 |
|
127 | var pixel = Pixel.new(11, 23, "CC3399");
|
128 | Assert.ok(pixel.hasFeature(HEX));
|
129 | Assert.ok(pixel.hasFeature(RGB));
|
130 | Assert.ok(pixel.hasFeature(CMYK));
|
131 | Assert.ok(pixel.hasFeature(Color));
|