| /* | |
| * Copyright 2009 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.junit; | |
| import com.google.gwt.junit.client.impl.JUnitHost.TestInfo; | |
| import java.util.ArrayList; | |
| import java.util.List; | |
| import java.util.Set; | |
| /** | |
| * Strategy that batches all tests belonging to one class. | |
| */ | |
| class ClassBatchingStrategy extends BatchingStrategy { | |
| @Override | |
| public List<TestInfo[]> getTestBlocks(String syntheticModuleName) { | |
| Set<TestInfo> allTestsInModule = getTestsForModule(syntheticModuleName); | |
| List<TestInfo[]> testBlocks = new ArrayList<TestInfo[]>(); | |
| String lastTestClass = null; | |
| List<TestInfo> lastTestBlock = null; | |
| for (TestInfo testInfo : allTestsInModule) { | |
| String testClass = testInfo.getTestClass(); | |
| if (!testClass.equals(lastTestClass)) { | |
| // Add the last test block to the collection. | |
| if (lastTestBlock != null) { | |
| testBlocks.add(lastTestBlock.toArray(new TestInfo[lastTestBlock.size()])); | |
| } | |
| // Start a new test block. | |
| lastTestClass = testClass; | |
| lastTestBlock = new ArrayList<TestInfo>(); | |
| } | |
| lastTestBlock.add(testInfo); | |
| } | |
| // Add the last test block. | |
| if (lastTestBlock != null) { | |
| testBlocks.add(lastTestBlock.toArray(new TestInfo[lastTestBlock.size()])); | |
| } | |
| return testBlocks; | |
| } | |
| @Override | |
| public boolean isSingleTestOnly() { | |
| return false; | |
| } | |
| @Override | |
| protected int getTimeoutMultiplier() { | |
| return 4; | |
| } | |
| } |