| /******************************************************************************* |
| * Copyright (c) 2000, 2007 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.wst.jsdt.core.tests.compiler.parser; |
| |
| /** |
| * Selection is expected to be wrapped with an explicit constructor invocation. |
| */ |
| public class ExplicitConstructorInvocationSelectionTest extends AbstractSelectionTest { |
| public ExplicitConstructorInvocationSelectionTest(String testName) { |
| super(testName); |
| } |
| /* |
| * ExplicitConstructorInvocation ::= Name '.' 'super' '(' <ArgumentListopt> ')' ';' |
| */ |
| public void testNameSuper() { |
| this.runTestCheckMethodParse( |
| // compilationUnit: |
| "class Bar { \n" + |
| " static Bar x; \n" + |
| " public class InnerBar { \n" + |
| " InnerBar(Bar x) { \n" + |
| " } \n" + |
| " } \n" + |
| " public class SubInnerBar extends InnerBar { \n" + |
| " SubInnerBar() { \n" + |
| " Bar.super(fred()); \n" + |
| " } \n" + |
| " } \n" + |
| "} \n", |
| // selectionStartBehind: |
| "Bar.super(", |
| // selectionEndBehind: |
| "fred", |
| // expectedSelectionNodeToString: |
| "<SelectOnMessageSend:fred()>", |
| // expectedUnitDisplayString: |
| "class Bar {\n" + |
| " public class InnerBar {\n" + |
| " InnerBar(Bar x) {\n" + |
| " }\n" + |
| " }\n" + |
| " public class SubInnerBar extends InnerBar {\n" + |
| " SubInnerBar() {\n" + |
| " super(<SelectOnMessageSend:fred()>);\n" + |
| " }\n" + |
| " }\n" + |
| " static Bar x;\n" + |
| " <clinit>() {\n" + |
| " }\n" + |
| " Bar() {\n" + |
| " }\n" + |
| "}\n", |
| // expectedSelectionIdentifier: |
| "fred", |
| // expectedReplacedSource: |
| "fred()", |
| // testName: |
| "<select on explicit constructor invocation name super>" |
| ); |
| } |
| /* |
| * ExplicitConstructorInvocation ::= Name '.' 'this' '(' <ArgumentListopt> ')' ';' |
| */ |
| public void testNameThis() { |
| this.runTestCheckMethodParse( |
| // compilationUnit: |
| "class Bar { \n" + |
| " static Bar x; \n" + |
| " public class InnerBar { \n" + |
| " InnerBar(Bar x) { \n" + |
| " } \n" + |
| " } \n" + |
| " public class SubInnerBar extends InnerBar { \n" + |
| " SubInnerBar() { \n" + |
| " Bar.this(fred()); \n" + |
| " } \n" + |
| " } \n" + |
| "} \n", |
| // selectionStartBehind: |
| "Bar.this(", |
| // selectionEndBehind: |
| "fred", |
| // expectedSelectionNodeToString: |
| "<SelectOnMessageSend:fred()>", |
| // expectedUnitDisplayString: |
| "class Bar {\n" + |
| " public class InnerBar {\n" + |
| " InnerBar(Bar x) {\n" + |
| " }\n" + |
| " }\n" + |
| " public class SubInnerBar extends InnerBar {\n" + |
| " SubInnerBar() {\n" + |
| " this(<SelectOnMessageSend:fred()>);\n" + |
| " }\n" + |
| " }\n" + |
| " static Bar x;\n" + |
| " <clinit>() {\n" + |
| " }\n" + |
| " Bar() {\n" + |
| " }\n" + |
| "}\n", |
| // expectedSelectionIdentifier: |
| "fred", |
| // expectedReplacedSource: |
| "fred()", |
| // testName: |
| "<select on explicit constructor invocation name this>" |
| ); |
| } |
| /* |
| * ExplicitConstructorInvocation ::= Primary '.' 'this' '(' <ArgumentListopt> ')' ';' |
| */ |
| public void testPrimarySuper() { |
| this.runTestCheckMethodParse( |
| // compilationUnit: |
| "class Bar { \n" + |
| " static Bar x; \n" + |
| " public class InnerBar { \n" + |
| " InnerBar(Bar x) { \n" + |
| " } \n" + |
| " } \n" + |
| " public class SubInnerBar extends InnerBar { \n" + |
| " SubInnerBar(Bar x) { \n" + |
| " primary().super(fred()); \n" + |
| " } \n" + |
| " } \n" + |
| "} \n", |
| // selectionStartBehind: |
| "super(", |
| // selectionEndBehind: |
| "fred", |
| // expectedSelectionNodeToString: |
| "<SelectOnMessageSend:fred()>", |
| // expectedUnitDisplayString: |
| "class Bar {\n" + |
| " public class InnerBar {\n" + |
| " InnerBar(Bar x) {\n" + |
| " }\n" + |
| " }\n" + |
| " public class SubInnerBar extends InnerBar {\n" + |
| " SubInnerBar(Bar x) {\n" + |
| " super(<SelectOnMessageSend:fred()>);\n" + |
| " }\n" + |
| " }\n" + |
| " static Bar x;\n" + |
| " <clinit>() {\n" + |
| " }\n" + |
| " Bar() {\n" + |
| " }\n" + |
| "}\n", |
| // expectedSelectionIdentifier: |
| "fred", |
| // expectedReplacedSource: |
| "fred()", |
| // testName: |
| "<select on explicit constructor invocation primary super>" |
| ); |
| } |
| /* |
| * ExplicitConstructorInvocation ::= 'super' '(' <ArgumentListopt> ')' ';' |
| */ |
| public void testSuper() { |
| this.runTestCheckMethodParse( |
| // compilationUnit: |
| "class Bar { \n" + |
| " Bar() { \n" + |
| " super(fred()); \n" + |
| " } \n" + |
| "} \n", |
| // selectionStartBehind: |
| "super(", |
| // selectionEndBehind: |
| "fred", |
| // expectedSelectionNodeToString: |
| "<SelectOnMessageSend:fred()>", |
| // expectedUnitDisplayString: |
| "class Bar {\n" + |
| " Bar() {\n" + |
| " super(<SelectOnMessageSend:fred()>);\n" + |
| " }\n" + |
| "}\n", |
| // expectedSelectionIdentifier: |
| "fred", |
| // expectedReplacedSource: |
| "fred()", |
| // testName: |
| "<select on explicit constructor invocation super>" |
| ); |
| } |
| /* |
| * ExplicitConstructorInvocation ::= 'this' '(' <ArgumentListopt> ')' ';' |
| */ |
| public void testThis() { |
| this.runTestCheckMethodParse( |
| // compilationUnit: |
| "class Bar { \n" + |
| " Bar() { \n" + |
| " this(fred()); \n" + |
| " } \n" + |
| "} \n", |
| // selectionStartBehind: |
| "this(", |
| // selectionEndBehind: |
| "fred", |
| // expectedSelectionNodeToString: |
| "<SelectOnMessageSend:fred()>", |
| // expectedUnitDisplayString: |
| "class Bar {\n" + |
| " Bar() {\n" + |
| " this(<SelectOnMessageSend:fred()>);\n" + |
| " }\n" + |
| "}\n", |
| // expectedSelectionIdentifier: |
| "fred", |
| // expectedReplacedSource: |
| "fred()", |
| // testName: |
| "<select on explicit constructor invocation this>" |
| ); |
| } |
| } |