Short answer
Fragment.getContext() return the context of activity where fragment is used
Details
Since api 23 in Fragment class was introduced mHost field 
// Activity this fragment is attached to.
FragmentHostCallback mHost;
And Fragment.getContext() uses it for getting context:
/**
 * Return the {@link Context} this fragment is currently associated with.
 */
public Context getContext() {
    return mHost == null ? null : mHost.getContext();
}
There are several steps before you get Activity's context in fragment's getContext() method.
1) During Activity's initialization FragmentController is created:
final FragmentController mFragments = FragmentController.createController(new HostCallbacks());
2) It uses HostCallbacks class (inner class of Activity)
class HostCallbacks extends FragmentHostCallback<Activity> {
    public HostCallbacks() {
        super(Activity.this /*activity*/);
    }
...
}
3) As you can see mFragments keep the reference to the activity's context.
4) When the application creates a fragment it uses FragmentManager. And the instance of it is taken from mFragments (since API level 23)
/**
 * Return the FragmentManager for interacting with fragments associated
 * with this activity.
 */
public FragmentManager getFragmentManager() {
    return mFragments.getFragmentManager();
}
5) Finally, the Fragment.mHost field is set in FragmentManager.moveToState(Fragment f, int newState, int transit, int transitionStyle, boolean keepActive) method.