Skip to content

Commit

Permalink
Merge branch 'master' into event-ext
Browse files Browse the repository at this point in the history
  • Loading branch information
madrobby committed Dec 1, 2013
2 parents 17b0757 + a9440d5 commit 8d15e62
Show file tree
Hide file tree
Showing 25 changed files with 326 additions and 168 deletions.
9 changes: 7 additions & 2 deletions .travis.yml
@@ -1,4 +1,9 @@
script: script/test
language: node_js
notifications:
campfire:
template: '%{message} [%{branch}] %{repository}/%{commit} %{author} %{build_url}'
rooms:
secure: VR6rWk0YhezBWnD8jPjSD8h/Q83S3NT0F34Au1vswt+/+Ku19S8X44vGVUG+NYdYyhg7uOqUaPN1Jr3KCpdcXgHEpUYiyBGJ8ebltavcjeHYWqK6ghcqgSnbDkifuC7Eu/9LcrOMOXgt+zkXjiVXW3+zyGVDcrs4cQ2vGY2DTYA=
node_js:
- 0.6
script: script/test
- 0.6
4 changes: 3 additions & 1 deletion script/test
Expand Up @@ -10,5 +10,7 @@ terminate_test_server() {
}
trap terminate_test_server EXIT

phantomjs test/runner.coffee "http://localhost:${port}/" "$@"
phantomjs --disk-cache=true \
test/runner.coffee "http://localhost:${port}/" "$@"

exit $?
4 changes: 2 additions & 2 deletions src/ajax.js
Expand Up @@ -168,7 +168,7 @@
if (options.processData && options.data && $.type(options.data) != "string")
options.data = $.param(options.data, options.traditional)
if (options.data && (!options.type || options.type.toUpperCase() == 'GET'))
options.url = appendQuery(options.url, options.data)
options.url = appendQuery(options.url, options.data), options.data = null
}

$.ajax = function(options){
Expand Down Expand Up @@ -198,7 +198,7 @@
xhr = settings.xhr(), abortTimeout

if (!settings.crossDomain) baseHeaders['X-Requested-With'] = 'XMLHttpRequest'
if (mime) baseHeaders['Accept'] = mime
baseHeaders['Accept'] = mime || '*/*'
if (mime = settings.mimeType || mime) {
if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0]
xhr.overrideMimeType && xhr.overrideMimeType(mime)
Expand Down
101 changes: 82 additions & 19 deletions test/ajax.html
Expand Up @@ -7,10 +7,18 @@
<title>Zepto Ajax unit tests</title>
<script src="../vendor/evidence.js"></script>
<script src="evidence_runner.js"></script>
<script src="../src/zepto.js"></script>
<script src="../src/event.js"></script>
<script src="../src/ajax.js"></script>
<script src="../src/ie.js"></script>
<script>
// avoid caching
(function(){
function load(scripts){
scripts.split(' ').forEach(function(script){
document.write('<script src="../src/'+script+'.js?'+(+new Date)+'"></scr'+'ipt>')
})
}

load('zepto event ajax ie')
})()
</script>
</head>
<body>
<h1>Zepto Ajax unit tests</h1>
Expand Down Expand Up @@ -580,6 +588,24 @@ <h1>Zepto Ajax unit tests</h1>
})
},

testBrowserCaching: function(t) {
t.pause()
resumeOnAjaxError(t)
$.ajax({
url: 'cached',
cache: true,
success: function(firstResponse){
$.ajax({
url: 'cached',
cache: true,
success: t.reg.resumeHandler('success', function(secondResponse){
t.assertEqual(secondResponse, firstResponse)
})
})
}
})
},

testAjaxLoad: function(t) {
t.pause()
var testEl = $('#ajax_load')
Expand Down Expand Up @@ -765,10 +791,12 @@ <h1>Zepto Ajax unit tests</h1>
})
},

