fixed testing

This commit is contained in:
coderaiser 2012-09-17 11:02:09 -04:00
parent 432ed1ec6c
commit 01228254a1
2 changed files with 172 additions and 176 deletions

View file

@ -29,14 +29,14 @@ function readConfig(){
var lConfig = cloudRequire('./config');
if(lConfig){
console.log('config.json readed');
console.log(process.argv);
/* if command line parameter testing resolved
* setting config to testing, so server
* not created, just init and
* all logs writed to screen
*/
if (process.argv[process.argv.length - 1] === 'test') {
console.log(process.argv);
var lArg = process.argv[process.argv.length - 1];
if ( lArg === 'test' || lArg === 'test\r') {
lConfig.server = false;
lConfig.logs = false;
}

342
server.js
View file

@ -284,182 +284,178 @@ CloudServer._controller = function(pReq, pRes)
*/
var lNoJS_s = CloudFunc.NOJS;
var lFS_s = CloudFunc.FS;
if(pathname!=='/favicon.ico')
{
console.log("request for " + pathname + " received...");
/* если в пути нет информации ни о ФС,
* ни об отсутствии js,
* ни о том, что это корневой
* каталог - загружаем файлы проэкта
console.log("request for " + pathname + " received...");
/* если в пути нет информации ни о ФС,
* ни об отсутствии js,
* ни о том, что это корневой
* каталог - загружаем файлы проэкта
*/
if(pathname.indexOf(lFS_s) < 0 &&
pathname.indexOf(lNoJS_s) < 0 &&
pathname!=='/' &&
lQuery !=='json'){
/* если имена файлов проекта - загружаем их*/
/* убираем слеш и читаем файл с текущец директории*/
/* добавляем текующий каталог к пути */
var lName = '.' + pathname;
console.log('reading '+lName);
/* watching is file changed */
CloudServer.AppCache.watch(lName);
/* сохраняем указатель на response и имя */
CloudServer.Responses[lName] = pRes;
/* saving status OK for current file */
CloudServer.Statuses[lName] = 200;
/* Берём значение из кэша
* сжатый файл - если gzip-поддерживаеться браузером
* не сжатый - в обратном случае
*/
if(pathname.indexOf(lFS_s) < 0 &&
pathname.indexOf(lNoJS_s) < 0 &&
pathname!=='/' &&
lQuery !=='json'){
/* если имена файлов проекта - загружаем их*/
/* убираем слеш и читаем файл с текущец директории*/
/* добавляем текующий каталог к пути */
var lName = '.' + pathname;
console.log('reading '+lName);
/* watching is file changed */
CloudServer.AppCache.watch(lName);
/* сохраняем указатель на response и имя */
CloudServer.Responses[lName] = pRes;
/* saving status OK for current file */
CloudServer.Statuses[lName] = 200;
/* Берём значение из кэша
* сжатый файл - если gzip-поддерживаеться браузером
* не сжатый - в обратном случае
*/
var lFileData=CloudServer.Cache.get(
CloudServer.Gzip?(lName+'_gzip'):lName);
console.log(Path.basename(lName));
var lMinify = CloudServer.Minify;
/* object thet contains information
* about the source of file data
*/
var lFromCache_o = {'cache': true};
/* if cache is empty and Cache allowed and Minify_allowed
* and in Minifys cache is files, so save it to
* CloudServer cache
*/
if(!lFileData &&
lMinify._allowed){
console.log('trying to read data from Minify.Cache');
lFromCache_o.cache = false;
lFileData = CloudServer.Minify.Cache[
Path.basename(lName)];
}
var lReadFileFunc_f = CloudServer.getReadFileFunc(lName);
/* если там что-то есть передаём данные в функцию
* readFile
*/
var lResult = true;
if(lFileData){
/* if file readed not from cache -
* he readed from minified cache
*/
if(lFromCache_o.cache === false)
lFromCache_o.minify = true;
else
lFromCache_o.minify = false;
var lFileData=CloudServer.Cache.get(
CloudServer.Gzip?(lName+'_gzip'):lName);
console.log(Path.basename(lName));
console.log(lName + ' readed from cache');
/* передаём данные с кэша,
* если gzip включен - сжатые
* в обратном случае - несжатые
*/
lReadFileFunc_f(undefined, lFileData, lFromCache_o);
}
/* if file not in one of caches
* and minimizing setted then minimize it
*/
else if(lName.indexOf('min') < 0 &&
CloudServer.Minify){
var lMin_o = CloudServer.Config.minification;
var lCheck_f = function(pExt){
return CloudFunc.checkExtension(lName,pExt);
};
var isAllowd_b = (lCheck_f('js') && lMin_o.js) ||
(lCheck_f('css') && lMin_o.css) ||
(lCheck_f('html') && lMin_o.html);
if(isAllowd_b){
lResult = CloudServer.Minify.optimize(lName, {
cache: true,
callback: function(pFileData){
lReadFileFunc_f(undefined, pFileData, false);
}
});
}
else
lResult = false;
} else
lResult = false;
if(!lResult)
Fs.readFile(lName, lReadFileFunc_f);
}else{/* если мы имеем дело с файловой системой*/
/* если путь не начинаеться с no-js - значит
* js включен
*/
/* убираем пометку cloud, без которой c9.io
* не работает поскольку путь из двух слешей
* (/fs/no-js/) - очень короткий, нужно
* длиннее
*/
if(pathname.indexOf(lNoJS_s) !== lFS_s.length &&
pathname !== '/'){
CloudServer.NoJS = false;
}else pathname = pathname.replace(lNoJS_s,'');
/* убираем индекс файловой системы */
if(pathname.indexOf(lFS_s) === 0){
pathname = pathname.replace(lFS_s,'');
/* if query json setted up
* load json data, no-js false.
*/
if(lQuery === 'json'){
CloudServer.NoJS = false;
}
/* если посетитель только зашел на сайт
* no-js будет пустым, как и fs.
* Если в пути нету fs - посетитель только зашел на сайт
* загружаем его полностью.
*/
} else CloudServer.NoJS = true;
/* если в итоге путь пустой
* делаем его корневым
*/
if (pathname === '')
pathname = '/';
DirPath = pathname;
CloudServer.Responses[DirPath] = pRes;
CloudServer.Statuses[DirPath] = 200;
/* saving query of current file */
CloudServer.Queries[DirPath] = lQuery;
/* Проверяем с папкой ли мы имеем дело */
/* читаем основные данные о файле */
Fs.stat(DirPath, CloudServer._stated);
/* если установлено сжатие
* меняем название html-файла и
* загружаем сжатый html-файл в дальнейшем
*/
CloudServer.INDEX = (CloudServer.Minify._allowed.html ?
'.' + CloudServer.Minify.MinFolder + 'index.min.html'
: CloudServer.INDEX);
/*
* сохраним указатель на response
* и на статус ответа
*/
CloudServer.Responses[CloudServer.INDEX] = pRes;
CloudServer.Statuses [CloudServer.INDEX] = 200;
var lMinify = CloudServer.Minify;
/* object thet contains information
* about the source of file data
*/
var lFromCache_o = {'cache': true};
/* if cache is empty and Cache allowed and Minify_allowed
* and in Minifys cache is files, so save it to
* CloudServer cache
*/
if(!lFileData &&
lMinify._allowed){
console.log('trying to read data from Minify.Cache');
lFromCache_o.cache = false;
lFileData = CloudServer.Minify.Cache[
Path.basename(lName)];
}
var lReadFileFunc_f = CloudServer.getReadFileFunc(lName);
/* если там что-то есть передаём данные в функцию
* readFile
*/
var lResult = true;
if(lFileData){
/* if file readed not from cache -
* he readed from minified cache
*/
if(lFromCache_o.cache === false)
lFromCache_o.minify = true;
else
lFromCache_o.minify = false;
console.log(lName + ' readed from cache');
/* передаём данные с кэша,
* если gzip включен - сжатые
* в обратном случае - несжатые
*/
lReadFileFunc_f(undefined, lFileData, lFromCache_o);
}
/* if file not in one of caches
* and minimizing setted then minimize it
*/
else if(lName.indexOf('min') < 0 &&
CloudServer.Minify){
var lMin_o = CloudServer.Config.minification;
var lCheck_f = function(pExt){
return CloudFunc.checkExtension(lName,pExt);
};
var isAllowd_b = (lCheck_f('js') && lMin_o.js) ||
(lCheck_f('css') && lMin_o.css) ||
(lCheck_f('html') && lMin_o.html);
if(isAllowd_b){
lResult = CloudServer.Minify.optimize(lName, {
cache: true,
callback: function(pFileData){
lReadFileFunc_f(undefined, pFileData, false);
}
});
}
else
lResult = false;
} else
lResult = false;
if(!lResult)
Fs.readFile(lName, lReadFileFunc_f);
}else{/* если мы имеем дело с файловой системой*/
/* если путь не начинаеться с no-js - значит
* js включен
*/
/* убираем пометку cloud, без которой c9.io
* не работает поскольку путь из двух слешей
* (/fs/no-js/) - очень короткий, нужно
* длиннее
*/
if(pathname.indexOf(lNoJS_s) !== lFS_s.length &&
pathname !== '/'){
CloudServer.NoJS = false;
}else pathname = pathname.replace(lNoJS_s,'');
/* убираем индекс файловой системы */
if(pathname.indexOf(lFS_s) === 0){
pathname = pathname.replace(lFS_s,'');
/* if query json setted up
* load json data, no-js false.
*/
if(lQuery === 'json'){
CloudServer.NoJS = false;
}
/* если посетитель только зашел на сайт
* no-js будет пустым, как и fs.
* Если в пути нету fs - посетитель только зашел на сайт
* загружаем его полностью.
*/
} else CloudServer.NoJS = true;
/* если в итоге путь пустой
* делаем его корневым
*/
if (pathname === '')
pathname = '/';
DirPath = pathname;
CloudServer.Responses[DirPath] = pRes;
CloudServer.Statuses[DirPath] = 200;
/* saving query of current file */
CloudServer.Queries[DirPath] = lQuery;
/* Проверяем с папкой ли мы имеем дело */
/* читаем основные данные о файле */
Fs.stat(DirPath, CloudServer._stated);
/* если установлено сжатие
* меняем название html-файла и
* загружаем сжатый html-файл в дальнейшем
*/
CloudServer.INDEX = (CloudServer.Minify._allowed.html ?
'.' + CloudServer.Minify.MinFolder + 'index.min.html'
: CloudServer.INDEX);
/*
* сохраним указатель на response
* и на статус ответа
*/
CloudServer.Responses[CloudServer.INDEX] = pRes;
CloudServer.Statuses [CloudServer.INDEX] = 200;
}
};