Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • Synzvato/decentraleyes
  • gkrishnaks/decentraleyes
  • ExE-Boss/decentraleyes
  • whtsky/decentraleyes
  • grtgarrett/decentraleyes
  • An_dz/decentraleyes
  • Alaska/decentraleyes
  • finn/decentraleyes
  • klippy/decentraleyes
9 results
Show changes
static/favicon.ico

1.12 KiB

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="71.949539mm"
height="72.011383mm"
viewBox="0 0 254.93931 255.15844"
id="svg4398"
version="1.1"
inkscape:version="0.91 r"
sodipodi:docname="logo.svg">
<defs
id="defs4400" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.35"
inkscape:cx="-258.95892"
inkscape:cy="-146.70649"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1680"
inkscape:window-height="973"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata4403">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Laag 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-126.81606,-130.49727)">
<path
sodipodi:nodetypes="ssssssssssssssssssss"
inkscape:connector-curvature="0"
id="path4367-8"
d="m 245.28566,385.4935 c -1.155,-0.13972 -4.395,-0.53641 -7.2,-0.88151 -45.42,-5.58812 -85.0709,-36.18847 -102.1831,-78.8592 -6.3622,-15.8648 -9.0865,-30.16611 -9.0865,-47.70001 0,-35.89696 13.6558,-67.60728 39.9284,-92.71842 17.0912,-16.33567 38.7083,-27.64584 61.7412,-32.30337 16.7067,-3.37829 34.8933,-3.37829 51.6,0 41.3507,8.36157 76.8014,37.96866 92.5831,77.32178 6.3623,15.8648 9.0866,30.16612 9.0866,47.70001 0,17.5339 -2.7243,31.83521 -9.0866,47.70001 -6.0425,15.06754 -14.4277,28.08462 -25.6647,39.84127 -20.588,21.5403 -45.1364,34.33474 -74.4184,38.78637 -5.9247,0.90071 -23.2249,1.60607 -27.3,1.11307 z m 17.6857,-53.06751 c 45.3037,-5.1897 75.6169,-49.07321 64.43,-93.27321 -9.0595,-35.79399 -43.254,-59.73888 -80.1657,-56.13635 -18.159,1.77231 -33.6382,9.0219 -46.3013,21.68499 -15.9043,15.90429 -23.8313,37.80979 -21.6756,59.89801 1.8202,18.64919 9.095,33.85844 22.5088,47.05837 15.872,15.61881 38.6583,23.35086 61.2038,20.76819 z"
style="fill:#69ab90" />
<path
sodipodi:nodetypes="csscssscssccssssssssssss"
inkscape:connector-curvature="0"
id="path4365-3"
d="m 244.08566,343.24287 c -19.8325,-2.76339 -36.9253,-11.17984 -50.4668,-24.84967 -12.1714,-12.28673 -19.6945,-26.27696 -23.4133,-43.54041 -1.9429,-9.01918 -1.9477,-24.56717 -0.01,-33.53235 7.4726,-34.57995 32.7782,-59.88556 67.3581,-67.35817 8.9652,-1.93735 24.5132,-1.93255 33.5324,0.0103 34.4652,7.42443 59.8726,32.85642 67.2826,67.34783 1.9242,8.95661 1.9194,24.52204 -0.01,33.53235 -2.5902,12.09416 -6.332,20.97932 -13.0785,31.05622 -12.4216,18.55349 -31.699,31.47412 -53.8938,36.12229 -6.8627,1.43722 -21.1347,2.07061 -27.3,1.21157 z m 26.4,-11.68384 c 14.5651,-3.28527 26.4945,-9.90141 37.2468,-20.65735 14.7131,-14.71817 22.1494,-32.56191 22.1494,-53.1489 0,-20.53675 -7.476,-38.47761 -22.1473,-53.1489 -14.7557,-14.75566 -32.5941,-22.14727 -53.4489,-22.14727 -15.5114,0 -29.4518,4.23481 -42.8277,13.01025 -5.4935,3.60404 -16.1541,14.26466 -19.7582,19.75814 -8.7115,13.27858 -13.0102,27.33021 -13.0102,42.52778 0,15.27041 4.227,29.14829 12.9053,42.37003 3.736,5.69189 14.327,16.28353 20.017,20.01827 8.7585,5.74873 19.4469,10.12598 29.1738,11.94763 6.4179,1.20193 23.3628,0.89973 29.7,-0.52968 z"
style="fill:#4a856d" />
<path
inkscape:connector-curvature="0"
id="path4502-8"
d="m 254.22586,182.23229 c -15.5114,0 -29.4503,4.23432 -42.8262,13.00976 -5.4935,3.60404 -16.1556,14.26628 -19.7597,19.75977 -8.7115,13.27858 -13.0098,27.32978 -13.0098,42.52734 0,15.27041 4.228,29.1474 12.9063,42.36914 3.736,5.69189 14.3256,16.28479 20.0156,20.01953 8.7585,5.74873 19.4469,10.12562 29.1738,11.94727 6.4179,1.20193 23.364,0.90011 29.7012,-0.5293 14.5651,-3.28527 26.4938,-9.90226 37.2461,-20.6582 14.7131,-14.71817 22.1504,-32.56145 22.1504,-53.14844 0,-20.53674 -7.4772,-38.47714 -22.1485,-53.14844 -14.7557,-14.75566 -32.5944,-22.14843 -53.4492,-22.14843 z"
style="opacity:1;fill:#d9ccb5;fill-opacity:1" />
<path
style="fill:#2a4c3d"
d="m 253.32756,308.56958 c -0.7291,-0.10994 -2.0081,-1.01076 -2.842,-2.00183 -1.487,-1.7672 -1.5162,-1.98991 -1.5162,-11.5511 l 0,-9.74916 -4.1304,-0.40699 c -5.0661,-0.4992 -12.7546,-2.30014 -18.1929,-4.26146 -2.2409,-0.80819 -4.294,-1.46942 -4.5623,-1.46942 -0.2682,0 -0.6564,0.84243 -0.8623,1.87207 -0.6968,3.48392 -4.226,9.7116 -7.2712,12.8307 -3.802,3.89418 -8.4051,6.27484 -12.9251,6.68471 -3.2341,0.29326 -3.5551,0.20092 -5.2728,-1.51669 -2.5896,-2.58958 -2.5847,-5.96539 0.012,-8.15026 1.0771,-0.90628 2.5789,-1.549 3.6197,-1.549 4.8004,0 9.3774,-5.21572 11.2352,-12.80312 0.3947,-1.61191 0.5018,-3.11345 0.2378,-3.33674 -0.2637,-0.2233 -2.2975,-1.67814 -4.5193,-3.23299 -2.2218,-1.55483 -5.7893,-4.5009 -7.9278,-6.5468 -3.5468,-3.39318 -3.8881,-3.93496 -3.8881,-6.16993 0,-3.27415 2.217,-5.60492 5.3315,-5.60492 1.8175,0 3.0132,0.69549 7.2478,4.21598 11.6253,9.66472 22.2411,14.79377 35.3384,17.07396 8.3007,1.44513 22.1289,0.91372 30.0404,-1.15442 11.1729,-2.92067 21.5705,-8.5272 30.5771,-16.48755 4.3014,-3.80174 6.5623,-4.53347 9.368,-3.03191 1.7447,0.93375 3.0959,3.97813 2.6554,5.98335 -0.445,2.02633 -5.5547,7.15181 -11.0967,11.13099 -2.1216,1.52335 -4.0845,2.97485 -4.3619,3.22555 -0.6373,0.5759 0.5815,6.69113 1.9709,9.88821 1.6465,3.78878 4.5666,6.75181 7.1053,7.20973 5.6962,1.02741 7.9829,4.37102 5.8329,8.52872 -2.5386,4.90902 -11.0252,3.6402 -17.4215,-2.60463 -3.4724,-3.39012 -7.1798,-10.11267 -7.8445,-14.22454 -0.2007,-1.24135 -0.5648,-2.38056 -0.8092,-2.53161 -0.2445,-0.15104 -2.1425,0.41541 -4.2181,1.25878 -4.9736,2.02096 -14.3283,4.30786 -19.6416,4.80168 l -4.2584,0.39577 0,9.74056 c 0,9.50554 -0.036,9.78324 -1.4892,11.51041 -1.513,1.79797 -3.1312,2.39416 -5.5208,2.0339 z"
id="path4536"
inkscape:connector-curvature="0" />
<path
style="fill:#e1eee9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 254.83556,140.64076 c -31.7387,-0.18974 -61.6179,11.99292 -84.3437,34.71875 -19.2305,19.23054 -30.7902,43.12871 -33.9512,70.19142 -1.3361,11.43953 -1.0183,16.42791 1.2832,20.15039 2.2945,3.71129 6.8295,6.27929 11.0898,6.27929 1.9686,0 3.8657,-0.52302 6.0723,-1.67578 2.3104,-1.20696 3.7038,-2.4749 4.9727,-4.52734 1.5844,-2.56277 1.8128,-3.59151 2.2695,-10.17383 0.9548,-13.76166 3.2241,-23.42756 7.9863,-34.02344 4.8964,-10.8945 10.57,-19.12664 18.9707,-27.52735 13.6023,-13.60222 30.1696,-22.21598 49.4278,-25.69727 6.8294,-1.23454 21.9644,-1.36292 29.8183,-0.25195 6.8652,0.97111 8.9703,0.67909 12.6582,-1.76367 5.1358,-3.40177 7.2074,-10.40147 4.6934,-15.85938 -2.6833,-5.82531 -6.3128,-7.71715 -17.2461,-8.99609 -4.5945,-0.53745 -9.1671,-0.81664 -13.7012,-0.84375 z m 97.3086,65.95313 c -7.2562,-0.0333 -13.2012,5.7786 -13.2012,12.90235 0,9.86673 9.6961,16.1965 18.4707,12.05859 3.5411,-1.66991 5.2779,-3.41593 6.6407,-6.67773 3.5811,-8.57084 -2.7182,-18.241 -11.9102,-18.28321 z m -13.2519,100.31836 c -3.6071,0.0573 -6.491,1.78845 -9.7852,5.61915 -8.142,9.46815 -10.1011,11.56562 -14.125,15.11718 -12.131,10.70715 -27.7116,18.23441 -44.5684,21.53125 -8.2715,1.61775 -25.5315,1.44981 -33.9003,-0.33008 -17.6062,-3.7445 -31.6977,-10.96635 -45.17,-23.14843 -6.9218,-6.25889 -9.1571,-7.51953 -13.33,-7.51953 -7.2826,0 -12.856,5.65134 -12.8868,13.06836 -0.023,5.60561 1.5592,8.00611 10.5684,16.02734 17.6591,15.72241 41.3698,26.30955 65.0195,29.03125 6.5438,0.75309 19.554,0.76976 26.2735,0.0352 21.3817,-2.33763 42.0386,-10.55235 59.1679,-23.5293 5.7153,-4.32992 17.4933,-15.95194 21.5508,-21.26563 4.9434,-6.47366 6.0115,-10.10564 4.5449,-15.46679 -0.9767,-3.57003 -5.5201,-7.73635 -9.4687,-8.6836 -1.4052,-0.3371 -2.6883,-0.50541 -3.8906,-0.48633 z"
id="path4557-9"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1"
d="m 349.19286,302.00389 c -0.3807,-1.92589 -1.1877,-5.81051 -1.7931,-8.63249 -0.6055,-2.822 -0.9964,-5.23726 -0.8688,-5.36731 0.1275,-0.13004 1.0963,0.0708 2.1528,0.44623 2.3769,0.84471 2.5416,0.61955 3.8259,-5.22844 1.1941,-5.43611 2.5992,-7.42233 5.2511,-7.42233 4.0179,0 4.8567,3.49994 2.7212,11.35587 -0.6532,2.40314 -1.1876,4.48237 -1.1876,4.6205 0,0.13813 0.8686,0.56812 1.9301,0.95554 l 1.93,0.70436 -2.6725,2.45042 c -1.4697,1.34773 -4.4553,4.06338 -6.6344,6.03481 l -3.9622,3.58446 -0.6925,-3.50162 z m 7.6678,-36.42262 c -1.3075,-1.07937 -1.4012,-1.66991 -1.8424,-11.61651 -0.5284,-11.90635 -0.2036,-13.2788 3.1413,-13.2788 4.3811,0 5.1405,1.91127 5.6874,14.31444 l 0.3778,8.56307 -1.5475,1.5775 c -1.8251,1.86061 -3.9053,2.01808 -5.8166,0.4403 z m -22.197,-68.26345 c -1.6409,-1.87622 -4.7873,-5.40364 -6.9919,-7.83869 -4.4035,-4.86374 -5.0634,-7.04746 -2.8206,-9.33381 2.9462,-3.00374 5.9731,-1.15075 13.7679,8.42834 5.1777,6.36311 5.7965,8.41643 3.2668,10.83913 -2.2725,2.17651 -3.8995,1.7046 -7.2222,-2.09497 z m -24.0651,-22.6563 c -1.4699,-1.01539 -3.9345,-2.51343 -5.477,-3.32898 l -2.8046,-1.48281 -0.9428,1.85854 -0.9427,1.85853 -1.6168,-2.31075 c -4.1925,-5.99176 -8.4181,-12.30592 -8.2721,-12.36083 0.67,-0.25201 16.8456,-1.55024 17.0448,-1.36799 0.1401,0.12828 -0.1642,1.12916 -0.6766,2.22416 l -0.9311,1.9909 3.0518,1.63467 c 1.6784,0.89907 4.3879,2.66513 6.0209,3.92459 2.4695,1.90441 2.9996,2.65699 3.1495,4.47038 0.1462,1.76666 -0.1227,2.42342 -1.4161,3.4607 -2.1206,1.70046 -3.0192,1.61752 -6.1872,-0.57111 z"
id="path4676"
inkscape:connector-curvature="0" />
</g>
</svg>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Decentraleyes - What's New?</title>
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0">
<meta charset="UTF-8">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<style>
body {
background-color: #eff4e2;
color: #4f4f4f;
padding: 25px 10px;
}
header {
height: 128px;
position: relative;
width: 400px;
}
h1, h2, h3, h4, h5, h6 {
font-family: "Trebuchet MS", Helvetica, sans-serif;
margin-left: auto;
margin-right: auto;
max-width: 750px;
}
h3 {
text-align: left;
}
a {
color: #2e698c;
}
.container {
text-align: center;
}
.notice {
font-family: "Trebuchet MS", Helvetica, sans-serif;
margin-left: auto;
margin-right: auto;
max-width: 750px;
text-align: left;
}
.logo {
display: block;
height: 128px;
margin-left: auto;
margin-right: auto;
}
.subtle-hint {
color: #777;
font-size: 14px;
font-style: italic;
}
.subtle-text {
color: #777;
}
.topic-label {
color: #4a856d;
font-style: normal;
font-weight: bold;
text-transform: uppercase;
}
.help-panel {
border-bottom: 2px #bbb dotted;
cursor: help;
display: inline-block;
position: relative;
}
.help-panel:before {
background-color: #fef4c5;
border-radius: 2px;
border: 1px solid #d4b943;
box-shadow: 2px 2px 2px rgba(0, 0, 0, .15);
color: #594c16;
content: attr(data-title);
display: none;
font-size: 14px;
margin-top: 22px;
padding: 3px 4px;
position: absolute;
white-space: nowrap;
z-index: 1;
}
.help-panel:hover:before {
display: inline;
}
</style>
<body>
<img src="logo.svg" alt="Decentraleyes" class="logo"/>
<div class="container">
<h1>Decentraleyes <i>v1.3.0</i></h1>
<br><br>
<div class="notice">
<span class="subtle-hint"><span class="topic-label">Pro Tip:</span> Would you rather not see this page after installations or updates? You can disable it by navigating to <strong>about:config</strong> (in a new tab), then searching for <strong>BoFifL9V</strong>, and setting <strong>showReleaseNotes</strong> to false.</span>
<br><br><hr>
</div>
<br>
<div class="notice">
<span class="topic-label">New:</span> <strong>Let there be languages.</strong> This version supports locales and features fourteen <a href="https://github.com/Synzvato/decentraleyes/issues/44" target="_blank">initial translations</a>: <span class="subtle-text"> <span class="help-panel" data-title="Thanks to AdmiralAnimE.">Bulgarian</span>, <span class="help-panel" data-title="Thanks to Louy2 and YFdyh000.">Chinese <i>(Simplified)</i></span>, Dutch, English <i>(United Kingdom)</i>, English <i>(United States)</i>, <span class="help-panel" data-title="Thanks to Semired.">Finnish</span>, <span class="help-panel" data-title="Thanks to Simpson, Thuban, and TraderStf."> French</span>, <span class="help-panel" data-title="Thanks to C4R2T3N, Flysch, Sabajo, and Schnaidar.">German</span>, <span class="help-panel" data-title="Thanks to Zmni.">Indonesian</span>, <span class="help-panel" data-title="Thanks to Mtvento.">Italian</span>, <span class="help-panel" data-title="Thanks to Brindflontia.">Japanese</span>, <span class="help-panel" data-title="Thanks to Marekjm.">Polish</span>, <span class="help-panel" data-title="Thanks to SW1FTmeister.">Portuguese <i>(European)</i></span>, and <span class="help-panel" data-title="Thanks to Adri and Ergotronix.">Spanish</span></span>.
<br><br>
<span class="topic-label">New:</span> <strong>Official support for SeaMonkey.</strong> If you use SeaMonkey <i>(a free and open-source internet suite consisting of a web browser, an e-mail client, and a news aggregator)</i>, you might be glad to know that this release is fully compatible with all modern versions of the application.
<br><br>
<span class="topic-label">Enhanced:</span> <strong>A large amount of internal changes for improved performance and stability.</strong> A lot of work has gone into making this version as fast and reliable as possible. As a result, this release proudly brings you an even more optimized, carefree, and stable overall experience.
<br><br><hr><br>
<span class="subtle-hint"><span class="topic-label">Getting started:</span> Decentraleyes works right out of the box and no manual configuration is required! You can check if you're properly protected by using the following <strong><a href="https://decentraleyes.org/test" target="_blank">testing utility</a></strong>.</span>
<br><br>
<span class="subtle-hint">To get a glimpse of what this add-on actually does for you, go to this application's main menu, click <strong>"Add-ons" > "Decentraleyes" > "Preferences"</strong>, scroll down, and familiarize yourself with the local injections counter.</span>
<br><br><hr>
</div>
<br>
<div class="notice">
<i>General notice:</i><br><br>
Decentraleyes is a young project. Expect many improvements in the realms of clear user feedback and ease-of-use as it matures. It does a lot to protect you, and is becoming less and less shy about it.
<br><br><hr>
</div>
<br>
<div class="notice">
<i>Detailed v1.3.0 changelog:</i>
<ul>
<li>Decentraleyes now officially supports modern versions of SeaMonkey.</li>
<li>Created mappings for yastatic.net and deprecated its predecessor (yandex.st).</li>
<li>Added test cases, and <span class="help-panel" data-title="With code contributions by Ngksternhagen.">improved existing unit tests</span> and exception handling.</li>
<li>Applied a wide range of performance optimizations and stability improvements.</li>
<li>Added support for localizations and embedded fourteen initial translations.</li>
<li>Implemented a watcher that keeps pages with specific security policies from breaking.</li>
<li><span class="help-panel" data-title="With code contributions by Thegoodthings.">Added a preference</span> to allow users to hide release notes upon install and upgrade.</li>
<li>Optimized mapping expressions to reveal uncommon injection opportunities.</li>
</ul>
<br>
<i>Detailed v1.2.2 changelog:</i>
<ul>
<li>Decentraleyes now supports Fennec (better known as Firefox for mobile).</li>
<li>Experimental support for whitelisting domains from preferences (Add-ons Manager).</li>
<li>Amount of injected resources shown in preferences (Add-ons Manager).</li>
<li>Fixed a rare bug where shorthand mapping notations broke specific websites.</li>
<li>Removed Pale Moon compatibility as it will receive separate, tailored, builds.</li>
<li>Took out rare resources to make room for more common candidates.</li>
<li>Added new AngularJS, Dojo, and <span class="help-panel" data-title="With code contributions by Matthieuy.">jQuery UI</span> scripts to the resource bundle.</li>
</ul>
</div>
<br>
<div class="notice">
<p>
<a href="https://github.com/Synzvato/decentraleyes" target="_blank">GitHub</a> / <a href="https://addons.mozilla.org/en-US/firefox/addon/decentraleyes" target="_blank">Add-on Listing</a> / <a href="https://github.com/Synzvato/decentraleyes/issues/44" target="_blank">Help Translate</a>
</p>
</div>
</div>
</body>
</html>
/**
* Imports
*/
var dataHandler = require("../lib/data-handler");
/**
* Get Redirection URI Tests
*/
exports['test get redirection uri for existing file'] = function (assert) {
var result = dataHandler.getRedirectionURI(
'resources/jquery/2.1.4/jquery.min.js.dec', 'UTF-8', 'application/javascript'
);
assert.ok(typeof result === 'object', 'Existing file was handled succesfully.');
};
exports['test get redirection uri for non-existing file'] = function (assert) {
assert.throws(function () {
dataHandler.getRedirectionURI('resources/non-existing/0.5.7/non-existing.js.dec',
'UTF-8', 'application/javascript');
}, Error, 'Non-existing file was handled succesfully.');
};
/**
* Run Tests
*/
require("sdk/test").run(exports);
/**
* Imports
*/
var requestAnalyzer = require("../lib/request-analyzer");
/**
* Variables
*/
var localPaths = {
angular: 'resources/angularjs/1.2.19/angular.min.js.dec',
backbone: [
'resources/backbone.js/0.9.2/backbone-min.js.dec',
'resources/backbone.js/1.1.2/backbone-min.js.dec'
],
dojo: 'resources/dojo/1.8.3/dojo/dojo.js.dec',
ember: [
'resources/ember.js/1.1.0/ember.min.js.dec',
'resources/ember.js/2.1.0/ember.min.js.dec'
],
extCore: 'resources/ext-core/3.1.0/ext-core.js.dec',
jQuery: [
'resources/jquery/1.10.2/jquery.min.js.dec',
'resources/jquery/1.11.1/jquery.min.js.dec'
],
jQueryUI: 'resources/jqueryui/1.10.2/jquery-ui.min.js.dec',
modernizr: 'resources/modernizr/2.6.2/modernizr.min.js.dec',
mootools: 'resources/mootools/1.4.5/mootools-yui-compressed.js.dec',
prototypeJS: 'resources/prototype/1.6.1.0/prototype.js.dec',
scriptaculous: 'resources/scriptaculous/1.9.0/scriptaculous.js.dec',
swfobject: 'resources/swfobject/2.2/swfobject.js.dec',
underscore: [
'resources/underscore.js/1.3.3/underscore-min.js.dec',
'resources/underscore.js/1.4.4/underscore-min.js.dec',
'resources/underscore.js/1.6.0/underscore-min.js.dec'
],
webfont: [
'resources/webfont/1.0.19/webfont.js.dec',
'resources/webfont/1.5.18/webfont.js.dec'
]
};
/**
* Is Valid Candidate Tests
*/
exports['test get request to known cdn'] = function (assert) {
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'GET', URI: { host: 'ajax.googleapis.com' }
});
assert.ok(result, 'Valid candidate was successfully identified.');
};
exports['test post request to known cdn'] = function (assert) {
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'POST', URI: { host: 'ajax.googleapis.com' }
});
assert.equal(result, false, 'Invalid candidate was successfully identified.');
};
exports['test get request to unknown domain'] = function (assert) {
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'GET', URI: { host: 'ajax.example.com' }
});
assert.equal(result, false, 'Invalid candidate was successfully identified.');
};
exports['test get request from whitelisted domain'] = function (assert) {
require('sdk/simple-prefs').prefs.domainWhitelist = 'example.com';
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'GET', URI: { host: 'ajax.googleapis.com' },
referrer: { host: 'example.com' }, setRequestHeader: function () { return false; }
});
assert.equal(result, false, 'Whitelisted request was successfully ignored.');
};
/**
* Get Local Target Tests
*/
exports['test regular resource'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/jquery/2.1.4/jquery.js');
assert.equal(target.path, 'resources/jquery/2.1.4/jquery.min.js.dec', 'Target found for regular resource.');
};
exports['test minified resource'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('code.jquery.com', '/jquery-2.1.4.min.js');
assert.equal(target.path, 'resources/jquery/2.1.4/jquery.min.js.dec', 'Target found for minified resource.');
};
exports['test major resource shorthand'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/jquery/1/jquery.js');
assert.equal(target.path, 'resources/jquery/1.11.1/jquery.min.js.dec', 'Target found for resource shorthand.');
};
exports['test minor resource shorthand'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/jquery/1.8/jquery.js');
assert.equal(target.path, 'resources/jquery/1.8.3/jquery.min.js.dec', 'Target found for resource shorthand.');
};
exports['test precision of mapping expression'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('code.jquery.com', '/jquery-module-1.2.1.js');
assert.equal(target, false, 'Resource was not mistaken for similar one.');
};
exports['test ignoring jquery-ui stylesheet'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/jqueryui/1.0.0/jquery-ui.css');
assert.equal(target, false, 'jQuery UI\'s stylesheet was ignored.');
};
exports['test dojo uncompressed library'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/dojo/1.8.3/dojo/dojo.uncompressed.js');
assert.equal(target.path, localPaths.dojo, 'Target was determined.');
};
exports['test ext-core debug library'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/ext-core/3.1.0/ext-core-debug.js');
assert.equal(target.path, localPaths.extCore, 'Target was determined.');
};
exports['test webfont debug library'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/webfont/1.0.19/webfont_debug.js');
assert.equal(target.path, localPaths.webfont[0], 'Target was determined.');
};
exports['test case sensitivity rules'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/WebFont/1.0.19/webfont_debug.js');
assert.equal(target, false, 'Case sensitivity rules were properly enforced.');
};
// Google Hosted Libraries
exports['test angular on google hosted libraries'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/angularjs/1.2.19/angular.min.js');
assert.equal(target.path, localPaths.angular, 'Target was determined.');
};
exports['test dojo on google hosted libraries'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/dojo/1.8.3/dojo/dojo.js');
assert.equal(target.path, localPaths.dojo, 'Target was determined.');
};
exports['test ext-core on google hosted libraries'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/ext-core/3.1.0/ext-core.js');
assert.equal(target.path, localPaths.extCore, 'Target was determined.');
};
exports['test jquery on google hosted libraries'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/jquery/1.11.1/jquery.min.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test jquery-ui on google hosted libraries'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js');
assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.');
};
exports['test mootools on google hosted libraries'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/mootools/1.4.5/mootools-yui-compressed.js');
assert.equal(target.path, localPaths.mootools, 'Target was determined.');
};
exports['test prototype on google hosted libraries'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/prototype/1.6.1.0/prototype.js');
assert.equal(target.path, localPaths.prototypeJS, 'Target was determined.');
};
exports['test scriptaculous on google hosted libraries'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/scriptaculous/1.9.0/scriptaculous.js');
assert.equal(target.path, localPaths.scriptaculous, 'Target was determined.');
};
exports['test swfobject on google hosted libraries'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/swfobject/2.2/swfobject.js');
assert.equal(target.path, localPaths.swfobject, 'Target was determined.');
};
exports['test webfont on google hosted libraries'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.googleapis.com', '/ajax/libs/webfont/1.5.18/webfont.js');
assert.equal(target.path, localPaths.webfont[1], 'Target was determined.');
};
// Microsoft Ajax CDN
exports['test jquery on microsoft ajax cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.aspnetcdn.com', '/ajax/jQuery/jquery-1.11.1.min.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test lowercase jquery notation on microsoft ajax cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.aspnetcdn.com', '/ajax/jquery/jquery-1.11.1.min.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test modernizr on microsoft ajax cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.aspnetcdn.com', '/ajax/modernizr/modernizr-2.6.2.js');
assert.equal(target.path, localPaths.modernizr, 'Target was determined.');
};
exports['test jquery on old microsoft ajax cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.microsoft.com', '/ajax/jQuery/jquery-1.11.1.min.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test lowercase jquery notation on old microsoft ajax cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.microsoft.com', '/ajax/jquery/jquery-1.11.1.min.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test modernizr on old microsoft ajax cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('ajax.microsoft.com', '/ajax/modernizr/modernizr-2.6.2.js');
assert.equal(target.path, localPaths.modernizr, 'Target was determined.');
};
// CDNJS (Cloudflare)
exports['test angular on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/angular.js/1.2.19/angular.min.js');
assert.equal(target.path, localPaths.angular, 'Target was determined.');
};
exports['test backbone on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/backbone.js/0.9.2/backbone-min.js');
assert.equal(target.path, localPaths.backbone[0], 'Target was determined.');
};
exports['test dojo on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/dojo/1.8.3/dojo.js');
assert.equal(target.path, localPaths.dojo, 'Target was determined.');
};
exports['test ember on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/ember.js/2.1.0/ember.min.js');
assert.equal(target.path, localPaths.ember[1], 'Target was determined.');
};
exports['test ext-core on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/ext-core/3.1.0/ext-core.min.js');
assert.equal(target.path, localPaths.extCore, 'Target was determined.');
};
exports['test jquery on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/jquery/1.11.1/jquery.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test jquery-ui on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js');
assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.');
};
exports['test modernizr on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/modernizr/2.6.2/modernizr.min.js');
assert.equal(target.path, localPaths.modernizr, 'Target was determined.');
};
exports['test mootools on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/mootools/1.4.5/mootools-core-full-nocompat.js');
assert.equal(target.path, localPaths.mootools, 'Target was determined.');
};
exports['test scriptaculous on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/scriptaculous/1.9.0/scriptaculous.min.js');
assert.equal(target.path, localPaths.scriptaculous, 'Target was determined.');
};
exports['test swfobject on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/swfobject/2.2/swfobject.js');
assert.equal(target.path, localPaths.swfobject, 'Target was determined.');
};
exports['test underscore on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/underscore.js/1.6.0/underscore-min.js');
assert.equal(target.path, localPaths.underscore[2], 'Target was determined.');
};
exports['test webfont on cdnjs'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdnjs.cloudflare.com', '/ajax/libs/webfont/1.5.18/webfontloader.js');
assert.equal(target.path, localPaths.webfont[1], 'Target was determined.');
};
// jQuery CDN (MaxCDN)
exports['test jquery on jquery cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('code.jquery.com', '/jquery-1.11.1.min.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test jquery-ui on jquery cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('code.jquery.com', '/ui/1.10.2/jquery-ui.min.js');
assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.');
};
exports['test jquery shorthand on jquery cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('code.jquery.com', '/jquery-1.5.min.js');
assert.equal(target.path, 'resources/jquery/1.5.0/jquery.min.js.dec', 'Target found for jquery shorthand on jquery cdn.');
};
// jsDelivr (MaxCDN)
exports['test angular on jsdelivr'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/angularjs/1.2.19/angular.min.js');
assert.equal(target.path, localPaths.angular, 'Target was determined.');
};
exports['test backbone on jsdelivr'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/backbonejs/1.1.2/backbone-min.js');
assert.equal(target.path, localPaths.backbone[1], 'Target was determined.');
};
exports['test dojo on jsdelivr'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/dojo/1.8.3/dojo.js');
assert.equal(target.path, localPaths.dojo, 'Target was determined.');
};
exports['test ember on jsdelivr'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/emberjs/2.1.0/ember.min.js');
assert.equal(target.path, localPaths.ember[1], 'Target was determined.');
};
exports['test jquery on jsdelivr'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/jquery/1.11.1/jquery.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test jquery-ui on jsdelivr'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/jquery.ui/1.10.2/jquery-ui.min.js');
assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.');
};
exports['test mootools on jsdelivr'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/mootools/1.4.5/mootools-core-nocompat.min.js');
assert.equal(target.path, localPaths.mootools, 'Target was determined.');
};
exports['test swfobject on jsdelivr'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/swfobject/2.2/swfobject.js');
assert.equal(target.path, localPaths.swfobject, 'Target was determined.');
};
exports['test underscore on jsdelivr'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/underscorejs/1.6.0/underscore-min.js');
assert.equal(target.path, localPaths.underscore[2], 'Target was determined.');
};
exports['test webfont on jsdelivr'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('cdn.jsdelivr.net', '/webfontloader/1.5.18/webfontloader.js');
assert.equal(target.path, localPaths.webfont[1], 'Target was determined.');
};
// Yandex CDN
exports['test angular on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yastatic.net', '/angularjs/1.2.19/angular.min.js');
assert.equal(target.path, localPaths.angular, 'Target was determined.');
};
exports['test backbone on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yastatic.net', '/backbone/1.1.2/backbone-min.js');
assert.equal(target.path, localPaths.backbone[1], 'Target was determined.');
};
exports['test dojo on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yastatic.net', '/dojo/1.8.3/dojo/dojo.js');
assert.equal(target.path, localPaths.dojo, 'Target was determined.');
};
exports['test ext-core on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yastatic.net', '/ext-core/3.1.0/ext-core.min.js');
assert.equal(target.path, localPaths.extCore, 'Target was determined.');
};
exports['test jquery on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yastatic.net', '/jquery/1.11.1/jquery.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test jquery-ui on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yastatic.net', '/jquery-ui/1.10.2/jquery-ui.min.js');
assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.');
};
exports['test modernizr on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yastatic.net', '/modernizr/2.6.2/modernizr.min.js');
assert.equal(target.path, localPaths.modernizr, 'Target was determined.');
};
exports['test prototype on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yastatic.net', '/prototype/1.6.1.0/prototype.min.js');
assert.equal(target.path, localPaths.prototypeJS, 'Target was determined.');
};
exports['test scriptaculous on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yastatic.net', '/scriptaculous/1.9.0/scriptaculous.js');
assert.equal(target.path, localPaths.scriptaculous, 'Target was determined.');
};
exports['test swfobject on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yastatic.net', '/swfobject/2.2/swfobject.min.js');
assert.equal(target.path, localPaths.swfobject, 'Target was determined.');
};
exports['test underscore on yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yastatic.net', '/underscore/1.6.0/underscore-min.js');
assert.equal(target.path, localPaths.underscore[2], 'Target was determined.');
};
exports['test angular on old yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/angularjs/1.2.19/angular.min.js');
assert.equal(target.path, localPaths.angular, 'Target was determined.');
};
exports['test backbone on old yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/backbone/1.1.2/backbone-min.js');
assert.equal(target.path, localPaths.backbone[1], 'Target was determined.');
};
exports['test dojo on old yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/dojo/1.8.3/dojo/dojo.js');
assert.equal(target.path, localPaths.dojo, 'Target was determined.');
};
exports['test ext-core on old yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/ext-core/3.1.0/ext-core.min.js');
assert.equal(target.path, localPaths.extCore, 'Target was determined.');
};
exports['test jquery on old yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/jquery/1.11.1/jquery.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test jquery-ui on old yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/jquery-ui/1.10.2/jquery-ui.min.js');
assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.');
};
exports['test modernizr on old yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/modernizr/2.6.2/modernizr.min.js');
assert.equal(target.path, localPaths.modernizr, 'Target was determined.');
};
exports['test prototype on old yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/prototype/1.6.1.0/prototype.min.js');
assert.equal(target.path, localPaths.prototypeJS, 'Target was determined.');
};
exports['test scriptaculous on old yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/scriptaculous/1.9.0/scriptaculous.js');
assert.equal(target.path, localPaths.scriptaculous, 'Target was determined.');
};
exports['test swfobject on old yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/swfobject/2.2/swfobject.min.js');
assert.equal(target.path, localPaths.swfobject, 'Target was determined.');
};
exports['test underscore on old yandex cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('yandex.st', '/underscore/1.6.0/underscore-min.js');
assert.equal(target.path, localPaths.underscore[2], 'Target was determined.');
};
// Baidu CDN
exports['test backbone on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/backbone/0.9.2/backbone-min.js');
assert.equal(target.path, localPaths.backbone[0], 'Target was determined.');
};
exports['test dojo on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/dojo/1.8.3/dojo.js');
assert.equal(target.path, localPaths.dojo, 'Target was determined.');
};
exports['test ext-core on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/ext-core/3.1.0/ext-core.js');
assert.equal(target.path, localPaths.extCore, 'Target was determined.');
};
exports['test jquery on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/jquery/1.11.1/jquery.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test jquery-ui on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/jqueryui/1.10.2/jquery-ui.min.js');
assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.');
};
exports['test mootools on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/mootools/1.4.5/mootools-yui-compressed.js');
assert.equal(target.path, localPaths.mootools, 'Target was determined.');
};
exports['test prototype on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/prototype/1.6.1.0/prototype.js');
assert.equal(target.path, localPaths.prototypeJS, 'Target was determined.');
};
exports['test scriptaculous on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/scriptaculous/1.9.0/scriptaculous.js');
assert.equal(target.path, localPaths.scriptaculous, 'Target was determined.');
};
exports['test swfobject on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/swfobject/2.2/swfobject.js');
assert.equal(target.path, localPaths.swfobject, 'Target was determined.');
};
exports['test underscore on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/underscore/1.3.3/underscore-min.js');
assert.equal(target.path, localPaths.underscore[0], 'Target was determined.');
};
exports['test webfont on baidu cdn'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('libs.baidu.com', '/webfont/1.0.19/webfont.js');
assert.equal(target.path, localPaths.webfont[0], 'Target was determined.');
};
// Sina Public Resources
exports['test angular on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/angular.js/angular-1.2.19/angular.min.js');
assert.equal(target.path, localPaths.angular, 'Target was determined.');
};
exports['test backbone on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/backbone/0.9.2/backbone.min.js');
assert.equal(target.path, localPaths.backbone[0], 'Target was determined.');
};
exports['test dojo on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/dojo/1.8.3/dojo.js');
assert.equal(target.path, localPaths.dojo, 'Target was determined.');
};
exports['test ext-core on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/ext-core/3.1.0/ext-core.js');
assert.equal(target.path, localPaths.extCore, 'Target was determined.');
};
exports['test jquery on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/jquery/1.11.1/jquery.js');
assert.equal(target.path, localPaths.jQuery[1], 'Target was determined.');
};
exports['test jquery-ui on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/jquery-ui/1.10.2/jquery-ui.min.js');
assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.');
};
exports['test mootools on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/mootools/1.4.5/mootools.min.js');
assert.equal(target.path, localPaths.mootools, 'Target was determined.');
};
exports['test prototype on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/prototype/1.6.1.0/prototype.min.js');
assert.equal(target.path, localPaths.prototypeJS, 'Target was determined.');
};
exports['test scriptaculous on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/scriptaculous/1.9.0/scriptaculous.min.js');
assert.equal(target.path, localPaths.scriptaculous, 'Target was determined.');
};
exports['test swfobject on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/swfobject/2.2/swfobject.js');
assert.equal(target.path, localPaths.swfobject, 'Target was determined.');
};
exports['test underscore on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/underscore/1.4.4/underscore-min.js');
assert.equal(target.path, localPaths.underscore[1], 'Target was determined.');
};
exports['test webfont on sina public resources'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('lib.sinaapp.com', '/js/webfont/1.0.19/webfont.js');
assert.equal(target.path, localPaths.webfont[0], 'Target was determined.');
};
// UpYun Library
exports['test dojo on upyun library'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('upcdn.b0.upaiyun.com', '/libs/dojo/dojo-1.8.3.min.js');
assert.equal(target.path, localPaths.dojo, 'Target was determined.');
};
exports['test ember on upyun library'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('upcdn.b0.upaiyun.com', '/libs/emberjs/emberjs-1.1.0.min.js');
assert.equal(target.path, localPaths.ember[0], 'Target was determined.');
};
exports['test jquery on upyun library'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('upcdn.b0.upaiyun.com', '/libs/jquery/jquery-1.10.2.min.js');
assert.equal(target.path, localPaths.jQuery[0], 'Target was determined.');
};
exports['test jquery-ui on upyun library'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('upcdn.b0.upaiyun.com', '/libs/jqueryui/jquery.ui-1.10.2.min.js');
assert.equal(target.path, localPaths.jQueryUI, 'Target was determined.');
};
exports['test modernizr on upyun library'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('upcdn.b0.upaiyun.com', '/libs/modernizr/modernizr-2.6.2.min.js');
assert.equal(target.path, localPaths.modernizr, 'Target was determined.');
};
exports['test mootools on upyun library'] = function (assert) {
var target = requestAnalyzer.getLocalTarget('upcdn.b0.upaiyun.com', '/libs/mootoolscore/mootools.core-1.4.5.min.js');
assert.equal(target.path, localPaths.mootools, 'Target was determined.');
};
/**
* Run Tests
*/
require("sdk/test").run(exports);