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

Unified Diff: grit/node/base_unittest.py

Issue 156443002: Provide defines as local variables in if-expressions. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk
Patch Set: rebased past is_posix fix, fixed is_posix again and updated unittests Created 6 years, 10 months 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
« no previous file with comments | « grit/node/base.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: grit/node/base_unittest.py
diff --git a/grit/node/base_unittest.py b/grit/node/base_unittest.py
index 63a2033272ad7b90386dbf41510375db10ec3cb0..f7e7b759c2da49ea9d572a07cf24bc02c8a9fdea 100644
--- a/grit/node/base_unittest.py
+++ b/grit/node/base_unittest.py
@@ -192,6 +192,67 @@ class NodeUnittest(unittest.TestCase):
self.failUnlessEqual(output_nodes[2].attrs['filename'],
'de/generated_resources.rc')
+ def testEvaluateExpression(self):
+ def AssertExpr(expected_value, expr, defs, target_platform,
+ extra_variables):
+ self.failUnlessEqual(expected_value, base.Node.EvaluateExpression(
+ expr, defs, target_platform, extra_variables))
+
+ AssertExpr(True, "True", {}, 'linux', {})
+ AssertExpr(False, "False", {}, 'linux', {})
+ AssertExpr(True, "True or False", {}, 'linux', {})
+ AssertExpr(False, "True and False", {}, 'linux', {})
+ AssertExpr(True, "os == 'linux'", {}, 'linux', {})
+ AssertExpr(False, "os == 'linux'", {}, 'ios', {})
+ AssertExpr(True, "'foo' in defs", {'foo': 'bar'}, 'ios', {})
+ AssertExpr(False, "'foo' in defs", {'baz': 'bar'}, 'ios', {})
+ AssertExpr(False, "'foo' in defs", {}, 'ios', {})
+ AssertExpr(True, "is_linux", {}, 'linux2', {})
+ AssertExpr(False, "is_linux", {}, 'win32', {})
+ AssertExpr(True, "is_macosx", {}, 'darwin', {})
+ AssertExpr(False, "is_macosx", {}, 'ios', {})
+ AssertExpr(True, "is_win", {}, 'win32', {})
+ AssertExpr(False, "is_win", {}, 'darwin', {})
+ AssertExpr(True, "is_android", {}, 'android', {})
+ AssertExpr(False, "is_android", {}, 'linux3', {})
+ AssertExpr(True, "is_ios", {}, 'ios', {})
+ AssertExpr(False, "is_ios", {}, 'darwin', {})
+ AssertExpr(True, "is_posix", {}, 'linux2', {})
+ AssertExpr(True, "is_posix", {}, 'darwin', {})
+ AssertExpr(True, "is_posix", {}, 'android', {})
+ AssertExpr(True, "is_posix", {}, 'ios', {})
+ AssertExpr(True, "is_posix", {}, 'freebsd7', {})
+ AssertExpr(False, "is_posix", {}, 'win32', {})
+ AssertExpr(True, "pp_ifdef('foo')", {'foo': True}, 'win32', {})
+ AssertExpr(True, "pp_ifdef('foo')", {'foo': False}, 'win32', {})
+ AssertExpr(False, "pp_ifdef('foo')", {'bar': True}, 'win32', {})
+ AssertExpr(True, "pp_if('foo')", {'foo': True}, 'win32', {})
+ AssertExpr(False, "pp_if('foo')", {'foo': False}, 'win32', {})
+ AssertExpr(False, "pp_if('foo')", {'bar': True}, 'win32', {})
+ AssertExpr(True, "foo", {'foo': True}, 'win32', {})
+ AssertExpr(False, "foo", {'foo': False}, 'win32', {})
+ AssertExpr(False, "foo", {'bar': True}, 'win32', {})
+ AssertExpr(True, "foo == 'baz'", {'foo': 'baz'}, 'win32', {})
+ AssertExpr(False, "foo == 'baz'", {'foo': True}, 'win32', {})
+ AssertExpr(False, "foo == 'baz'", {}, 'win32', {})
+ AssertExpr(True, "lang == 'de'", {}, 'win32', {'lang': 'de'})
+ AssertExpr(False, "lang == 'de'", {}, 'win32', {'lang': 'fr'})
+ AssertExpr(False, "lang == 'de'", {}, 'win32', {})
+
+ # Test a couple more complex expressions for good measure.
+ AssertExpr(True, "is_ios and (lang in ['de', 'fr'] or foo)",
+ {'foo': 'bar'}, 'ios', {'lang': 'fr', 'context': 'today'})
+ AssertExpr(False, "is_ios and (lang in ['de', 'fr'] or foo)",
+ {'foo': False}, 'linux2', {'lang': 'fr', 'context': 'today'})
+ AssertExpr(False, "is_ios and (lang in ['de', 'fr'] or foo)",
+ {'baz': 'bar'}, 'ios', {'lang': 'he', 'context': 'today'})
+ AssertExpr(True, "foo == 'bar' or not baz",
+ {'foo': 'bar', 'fun': True}, 'ios', {'lang': 'en'})
+ AssertExpr(True, "foo == 'bar' or not baz",
+ {}, 'ios', {'lang': 'en', 'context': 'java'})
+ AssertExpr(False, "foo == 'bar' or not baz",
+ {'foo': 'ruz', 'baz': True}, 'ios', {'lang': 'en'})
+
if __name__ == '__main__':
unittest.main()
« no previous file with comments | « grit/node/base.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698