SmugMugTest.java :  » App » mediashareapp » com » megagoodsoftware » smugmug » test » Android Open Source

Android Open Source » App » mediashareapp 
mediashareapp » com » megagoodsoftware » smugmug » test » SmugMugTest.java
package com.megagoodsoftware.smugmug.test;

import java.io.*;
import java.util.*;

import junit.framework.*;

import org.apache.http.*;

import android.os.Bundle;

import com.megagoodsoftware.MediaShare.fakes.FakeHttpClient;
import com.megagoodsoftware.MediaShare.fakes.FakeSmugMugClient;
import com.megagoodsoftware.smugmug.*;
import com.megagoodsoftware.smugmug.exceptions.*;
import com.megagoodsoftware.smugmug.util.*;

public class SmugMugTest extends TestCase {
  private static final String STATE_ACCOUNT = "foo";
  FakeSmugMugClient successClient;
  @Override
  protected void setUp() throws Exception {
    successClient = new FakeSmugMugClient(new FakeHttpClient());
  }

  private static void assertHttpHeaderEquals(HashMap<String, String> expectedHeaderMap, Header[] actualHeaders) {
    for (int i = 0; i < actualHeaders.length; i++)
    {
      if (expectedHeaderMap.containsKey(actualHeaders[i].getName()))  
        assertEquals(expectedHeaderMap.get(actualHeaders[i].getName()), actualHeaders[i].getValue());
    }
  }
  
  public void testLoginWithPassword() {
    String email = "fred@gmail.com";
    String password = "xxx";
    try {
      SmugMug smugmug = new SmugMug(successClient, email, password);
      SmugMugAccount account = smugmug.getAccount();
      
      assertEquals("d2964l9adecc9a6843bfaa4alba5fa22", account.getSession());
      assertEquals("$1$qZ2KzsuJ$GllBdngm3V5KLaY7Hkhcu/", account.getPassword());
      assertEquals(1234, account.getUserId());
      assertEquals("Pro", account.getType());
      assertEquals(25165824, account.getFilesizeLimit());
      assertEquals("fred", account.getNickName());
      assertEquals("Fred Nerk", account.getDisplayName());
    } catch (Exception e) {
      fail("Unexpected exception, login failed");
    }
  }

  public void testSmugMugWithSeparateLogin() {
    String email = "fred@gmail.com";
    String password = "xxx";
    try {
      SmugMug smugmug = new SmugMug();
      smugmug.setClient(successClient);
      smugmug.loginWithPassword(email, password);
      SmugMugAccount account = smugmug.getAccount();
      
      assertEquals("d2964l9adecc9a6843bfaa4alba5fa22", account.getSession());
      assertEquals("$1$qZ2KzsuJ$GllBdngm3V5KLaY7Hkhcu/", account.getPassword());
      assertEquals(1234, account.getUserId());
      assertEquals("Pro", account.getType());
      assertEquals(25165824, account.getFilesizeLimit());
      assertEquals("fred", account.getNickName());
      assertEquals("Fred Nerk", account.getDisplayName());
    } catch (Exception e) {
      fail("Unexpected exception, login failed");
    }
  }

  public void testLoginWithHashSuccess() {
    int userId = 111;
    String hashPassword = "xxx";
    try {
      SmugMug smugmug = new SmugMug(successClient, userId, hashPassword);
      SmugMugAccount account = smugmug.getAccount();
      assertEquals("abcdef", account.getSession());
      assertEquals(hashPassword, account.getPassword());
      assertEquals(userId, account.getUserId());
      assertEquals("Power", account.getType());
      assertEquals(12582912, account.getFilesizeLimit());
      assertEquals("fakenick", account.getNickName());
      assertEquals("Fake Name", account.getDisplayName());
    } catch (Exception e) {
      fail("Unexpected exception, login failed");
    }
  }

  public void testLoginWithHashFailure() {
    int userId = 111;
    String hashPassword = "xxx";
    try {
      successClient.setFailureResponse();
      new SmugMug(successClient, userId, hashPassword);
      
      fail("Login should fail");
    } catch (SmugMugBadAuthentication e) {
      assertTrue(true);
    } catch (SmugMugInternalError e) {
      fail("Unexpected Exception");
    }
  }
  public void testLogout() {
    int userId = 111;
    String hashPassword = "xxx";
    try {
      SmugMug smugmug = new SmugMug(successClient, userId, hashPassword);
      
      assertTrue(smugmug.logout());
    } catch (Exception e) {
      fail("Unexpected exception, login failed");
    }
  }
  
