Generate repos for two versions of the eclipse SDK. At generation time make sure to use different root versions for the generated SDK's (Use the -rootVersion argument in the launch config to control this). Some of the tests require an SDK later than what you've already provisioned. If you don't have one available, you can hack the version number of the SDK root IU to make it look later.

Throughout the scenarios, SDK-v1 will refer to the oldest version of the two SDKs and SDK-v2 to the newest one.

To test the end user UI, you must first install an SDK and end user UI from the admin UI, then launch the provisioned SDK.

Core Tests (using Admin UI)

Basic install, run and update from Admin UI

Using the Admin UI:

create a new profile

install the SDK-v1

Run the provisioned install

Using the Admin UI:

look for updates, install eclipse SDK-v2

Run the provisioned install and verify that the SDK-v2 plugins are here

Also check that the profile is properly updated in the Admin UI

Variation, try with/without exiting the Admin UI.

Basic install, run and update using remote repository

Using the Admin UI:

create a new profile

connect to the test repository

install the SDK-v1

Run the provisioned install

Using the Admin UI:

look for updates, install eclipse SDK-v2

Run the provisioned install and verify that the SDK-v2 plugins are here

Also check that the profile is properly updated in the Admin UI

Basic install/update from Admin UI

Using the Admin UI:

Create a new profile

Install the SDK-v1

Do *not* start the provisioned install

Using the Admin UI:

look for updates, install eclipse SDK-v2

Run and verify that the plugins have been changed

Also check that the profile is properly updated in the Admin UI

Variation, try with/without exiting the Admin UI.

Bundle pool

Using the Admin UI:

Create a new profile

Install the SDK. During the installation notice the dialog saying that around 150M (the size of the SDK) should be "installed" (caveat, this may already be giving you the same result than in the second step if you are installing an already installed SDK.)

Create a second profile

Install the SDK in it

During the installation notice the dialog saying that only around 50K should be "installed".

Notice that the download phase goes much faster.

Uninstall the two SDK previously installed

Navigate to the folder of the bundle pool and notice that all the jars and folders are now gone. the GC has run.

Bundle pool in the eclipse install

Using the Admin UI:

Create a new profile: in the dialog set the install folder and the bundle pool to the same location. It will be the root of your eclipse install.

Install the SDK

Verify that the plugins folder is located at a subfolder of the install location

Verify that the path in the bundles.txt are relative.

Verify that the path in the osgi.bundles property of the config.ini are relative

Download Resilience

From the Admin UI

Create a profile

Install an SDK and while the download proceeds find an inventive way (a.k.a not using cancel) to abort the download (e.g. unplug the network cable, kill the process, etc.).

Restart the installation and see if it completes normally

Dropins Reconciler

From the Admin UI

Create a profile and install the SDK and User UI

For M4 the following manual steps are required.

Go to your install folder and edit your eclipse.ini

add "-console" at the top.

add "-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:\ontheside\dropins" to the VM arguments at the bottom

Note: The dropin folder must not be inside the profile because of how frameworkadmin adjusts paths to make them relative and a bug with install dir.

If you want to collocate your dropins folder you will have to set "-Dosgi.install.area=file:/c:/yourprofile"

save and start eclipse

at the console "start" the org.eclipse.equiniox.p2.reconciler.dropins bundle

exit eclipse

Testing

put a bundle in your dropins folder

start eclipse and verify that the bundle was installed

exit eclipse

remove the bundle from your dropins folder

start eclipse and verify that the bundle was uninstalled

Update Manager compatibility

Run the Agent

Create a new profile

Add metadata and artifact repositories

Install an SDK into the profile.

Set the bundle pool location to be the same as the install directory to get the same setup as the current Eclipse SDK

Install the End User UI into the same profile

Modify the eclipse.ini file to turn on reconciliation

-Dorg.eclipse.p2.update.compatibility=true

You can now add extension locations via the Update Manager "Manage Configurations" dialog

Also links/ folders should be discovered on startup

End User UI Tests

These tests should be run inside a provisioned SDK with the end user UI. You should already have one if you did the above tests, but if not, here's how:

The admin UI can be used to verify the tests by looking at the contents of the profile of the provisioned SDK. If at any time you don't see the installed features you expect in the Installed Features list of the end user UI, start up the admin UI and verify there. Also note there are admin UI preferences (on the Provisioning page) that control which IU's are shown when browsing profiles).

Install from End User UI

Start the provisioned SDK

Help>Software Updates (Incubation)...

Find the releng tools in the available features page

Install the releng tools

