uidesigner/com.nokia.sdt.symbian.tests/src/com/nokia/sdt/symbian/tests/ProjectImageTests.java
changeset 0 fb279309251b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uidesigner/com.nokia.sdt.symbian.tests/src/com/nokia/sdt/symbian/tests/ProjectImageTests.java	Fri Apr 03 23:33:03 2009 +0100
@@ -0,0 +1,123 @@
+/*
+* 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 com.nokia.sdt.datamodel.IDesignerDataModel;
+import com.nokia.sdt.datamodel.images.IProjectImageInfo;
+import com.nokia.sdt.datamodel.images.IProjectImageInfoProvider;
+import com.nokia.sdt.displaymodel.GlobalCache;
+import com.nokia.sdt.symbian.images.ProjectImageInfo;
+import com.nokia.sdt.testsupport.TestDataModelHelpers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Test the image information in com.nokia.sdt.symbian.images.
+ * 
+ * 
+ * 
+ *
+ */
+public class ProjectImageTests extends BaseImageTests {
+    protected IDesignerDataModel dataModel;
+    protected EObject root;
+ 
+    /*
+     * @see TestCase#setUp()
+     */
+    protected void setUp() throws Exception {
+        super.setUp();
+        
+        dataModel = TestDataModelHelpers.loadDataModelWithTestComponents(project,
+                BASE_DIR + FILE_NAME, provider);
+        root = dataModel.findByNameProperty("root");
+
+        
+    }
+    
+    /**
+     * Test that the project is scanned correctly for images
+     * @throws Exception
+     */
+    public void testScanProject() throws Exception {
+
+        // validate we can get info at all
+        IProjectImageInfoProvider imageProvider = (IProjectImageInfoProvider) EcoreUtil.getRegisteredAdapter(root, IProjectImageInfoProvider.class);
+        assertNotNull(imageProvider); 
+
+        IProjectImageInfo data = imageProvider.getProjectImageInfo();
+        assertNotNull(data);
+        assertTrue(data instanceof ProjectImageInfo);
+        
+        // get the mbmdef and mifdef files in the project
+        String[] imgFiles = ((ProjectImageInfo)data).getMultiImageFileList();
+        assertNotNull(imgFiles);
+        assertEquals(4, imgFiles.length);
+  
+       
+        // new provider should be provided after refreshing
+        GlobalCache.disposeAll();
+       	dataModel.dispose();
+ 
+        IDesignerDataModel dataModel2 = TestDataModelHelpers.loadDataModelWithTestComponents(project,
+                BASE_DIR + FILE_NAME, provider);
+        EObject root2 = dataModel2.findByNameProperty("root");
+
+        IProjectImageInfoProvider provider2 = (IProjectImageInfoProvider) EcoreUtil.getRegisteredAdapter(root2, IProjectImageInfoProvider.class);
+        assertNotNull(provider2);
+        assertNotSame(imageProvider, provider2);
+        IProjectImageInfo data2 = provider2.getProjectImageInfo();
+        assertTrue(data2 instanceof ProjectImageInfo);
+        
+        assertNotSame(data, data2);
+    }
+
+    /**
+     * Test that the provider is refreshed appropriately
+     * @throws Exception
+     */
+    public void testRefreshProvider() throws Exception {
+
+        // validate we can get info at all
+        IProjectImageInfoProvider imageProvider = (IProjectImageInfoProvider) EcoreUtil.getRegisteredAdapter(root, IProjectImageInfoProvider.class);
+        assertNotNull(imageProvider); 
+
+        IProjectImageInfo data = imageProvider.getProjectImageInfo();
+        assertNotNull(data);
+        
+        // new provider should be provided after refreshing
+        GlobalCache.disposeAll();
+        dataModel.dispose();
+        
+        IDesignerDataModel dataModel2 = TestDataModelHelpers.loadDataModelWithTestComponents(project,
+                BASE_DIR + FILE_NAME, provider);
+        EObject root2 = dataModel2.findByNameProperty("root");
+
+        IProjectImageInfoProvider provider2 = (IProjectImageInfoProvider) EcoreUtil.getRegisteredAdapter(root2, IProjectImageInfoProvider.class);
+        assertNotNull(provider2);
+        assertNotSame(imageProvider, provider2);
+        
+        IProjectImageInfo data2 = provider2.getProjectImageInfo();
+        assertNotNull(data2);
+        assertTrue(data2 instanceof ProjectImageInfo);
+        assertNotSame(data, data2);
+
+    }
+
+}