Marko v3: Renamed "test/fixtures/render-async" to "test/fixtures/async-render"

This commit is contained in:
Patrick Steele-Idem 2016-01-11 10:25:03 -07:00
parent 0460830088
commit 59f361dc2a
41 changed files with 418 additions and 0 deletions

View File

@ -0,0 +1 @@
<ul><li><ul><li><b>Name:</b> John B. Flowers</li><li><b>Gender:</b> Male</li><li><b>Occupation:</b> Clock repairer</li></ul></li><li><ul><li><b>Name:</b> Pamela R. Rice</li><li><b>Gender:</b> Female</li><li><b>Occupation:</b> Cartographer</li></ul></li><li><ul><li><b>Name:</b> Barbara C. Rigsby</li><li><b>Gender:</b> Female</li><li><b>Occupation:</b> Enrollment specialist</li></ul></li><li><ul><li><b>Name:</b> Anthony J. Ward</li><li><b>Gender:</b> Male</li><li><b>Occupation:</b> Clinical laboratory technologist</li></ul></li></ul>

View File

@ -0,0 +1,17 @@
<ul>
<li for="userId in [0, 1, 2, 3]">
<async-fragment data-provider="data.userInfo" var="userInfo" arg-userId="$userId">
<ul>
<li>
<b>Name:</b> $userInfo.name
</li>
<li>
<b>Gender:</b> $userInfo.gender
</li>
<li>
<b>Occupation:</b> $userInfo.occupation
</li>
</ul>
</async-fragment>
</li>
</ul>

View File

@ -0,0 +1,30 @@
var users = {
"0": {
name: "John B. Flowers",
occupation: "Clock repairer",
gender: "Male"
},
"1": {
name: "Pamela R. Rice",
occupation: "Cartographer",
gender: "Female"
},
"2": {
name: "Barbara C. Rigsby",
occupation: "Enrollment specialist",
gender: "Female"
},
"3": {
name: "Anthony J. Ward",
occupation: "Clinical laboratory technologist",
gender: "Male"
}
};
exports.templateData = {
userInfo: function (arg, done) {
setTimeout(function() {
done(null, users[arg.userId]);
}, 100);
}
};

View File

@ -0,0 +1 @@
<span id="afph0"></span><script type="text/javascript">function $af(d,a,e,l,g,h,k,b,f,c){c=$af;if(a&&!c[a])(c[a+="$"]||(c[a]=[])).push(d);else{e=document;l=e.getElementById("af"+d);g=e.getElementById("afph"+d);h=e.createDocumentFragment();k=l.childNodes;b=0;for(f=k.length;b<f;b++)h.appendChild(k.item(0));g.parentNode.replaceChild(h,g);c[d]=1;if(a=c[d+"$"])for(b=0,f=a.length;b<f;b++)c(a[b])}};</script><div id="af0" style="display:none"><h1>Outer</h1><span id="afph1"></span><span id="afph2"></span></div><script type="text/javascript">$af(0)</script><div id="af1" style="display:none"><h2>Inner 1</h2></div><script type="text/javascript">$af(1)</script><div id="af2" style="display:none"><h2>Inner 2</h2></div><script type="text/javascript">$af(2)</script>

View File

@ -0,0 +1,14 @@
<async-fragment data-provider="data.outer" var="outer" client-reorder>
<h1>Outer</h1>
<async-fragment data-provider="data.inner1" var="inner1" client-reorder>
<h2>Inner 1</h2>
</async-fragment>
<async-fragment data-provider="data.inner2" var="inner2" client-reorder>
<h2>Inner 2</h2>
</async-fragment>
</async-fragment>
<async-fragments/>

View File

@ -0,0 +1,17 @@
exports.templateData = {
outer: function(callback) {
setTimeout(function() {
callback(null, {});
}, 400);
},
inner1: function(callback) {
setTimeout(function() {
callback(null, {});
}, 500);
},
inner2: function(callback) {
setTimeout(function() {
callback(null, {});
}, 600);
}
};

View File

@ -0,0 +1 @@
testContextDatatestSharedData

View File

@ -0,0 +1,7 @@
<async-fragment data-provider="data.contextData" var="d1">
$d1.name
</async-fragment>
<async-fragment data-provider="data.sharedData" var="d2">
$d2.name
</async-fragment>

View File