Accept to restart.

Notice the presence of the releng tools (should be listed in the installed features page)

Verification with admin UI - the provisioned SDK profile should show the installed feature

Uninstall the releng tools from End User UI

Start the provisioned SDK

Help>Software Updates (Incubation)...

Go to Installed features page

Select the releng tools

Uninstall

Accept the restart

Come back up and notice the absence of the releng tools (no longer listed in installed features page)

Verification with admin UI - releng tools are absent

Update the SDK from End User UI

Start the provisioned SDK

Help>Software Updates (Incubation)...

First verify that the Available Features page has an updated SDK

You must be connected to a repo with an updated SDK

Choose "Manage sites" and add the test site if you need to

Now go to Installed features page

Click "Check for Updates"

You should see the new SDK offered as an update.

Finish the wizard, accept the restart when done

Verify that the end user UI now shows the new version in the installed features list

Reverting from the End User UI

Start the provisioned SDK

Help>Software Updates (Incubation)...

Go to available features page and find the releng tools

Select and install the releng tools

Verify that the "Installed Features" list shows the releng tools

Choose "Revert Configuration..." and select a timestamped configuration that does not have the releng tools, Finish

Verify that the "Installed Features" list no longer shows the releng tools, but still shows the SDK and end user UI

Automatic updates

Start the provisioned SDK

Go to the Automatic Update preferences and enable auto update on startup

Make sure you are on the end user UI pref page, not the old update pref page. They are similar. The correct pref page has a "When updates are found" group at the bottom.

Ensure you are connected to a repo that has a newer version of the SDK, userUI, or releng tools

Exit the provisioned SDK and restart

Look for popup notifying you of updates

Click on popup to launch the update wizard

Update and verify as usual

Automatic update with remind option

Start the provisioned SDK

Go to the Automatic Update preferences and enable auto update on startup

Make sure you are on the end user UI pref page, not the old update pref page. They are similar. The correct pref page has a "When updates are found" group at the bottom.

Enable the "When updates are found" pref to remind you every 5 minutes

Ensure you are connected to a repo that has a newer version of the SDK, userUI, or releng tools

Exit the provisioned SDK and restart

Look for popup notifying you of updates

Popup should say it will remind you in 5 minutes

Close popup (choose X in upper right corner)

Find some other work to do

Popup should reappear in 5 minutes

Click on popup and you'll see the update wizard

Automatic update via status bar

Start the provisioned SDK

Go to the Automatic Update preferences and enable auto update on startup

Make sure you are on the end user UI pref page, not the old update pref page. They are similar. The correct pref page has a "When updates are found" group at the bottom.

Enable the "When updates are found" pref to remind you every 5 minutes

Ensure you are connected to a repo that has a newer version of the SDK, userUI, or releng tools

Exit the provisioned SDK and restart

Look for popup notifying you of updates

Popup should say it will remind you in 5 minutes

Close popup (choose X in upper right corner)

Now click on update icon in status bar, you'll see the update wizard

Finish the update

The popup shouldn't come back and remind you since you did the update.

Automatic update on daily schedule with automatic download (try this just before lunch)

Start the provisioned SDK

Go to the Automatic Update preferences and enable auto update on startup

Make sure you are on the end user UI pref page, not the old update pref page. They are similar. The correct pref page has a "When updates are found" group at the bottom.

Choose every day and a time which is the next hour (while you're eating)

Enable the "Download new updates automatically option"

Ensure you are connected to a repo that has a newer version of the SDK, userUI, or releng tools

Exit the provisioned SDK and restart

Go to lunch

Popup should appear notifying you of updates on the hour you specified

The popup should explain that the updates have already been downloaded

You should notice that the update is faster since the updates were downloaded already

Update description in update wizard

Start the provisioned SDK

Help>Software Updates (Incubation)...

You must be connected to a repo with an updated SDK, end user UI

Go to Installed features page

Click "Check for Updates"

You should see the new SDK and end user UI offered as an update.

Select each one and you should see the update description in the details area of the wizard

If you uncheck either one, you should see a progress bar while the validity is computed

License page behavior when no licenses defined

Start the provisioned SDK

Help>Software Updates (Incubation)...

You must be connected to a repo with an updated SDK, end user UI

Go to Installed features page

Click "Check for Updates"

You should see the new SDK and end user UI offered as an update.

You should not see a license page in the wizard since the metadata has no license

IU properties in property pages and install wizard

You will need to hack some metadata into your local repo. Choose a group feature IU (such as RCP feature) and add some properties to the content.xml.