imakerplugin/com.nokia.s60tools.imaker.tests/src/com/nokia/s60tools/imaker/internal/tests/ProjectBuilder.java
author dpodwall
Tue, 12 Jan 2010 13:17:53 -0600
changeset 0 61163b28edca
child 1 7ff23301fe22
permissions -rw-r--r--
initial EPL conversion
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
     1
/*
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
     3
* All rights reserved.
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
     4
* This component and the accompanying materials are made available
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
     6
* which accompanies this distribution, and is available
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
     8
*
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
     9
* Initial Contributors:
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    11
*
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    12
* Contributors:
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    13
*
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    14
* Description: 
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    15
*
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    16
*/
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    17
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    18
package com.nokia.s60tools.imaker.internal.tests;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    19
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    20
import java.io.ByteArrayInputStream;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    21
import java.io.File;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    22
import java.io.FilenameFilter;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    23
import java.io.InputStream;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    24
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    25
import junit.framework.TestCase;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    26
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    27
import org.eclipse.core.resources.IFile;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    28
import org.eclipse.core.resources.IFolder;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    29
import org.eclipse.core.resources.IProject;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    30
import org.eclipse.core.resources.IWorkspace;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    31
import org.eclipse.core.resources.IWorkspaceRoot;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    32
import org.eclipse.core.resources.ResourcesPlugin;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    33
import org.eclipse.core.runtime.CoreException;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    34
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    35
public class ProjectBuilder extends TestCase {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    36
	public static final String TESTDATA_DIR   = "testdata";
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    37
	public static final String[] imp_file_names = new String[] {"test1.imp","test2.imp"};
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    38
	public static final String[] imp_file_contents = new String[] {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    39
		"#iMaker properties\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    40
		"#Fri Sep 18 09:31:17 EEST 2009\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    41
		"PRODUCT=my_product.mk\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    42
		"TARGET=all\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    43
		"HWID=1010\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    44
		"NAME=FIELD_VALUE\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    45
		"MAKEFILE=\\\\epoc32\\\\rom\\\\config\\\\ncp70\\\\corolla\\\\corolla12mpix\\\\image_conf_corolla12mpix.mk\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    46
		"TYPE=rnd\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    47
		"TARGET_LIST=all\n",
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    48
		"#iMaker properties\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    49
		"#Fri Sep 18 09:31:17 EEST 2009\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    50
		"PRODUCT=image_conf_dilbert_ui.mk\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    51
		"TARGET=core\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    52
		"HWID=0100\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    53
		"NAME=FIELD_VALUE\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    54
		"MAKEFILE=\\\\epoc32\\\\rom\\\\config\\\\ncp70\\\\dilbert\\\\image_conf_dilbert_ui.mk\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    55
		"TYPE=rnd\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    56
		"TARGET_LIST=core\n" +
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    57
		"DEBUG_FILES=true;false;\\\\epoc32\\\\data\\\\welcome.gif;\\\\welcome.gif;ROFS3"};
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    58
	private final String PROJECT_NAME = "test";
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    59
	protected IProject project = null;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    60
	
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    61
	protected void createDefaultProject() throws CoreException {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    62
		IWorkspace workspace = ResourcesPlugin.getWorkspace();
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    63
		IWorkspaceRoot root = workspace.getRoot();
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    64
		
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    65
		project = root.getProject(PROJECT_NAME);
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    66
		if(!project.exists()) {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    67
			project.create(null);
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    68
		}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    69
		if(!project.isOpen()) {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    70
			project.open(null);
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    71
		}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    72
	}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    73
	
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    74
	protected void closeAndDeleteDefaultProject() throws CoreException {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    75
		if(project!=null&&project.exists()) {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    76
			project.close(null);
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    77
			project.delete(true, null);
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    78
		}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    79
	}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    80
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    81
	protected IFile[] addImakerImpFiles() {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    82
		IFolder folder = project.getFolder(TESTDATA_DIR);
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    83
		IFile[] ifiles = new IFile[imp_file_names.length];
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    84
		try {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    85
			if(!folder.exists()) {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    86
				folder.create(true, true, null);	
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    87
			}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    88
			for (int i = 0; i < imp_file_names.length; i++) {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    89
				String f_name = imp_file_names[i];			
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    90
				IFile file = folder.getFile(f_name);
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    91
				if(!file.exists()) {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    92
					file.create(getContent(i), true, null);
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    93
				} else {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    94
					file.setContents(getContent(i), true, false, null);					
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    95
				}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    96
				ifiles[i]=file;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    97
			}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    98
			return ifiles;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
    99
		} catch (CoreException e) {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   100
			e.printStackTrace();
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   101
		}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   102
		return null;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   103
	}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   104
	
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   105
	private InputStream getContent(int file) {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   106
		String contents = imp_file_contents[file];
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   107
		ByteArrayInputStream input = new ByteArrayInputStream(contents.getBytes());
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   108
		return input;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   109
	}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   110
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   111
	public static File[] getTestFiles() {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   112
		File f = new File(TESTDATA_DIR);
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   113
		File[] files = f.listFiles(new FilenameFilter() {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   114
			
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   115
//			@Override
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   116
			public boolean accept(File dir, String name) {
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   117
				return name.endsWith(".imp");
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   118
			}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   119
		});		
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   120
		return files;
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   121
	}
61163b28edca initial EPL conversion
dpodwall
parents:
diff changeset
   122
}