@ -0,0 +1,20 @@
exports.templateData = {
sharedData: function (args, done) {
var deferred = require('raptor-promises').defer();
setTimeout(function() {
deferred.resolve({
name: 'testSharedData'
});
}, 100);
return deferred.promise;
},
contextData: function (args, done) {
setTimeout(function() {
done(null, {
name: "testContextData"
});
}, 100);
}
};

View File

@ -0,0 +1 @@
BEFORE something went wrong! AFTER

View File

@ -0,0 +1,9 @@
BEFORE
<async-fragment data-provider="data.testDataProvider" var="testData">
Success!
<async-fragment-error>
something went wrong!
</async-fragment-error>
</async-fragment>
AFTER

View File

@ -0,0 +1,8 @@
exports.templateData = {
testDataProvider: function(done) {
setTimeout(function() {
var err = new Error('Something went wrong!');
done(err, null);
}, 200);
}
};

View File

@ -0,0 +1,3 @@
<async-fragment data-provider="data.userInfo" var="userInfo">
Hello $userInfo.name
</async-fragment>

View File

@ -0,0 +1,33 @@
exports.tests = [
{
templateData: {
userInfo: function() {
var deferred = require('raptor-promises').defer();
setTimeout(function() {
deferred.resolve({
name: 'John'
});
}, 200);
return deferred.promise;
}
}
},
{
templateData: {
userInfo: function() {
return {
name: 'John'
};
}
}
},
{
templateData: {
userInfo: function(arg, done) {
done(null, {
name: 'John'
});
}
}
}
];

View File

@ -0,0 +1 @@
1 2 3

View File

@ -0,0 +1,7 @@
<def function="asyncMacro(num)">
$num
</def>1
<async-fragment data-provider="data.D1" var="D1">
<invoke function="asyncMacro" num="2"/>
</async-fragment>
3

View File

@ -0,0 +1,17 @@
function delayedDataProvider(delay, value) {
return function(args, done) {
setTimeout(function() {
done(null, value);
}, delay);
};
}
exports.tests = [
{
templateData: {
'D1': delayedDataProvider(100)
},
expectedFile: require.resolve('./expected.html')
}
];

View File

@ -0,0 +1 @@
1 2 3 4 5 6 7 8 9

View File

@ -0,0 +1,17 @@
1
<async-fragment data-provider="data.D1" var="d1">
2
<async-fragment data-provider="data.D2" var="d2">
3
</async-fragment>
4
<async-fragment data-provider="data.D3" var="d3">
5
</async-fragment>
6
</async-fragment>
7
<async-fragment data-provider="data.D4" var="d4">
8
</async-fragment>
9

View File

@ -0,0 +1,47 @@
function delayedDataProvider(delay, value) {
return function(args, done) {
setTimeout(function() {
done(null, value);
}, delay);
};
}
exports.tests = [
{
templateData: {
'D1': delayedDataProvider(100),
'D2': delayedDataProvider(300),
'D3': delayedDataProvider(200),
'D4': delayedDataProvider(800)
},
expectedFile: require.resolve('./expected.html')
},
{
templateData: {
'D1': delayedDataProvider(100),
'D2': delayedDataProvider(200),
'D3': delayedDataProvider(300),
'D4': delayedDataProvider(150)
},
expectedFile: require.resolve('./expected.html')
},
{
templateData: {
'D1': delayedDataProvider(800),
'D2': delayedDataProvider(200),
'D3': delayedDataProvider(300),
'D4': delayedDataProvider(100)
},
expectedFile: require.resolve('./expected.html')
},
{
templateData: {
'D1': delayedDataProvider(800),
'D2': delayedDataProvider(300),
'D3': delayedDataProvider(200),
'D4': delayedDataProvider(100)
},
expectedFile: require.resolve('./expected.html')
}
];

View File

@ -0,0 +1 @@
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

View File

@ -0,0 +1,33 @@
1
<async-fragment data-provider="data.D1" var="d1">
2
<async-fragment data-provider="data.D2" var="d2">
3
</async-fragment>
4
<async-fragment data-provider="data.D3" var="d3">
5
<async-fragment data-provider="data.D4" var="d4">
6
</async-fragment>
7
</async-fragment>
8
</async-fragment>
9
<async-fragment data-provider="data.D5" var="d5">
10
<async-fragment data-provider="data.D6" var="d6">
11
</async-fragment>
12
<async-fragment data-provider="data.D7" var="d7">
13
</async-fragment>
14
<async-fragment data-provider="data.D7" var="d7">
15
</async-fragment>
16
</async-fragment>
17