testDataTypeOptionSetsAcceptHeader: function(t) {
testDefaultAcceptHeader: function(t) {
$.ajax()
t.assert(!MockXHR.last.headers.some(matchHeader('Accept')))
t.assert(MockXHR.last.headers.some(matchHeader('Accept', '*/*')))
},

testDataTypeOptionSetsAcceptHeader: function(t) {
$.ajax({ dataType: 'json' })
t.assert(MockXHR.last.headers.some(matchHeader('Accept', 'application/json')))
// verifies overrideMimeType:
Expand All @@ -781,7 +809,6 @@ <h1>Zepto Ajax unit tests</h1>

testMimeTypeOptionOverride: function(t) {
$.ajax({ mimeType: 'text/plain' })
t.assert(!MockXHR.last.headers.some(matchHeader('Accept')))
t.assertEqual('text/plain', MockXHR.last.getResponseHeader('content-type'))
},

Expand Down Expand Up @@ -857,16 +884,38 @@ <h1>Zepto Ajax unit tests</h1>
t.assertNull(result)
},

testDataIsNotSentAsBodyForGetRequests: function(t) {
$.ajax({ type: 'GET', data: {a:'b'} })
t.assertNull(MockXHR.last.data)
},

testDataOptionIsConvertedToSerializedForm: function(t) {
$.ajax({ data: {hello: 'world', array: [1,2,3], object: { prop1: 'val', prop2: 2 } } })
MockXHR.last.data = decodeURIComponent(MockXHR.last.data)
t.assertEqual('hello=world&array[]=1&array[]=2&array[]=3&object[prop1]=val&object[prop2]=2', MockXHR.last.data)
$.ajax({
type: 'POST',
data: {hello: 'world', array: [1,2,3], object: { prop1: 'val', prop2: 2 } }
})
var data = decodeURIComponent(MockXHR.last.data)
t.assertEqual('hello=world&array[]=1&array[]=2&array[]=3&object[prop1]=val&object[prop2]=2', data)
},

testDataOptionIsConvertedToSerializedTraditionalForm: function(t) {
$.ajax({ data: {hello: 'world', array: [1,2,3], object: { prop1: 'val', prop2: 2 } }, traditional: true })
MockXHR.last.data = decodeURIComponent(MockXHR.last.data)
t.assertEqual('hello=world&array=1&array=2&array=3&object=[object+Object]', MockXHR.last.data)
$.ajax({
type: 'POST',
data: {hello: 'world', array: [1,2,3], object: { prop1: 'val', prop2: 2 } },
traditional: true
})
var data = decodeURIComponent(MockXHR.last.data)
t.assertEqual('hello=world&array=1&array=2&array=3&object=[object+Object]', data)
},

testQueryParamsTraditional: function(t) {
$.ajax({
url: '/',
data: {hello: 'world', array: [1,2,3], object: { prop1: 'val', prop2: 2 } },
traditional: true
})
var url = decodeURIComponent(MockXHR.last.url)
t.assertEqual('/?hello=world&array=1&array=2&array=3&object=[object+Object]', url)
},

testProcessDataDisabled: function(t) {
Expand Down Expand Up @@ -1002,8 +1051,9 @@ <h1>Zepto Ajax unit tests</h1>
t.assertEqual('PUT', xhr.method)
},

testBeforeSendCanAccessSerializedData: function(t) {
testBeforeSendCanAccessSerializedPostData: function(t) {
var xhr = $.ajax({
type: 'POST',
data: { a:'b' },
beforeSend: function(x, s) {
s.data = s.data.toUpperCase()
Expand All @@ -1012,6 +1062,21 @@ <h1>Zepto Ajax unit tests</h1>
t.assertEqual('A=B', xhr.data)
},

testBeforeSendCannotAccessRawQueryParams: function(t) {
var url, data
$.ajax({
url: '/',
type: 'GET',
data: { a:'b' },
beforeSend: function(x, s) {
url = s.url
data = s.data
}
})
t.assertEqual('/?a=b', url)
t.assertNull(data)
},

testBeforeSendCanChangeAndAddHeaders: function(t) {
var xhr = $.ajax({
headers: { a:'b', c:'d' },
Expand All @@ -1026,17 +1091,15 @@ <h1>Zepto Ajax unit tests</h1>
},

testBeforeSendAbortCallback: function(t) {
var xhr, beforeFired = false, settings = {}
var xhr, settings
$.ajax({
data: "1=2",
beforeSend: function(x, s) {
beforeFired = true, settings = s, xhr = x
settings = s, xhr = x
}
})

t.assert(beforeFired)
t.assertEqual(MockXHR.last, xhr)
t.assertEqual("1=2", settings.data)
t.assertEqual('GET', settings.type)
},

testBeforeSendAbort: function(t) {
Expand Down
14 changes: 12 additions & 2 deletions test/callbacks.html
Expand Up @@ -7,8 +7,18 @@
<title>Zepto Callbacks() unit tests</title>
<script src="../vendor/evidence.js"></script>
<script src="evidence_runner.js"></script>
<script src="../src/zepto.js"></script>
<script src="../src/callbacks.js"></script>
<script>
// avoid caching
(function(){
function load(scripts){
scripts.split(' ').forEach(function(script){
document.write('<script src="../src/'+script+'.js?'+(+new Date)+'"></scr'+'ipt>')
})
}

load('zepto callbacks')
})()
</script>
</head>
<body>
<h1>Zepto Callbacks() tests</h1>
Expand Down
16 changes: 12 additions & 4 deletions test/data.html
Expand Up @@ -7,10 +7,18 @@
<title>Zepto extended data() unit tests</title>
<script src="../vendor/evidence.js"></script>
<script src="evidence_runner.js"></script>
<script src="../src/polyfill.js"></script>
<script src="../src/zepto.js"></script>
<script src="../src/data.js"></script>
<script src="../src/ie.js"></script>
<script>
// avoid caching
(function(){
function load(scripts){
scripts.split(' ').forEach(function(script){
document.write('<script src="../src/'+script+'.js?'+(+new Date)+'"></scr'+'ipt>')
})
}

load('zepto data ie')
})()
</script>
</head>
<body>
<h1>Zepto data() tests</h1>
Expand Down
15 changes: 12 additions & 3 deletions test/deferred.html
Expand Up @@ -7,9 +7,18 @@
<title>Zepto extended data() unit tests</title>
<script src="../vendor/evidence.js"></script>
<script src="evidence_runner.js"></script>
<script src="../src/zepto.js"></script>
<script src="../src/callbacks.js"></script>
<script src="../src/deferred.js"></script>
<script>
// avoid caching
(function(){
function load(scripts){
scripts.split(' ').forEach(function(script){
document.write('<script src="../src/'+script+'.js?'+(+new Date)+'"></scr'+'ipt>')
})
}

load('zepto callbacks deferred')
})()
</script>
</head>
<body>
<h1>Zepto data() tests</h1>
Expand Down
15 changes: 12 additions & 3 deletions test/detect.html
Expand Up @@ -7,9 +7,18 @@
<title>Zepto environment detection unit tests</title>
<script src="../vendor/evidence.js"></script>
<script src="evidence_runner.js"></script>
<script src="../src/zepto.js"></script>
<script src="../src/detect.js"></script>
<script src="../src/ie.js"></script>
<script>
// avoid caching
(function(){
function load(scripts){
scripts.split(' ').forEach(function(script){
document.write('<script src="../src/'+script+'.js?'+(+new Date)+'"></scr'+'ipt>')
})
}

load('zepto detect ie')
})()
</script>
</head>
<body>
<h1>Browser detection</h1>
Expand Down
15 changes: 12 additions & 3 deletions test/event.html
Expand Up @@ -7,9 +7,18 @@
<title>Zepto event tests</title>
<script src="../vendor/evidence.js"></script>
<script src="evidence_runner.js"></script>
<script src="../src/zepto.js"></script>
<script src="../src/event.js"></script>
<script src="../src/ie.js"></script>
<script>
// avoid caching
(function(){
function load(scripts){
scripts.split(' ').forEach(function(script){
document.write('<script src="../src/'+script+'.js?'+(+new Date)+'"></scr'+'ipt>')
})
}

load('zepto event ie')
})()
</script>
</head>
<body>
<h1>Zepto event tests</h1>
Expand Down
16 changes: 12 additions & 4 deletions test/form.html
Expand Up @@ -7,10 +7,18 @@
<title>Zepto form unit tests</title>
<script src="../vendor/evidence.js"></script>
<script src="evidence_runner.js"></script>
<script src="../src/zepto.js"></script>
<script src="../src/event.js"></script>
<script src="../src/form.js"></script>
<script src="../src/ie.js"></script>
<script>
// avoid caching
(function(){
function load(scripts){
scripts.split(' ').forEach(function(script){
document.write('<script src="../src/'+script+'.js?'+(+new Date)+'"></scr'+'ipt>')
})
}

load('zepto event form ie')
})()
</script>
</head>
<body>
<h1>Zepto form tests</h1>
Expand Down
5 changes: 3 additions & 2 deletions test/assets_functional.html → test/functional/assets.html
Expand Up @@ -3,9 +3,10 @@
<head>
<meta charset="utf-8">
<title>Zepto assets functional test</title>
<link rel="stylesheet" href="../test.css">
<meta name="viewport" content="maximum-scale=1,initial-scale=1,user-scalable=0">
<script src="../src/zepto.js"></script>
<script src="../src/ie.js"></script>
<script src="../../src/zepto.js"></script>
<script src="../../src/ie.js"></script>
<style>
#container div {
margin: 2px;
Expand Down
12 changes: 6 additions & 6 deletions test/fx_functional.html → test/functional/fx.html
Expand Up @@ -3,13 +3,13 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="maximum-scale=1,initial-scale=1,user-scalable=0">
<link rel="stylesheet" href="test.css">
<link rel="stylesheet" href="../test.css">
<title>Zepto fx functional test</title>
<script src="../src/zepto.js"></script>
<script src="../src/event.js"></script>
<script src="../src/fx.js"></script>
<script src="../src/fx_methods.js"></script>
<script src="../src/ie.js"></script>
<script src="../../src/zepto.js"></script>
<script src="../../src/event.js"></script>
<script src="../../src/fx.js"></script>
<script src="../../src/fx_methods.js"></script>
<script src="../../src/ie.js"></script>
<style>
#fx_test, #fx_test_2 { text-align: center; background: darkred; color: white; font-size: x-large; }
#fx_test_2 { background: darkblue; }
Expand Down
12 changes: 6 additions & 6 deletions test/gesture_functional.html → test/functional/gesture.html
Expand Up @@ -4,12 +4,12 @@
<meta charset="utf-8">
<title>Zepto gesture functional test</title>
<meta name="viewport" content="maximum-scale=1,initial-scale=1,user-scalable=0">
<script src="../src/polyfill.js"></script>
<script src="../src/zepto.js"></script>
<script src="../src/event.js"></script>
<script src="../src/detect.js"></script>
<script src="../src/gesture.js"></script>
<script src="../src/ie.js"></script>
<link rel="stylesheet" href="../test.css">
<script src="../../src/zepto.js"></script>
<script src="../../src/event.js"></script>
<script src="../../src/detect.js"></script>
<script src="../../src/gesture.js"></script>
<script src="../../src/ie.js"></script>
</head>
<body>
<h1>Zepto gestures functional test</h1>
Expand Down

0 comments on commit 8d15e62

Please sign in to comment.