--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uidesigner/com.nokia.sdt.symbian.tests/src/com/nokia/sdt/symbian/tests/MultiImageInfoTests.java Fri Apr 03 23:33:03 2009 +0100
@@ -0,0 +1,276 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+package com.nokia.sdt.symbian.tests;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+
+import com.nokia.carbide.cdt.builder.DefaultImageMakefileViewConfiguration;
+import com.nokia.carbide.cdt.builder.DefaultMMPViewConfiguration;
+import com.nokia.carbide.cpp.epoc.engine.EpocEnginePlugin;
+import com.nokia.carbide.cpp.epoc.engine.image.IMultiImageSource;
+import com.nokia.carbide.cpp.epoc.engine.model.makefile.image.IImageMakefileModel;
+import com.nokia.carbide.cpp.epoc.engine.model.makefile.image.IImageMakefileView;
+import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPModel;
+import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPView;
+import com.nokia.carbide.cpp.epoc.engine.preprocessor.AllNodesViewFilter;
+import com.nokia.cpp.internal.api.utils.core.ProjectUtils;
+import com.nokia.sdt.symbian.images.*;
+
+/**
+ * Test the MultiImageInfo and ImageInfo classes
+ * in com.nokia.sdt.symbian.images.
+ *
+ *
+ *
+ *
+ */
+public class MultiImageInfoTests extends BaseImageTests {
+ protected static MultiImageInfo mbmInfo;
+ protected static MultiImageInfo mifInfo;
+
+ /*
+ * @see TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ IMMPModel mmpModel = EpocEnginePlugin.getMMPModelProvider().getSharedModel(new Path(PROJECT_NAME + "/group/foo.mmp"));
+ IMMPView mmpView = mmpModel.createView(new DefaultMMPViewConfiguration(project,
+ null,
+ new AllNodesViewFilter()));
+
+ IMultiImageSource multiImageSource = mmpView.getMultiImageSources().get(0);
+ mbmInfo = new MultiImageInfo(ProjectUtils.getRealProjectLocation(project),
+ new Path("group/foo.mmp"),
+ multiImageSource);
+ mmpView.dispose();
+ EpocEnginePlugin.getMMPModelProvider().releaseSharedModel(mmpModel);
+
+ IImageMakefileModel mkModel = EpocEnginePlugin.getImageMakefileModelProvider().getSharedModel(
+ new Path(PROJECT_NAME + "/random/Icon_svgs.mk"));
+ IImageMakefileView mkView = mkModel.createView(
+ new DefaultImageMakefileViewConfiguration(project, null,
+ new AllNodesViewFilter()));
+
+ multiImageSource = mkView.getMultiImageSources().get(0);
+
+ mifInfo = new MultiImageInfo(ProjectUtils.getRealProjectLocation(project),
+ new Path("random/Icon_svgs.mk"),
+ multiImageSource);
+
+ mkView.dispose();
+ EpocEnginePlugin.getImageMakefileModelProvider().releaseSharedModel(mkModel);
+ }
+
+ public void testMbmFile() throws Exception {
+ assertEquals(MultiImageInfo.MBM_FILE, mbmInfo.getFileType());
+ assertEquals("foo.mmp", mbmInfo.getSourceFilename());
+ assertEquals("Foo", mbmInfo.getBase());
+ assertEquals("mbm", mbmInfo.getBinaryExtension());
+
+ String binfile = mbmInfo.getBinaryFilename();
+ assertEquals("Foo.mbm", binfile);
+
+ // NOTE: the .cdtbuild file in the project is hardcoded to return
+ // this value -- if the real logic changes, change this test and the .cdtbuild file
+ IPath path = mbmInfo.getBinaryFile();
+ assertEquals(new Path("/system/apps/" + PROJECT_NAME + "/Foo.mbm"), path);
+ }
+
+ public void testMbmData() throws Exception {
+ ImageInfo info = mbmInfo.findImageByFile("group/qgn_note_ok.bmp");
+ assertNotNull(info);
+ assertEquals(8, info.getBitDepth());
+ assertTrue(info.isColor());
+
+ info = mbmInfo.findImageByFile("group/qgn_note_ok_mask_soft.bmp");
+ assertNotNull(info);
+ assertEquals(8, info.getBitDepth());
+ assertTrue(info.isColor());
+
+ info = mbmInfo.findImageByFile("group/image.bmp");
+ assertNotNull(info);
+ assertEquals(12, info.getBitDepth());
+ assertFalse(info.isColor());
+
+ info = mbmInfo.findImageByFile("group/missing.bmp");
+ assertNotNull(info);
+ assertEquals(1, info.getBitDepth());
+ assertFalse(info.isColor());
+}
+
+ public void testMbmList() throws Exception {
+ String[] imgs = mbmInfo.getImageFileList();
+ // counting each bmp
+ assertEquals(5, imgs.length);
+
+ // may change...
+ assertEquals("group/qgn_note_ok.bmp", imgs[0]);
+
+ // look up
+ ImageInfo info = mbmInfo.findImageByFile("group/qgn_note_ok.bmp");
+ assertNotNull(info);
+
+ // check enumeration
+ String enm = info.getImageEnumeration();
+ assertEquals("EMbmFooQgn_note_ok", enm);
+
+ ImageInfo info2 = mbmInfo.findImageByEnumerator(enm);
+ assertEquals(info, info2);
+
+ /// this one has no paired item
+
+ info = mbmInfo.findImageByFile("group/note.bmp");
+ assertNotNull(info);
+
+ enm = info.getImageEnumeration();
+ assertEquals("EMbmFooNote", enm);
+
+ info2 = mbmInfo.findImageByEnumerator(enm);
+ assertEquals(info, info2);
+
+ }
+
+ public void testMbmEnums() throws Exception {
+ String[] enms = mbmInfo.getImageEnumeratorList();
+ // counting each enum
+ assertEquals(5, enms.length);
+ assertEquals("EMbmFooQgn_note_ok", enms[0]);
+
+ // check mapping
+ for (int i = 0; i < enms.length; i++) {
+ ImageInfo info = mbmInfo.findImageByEnumerator(enms[i]);
+ assertNotNull(info);
+ ImageInfo info2 = mbmInfo.findImageByFile(info.getFilePath());
+ assertEquals(info, info2);
+ }
+ }
+
+
+ public void testMbmPairs() throws Exception {
+ // check that items paired in the MBM are available
+ ImageInfo info = mbmInfo.findImageByEnumerator("EMbmFooQgn_note_ok");
+ assertNotNull(info);
+
+ ImageInfo mask = mbmInfo.getMaskForImage(info);
+ assertNotNull(mask);
+
+ // mbm names the mask after the file correctly
+ ImageInfo mask2 = mbmInfo.findImageByEnumerator("EMbmFooQgn_note_ok_mask");
+ assertNull(mask2);
+
+ mask2 = mbmInfo.findImageByEnumerator("EMbmFooQgn_note_ok_mask_soft");
+ assertNotNull(mask2);
+
+ assertEquals(mask, mask2);
+
+ /// this one has no paired item
+
+ info = mbmInfo.findImageByEnumerator("EMbmFooNote");
+ assertNotNull(info);
+
+ mask = mbmInfo.getMaskForImage(info);
+ assertNull(mask);
+
+ //// this has a paired item, but its file is missign
+
+ info = mbmInfo.findImageByEnumerator("EMbmFooImage");
+ assertNotNull(info);
+
+ // although the file is missing, this should work...
+ mask = mbmInfo.getMaskForImage(info);
+ assertNotNull(mask);
+ }
+
+
+
+ public void testMifs() throws Exception {
+ assertEquals("Icon_svgs.mk", mifInfo.getSourceFilename());
+ assertEquals(MultiImageInfo.MIF_FILE, mifInfo.getFileType());
+
+ assertEquals("Svgs", mifInfo.getBase());
+ assertEquals("mif", mifInfo.getBinaryExtension());
+
+ String binfile = mifInfo.getBinaryFilename();
+ assertEquals("Svgs.mif", binfile);
+
+ IPath path = mifInfo.getBinaryFile();
+ assertEquals(new Path("/system/resources/Svgs.mif"), path);
+
+ // leaving out implied SVG masks but not bmps
+ String[] imgs = mifInfo.getImageFileList();
+ assertEquals(4, imgs.length);
+
+ }
+
+ public void testMifEnums() throws Exception {
+ String[] enms = mifInfo.getImageEnumeratorList();
+ // one for image and generated masks
+ assertEquals(5, enms.length);
+ assertEquals("EMbmSvgsAppicon", enms[0]);
+
+ for (int i = 0; i < enms.length; i++) {
+ ImageInfo info = mifInfo.findImageByEnumerator(enms[i]);
+ assertNotNull(info);
+ ImageInfo info2 = mifInfo.findImageByFile(info.getFilePath());
+ assertEquals(info, info2);
+ }
+
+
+ }
+
+ public void testMifPairs() throws Exception {
+ // Only non-SVG files have pairs in this format.
+ // Although SVG files have implicit masks, they do not
+ // come from this class.
+
+ ImageInfo info = mifInfo.findImageByEnumerator("EMbmSvgsQgn_note_ok");
+ assertNotNull(info);
+
+ ImageInfo mask = mifInfo.getMaskForImage(info);
+ assertNotNull(mask);
+
+ // the "soft" enum is never emitted; only "mask"
+ ImageInfo mask2 = mifInfo.findImageByEnumerator("EMbmSvgsQgn_note_ok_mask_soft");
+ assertNull(mask2);
+
+ mask2 = mifInfo.findImageByEnumerator("EMbmSvgsQgn_note_ok_mask");
+ assertNotNull(mask2);
+ assertEquals(mask, mask2);
+
+ /// this one has a paired item too
+
+ info = mifInfo.findImageByEnumerator("EMbmSvgsAppicon");
+ assertNotNull(info);
+
+ mask = mifInfo.getMaskForImage(info);
+ assertNotNull(mask);
+
+ /// this one has no paired item
+
+ info = mifInfo.findImageByEnumerator("EMbmSvgsImg");
+ assertNotNull(info);
+
+ mask = mifInfo.getMaskForImage(info);
+ assertNull(mask);
+
+ }
+
+
+}