Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3213)

Unified Diff: chrome/test/base/js2gtest.js

Issue 8438063: Make it possible to include another file and port print_preview unit test to unit_tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/base/js2gtest.js
diff --git a/chrome/test/base/js2gtest.js b/chrome/test/base/js2gtest.js
index 995a2576c566d02a9c28e8f864873943babf997b..db2aa15fc19fe39b9eea336637c18b1200621226 100644
--- a/chrome/test/base/js2gtest.js
+++ b/chrome/test/base/js2gtest.js
@@ -10,6 +10,9 @@ var jsFile = arguments[1];
var jsFileBase = arguments[2];
var outputFile = arguments[3];
var testType = arguments[4];
+var testF;
+var typedeffedCppFixtures = {};
+var genIncludes = [];
// Generate the file to stdout.
print('// GENERATED FILE');
@@ -17,8 +20,6 @@ print('// ' + arguments.join(' '));
print('// PLEASE DO NOT HAND EDIT!');
print();
-var testF;
-
if (testType === 'unit') {
print('#include "chrome/test/base/v8_unit_test.h"');
testing.Test.prototype.typedefCppFixture = 'V8UnitTest';
@@ -32,11 +33,25 @@ print('#include "googleurl/src/gurl.h"');
print('#include "testing/gtest/include/gtest/gtest.h"');
print();
+function incFileToPaths(includeFile) {
dpapad 2011/11/03 16:14:34 Prefer the full name includeFileToPaths over the a
Sheridan Rawlins 2011/11/05 16:51:25 FWIW, this is javascript http://google-styleguide.
Sheridan Rawlins 2011/11/05 22:28:02 Hmm... missed the document part... tackling in th
+ return {
+ path: jsFile.replace(/[^\/]+$/, includeFile),
+ base: jsFileBase.replace(/[^\/]+$/, includeFile),
+ };
+}
+
function GEN(code) {
print(code);
}
-var typedeffedCppFixtures = {};
+function GEN_INCLUDE(includes) {
+ for(var i = 0; i < includes.length; ++i) {
dpapad 2011/11/03 16:14:34 Space after for.
arv (Not doing code reviews) 2011/11/03 19:04:12 nit i++
Sheridan Rawlins 2011/11/05 16:51:25 Done.
Sheridan Rawlins 2011/11/05 16:51:25 Done.
+ var incPaths = incFileToPaths(includes[i]);
+ var js = read(incPaths.path);
+ eval(js);
arv (Not doing code reviews) 2011/11/03 19:04:12 I assume we don't want to eval this in the scope o
Sheridan Rawlins 2011/11/05 16:51:25 Done.
+ genIncludes = genIncludes.concat(incPaths.base);
arv (Not doing code reviews) 2011/11/03 19:04:12 push?
Sheridan Rawlins 2011/11/05 16:51:25 Yeah, that's what I wanted, but the thing being pu
Sheridan Rawlins 2011/11/05 22:28:02 Sorry, I guess in this loop, it's a singular item.
+ }
+}
function TEST_F(testFixture, testFunction, testBody) {
var browsePreload = this[testFixture].prototype.browsePreload;
arv (Not doing code reviews) 2011/11/09 03:02:06 var proto = this[testFixture].prototype;
@@ -48,6 +63,11 @@ function TEST_F(testFixture, testFunction, testBody) {
this[testFixture].prototype.isAsync + ', ';
var testShouldFail = this[testFixture].prototype.testShouldFail;
var testPredicate = testShouldFail ? 'ASSERT_FALSE' : 'ASSERT_TRUE';
+ var addLibraries = genIncludes.concat(
+ this[testFixture].prototype.addLibraries.map(
arv (Not doing code reviews) 2011/11/03 19:04:12 This looks strange. Why are we getting this from t
Sheridan Rawlins 2011/11/05 16:51:25 I wanted to give the best of both worlds: 1) GEN_I
Sheridan Rawlins 2011/11/05 22:28:02 Or was your concern with using the prototype? If
arv (Not doing code reviews) 2011/11/09 03:02:06 I found it strange that you interact with the prot
+ function(incFile) {
+ return incFileToPaths(incFile).base;
+ }));
if (typedefCppFixture && !(testFixture in typedeffedCppFixtures)) {
print('typedef ' + typedefCppFixture + ' ' + testFixture + ';');
@@ -57,6 +77,10 @@ function TEST_F(testFixture, testFunction, testBody) {
print(testF + '(' + testFixture + ', ' + testFunction + ') {');
if (testGenPreamble)
testGenPreamble(testFixture, testFunction);
+ for(var i = 0; i < addLibraries.length; ++i) {
dpapad 2011/11/03 16:14:34 Space after for.
Sheridan Rawlins 2011/11/05 16:51:25 Done.
+ print(' AddLibrary(FilePath(FILE_PATH_LITERAL("' +
+ addLibraries[i].replace(/\\/g, '/') + '")));');
+ }
print(' AddLibrary(FilePath(FILE_PATH_LITERAL("' +
jsFileBase.replace(/\\/g, '/') + '")));');
if (browsePreload) {

Powered by Google App Engine
This is Rietveld 408576698