FBTestSession
This class is no longer available in the most recent version of the SDK.
A more recent version of this class is available. Check out the latest version.

Implements an FBSession subclass that knows about test users for a particular application. This should never be used from a real application, but may be useful for writing unit tests, etc.

Discussion:

Facebook allows developers to create test accounts for testing their applications' Facebook integration (see https://developers.facebook.com/docs/test_users/). This class simplifies use of these accounts for writing unit tests. It is not designed for use in production application code.

The main use case for this class is using sessionForUnitTestingWithPermissions:mode: to create a session for a test user. Two modes are supported. In "shared" mode, an attempt is made to find an existing test user that has the required permissions and, if it is not currently in use by another FBTestSession, just use that user. If no such user is available, a new one is created with the required permissions. In "private" mode, designed for scenarios which require a new user in a known clean state, a new test user will always be created, and it will be automatically deleted when the FBTestSession is closed.

Note that the shared test user functionality depends on a naming convention for the test users. It is important that any testing of functionality which will mutate the permissions for a test user NOT use a shared test user, or this scheme will break down. If a shared test user seems to be in an invalid state, it can be deleted manually via the Web interface at https://developers.facebook.com/apps/APP_ID/permissions?role=test+users.

Inherits from:FBSession
Declared in:FBTestSession.h
Class Methods
sessionWithPrivateUserWithPermissions:

Constructor helper to create a session for use in unit tests

ParameterDescription
permissions

Array of strings naming permissions to authorize; nil indicates a common default set of permissions should be used for unit testing

+ (instancetype) sessionWithPrivateUserWithPermissions:(NSArray *)permissions;
Discussion:

This method creates a session object which creates a test user on open, and destroys the user on close; This method should not be used in application code -- but is useful for creating unit tests that use the Facebook SDK.

Declared In: FBTestSession.h
sessionWithSharedUserWithPermissions:

Constructor helper to create a session for use in unit tests

ParameterDescription
permissions

Array of strings naming permissions to authorize; nil indicates a common default set of permissions should be used for unit testing

+ (instancetype) sessionWithSharedUserWithPermissions:(NSArray *)permissions;
Discussion:

This method creates a session object which uses a shared test user with the right permissions, creating one if necessary on open (but not deleting it on close, so it can be re-used in later tests). Calling this method multiple times may return sessions with the same user. If this is not desired, use the variant sessionWithSharedUserWithPermissions:uniqueUserTag:.

This method should not be used in application code -- but is useful for creating unit tests that use the Facebook SDK.

Declared In: FBTestSession.h
sessionWithSharedUserWithPermissions:uniqueUserTag:

Constructor helper to create a session for use in unit tests

ParameterDescription
permissions

Array of strings naming permissions to authorize; nil indicates a common default set of permissions should be used for unit testing

uniqueUserTag

A string which will be used to make this user unique among other users with the same permissions. Useful for tests which require two or more users to interact with each other, and which therefore must have sessions associated with different users. For this case, consider using kSecondTestUserTag and kThirdTestUserTag so these users can be shared with other, similar, tests.

+ (instancetype)
sessionWithSharedUserWithPermissions: (NSArray *)permissions
uniqueUserTag: (NSString *)uniqueUserTag;
Discussion:

This method creates a session object which uses a shared test user with the right permissions, creating one if necessary on open (but not deleting it on close, so it can be re-used in later tests).

This method should not be used in application code -- but is useful for creating unit tests that use the Facebook SDK.

Declared In: FBTestSession.h