New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 904360 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug

Blocked on:
issue 905225

Blocking:
issue 782823



Sign in to add a comment

Add regression test suite to properly test language-based splits

Project Member Reported by digit@google.com, Nov 12

Issue description

Enabling language-based splits in app bundles has revealed several non-trivial bugs in the implementation that could not be caught using routine unit-tests / regression tests.

I believe this is due to several factors, but the most important one is that we don't yet have a way to properly check Chrome's behaviour when language-based splits are being used, because this would require a new kind of test where we would do something like:

- For each Chrome-supported locale (53 of them as of now) do the
  following:

     1) Change the system language setting of the connected device
        to the specific locale.

     2) Install the bundle (which should only install the base APK and
        the split corresponding to the selected locale).

        IMPORTANT: Ensure Chrome was un-installed before doing so.

     3) Verify that Chrome starts up correctly, and that it can access
        localized resources properly (e.g. look at the explicit values
        returned by Resources.getString() and the C++ .pak loader to
        verify that they are correct, and not some fallback values).

- For at least one locale supported by Android but *not* Chrome:

     1) Set the connected device to said locale.

     2) Verify that Chrome starts up correctly, and falls back to
        an appropriate locale, and that this fallback is consistent
        between Java and C++ (which use different storage schemes for
        the UI strings).

- Also deal with multi-language selections, and associated fallback
  mechanisms.

Ideally, we would want to be able to change the system's locale at runtime and see how Chrome would react to the change. Unfortunately, this use case depends on Play Store services interaction, and cannot be really tested locally (i.e. it requires specific bundles to be uploaded to the Play Store).

This looks like a different kind of regression test, because it requires modifying system settings at runtime during testing. Not sure how to achieve this yet, adding a few people on cc for comments.

 
Blocking: 782823
Thanks Eric for adding the blocking bug 782823. The shared document referenced there [1] is very nice.

I'd rather go with a new kind of perf test (or simply a new kind of test). In all cases, it looks like we will need to be able to change the device's system locale through ADB. Filing a bug for this specific feature first.

Blockedon: 905225
Status: Untriaged (was: Available)
Available, but no owner or component? Please find a component, as no one will ever find this without one.

Sign in to add a comment