| /* |
| * Copyright 2014 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.dev.jjs.impl; |
| |
| import com.google.gwt.dev.jjs.ast.Context; |
| import com.google.gwt.dev.jjs.ast.JExpressionStatement; |
| import com.google.gwt.dev.jjs.ast.JModVisitor; |
| |
| /** |
| * Test for {@link JModVisitor}. |
| */ |
| public class JModVisitorTest extends JJSTestBase { |
| // TODO(rluble): add more comprehensive tests. |
| |
| /** |
| * Removes all expression statements. |
| */ |
| private static final class RemoveAllExpressionStatementsVisitor extends JModVisitor { |
| |
| @Override |
| public void endVisit(JExpressionStatement exprStatement, Context ctx) { |
| ctx.removeMe(); |
| } |
| } |
| |
| public void testRemoveForBody() throws Exception { |
| assertTransform("for(int i = 3; i < 4; i++) i = 8;", |
| new RemoveAllExpressionStatementsVisitor()).into("for(int i = 3; i < 4; i++) ;"); |
| |
| assertTransform("for(int i = 3; i < 4; i++) { i = 8; }", |
| new RemoveAllExpressionStatementsVisitor()).into("for(int i = 3; i < 4; i++) {}"); |
| } |
| |
| public void testRemoveIfThenBody() throws Exception { |
| assertTransform("int i = 3; if (i == 5) i = 3;", |
| new RemoveAllExpressionStatementsVisitor()).into("int i = 3; if (i == 5) ;"); |
| } |
| |
| public void testRemoveIfElseBody() throws Exception { |
| assertTransform("int i = 3; if (i == 5) {} else i = 4;", |
| new RemoveAllExpressionStatementsVisitor()).into("int i = 3; if (i == 5) {}"); |
| } |
| |
| public void testRemoveDoBody() throws Exception { |
| assertTransform("int i = 3; do i = 3; while (false);", |
| new RemoveAllExpressionStatementsVisitor()).into("int i = 3; do ; while (false);"); |
| } |
| |
| public void testRemoveWhileBody() throws Exception { |
| assertTransform("int i = 3; while (i < 3) i = 4;", |
| new RemoveAllExpressionStatementsVisitor()).into("int i = 3; while (i < 3);"); |
| } |
| } |