/*
* Copyright 2007 Yusuke Yamamoto
*
* 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 twitter4j.media;
import junit.framework.TestCase;
import twitter4j.TwitterException;
import twitter4j.conf.Configuration;
import twitter4j.conf.ConfigurationBuilder;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Date;
/**
* @author Takao Nakaguchi - takao.nakaguchi at gmail.com
* @author withgod - noname at withgod.jp
* @since Twitter4J 2.1.8
*/
public class MediaUploadTest extends TestCase {
public MediaUploadTest(String name) {
super(name);
}
private String fileName = "t4j.jpeg";
private String message = "Twitter4J image upload test" + new Date().toString();
@Override
protected void setUp() throws Exception {
super.setUp();
}
private Configuration getConfiguration(String apiKey) {
return new ConfigurationBuilder().setMediaProviderAPIKey(apiKey).build();
}
public void testProviders() throws Exception {
Configuration conf;
ImageUploadFactory factory;
conf = new ConfigurationBuilder().setMediaProvider(MediaProvider.TWITTER.name()).build();
factory = new ImageUploadFactory(conf);
conf = new ConfigurationBuilder().setMediaProvider(MediaProvider.IMG_LY.name()).build();
factory = new ImageUploadFactory(conf);
conf = new ConfigurationBuilder().setMediaProvider(MediaProvider.PLIXI.name()).build();
factory = new ImageUploadFactory(conf);
conf = new ConfigurationBuilder().setMediaProvider(MediaProvider.TWIPPLE.name()).build();
factory = new ImageUploadFactory(conf);
conf = new ConfigurationBuilder().setMediaProvider(MediaProvider.TWITGOO.name()).build();
factory = new ImageUploadFactory(conf);
conf = new ConfigurationBuilder().setMediaProvider(MediaProvider.TWITPIC.name()).build();
factory = new ImageUploadFactory(conf);
conf = new ConfigurationBuilder().setMediaProvider(MediaProvider.YFROG.name()).build();
factory = new ImageUploadFactory(conf);
conf = new ConfigurationBuilder().setMediaProvider(MediaProvider.MOBYPICTURE.name()).build();
factory = new ImageUploadFactory(conf);
conf = new ConfigurationBuilder().setMediaProvider(MediaProvider.POSTEROUS.name()).build();
factory = new ImageUploadFactory(conf);
}
public void testNonexistingFileUpload() throws Exception {
ImageUploadFactory factory = new ImageUploadFactory(getConfiguration("d414e7c05f440c867990fbb08286bdfd"));
ImageUpload upload = factory.getInstance(MediaProvider.TWITPIC);
try {
String url = upload.upload(new File("foobar"));
} catch (TwitterException te) {
if (!(te.getCause() instanceof FileNotFoundException)) {
fail("expecting FileNotFoundException");
}
}
}
public void testTwitPicOAuthUpload() throws Exception {
InputStream is = getClass().getResourceAsStream("/" + fileName);
try {
ImageUploadFactory factory = new ImageUploadFactory(getConfiguration("d414e7c05f440c867990fbb08286bdfd"));
ImageUpload upload = factory.getInstance(MediaProvider.TWITPIC);
String url = upload.upload(fileName, is, message);
assertTrue(url.length() > 0);
} finally {
is.close();
}
}
public void testTwitterUpload() throws Exception {
InputStream is = getClass().getResourceAsStream("/" + fileName);
try {
ImageUploadFactory factory = new ImageUploadFactory();
ImageUpload upload = factory.getInstance(MediaProvider.TWITTER);
String url = upload.upload(fileName, is, message);
assertTrue(url.length() > 0);
} finally {
is.close();
}
}
public void testYFrogUpload() throws Exception {
InputStream is = getClass().getResourceAsStream("/" + fileName);
try {
ImageUploadFactory factory = new ImageUploadFactory(getConfiguration(null));
ImageUpload upload = factory.getInstance(MediaProvider.YFROG);
String url = upload.upload(fileName, is, message);
assertTrue(url.length() > 0);
} finally {
is.close();
}
}
public void testPlixiUpload() throws Exception {
InputStream is = getClass().getResourceAsStream("/" + fileName);
try {
ImageUploadFactory factory = new ImageUploadFactory(getConfiguration("b30d6580-46ce-49a1-b469-31777a326938"));
ImageUpload upload = factory.getInstance(MediaProvider.PLIXI);
String url = upload.upload(fileName, is, message);
assertTrue(url.length() > 0);
} finally {
is.close();
}
}
public void testImgLyUpload() throws Exception {
InputStream is = getClass().getResourceAsStream("/" + fileName);
try {
ImageUploadFactory factory = new ImageUploadFactory(getConfiguration(null));
ImageUpload upload = factory.getInstance(MediaProvider.IMG_LY);
String url = upload.upload(fileName, is, message);
assertTrue(url.length() > 0);
} finally {
is.close();
}
}
public void testTwitgooUpload() throws Exception {
InputStream is = getClass().getResourceAsStream("/" + fileName);
try {
ImageUploadFactory factory = new ImageUploadFactory(getConfiguration(null));
ImageUpload upload = factory.getInstance(MediaProvider.TWITGOO);
String url = upload.upload(fileName, is, message);
assertTrue(url.length() > 0);
} finally {
is.close();
}
}
public void testTwippleUpload() throws Exception {
InputStream is = getClass().getResourceAsStream("/" + fileName);
try {
ImageUploadFactory factory = new ImageUploadFactory(getConfiguration(null));
ImageUpload upload = factory.getInstance(MediaProvider.TWIPPLE);
String url = upload.upload(fileName, is);
assertTrue(url.length() > 0);
} finally {
is.close();
}
}
public void testMobypictureUpload() throws Exception {
InputStream is = getClass().getResourceAsStream("/" + fileName);
try {
ImageUploadFactory factory = new ImageUploadFactory(getConfiguration("IOUxMoqc8Snms9nU"));
ImageUpload upload = factory.getInstance(MediaProvider.MOBYPICTURE);
String url = upload.upload(fileName, is);
assertTrue(url.length() > 0);
} finally {
is.close();
}
}
public void testPosterousUpload() throws Exception {
InputStream is = getClass().getResourceAsStream("/" + fileName);
try {
ImageUploadFactory factory = new ImageUploadFactory(getConfiguration(null));
ImageUpload upload = factory.getInstance(MediaProvider.POSTEROUS);
String url = upload.upload(fileName, is);
assertTrue(url.length() > 0);
} finally {
is.close();
}
}
public void testFromConfigurationUpload() throws Exception {
InputStream is = getClass().getResourceAsStream("/" + fileName);
try {
ImageUploadFactory factory = new ImageUploadFactory();
ImageUpload upload = factory.getInstance();
System.out.println(upload);
String url = upload.upload(fileName, is);
assertTrue(url.length() > 0);
} finally {
is.close();
}
}
}