  public void testInvalidSession() {
    int userId = 111;
    String hashPassword = "xxx";
    try {
      SmugMug smugmug = new SmugMug(successClient, userId, hashPassword);
      successClient.setInvalidSession(true);
      smugmug.updateCache();

      fail("Should have thrown invalid session");
    } catch (SmugMugInvalidSession e) {
      // expecting this to be thrown
      assertTrue(true);
    } catch (Exception e) {
      fail("Unexpected exception");
    }
  }
  public void testGetAllAlbums() {
    int userId = 111;
    String hashPassword = "xxx";
    try {
      SmugMug smugmug = new SmugMug(successClient, userId, hashPassword);
      ArrayList<SmugMugAlbum> albums = smugmug.getAlbums();
      
      assertEquals(6, albums.size());
      assertEquals(2398750, albums.get(2).getId());
      assertEquals("fVPoA", albums.get(2).getKey());
      assertEquals("Album1", albums.get(0).getTitle());
    } catch (Exception e) {
      fail("Unexpected exception");
    }
  }
  
  public void testGetAlbumsThruNameSuccess() {
    int userId = 111;
    String hashPassword = "xxx";
    try {
      SmugMug smugmug = new SmugMug(successClient, userId, hashPassword);
      ArrayList<SmugMugAlbum> albums = smugmug.getAlbums("Album3");
      
      assertEquals(1, albums.size());
      assertEquals(2398750, albums.get(0).getId());
    } catch (Exception e) {
      fail("Unexpected exception");
    }

  }
  
  public void testGetAlbumThruIdSuccess() {
    int userId = 111;
    String hashPassword = "xxx";
    try {
      SmugMug smugmug = new SmugMug(successClient, userId, hashPassword);
      SmugMugAlbum album = smugmug.getAlbum(2398748);
      
      assertEquals("Album1", album.getTitle());
      assertEquals("Other", album.getCategory());
    } catch (Exception e) {
      fail("Unexpected exception\n" + e.getLocalizedMessage());
    }

  }
  
  public void testGetAlbumThruIdFailure() {
    int userId = 111;
    String hashPassword = "xxx";
    try {
      SmugMug smugmug = new SmugMug(successClient, userId, hashPassword);
      assertNull(smugmug.getAlbum(555));
    } catch (Exception e) {
      fail("Unexpected exception\n" + e.getLocalizedMessage());
    }

  }
  
  public void testSimpleUploadSuccess() {
    int userId = 111;
    String hashPassword = "xxx";
    HashMap<String, String> expectedHeaderMap = new HashMap<String, String>();

    try {
      SmugMug smugmug = new SmugMug(successClient, userId, hashPassword);
      SmugMugAlbum album = smugmug.getAlbum(2398751);
      String dummyFilename = "dummy.jpg";
      byte[] dummyContent = "abcdefghijklmnopqrstuvwxyz".getBytes();
      String md5 = SmugMugUtil.getMd5Hash(dummyContent);
      InputStream is = new ByteArrayInputStream(dummyContent);
      expectedHeaderMap.put("User-Agent", Constants.USER_AGENT);
      expectedHeaderMap.put("Content-Length", Integer.toString(dummyContent.length));
      expectedHeaderMap.put("Content-MD5", md5);
      expectedHeaderMap.put("X-Smug-SessionID", "abcdef");
      expectedHeaderMap.put("X-Smug-Version", SmugMugClient.API_VERSION);
      expectedHeaderMap.put("X-Smug-ResponseType", "JSON");
      expectedHeaderMap.put("X-Smug-AlbumID", Integer.toString(album.getId()));
      expectedHeaderMap.put("X-Smug-FileName", dummyFilename);
      SmugMugImage image = smugmug.upload(null, is, md5, album, dummyFilename);
      
      assertEquals(201510850, image.getId());
      assertEquals("bQ8fG", image.getKey());
      assertEquals(dummyFilename, image.getName());
      assertHttpHeaderEquals(expectedHeaderMap, successClient.getHttpPut().getAllHeaders());
      assertTrue(album.hasImage(image));
    } catch (Exception e) {
      fail("Unexpected exception");
    }
  }
  
  public void testGetCategories() {
    int userId = 111;
    String hashPassword = "xxx";
    try {
      SmugMug smugmug = new SmugMug(successClient, userId, hashPassword);
      
      assertEquals(6, smugmug.getCategories().size());
    } catch (Exception e) {
      fail("Unexpected exception");
    }
  }
  
  public void testAccountParcelable() {
    String email = "fred@gmail.com";
    String password = "xxx";
    try {
      SmugMug smugmug = new SmugMug(successClient, email, password);
      SmugMugAccount account_in = smugmug.getAccount();
      Bundle b = new Bundle();
      
      b.putParcelable(STATE_ACCOUNT, account_in);
          SmugMugAccount account = b.getParcelable(STATE_ACCOUNT);

      assertEquals("d2964l9adecc9a6843bfaa4alba5fa22", account.getSession());
      assertEquals("$1$qZ2KzsuJ$GllBdngm3V5KLaY7Hkhcu/", account.getPassword());
      assertEquals(1234, account.getUserId());
      assertEquals("Pro", account.getType());
      assertEquals(25165824, account.getFilesizeLimit());
      assertEquals("fred", account.getNickName());
      assertEquals("Fred Nerk", account.getDisplayName());
    } catch (Exception e) {
      fail("Unexpected exception, login failed");
    }
  }


}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.