View File

@ -0,0 +1,47 @@
function delayedDataProvider(delay, value) {
return function(args, done) {
setTimeout(function() {
done(null, value);
}, delay);
};
}
exports.tests = [
{
templateData: {
'D1': delayedDataProvider(100),
'D2': delayedDataProvider(300),
'D3': delayedDataProvider(200),
'D4': delayedDataProvider(800),
'D5': delayedDataProvider(900),
'D6': delayedDataProvider(100),
'D7': delayedDataProvider(50)
},
expectedFile: require.resolve('./expected.html')
},
{
templateData: {
'D1': delayedDataProvider(100),
'D2': delayedDataProvider(300),
'D3': delayedDataProvider(200),
'D4': delayedDataProvider(800),
'D5': delayedDataProvider(900),
'D6': delayedDataProvider(100),
'D7': delayedDataProvider(200)
},
expectedFile: require.resolve('./expected.html')
},
{
templateData: {
'D1': delayedDataProvider(900),
'D2': delayedDataProvider(300),
'D3': delayedDataProvider(200),
'D4': delayedDataProvider(800),
'D5': delayedDataProvider(100),
'D6': delayedDataProvider(100),
'D7': delayedDataProvider(200)
},
expectedFile: require.resolve('./expected.html')
}
];

View File

@ -0,0 +1 @@
BEFORE something went wrong!

View File

@ -0,0 +1,10 @@
<async-fragment data-provider="data.promiseData" var="promiseData">
BEFORE
<if test="true">
$promiseData.noprop.value
</if>
AFTER
<async-fragment-error>
something went wrong!
</async-fragment-error>
</async-fragment>

View File

@ -0,0 +1,9 @@
var deferred = require('bluebird').defer();
setTimeout(function() {
deferred.resolve({});
}, 200);
exports.templateData = {
promiseData: deferred.promise
};

View File

@ -0,0 +1 @@
BEFORE something went wrong!

View File

@ -0,0 +1,10 @@
<async-fragment data-provider="data.promiseData" var="promiseData">
BEFORE
<if test="true">
$promiseData.noprop.value
</if>
AFTER
<async-fragment-error>
something went wrong!
</async-fragment-error>
</async-fragment>

View File

@ -0,0 +1,9 @@
var deferred = require('raptor-promises').defer();
setTimeout(function() {
deferred.resolve({});
}, 200);
exports.templateData = {
promiseData: deferred.promise
};

View File

@ -0,0 +1 @@
Test promise

View File

@ -0,0 +1,3 @@
<async-fragment data-provider="data.promiseData" var="promiseData">
$promiseData
</async-fragment>

View File

@ -0,0 +1,10 @@
var deferred = require('raptor-promises').defer();
setTimeout(function() {
deferred.resolve('Test promise');
}, 200);
exports.templateData = {
promiseData: function (arg, done) {
return deferred.promise;
}
};

View File

@ -0,0 +1 @@
Server is busy!

View File

@ -0,0 +1,3 @@
<async-fragment data-provider="data.userInfo" var="userInfo" timeout="100" timeout-message="Server is busy!">
Hello World
</async-fragment>

View File

@ -0,0 +1,5 @@
exports.templateData = {
userInfo: function(arg, done) {
// Do nothing to trigger a timeout
}
};

View File

@ -0,0 +1 @@
1-A timeout has occurred!2-A timeout has occurred!

View File

@ -0,0 +1,9 @@
<async-fragment data-provider="data.userInfo" var="user" timeout="300">
<async-fragment-timeout>
1-A timeout has occurred!
</async-fragment-timeout>
1
</async-fragment>
<async-fragment data-provider="data.userInfo" var="user" timeout-message="2-A timeout has occurred!" timeout="300">
2
</async-fragment>

View File

@ -0,0 +1,7 @@
exports.templateData = {
userInfo: function(done) {
setTimeout(function() {
done(null, {});
}, 600);
}
};

View File

@ -0,0 +1 @@
ABC

View File

@ -0,0 +1,3 @@
<var name="helper" value="data.helper"/>
A<invoke function="helper.beginAsync(out)"/>C