| OLD | NEW |
| 1 (function() | 1 (function() |
| 2 { | 2 { |
| 3 let testRunner = null; | 3 let testRunner = null; |
| 4 let requestHandlers = null; | 4 let requestHandlers = null; |
| 5 let randomResult = 0.5; | 5 let randomResult = 0.5; |
| 6 | 6 |
| 7 module("Synchronizer", { | 7 module("Synchronizer", { |
| 8 setup: function() | 8 setup: function() |
| 9 { | 9 { |
| 10 testRunner = this; | 10 testRunner = this; |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 }); | 120 }); |
| 121 | 121 |
| 122 let tests = [ | 122 let tests = [ |
| 123 {header: "[Adblock]", downloadStatus: "synchronize_ok", requiredVersion: n
ull}, | 123 {header: "[Adblock]", downloadStatus: "synchronize_ok", requiredVersion: n
ull}, |
| 124 {header: "[Adblock Plus]", downloadStatus: "synchronize_ok", requiredVersi
on: null}, | 124 {header: "[Adblock Plus]", downloadStatus: "synchronize_ok", requiredVersi
on: null}, |
| 125 {header: "(something)[Adblock]", downloadStatus: "synchronize_ok", require
dVersion: null}, | 125 {header: "(something)[Adblock]", downloadStatus: "synchronize_ok", require
dVersion: null}, |
| 126 {header: "[Adblock Plus 0.0.1]", downloadStatus: "synchronize_ok", require
dVersion: "0.0.1"}, | 126 {header: "[Adblock Plus 0.0.1]", downloadStatus: "synchronize_ok", require
dVersion: "0.0.1"}, |
| 127 {header: "[Adblock Plus 99.9]", downloadStatus: "synchronize_ok", required
Version: "99.9"}, | 127 {header: "[Adblock Plus 99.9]", downloadStatus: "synchronize_ok", required
Version: "99.9"}, |
| 128 {header: "[Foo]", downloadStatus: "synchronize_invalid_data", requiredVers
ion: null} | 128 {header: "[Foo]", downloadStatus: "synchronize_invalid_data", requiredVers
ion: null} |
| 129 ]; | 129 ]; |
| 130 for each (test in tests) | 130 for (test of tests) |
| 131 { | 131 { |
| 132 resetSubscription(subscription) | 132 resetSubscription(subscription) |
| 133 testRunner.runScheduledTasks(2); | 133 testRunner.runScheduledTasks(2); |
| 134 | 134 |
| 135 equal(subscription.downloadStatus, test.downloadStatus, "Download status f
or " + test.header) | 135 equal(subscription.downloadStatus, test.downloadStatus, "Download status f
or " + test.header) |
| 136 equal(subscription.requiredVersion, test.requiredVersion, "Required versio
n for " + test.header) | 136 equal(subscription.requiredVersion, test.requiredVersion, "Required versio
n for " + test.header) |
| 137 | 137 |
| 138 if (test.downloadStatus == "synchronize_ok") | 138 if (test.downloadStatus == "synchronize_ok") |
| 139 { | 139 { |
| 140 deepEqual(subscription.filters, [ | 140 deepEqual(subscription.filters, [ |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 }, | 240 }, |
| 241 { | 241 { |
| 242 expiration: "40 hours", | 242 expiration: "40 hours", |
| 243 randomResult: 0.5, | 243 randomResult: 0.5, |
| 244 skipAfter: 5.1, | 244 skipAfter: 5.1, |
| 245 skip: 80, // Hitting hard expiration, immediate download | 245 skip: 80, // Hitting hard expiration, immediate download |
| 246 requests: [0.1, 85.1] | 246 requests: [0.1, 85.1] |
| 247 } | 247 } |
| 248 ] | 248 ] |
| 249 | 249 |
| 250 for each (test in tests) | 250 for (test of tests) |
| 251 { | 251 { |
| 252 requests = []; | 252 requests = []; |
| 253 randomResult = test.randomResult; | 253 randomResult = test.randomResult; |
| 254 resetSubscription(subscription); | 254 resetSubscription(subscription); |
| 255 | 255 |
| 256 let maxHours = Math.round(Math.max.apply(null, test.requests)) + 1; | 256 let maxHours = Math.round(Math.max.apply(null, test.requests)) + 1; |
| 257 testRunner.runScheduledTasks(maxHours, test.skipAfter, test.skip); | 257 testRunner.runScheduledTasks(maxHours, test.skipAfter, test.skip); |
| 258 | 258 |
| 259 let randomAddendum = (randomResult == 0.5 ? "" : " with Math.random() retu
rning " + randomResult); | 259 let randomAddendum = (randomResult == 0.5 ? "" : " with Math.random() retu
rning " + randomResult); |
| 260 let skipAddendum = (typeof test.skip != "number" ? "" : " skipping " + tes
t.skip + " hours after " + test.skipAfter + " hours"); | 260 let skipAddendum = (typeof test.skip != "number" ? "" : " skipping " + tes
t.skip + " hours after " + test.skipAfter + " hours"); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 281 ["= symbols after checksum are ignored", "[Adblock]\n! Checksum: e/JCmqXny
6Fn24b7JHsq/A===\nfoo\nbar\n", true], | 281 ["= symbols after checksum are ignored", "[Adblock]\n! Checksum: e/JCmqXny
6Fn24b7JHsq/A===\nfoo\nbar\n", true], |
| 282 ["Header line is part of the checksum", "[Adblock Plus]\n! Checksum: e/JCm
qXny6Fn24b7JHsq/A\nfoo\nbar\n", false], | 282 ["Header line is part of the checksum", "[Adblock Plus]\n! Checksum: e/JCm
qXny6Fn24b7JHsq/A\nfoo\nbar\n", false], |
| 283 ["Special comments are part of the checksum", "[Adblock]\n! Checksum: e/JC
mqXny6Fn24b7JHsq/A\n! Expires: 1\nfoo\nbar\n", false], | 283 ["Special comments are part of the checksum", "[Adblock]\n! Checksum: e/JC
mqXny6Fn24b7JHsq/A\n! Expires: 1\nfoo\nbar\n", false], |
| 284 ]; | 284 ]; |
| 285 | 285 |
| 286 testRunner.registerHandler("/subscription", function(metadata) | 286 testRunner.registerHandler("/subscription", function(metadata) |
| 287 { | 287 { |
| 288 return [Cr.NS_OK, 200, subscriptionBody]; | 288 return [Cr.NS_OK, 200, subscriptionBody]; |
| 289 }); | 289 }); |
| 290 | 290 |
| 291 for each ([testName, subscriptionBody, expectedResult] in tests) | 291 for ([testName, subscriptionBody, expectedResult] of tests) |
| 292 { | 292 { |
| 293 resetSubscription(subscription); | 293 resetSubscription(subscription); |
| 294 testRunner.runScheduledTasks(2); | 294 testRunner.runScheduledTasks(2); |
| 295 equal(subscription.downloadStatus, expectedResult ? "synchronize_ok" : "sy
nchronize_checksum_mismatch", testName); | 295 equal(subscription.downloadStatus, expectedResult ? "synchronize_ok" : "sy
nchronize_checksum_mismatch", testName); |
| 296 } | 296 } |
| 297 }); | 297 }); |
| 298 | 298 |
| 299 test("Special comments", function() | 299 test("Special comments", function() |
| 300 { | 300 { |
| 301 let subscription = Subscription.fromURL("http://example.com/subscription"); | 301 let subscription = Subscription.fromURL("http://example.com/subscription"); |
| 302 FilterStorage.addSubscription(subscription); | 302 FilterStorage.addSubscription(subscription); |
| 303 | 303 |
| 304 let comment, check; | 304 let comment, check; |
| 305 let tests = [ | 305 let tests = [ |
| 306 ["! Homepage: http://example.com/", function() equal(subscription.homepage
, "http://example.com/", "Valid homepage comment")], | 306 ["! Homepage: http://example.com/", function() equal(subscription.homepage
, "http://example.com/", "Valid homepage comment")], |
| 307 ["! Homepage: ssh://example.com/", function() equal(subscription.homepage,
null, "Invalid homepage comment")], | 307 ["! Homepage: ssh://example.com/", function() equal(subscription.homepage,
null, "Invalid homepage comment")], |
| 308 ["! Title: foo", function() | 308 ["! Title: foo", function() |
| 309 { | 309 { |
| 310 equal(subscription.title, "foo", "Title comment"); | 310 equal(subscription.title, "foo", "Title comment"); |
| 311 equal(subscription.fixedTitle, true, "Fixed title"); | 311 equal(subscription.fixedTitle, true, "Fixed title"); |
| 312 }], | 312 }], |
| 313 ["! Version: 1234", function() equal(subscription.version, 1234, "Version
comment")] | 313 ["! Version: 1234", function() equal(subscription.version, 1234, "Version
comment")] |
| 314 ]; | 314 ]; |
| 315 | 315 |
| 316 testRunner.registerHandler("/subscription", function(metadata) | 316 testRunner.registerHandler("/subscription", function(metadata) |
| 317 { | 317 { |
| 318 return [Cr.NS_OK, 200, "[Adblock]\n" + comment + "\nfoo\nbar"]; | 318 return [Cr.NS_OK, 200, "[Adblock]\n" + comment + "\nfoo\nbar"]; |
| 319 }); | 319 }); |
| 320 | 320 |
| 321 for each([comment, check] in tests) | 321 for ([comment, check] of tests) |
| 322 { | 322 { |
| 323 resetSubscription(subscription); | 323 resetSubscription(subscription); |
| 324 testRunner.runScheduledTasks(2); | 324 testRunner.runScheduledTasks(2); |
| 325 check(); | 325 check(); |
| 326 deepEqual(subscription.filters, [Filter.fromText("foo"), Filter.fromText("
bar")], "Special comment not added to filters"); | 326 deepEqual(subscription.filters, [Filter.fromText("foo"), Filter.fromText("
bar")], "Special comment not added to filters"); |
| 327 } | 327 } |
| 328 }); | 328 }); |
| 329 | 329 |
| 330 test("Redirects", function() | 330 test("Redirects", function() |
| 331 { | 331 { |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 | 510 |
| 511 testRunner.runScheduledTasks(24); | 511 testRunner.runScheduledTasks(24); |
| 512 | 512 |
| 513 equal(subscription.downloadStatus, "synchronize_connection_error", "download
Status after download error"); | 513 equal(subscription.downloadStatus, "synchronize_connection_error", "download
Status after download error"); |
| 514 equal(subscription.lastDownload * MILLIS_IN_SECOND, startTime + 26.1 * MILLI
S_IN_HOUR, "lastDownload after download error"); | 514 equal(subscription.lastDownload * MILLIS_IN_SECOND, startTime + 26.1 * MILLI
S_IN_HOUR, "lastDownload after download error"); |
| 515 equal(subscription.lastSuccess * MILLIS_IN_SECOND, startTime + 0.1 * MILLIS_
IN_HOUR, "lastSuccess after download error"); | 515 equal(subscription.lastSuccess * MILLIS_IN_SECOND, startTime + 0.1 * MILLIS_
IN_HOUR, "lastSuccess after download error"); |
| 516 equal(subscription.lastCheck * MILLIS_IN_SECOND, startTime + 27.1 * MILLIS_I
N_HOUR, "lastCheck after download error"); | 516 equal(subscription.lastCheck * MILLIS_IN_SECOND, startTime + 27.1 * MILLIS_I
N_HOUR, "lastCheck after download error"); |
| 517 equal(subscription.errors, 2, "errors after download error"); | 517 equal(subscription.errors, 2, "errors after download error"); |
| 518 }); | 518 }); |
| 519 })(); | 519 })(); |
| OLD | NEW |